Systematically combining process simulation and empirical data in support of decision analysis in software development

Author(s):  
Ioana Rus ◽  
Stefan Biffl ◽  
Michael Halling
Complexity ◽  
2019 ◽  
Vol 2019 ◽  
pp. 1-20
Author(s):  
Paulo A. M. Barbosa ◽  
Plácido R. Pinheiro ◽  
Francisca R. V. Silveira ◽  
Marum Simão Filho

During the software development process, the decision maker (DM) must master many variables inherent in this process. Software releases represent the order in which a set of requirements is implemented and delivered to the customer. Structuring and enumerating a set of releases with prioritized requirements represents a challenging task because the requirements contain their characteristics, such as technical precedence, the cost required for implementation, the importance that one or more customers add to the requirement, among other factors. To facilitate this work of selection and prioritization of releases, the decision maker may adopt some support tools. One field of study already known to solve this type of problem is the Search-Based Software Engineering (SBSE) that uses metaheuristics as a means to find reasonable solutions taking into account a set of well-defined objectives and constraints. In this paper, we seek to increase the possibilities of solving the Next Release Problem using the methods available in Verbal Decision Analysis (VDA). We generate a problem and submit it so that the VDA and SBSE methods try to resolve it. To validate this research, we compared the results obtained through VDA and compared with the SBSE results. We present and discuss the results in the respective sections.


2017 ◽  
Vol 02 (02) ◽  
pp. 1750007
Author(s):  
Taiga Mitsuyuki ◽  
Kazuo Hiekata ◽  
Takuya Goto ◽  
Bryan Moser

For software development, especially massive software systems, a waterfall process is used traditionally. A waterfall process can be highly effective on the condition that a master plan is fixed and the possibility of changes and uncertain rework is low. However, in software development projects, many kinds of reworks occur corresponding to uncertain requirement changes and program bugs. In addition, with the advent of cloud-based software platforms and continuous development operations, it is possible to develop a software system while operating the system. To respond to this situation, software development projects often adopt an agile process. Agility may allow conditional response to uncertain rework, yet at the same time it may be difficult to control the achievement of known project targets. Recently, many cases of adopting mixed processes including waterfall and agile have been reported in the massive software development projects. In this paper, we argue that the mixed process architecture should be designed, considering the scale of the targeted software project, the culture of organization, the probability of uncertain requirement changes, and so on. This paper proposes a methodology of evaluating the impact of waterfall, agile, and mixed project architectures by using process simulation. A project architectural approach is evaluated with a simulator which includes a software reliability growth model and uncertain rework driven by requirement change and error propagation. The proposed methodology was applied to a development project for a simple shopping website. The results showed that the proposed methodology allows exploration of partial agile adoption depending on the nature of the system development project, including its scale and chances of change. For example, in this paper, if the scale of the project is small, the positive effect of increasing agility by adopting agile processes is low. On the other hand, if the scale of the project is large, the effect of increasing agility by adopting agile process can increase. Furthermore, it became clear that it is important to not apply an agile process blindly, but instead to design a mixed project architecture considering the number of errors and development schedule targets across the project scope.


Complexity ◽  
2019 ◽  
Vol 2019 ◽  
pp. 1-22
Author(s):  
Marum Simão Filho ◽  
Plácido R. Pinheiro ◽  
Adriano B. Albuquerque ◽  
Régis P. S. Simão ◽  
Raimundo S. N. Azevedo ◽  
...  

Organizations are increasingly investing in Distributed Software Development (DSD) over the years. A typical decision-making problem in the distributed scenario consists of deciding which team should be allocated each task. That decision takes into account a relative degree of subjectivity. That setting is suitable for applying Verbal Decision Analysis (VDA). This paper introduces an approach to support the allocation of tasks to distributed units in DSD projects, structured on the hybridisation of methods of Verbal Decision Analysis for classification and rank ordering applied to influencing factors and executing units. Firstly, a review of the literature was conducted aiming to identify the approaches to support the allocation of tasks in DSD contexts. Then, an approach was developed by applying VDA-based methods for classification and ordering. Bibliographic research and the application of surveys with professionals allowed identifying and characterising the main elements that influence task assignment in DSD projects. Afterwards, experiences were carried out in five real-world companies. In the end, the proposed approach has been submitted to the evaluation by the professionals of the participating companies and by some project management experts. The proposed approach comprises a workflow containing responsible actors and descriptions of the activities. Automated tools are also employed in automating the implementation of the approach. After applying the approach in five companies, task assignment recommendations are presented in groups for each company, according to the task type, i.e., requirements, architecture, coding, and testing, ranging from the most to the least preferable office. Results of the experiences and evaluations held during this work present evidence that the proposed approach is flexible, adaptable, and easy to understand and to use. Moreover, it helps to reduce decision subjectivity and to think of new aspects, supporting the task allocation process in DSD.


Author(s):  
Mike Barker ◽  
Kenichi Matsumoto ◽  
Katsuro Inoue

This chapter describes the evolution of approaches to empirical software engineering from goal and data-driven to the latest purchaser-centered approach. The new Japanese Software Traceability and Accountability for Global software Engineering (StagE) project is developing this approach to ensure the transparency of software development processes and products for software purchasers by “tagging” software with empirical software development data. Global software development raises unprecedented difficulties for developers, including the international and intercorporate coordination of development and distribution, the change to composition as the primary development approach, the shift to software everywhere talking to everything, and continuing upgrades and interaction with released software. To work effectively in this environment, empirical data collection, analysis, and feedback must extend throughout the software lifecycle including both production and usage data.


Sign in / Sign up

Export Citation Format

Share Document