Page 96 -
P. 96
92 P.-O. Siebers and F. Klügl
et al. (2002) focus on giving more structure to the state of an atomic model in order
to allow for more complex agent behaviour. Specifications formulated in DEVS can
be executed using specialised environments such as JAMES (Himmelspach et al.
2010).
Object-Oriented Software Specification and UML
In AOSE the most prominent language for specifying particular views onto the
overall system is UML. UML was developed for supporting software engineering
processes (from requirement analysis to implementation and documentation) by
providing a language consisting of different specialised diagrams that address
different aspects of an object-oriented software system (Fowler 2003). It is actually a
semiformal diagram language. That means it allows some extent of vagueness when
describing a system. There is an additional formal language — OCL, the object
constraint language — that can be used to add information that cannot be expressed
in the diagrams directly.
The first edition of UML — used for developing object-oriented software —
was defined in the mid-1990s as an integration of different diagram notations from
different object-oriented modelling methods. Especially in AOSE, there have been
a number of suggestions for extensions, e.g. class diagrams containing information
about the particular social organisation, behaviour diagrams containing structures
for particular agent architectures, etc. Those extensions were mostly done for
specific AOSE methodologies. The best-known extension for software agents was
Agent UML (Odell et al. 2000), which mostly pertained to sequence diagrams for
enabling the formulation of more flexible and diverse interactions and reactions to
messages than simple method calls. Some of these extensions became part of the
UML 2 standard, in a graphically different way than originally proposed by Agent
UML. Since alternatives and conditional reactions can now be formulated in UML
2, Agent UML has been declared obsolete (Bauer and Odell 2005).
As ABSS in general are often designed and implemented using object-oriented
languages and tools, Bommel and Müller (2007) motivate the use of UML diagrams
as a suitable tool for communication between different experts involved in a
simulation project. A good introduction to UML for ABSS can be found in (Bersini
2012) or (Siebers and Onggo 2014).
UML proposes various types of diagrams to capture different aspects of an
overall object-oriented software system. The following diagram types are used
mainly in an agent-based simulation context. In the second part of this chapter, we
will illustrate their use in more detail.
• Use case diagrams show different scenarios of how the user may interact with
the system. They could also be applied — on a coarse level — for interactions
between an agent and its environment.
• Class diagrams show the static structure of the software system by connecting
specialised classes to more general ones or showing which classes are composed