Page 86 -
P. 86
82 P.-O. Siebers and F. Klügl
popularity, there is no standard way of addressing model development, simulation
handling, etc. Many modellers are basically self-taught when it comes to processes
and tools involved in designing and implementing an ABSS model. Developing
an ABSS model is anything but a trivial endeavour given the conceptual depth,
often unclear level of detail and complexities involved when handing software
that contains more than one thread of control. Computer science — in particular
software engineering — has developed a set of tools that enables following the so-
called “formal” approach to system analysis, model design and implementation.
Such elements of a systematic approach make different steps explicit as well as
provide clear and precise languages to capture the concepts, content or assumptions
of the model, documenting not just the final result but also intermediate steps. Such
an approach is naturally used for model development if elements and processes
of the targeted system are more or less accessible and empirically well embedded
or assumptions to be taken are clear. In the terminology of Boero and Squazzoni
(2005), this refers to a type of model more towards the case-based model side of the
spectrum of models.
Models on the other end — theoretical abstractions — are more associated with
scientific endeavour of hypothesis building and testing. They consequently need a
much more exploratory process. Nevertheless, scientific rigor requires a systematic
procedure to ensure reproducible results, as also Norling et al. (2017) argue. Formal
languages allow to clearly formulate what shall be contained in a model, which not
only supports awareness in the overall development process but also facilitates more
unambiguous communication between all involved partners, especially between
the ones that implement the model and the rest of the group. Thus, exploratory
modelling profits as formal approaches support the thoughtfulness of the modelling
process. It helps to avoid model artefacts and supports sharing, reproducing and
reusing the model. Eventually, the model is transformed into software, and applying
software engineering supports the development of well-structured, understandable
software that is easy to maintain and easy to extend.
This chapter advertises formal tools for model conceptualisation, software
development and project management as offered by software engineering. In the
context of social simulation, these tools can either be used individually either to
help with specific modelling activities or to guide the entire modelling process.
The chapter consists of two parts: In the first part, we provide an overview
of tools and techniques used in software engineering which have been used or
suggested in a social simulation context. In the second part of this book chapter,
we demonstrate with the help of an informative example how some of these tools
can be combined into a structured framework that allows a more formal approach to
model development. The informative example is based on a real-world study where
we aimed to develop a simulation model with a multidisciplinary team to study
different facets of normative comparison.