Page 87 -
P. 87

6 What Software Engineering Has to Offer to Agent-Based Social Simulation  83

            Review of Formal Approaches to Model Development


            Already in 2006, Richardini et al. identified a number of methodological problems
            supposed to hinder the wider adoption of agent-based modelling and simulation in
            the social sciences. In contrast to alternative forms of modelling and simulation,
            ABSS is assumed not to be suitable to follow shared, standardised conventions
            of how to proceed, how to describe or how to analyse a simulation model due to
            its exploratory, bottom-up nature aiming at reproducing emergent processes, etc.
            Building software in general had similar problems for a long time as the early (and
            ongoing) discussions on the nature of software development (art, engineering or
            craftsmanship) show (see, e.g. Pyritz (2003)).
              There are no underlying principles of physics or other established basic knowl-
            edge that could be used for building software in the same way as, for example,
            rules of statics for building bridges. Nevertheless, there was the need to systematise
            software development by developing guidelines, conventions and best practices
            that make the development process more engineering-like, producing software with
            intended quality in a predictable way. A number of process models have been
            invented with the waterfall model as the most well-known traditional approach or
            extreme programming as a more modern, flexible compilation of best practices.
            Characteristics of the former are a number of steps that express more and more
            detailed views onto the resulting software product while moving from a clarification
            of what needs to be eventually implemented, tested and maintained. In modern
            forms of software development approaches, fast prototyping and frequent testing
            are in the centre. Iterative development with code refactoring that improves software
            design replaces clearly structured, systematic larger process steps by more or less
            organised smaller advance.
              Although ABSS has particularities that preclude to take simulation models
            as just another kind of software, software engineering offers a large repertoire
            of languages and tools to support systematic and structured system analysis and
            development: formal and structured text-based and diagram-based languages allow
            more precise formulations of model elements than natural language would do. By
            clarifying what needs to be formulated, those languages guide not only model
            specification and documentation but all phases in the development. Specific process
            suggestions organise different views and model description elements into a sequence
            of steps that correspond to some best practice of how to proceed when designing,
            implementing and working with a simulation model. Those methodologies exist
            not only for simulation models in general but also for agent-based simulations in
            particular. At some stage in those processes, best practices on a more technical level
            support the translation of concepts into program code — such support is given by
            (software) pattern formalising good solution to recurring problems.
              In this section, we will present different contributions of software engineering
            to support the development of ABSS models. We identified four areas of such
            formal instruments in the widest sense and organised the section according to
            these four elements: Methodologies as the first pillar suggest how to manage the
   82   83   84   85   86   87   88   89   90   91   92