• No results found

Agents and multi-agent systems, other than a technology, represent a brand new paradigm for software development [99, 229]. When adopting agents as the basic conceptual com- ponents of software systems, software has to be conceived in terms of autonomous task- oriented entities, interacting with each other in a high-level way, leading to possibly very articulated organisations. Roughly speaking, this represents “only” a paradigm shift: the building blocks – e.g. functions, object, agent – are changed according to the spe- cific paradigm adopted, but the key concepts underpinning the software engineering – processes, method and methodology – should be the same.

Obviously this is an high level viewpoint, in fact the paradigms adopted lead to dif- ferent levels of model complexity: complicated problems are well captured by objects and agents, while functions could lead to have very complex models for representing the prob- lem. In the same way the models of the solution are heavily influenced by the paradigm, so the construction of processes and methodologies is deeply influenced by the paradigm adopted. However, the key definitions of processes and methodologies presented in this chapter should be never forgotten when a new paradigm and its specialised software en- gineer field are introduced.

4

Agent Oriented Methodologies

This chapter presents an overview of the most known AO methodologies. In particular Section 4.1 presents an introduction about the methodologies for agent-oriented systems and their roots, while Section 4.2 presents the most known AO methodologies. Finally Section 4.3 presents a discussion about methodologies.

4.1

Methodologies for Agent-Oriented Systems

Agent-oriented (AO) methodologies suggest a clean and disciplined approach to analyse, design and develop multi-agent systems, using specific methods and techniques.

While there is a much debate on the use of terminology in various subcultures of information systems and SE, it can be generally agreed that a methodology has two important components: one that describes the process elements of the approach, and a second that focuses on the work products and their documentation [186]. The second of these is more visible in the usage of a methodology, which is why the object-oriented (OO) modelling language UML [143] is so frequently (totally incorrectly) equated with “all things OO” or even described as a methodology. Instead, in the AO methodologies world are adopted several notations: someone uses UML or its agent-focused counterpart AUML [64], while others eschew this as being inadequate to support the concepts of agents introducing instead their own individualistic notation and underpinning concepts. This is a consequence of that the existing methodologies have several roots. Some are based on ideas from artificial intelligence (AI), others as direct extensions of existing OO methodologies, whilst yet others try and merge the two approaches by taking a more purist approach yet allowing OO ideas when these seem to be sufficient (Figure 4.1).

Several methodologies acknowledge a direct descendance from full OO methodologies. In particular, MaSE [224] acknowledges influences from Kendall et al. [104] as well as an heredity from AAII [106] which in turns was strongly influenced by the OO methodology of Rumbaugh and colleagues called OMT [189]. Similarly, the OO methodology of Fusion [32] was said to be highly influential in the design of Gaia [225, 229]. Two other OO approaches have also been used as the basis for AO extensions. RUP [110] has formed the basis for ADELFE [173] and also for MESSAGE [69], which, in turn, is the basis for IN-

Figure 4.1: Influences of OO methodologies on AO methodologies [87]

GENIAS [170]. More recently, RUP has also been used as one of the inputs (together with AOR [217]) for RAP [208]. Secondly, the OPEN approach to OO software development has been extended significantly to support agents, sometimes called Agent OPEN [160]. Finally, two other methodologies exhibit influences from object-oriented methodological approaches. Prometheus [163], although not an OO descendant, does suggest using OO diagrams and concepts whenever they exist and are compatible with the agent-oriented paradigm. Similarly, PASSI [35] merges OO and MAS ideas, using UML as its main notation.

Somewhat different is the MAS-CommonKADS methodology [95]. This is a solidly-AI- based methodology that claims to have been strongly influenced by OO methodologies, notably OMT. Then there are the methodologies that do not acknowledge any direct genealogical link to other approaches, OO or AO. Tropos [13] has a significant input from i* ([227] and a distinct strength in early requirements modelling, focussing as it does on describing the goals of stakeholders that describe the “why” as well as the more standard support for “what” and “how”. This use in Tropos of the i* modelling language (particularly in the analysis and design phases) gives it a different look and feel from those that use Agent UML (a.k.a. AUML [64]) as a notation. It also means that the non-OO mindset permits users of Tropos to take a unique approach to the modelling of agents in

the methodological context. Another example is SODA [3], which focuses exclusively on

the engineering of the interaction space of complex systems using the agent paradigm, providing direct support at the analysis and design stage for describing social aspects and MAS environment.

Other approaches include Nemo [92], MASSIVE [112], Cassiopeia [33] and CAMLE [195]—although in CAMLE there are some parallels drawn between its notion of “caste” and the concept of an OO class as well as some connection to UML’s composition and aggregation relationships. Further comparisons of these methodologies are undertaken in Tran and Low [140], which complements and extends earlier framework-based evaluative

studies of, for instance, Cernuzzi and Rossi [27], Dam and Winikoff [39], and Sturm and Shehory [203].