Page 93 -
P. 93

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

            stakeholders to avoid the system developing into something which is actually not
            intended. Another principle is “simple design”; that means producing software that
            solves the particular problem and nothing else. With “refactoring”, it is ensured that
            the quality of software design is improved after each iteration in the development
            cycle. “Short releases” as a principle mean many executable prototypes and software
            testing is in the centre of the methodology. These principles are as important as
            the rather more prominent “pair programming” way of implementation, in which
            two software developers sit in front of the monitor programming together —
            one coding, the other supporting. Extreme programming as overall approach may
            fit also to developing model specifications and simulation system formalisations
            using structured methodologies mentioned above. Short releases and testing would
            then correspond to running and analysing prototypic simulation runs in an overall
            iterative approach.
              Moyo et al. (2015) organise the development of an agent-based simulation
            study using SCRUM, an agile approach to manage software development. This
            article forms a good introduction to agile software development methodologies
            for simulation in general and gives a case study modelling alcohol consumption
            dynamics.



            Formal Methodologies Versus Modelling Principles

            None of these more formal methodologies for developing agent-based simulations
            actually contradicts the principles or informal strategies that are proposed in
            the social simulation community for model development. Examples for those
            principles are the KISS principle stating that a model should be as simple as
            possible. A contrasting principle is the KIDS strategy (Edmonds and Moss 2004)
            arguing that a model should be preferred that is understandable and descriptive.
            Simplification should not be exaggerated, especially before fully understanding the
            system to be modelled. Another strategy is the so-called pattern-oriented modelling
            (Grimm et al. 2005) that focuses on reproducing all pattern or stylised facts
            observable in the underlying data. General guidelines from a simulation engineering
            point of view can be found in Kasaie and Kelton (2015) but also in Richiardi et
            al. (2006). All these informal strategies can be combined with the more formal
            methodologies mentioned here. Underlying metamodels are usually very generic
            and can be used to capture many different societies, agents, etc.




            Second Pillar: Structured and Formal Languages

            In contrast to natural language, structured and formal languages offer a mean
            to clearly describe a system. Formal languages form important elements of the
            methodologies discussed in the last section but have also a value on their own.
            Syntax and semantics of language elements and their relations are precisely given.
   88   89   90   91   92   93   94   95   96   97   98