Agent-based simulation models in support of monitoring the quality of software projects
Agent-based simulation models in support of monitoring the quality of software projects
In this project statements about the expected quality of a software to be developed or under development are to be obtained by means of simulation. These statements will support project managers in management decisions concerning the further course of the project. It will be possible to simulate different project profiles by changing various parameters and to evaluate the simulations with respect to the software quality (as expected error number or service quality). By iterative adjustment of the parameters (for example the number of developers), an optimal constellation for the project are determined. The resulting feedback loop is illustrated in Figure 1.
Motivation and technical background
Offered assistance for a project manager for example consider the prediction of error-prone areas in the source code. A manager could respond to problematic areas in advance of possible problems by intensive testing. A further application of this approach is the identification of potentially complex code areas which are candidates for refactoring. The use of refactoring then leads to a improvement of maintainability. Also the effort required to apply refactorings can be estimated using the simulation tool which is to be developed.
A deep understanding of software evolution is essential for a realistic simulation of software processes. The analysis of the evolution of open source projects is used for estimation of the necessary simulation parameters in this project. The additional simulation of already ended open source projects or open source projects being under development be used to validate the approach.
As simulation method agent-based simulation is used in this project. Developers are modeled as active agents which edit and change software artifacts (modeled as passive agents). The behavior of the developers is described by rules which characterize the acting of the active agents during the simulation. The feasibility of the approach has been shown already in the SWZ project 11.4.2.
Goals
Previous simulation models ony reflect very general aspects such as growth, change coupling (simultaneous changing of files) and lifespan of bugs. In this project more concrete aspects such as change pattern (for example to simulate the effect of refactoring) and developer experience (modeling the change of developer behavior over the time) are taken into account, allowing very precise statements about the expected development of a software projects.
For the evaluation of the simulation results, the CRF-based method used in the SWZ project is adapted to be improved and refined.
A technical limitation of the approach followed in the SWZ project 11.4.2 is that large projects could be simulated only slowly and that various behavioral aspects of software developers (for example goal-orientation and communication between the developers) could not be modeled and simulated. These problems are to be processed by the use and development of the scalable simulation platform "MASeRaTi". Maserati is developed at TU Clausthal in the SWZ project DeSim.
Figure 1: Feed back loop for project manager.