Page 89 -
P. 89
6 What Software Engineering Has to Offer to Agent-Based Social Simulation 85
In general, the produced software is usually not used by the programmer.
Sommerville (2016) states that the highest costs in a software project are associated
with changing the software after it has gone into use. This can also be stated
for simulation in general — not just when decisions have been taken supported
by results of a simulation study or publications have been published presenting
hypotheses and making statements based on the results of a simulation study.
Discovering too late that the model contains artefacts or does actually not answer
the question it should do can be embarrassing in the best case, deadly in the worst.
Generic Processes
Simulation engineering in general has set up a number of generic processes much
on the abstraction level of general software engineering activities. Some process
models are independent from the actual model paradigm. Basically every simulation
textbook proposes a procedure that basically organises activities such as done in
Law (2007), Shannon (1998) and Robinson (2004) or the stages of simulation-based
research in Gilbert and Troitzsch (2005). Figure 6.1 shows a generic version of
this process. This model development cycle starts with an explicit statement of the
objective that is behind the simulation study undertaken, i. e. a formulation of the
problem actually addressed. In a second step, the system is analysed; that means its
basic components and their relations are determined. Reliable information and data
sources are to be found for informing the different steps in the model development
process. Based on this analysis, a conceptual model is specified elaborating the
structure of the model, as well as the dynamics of all the interacting elements.
The conceptual model is hereby particularly important, as it helps not just to
understand the system under consideration but also to guide the subsequent phases
by documenting the hypotheses taken. In the second part of this chapter, we will
demonstrate an example approach in developing such a conceptual model. It is
quite common — not just in our example — to elaborate the conceptual model
from highly abstract descriptions of model elements and different points of view
onto the model to a more and more concrete specification that can directly inform
implementation.
Fig. 6.1 Generic steps in a simulation study