148 MM ller and D. Pfahl
Finally, one should not forget that simulation is neither a means in itself (it needs to be followed by action) nor does it generate new ideas. It is still the software manager’s and simulation modeler’s task to be creative in generating new scenarios for simulation, and in applying the simulation results to improve real-world processes. Simulation does not automatically produce new facts such as knowledge- based expert systems do (e.g., through inference).
8. The Future of Simulation in Software EngineeringThe application
of simulation techniques, in particular process simulation techniques, offers several interesting perspectives for improving management and learning in software organizations.
Business simulator-type environments (micro-worlds) can confront managers with realistic situations that they may encounter in practice. Simulation allows the rapid exploration of micro-worlds, without the risks associated with real-world interventions and provides visual feedback of the effects of managers decisions through animation. Simulation increases the effectiveness
of the learning process, because trainees quickly gain hands-on experience. The potential of simulation models for the training of managers in other domains than software engineering has long been recognized (Lane, 1995). Simulation-based learning environments also have the potential to play an important role in software management training and education of software engineers, in particular if they are offered as web-based
( possibly distributed multi-user) applications.
Analyzing a completed project is a common means for organizations
to learn from past experience, and to improve their software development process (Birk et al., 2002). Process simulation can facilitate postmortem analysis. Models facilitate the replaying of past projects, diagnose management errors that arose, and investigate policies that would have supplied better results. To avoid having a software organization reproduce – and amplify –
its past errors, it is possible to identify optimal values for measures of past project performance by simulation, and record these values for future estimation, instead of using actual project outcomes that reflect inefficient policies (Abdel-Hamid, To further increase the usage (and usability) of simulation techniques
in software engineering, the time and effort needed for model building must further be reduced. One step in this direction is to provide adaptable software process simulation frameworks. Similar to the process simulation reference model described above, these frameworks can be used like a construction kit with reusable model components. Supporting tools and methodological guidance must accompany reuse-based simulation modelling. Furthermore, simulation tools should be connected to popular project planning and tracking tools to decrease the effort of model parameterization and to increase their acceptance by software practitioners. As more and more companies improve their
development process maturity, it is also expected that process simulation will gain more attention in industry.