Abstract - Computing and Information Sciences

advertisement
Term Paper
Compare and Contrast five major Agent Oriented Software Engineering
methodologies in the areas of Cooperation & Interaction,
Organization/Organizational Design, Communications, Collaboration &
Coordination
Submitted by Padmaja Havaldar
CIS 890 – Dr. Scott Deloach
Abstract:
Software agents provide a new way of analyzing, designing, and implementing complex software
systems. Currently, the agent-oriented approach to software development is gaining recognition
outside of the research phase and is being widely used in the development of large-scale
industrial applications. The need then arises for systematic methodologies to guide and support
developers through the various stages of software development. Many agent-oriented
methodologies have been proposed which attempt to solve the complexity of multi agent systems,
but this diversity of methodologies may hinder progress if they are not well understood.
This paper presents an analysis of five agent oriented software engineering methods, namely,
MaSe, AgentUML, MESSAGE, Gaia, and SODA in terms of their conceptual foundations. Each
method is described explaining their role in cooperation and interaction between agents, their
organizational design, communications, collaboration and coordination. We consider how these
various methodologies compare to each other.
1. Introduction:
Agents and multi-agent systems are currently one of the most interesting research fields in the
computer science community. A Multi agent system is one where different agents communicate
to achieve their goals, agents being an autonomous and intelligent piece of software. AgentOriented Software Engineering (AOSE) is being described as a new paradigm [1] for the research
field of Software Engineering. But in order to become a new paradigm for the software industry,
robust and easy-to-use methodologies and tools have to be developed [2].
AOSE Methodologies are an organized, documented set of procedures and guidelines for one or
more phases of the software life cycle. They provide a language or notation and a step-by-step
approach to agent based software. In this paper I will present an overview of five agent oriented
software engineering methodologies. The focus is on comparing these methodologies on the basis
of their organizational design, communications, collaboration, coordination, cooperation and
interaction between agents. Section 2 of this paper briefly describes these concepts. The rest of
the paper is organized as follows: Section 3 describes the Gaia methodology and it’s conceptual
framework, section 4 describes the MaSe methodology. In section 5 and 6, we will look at the
MESSAGE and SODA methodologies in terms of their conceptual foundations and in section 7,
I will describe the AgentUML methodology. Section 8 deals with comparison between the
methodologies and section 9 summarizes the paper in the conclusion.
2. About the conceptual framework:
In a multi-agent system, agents come together to form a kind of abstract society; hence their
interaction, coordination, cooperation, collaboration and communication play an important role in
solving problems that no single agent can handle on its own. This paper analyses the abovementioned methodologies in terms of these concepts along with their organizational design. I will
briefly explain the motives of these concepts.
An interaction occurs when two or more agents are brought into a dynamic relationship through a
set of reciprocal actions. This action may be direct through other agents or through the
environment [5]. Interaction is a necessary element for the development of social organizations.
In Cooperation, the goals of agents are compatible and the chances of one of the agents surviving
are enhanced by the other agent. The agents cooperate among themselves to reach their goals
even though there is a competition over who gets to reach their goals. Since the agents cooperate,
tasks have to be allocated. This forms the essence of collaboration. When we allocate tasks, the
need arises to coordinate the agent’s actions in order to avoid conflicts. There are various
coordination protocols to ensure efficient conversation between agents. An organizational design
is an arrangement of relationships between components that produce a system with qualities and
capabilities beyond those of the individual components [5]. We can look at it like a class of
organizations. There are specific roles assigned to the agent classes and there is a set of
relationships between the roles. Communications form the basis of interaction between agents in
muti agent systems. It is carried out in the form of signals between agents and both the agents
should comprehend these signals.
3. The Gaia Methodology:
Wooldridge, Jennings and Kinny [3] present the Gaia methodology for agent-oriented analysis
and design. Gaia is a general methodology that supports both the micro-level (agent structure)
and macro-level (agent society and organization structure) of agent development. The motivation
behind Gaia is that existing methodologies fail to represent the autonomous and problem-solving
nature of agents; they also fail to model agents' ways of performing interactions and creating
organizations. Using Gaia, software designers can systematically develop an implementationready design based on system requirements.
The first step in the Gaia analysis process is to find the roles in the system, and the second is to
model interactions between the roles found. Roles, in the organization, consist of four attributes:
responsibilities, permissions, activities and protocols. Responsibilities are of two types: liveness
properties - the role has to add something good to the system and safety properties - prevent and
disallow that something bad happens to the system. Permissions represent what the role is
allowed to do, in particular, which information it is allowed to access. Activities are tasks that a
role performs without interacting with other roles. Protocols are the specific patterns of
interaction, e.g. a seller role can support different auction protocols, e.g. ``English auction''. Gaia
has formal operators and templates for representing roles and their belonging attributes; it also
has schemas that can be used for the representation of interactions.
In the Gaia design process, the first step is to map roles into agent types, and then to create the
right number of agent instances of each type. The second step is to determine the services model
needed to fulfill a role in one or several agents, and the final step is to create the acquaintance
model for the representation of communication between the agents. It identifies possible
communication bottlenecks but does not define messages or when they are sent.
4. The MaSe Methodology:
The Multi agent Systems Engineering (MaSe) methodology, builds upon the work of many agent
based approaches for analyzing, designing and building multi agent systems and combines them
into a complete end-to-end methodology.[6] MaSE is similar to Gaia with respect to generality
and the application domain supported, but in addition MaSE goes further regarding support for
automatic code creation through the MaSE tool. The motivation behind MaSE is the current lack
of proven methodology and industrial-strength toolkits for creating agent-based systems. The goal
of MaSE is to lead the designer from the initial system specification to the implemented agent
system [2].
The MaSE methodology is divided into seven sections (phases. Capturing goals, the first phase,
transforms the initial system specification into a structured hierarchy of system goals. This is
done by first identifying goals based on the initial system specification's requirements, and then
ordering the goals according to importance in a structured and topically ordered hierarchy.
Applying Use Cases, the second phase of the organizational design, creates use cases and
sequence diagrams based on the initial system specification. A use case presents the logical
interaction paths between various roles in and the system itself. Sequence diagrams are used to
determine the minimum number of messages that have to be passed between roles in the system.
The third phase is refining roles; it creates roles that are responsible for the goals defined in phase
one. In general each goal is represented by one role, but a set of related goals may map to one
role. Together with the roles, the agents collaborate by creating set of tasks; the tasks define how
to solve goals related to the role. The fourth phase, creating agent classes, maps roles to agent
classes in an agent class diagram. This diagram resembles object class diagrams, but the semantic
of relationships is high-level conversation as opposed to the object class diagrams' inheritance of
structure. The fifth phase, constructing conversations, defines a coordination protocol in the form
of state diagrams that define the conversation state for interacting agents. In the sixth phase,
assembling agent classes, the internal functionality of agent classes is created. The final phase,
system design creates actual agent instances based on the agent classes and the final result is
presented in a deployment diagram [2].
A system must be arranged in a Deployment Diagram before it can be implemented in
code. This is due to the differences between agents and agent classes. An agent requires
information such as a hostname or address to participate in a multiagent system. A
Deployment Diagram also offers another opportunity for the designer to tune the system.
Agents can be arranged among various machine configurations in order to better use
available processing power of network bandwidth. A final element to consider is
automatic code generation. The MaSE methodology is concerned with actually
engineering agent systems. As such, all of the steps of the methodology work toward that
end. Code generation is not a part of MaSE at this time, but is assumed to happen just
after this phase [6].
MaSE aims at providing completely automatic code generation based on the deployment diagram
in the future.
5. AgentUML:
As Agent oriented software engineering is becoming popular in the industry it is necessary to
relate it to the object oriented technology, which is already accepted by the industry. The UML
(Unified Modeling language) is an object-oriented graphical modeling language with welldefined syntax and semantics. It helps you specify, visualize, and document models of software
systems, including their structure and design, in a way that meets all of these requirements. The
UML is an extensible language, which allows new constraints to be added to address new issues
in software development without changing the original syntax and semantics. Therefore it is
extended to support the distinctive requirements of multi-agent systems giving rise to the Agent
UML methodology. AUML has extended UML’s interaction diagrams to handle agent interaction
protocols.
The AUML protocol description represents an interaction, a set of messages exchanged among
different agent roles within collaboration to affect a desired behavior of other roles or agent
instances. An agent interaction protocol (AIP) describes a communication pattern as an allowed
sequence of messages between agents and the constraints on the content of those messages, for
example: the FIPA contract net protocol.
Elements of protocol diagrams:

Agent roles
In UML, role is an instance focused term. In the framework of agent oriented
programming by Agent-role a set of agents satisfying distinguished properties, interfaces,
service descriptions or having a distinguished behavior are meant. Agents can perform
various roles within one interaction protocol.

Agent Lifelines and Threads of Interaction
The agent lifeline in protocol diagrams defines the time period during which an agent
exists, represented by dotted vertical lines. The lifeline starts when the agent of a given
agent role is created and ends when it is destroyed.

Nested and Interleaved Protocols
Because protocols can be codified as recognizable patterns of agent interaction, they
become reusable modules of processing that can be treated as first-class notions.

Extended Semantics of UML Messages
The main purpose of protocols is the definition of communicative patterns, i.e., patterns
of messages sent from one agent role to another.

Input and Output Parameters for Nested Protocols
Nested Protocols can be defined either within or outside a protocol diagram where it is
used or outside another protocol diagram. The input parameters of nested protocols are
threads of interaction which are carried on in the nested protocol and messages which are
received from other protocols.

Protocol Templates
The purpose of protocol templates is to create reusable patterns for useful protocol
instances.
UML’s dynamic models are useful for expressing interactions among agents. Interaction
diagrams capture the structural patterns of interactions among objects. Sequence diagrams are
one member of this family; collaboration diagrams are another. The two diagrams contain the
same information [8].
Figure 1depicts some basic elements for agent communication. The rectangle can express
individual agents or sets (i.e., roles or classes) of agents. The basic format for the box label is
agent-name/role: class.
The rectangular box can also indicate a general set of agents playing a specific role. To specify
that the role is to be played by a specific class of agent, the class name would be appended.
Fig 1: Basic format for agent communication in AUML
AUML provides tools for specifying agent interaction protocols, representing the internal
behavior of an agent, representing role specification, packages with agent interfaces,
and deployment diagrams indicating mobility
6. The SODA (Societies and Infrastructures in the Analysis
and Design of Agent-based Systems) Methodoloy:
The notion of society should play a central role in agent-oriented soft-ware engineering as a firstclass abstraction around which complex systems can be designed and built as multi-agent
systems. Agents are not simple software components to be first built, then combined: they are
goal-driven individuals, who assume to live and interact with other individuals within a society.
An effective agent-oriented methodology was needed for the analysis and design of agent
societies. The SODA agent-oriented methodology for the analysis and design of Internet-based
systems is based on the core notion of task. SODA promotes the separation of individual and
social issues, and focuses on the social aspects of agent-oriented software engineering Since it
intentionally does not address intra-agent issues, SODA is not a complete methodology, and
focuses instead on the social aspects of agent-oriented software engineering, by exploiting
coordination models and technologies [ 9].
Agents in a multi-agent system interact by living and working within their environment,
and by relating with other agents. We cannot analyze social organizations without accounting for
interactions. Correspondingly, inter-agent aspects in multi-agent systems basically amount to two
strongly related issues: the social and the environment one.
In the organizational design, the SODA analysis phase exploits three different models:

The role model – the application goals are modeled in terms of the tasks to be
achieved, which are associated to roles and groups

The resource model – the application environment is modeled in terms of the services
available, which are associated to abstract resources

The interaction model – the interaction involving roles, groups and resources is
modeled in terms of interaction protocols, expressed as information required and
provided by roles and resources, and interaction rules, governing interaction within
groups. In all, the results of the SODA analysis phase are expressed in terms of
roles, groups, and resources.
SODA just concentrates on inter-agent issues, like the engineering of societies and infrastructures
for multi-agent systems. Since this conceptually covers all the inter-actions within an agent
system, the design phase of SODA deeply relies on the notion of coordination model [9]
The SODA design phase is based on three strictly related models:

the agent model – individual and social roles are mapped upon agent classes

the society model – groups are mapped onto societies of agents, which are designed and
organised around coordination abstractions

the environment model – resources are mapped onto infrastructure classes, and associated
to topological abstractions.
In all, the results of the SODA design phase are expressed in terms of agent classes, societies of
agents, and infrastructure classes [9].
7. The MESSAGE (Methodology for Engineering Systems of
Software Agents) methodology:
MESSAGE is an AOSE methodology, which builds upon current software engineering practices
covering analysis and design of Multi Agent Systems, which is appropriate for use in mainstream
software engineering departments. MESSAGE aims to combine the best features on agentUML
and Gaia and to define an agent-oriented methodology that encompasses requirements analysis
and design It has well defined concepts and a notation that is based on UML whenever
appropriate. MESSAGE extends UML by contributing agent knowledge level concepts, and
diagrams with notations for viewing them. The diagrams extend UML class and activity
diagrams. The MESSAGE modeling language shares a common metamodelling language (metametamodel) with UML. It extends the UML metamodel with ’knowledge level’ agent-oriented
concepts.
The MESSAGE methodology consists of applicability guidelines, a modeling notation, and a
process for analysis and design of agent systems [10]
Knowledge-level concepts: MESSAGE concepts and describes different views on the analysis.
Most of the MESSAGE knowledge level entity concepts fall into the main categories:
Agent: An Agent is an atomic autonomous entity that is capable of performing some (potentially)
useful function.
Organization: An Organization is a group of Agents working together to a common purpose.
Role: The distinction between Role and Agent is analogous to that between Interface and (object)
Class: a Role describes the external characteristics of an Agent in a particular context. An Agent
may be capable of playing several roles, and multiple Agents may be able to play the same Role.
Resource: Resource is used to represent non-autonomous entities such as databases or external
programs used by Agents. Standard object-oriented concepts are adequate for modeling
Resources.
Task: A Task is a knowledge-level unit of activity with a single prime performer. A task has a set
of pairs of Situations describing pre- and post-conditions. If the Task is performed when a
precondition is valid, then one can expect the associated post condition to hold when the Task is
completed.
Interaction and Interaction Protocol: The MESSAGE concept of Interaction borrows heavily
from the Gaia methodology [6]. An Interaction by definition has more than one participant, and a
purpose which the participants collectively must aim to achieve. The purpose typically is to reach
a consistent view of some aspect of the problem domain, to agree terms of a service or to
exchange results of one or more services. An Interaction Protocol defines a pattern of Message
exchange associated with an Interaction.
Goal: A Goal associates an Agent with a Situation. If a Goal instance is present in the Agent’s
working memory, then the Agent intends to bring about the Situation referenced by the Goal.
MESSAGE defines a number of views that focus on overlapping sub-sets of entity and
relationship concepts.
Organization view (OV) – This shows ConcreteEntities (Agents, Organizations, Roles,
Resources) in the system and its environment and coarse-grained relationships between them
(aggregation, power, and acquaintance relationships).
Goal/Task view (GTV) – This shows Goals, Tasks, Situations and the dependencies among
them.
Agent/Role view (AV) – This focuses on the individual Agents and Roles. For each agent/role it
uses schemata supported by diagrams to its characteristics such as what Goals it is responsible
for, what events it needs to sense, what resources it controls, what Tasks it knows how to
perform, etc.
Interaction view (IV) – For each interaction among agents/roles, shows the initiator, the
collaborators, the motivator (generally a goal the initiator is responsible for), the relevant
information supplied/achieved by each participant, the events that trigger the interaction, other
relevant effects of the interaction.
Domain view (DV) – Shows the domain specific concepts and relations that are relevant for the
system under development
8. Comparison between methodologies:
The Gaia methodology requires that inter-agent relationships (organization) and agent abilities
are static at run-time. But with comparison to MaSe, domain restrictions of MaSE are similar to
those of Gaia's, but in addition it requires that agent-interactions are one-to-one and not multicast.
MaSe is more detailed than the Gaia methodology. Both Gaia and MaSe are based on roles. Mase
uses goals and use cases while Gaia provides no help in defining roles. MaSe provides detailed
description of the actual communication patterns and data in the conversation diagrams while in
Gaia, the acquaintance model defines the lines of communication between agents.
I observed that so far no empirical tests have been carried out to evaluate the benefits of the
AGENT UML framework. But we see two concrete advantages of these extensions: Firstly, they
make it easier for users who are familiar with object-oriented software development but new to
developing agent systems to understand what multiagent systems are about, and to understand the
principles of looking at a system as a society of agents rather than a distributed collection of
objects. Secondly, the time spent for design can be reduced by a minor amount, which grows with
the number of agent-based projects.
GAIA represents an extension of the software engineering approach and has a solid social
foundation. AUML on the other hand, represents the pure software engineering approach and is
an extension of the standard software engineering approach - UML
As far as SODA is concerned, the main reference for the development of SODA is represented by
the pioneering work on Gaia [3]. Gaia was the first agent-oriented software engineering
methodology that explicitly took into account societies (there, mainly referred to as
organizations) as first-class entities, by providing a coherent conceptual framework for the
analysis and design of multi-agent systems. Even though at an early stage of its development,
SODA addresses some of the shortcomings of Gaia, which does not suit well open systems, In
addition, SODA is the first agent-oriented methodology to explicitly take the agent environment
into account, and provide engineers with specific abstractions and
procedures for the design of agent infrastructures.
While applying existing software engineering concepts, AgentUML (AUML) for example defines
extensions to UML with notations suited for agent concepts. Although this notation is useful and
has been adopted within MESSAGE, it does not have the concept of agent at its centre, i.e.
specifying an object’s behavior in terms of interaction protocols does not make it an agent. These
methodologies define a number of models for analysis and design such as. The Gaia methodology
has two analysis models and three design models. While the analysis models are based on welldefined concepts, these only represent a subset of the concepts required for agent-oriented
analysis. MESSAGE combines the best features of the above approaches.
9. Conclusion:
This paper presented five agent oriented software engineering methodologies and discussed their
conceptual foundations like interaction, cooperation, collaboration, organizational design etc
wherever applicable. A comparison of the methodologies can be made, which was the intent of
the paper, to come up with a better understanding of the methodologies.
Section 1 was the introduction to this paper, section 2 explained briefly the conceptual framework
on which the methodologies were discussed in the paper, section 3 described the Gaia
methodology, section 4 and 5 explained the MaSe and AgentUML methodologies respectively,
section 6 described SODA methodology and section 7 discussed the MESSAGE methodology. A
comparison between methodologies was discussed in Section 8.
References:
1.LindJ. “Issues in Agent-Oriented Software Engineering”
The First International Workshop on Agent-Oriented Software Engineering (AOSE 2000), 2000.
2.TveitAmud;“A survey of Agent-OrientedSoftwareEngineering”
[www.jfipa.org/publications/AgentOrientedSoftwareEngineering
3.Wooldridge M. J., Jennings N. R. and Kinny D; “The Gaia methodology for agent-oriented analysis and
design”. Autonomous Agents and Multi-Agent Systems ,3(3):285312, September 2000.
4.Andrea Omicini :”SODA: Societies and Infrastructures in the Analysis and Design of Agent-based
Systems)”
5. Dr. Deloach’s 890 lecture notes:”www.cis.ksu.edu/~sdeloach/890”
6. Mark F. Wood Scott A. DeLoach, “An Overview of the Multiagent Systems Engineering Methodology”
7. Bernhard Bauer, Jörg P. Müller, James Odell + Siemens; “Agent UML: Formalism for Specifying
Multiagent Interaction”
8. James J. Odell* H. Van Dyke Parunak† Bernhard Bauer‡; “Representing Agent Interaction Protocols in
UML”
9. Omicini Andrea; “SODA: Societies and Infrastructures in the Analysis and Design of Agent-based
Systems”
10. Giovanni Caire, Francisco Leal, Paulo Chainho, Richard Evans:
“Agent Oriented Analysis using MESSAGE/UML”
Download