Page 97 -
P. 97

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

              of others or how classes are otherwise linked to each other. This type of diagram
              is not just suitable for depicting an agent’s internal setup but also its embedding
              into an organisation structure.
            • State and activity diagrams can be used to capture dynamics. They show the
              states that an (typical) entity can be in, as well as the transitions between them.
              Activity diagrams focus on behaviour as a flow of activities also in relation to
              other agents’ activities.
            • Sequence diagrams show how entities interact as a sequence of messages that
              they exchange.
              In addition, other diagram types are proposed to capture details of the package
            structure, deployment, etc. In the second part of this chapter, we give more details
            on how to use UML diagrams for model development and embed their use into some
            form of best-practice process guiding the development of a conceptual model.




            Third Pillar: Architectures and Patterns


            Methodologies and the use of a formal and precise language to describe different
            aspects of the conceptual model as well as to capture model specification, etc.
            are particularly important for people just starting with modelling and simulation
            as they provide guidelines for managing the development process and support for
            conceiving a model. A third pillar of software engineering for ABSS is related
            to best practices in designing models that means they provide advice on how to
            structure and build the actual software.
              In the seminal book on software patterns (Gamma et al. 1994), best practices
            in (object-oriented) software design have been formalised and captured in such a
            way that they can easily be communicated and even taught. Over the years software
            design pattern has been suggested for many problem types, each of them giving
            a particular abstract “good” solution. Patterns have been also suggested in AOSE
            (see Juziuk et al. 2014 for a general survey). As North and Macal (2011) state,
            the standard software patterns are only of limited use for ABSS as the problems
            addressed by them are of a completely different nature to the ones needing to
            be solved when developing simulations. For simulation, one may distinguish two
            different views on design pattern: (1) design pattern that directly relates to particular
            phenomena to be modelled or (2) design pattern that solves problems on a more
            technical level. Klügl and Karlsson (2009) give two examples for the first type
            of pattern, e.g. they describe what agent behaviour can produce exponential agent
            number growth. North and Macal (2011) give a list of pattern for the second case,
            e.g. pattern for agent scheduling, how to design spatial environments in an efficient
            way or the model-view-controller pattern, which is also the most well-known pattern
            in software engineering, describing how to separate visualisation from application-
            specific logic.
   92   93   94   95   96   97   98   99   100   101   102