goals. The system is a ‘society’ where individuals
are free, to a certain extent, to choose what they do.
As a consequence, more questions about the quality
requirements must be asked on those systems than
on traditional systems. It is also more difficult to
deal with quality requirements in a multi-agent
system than in a traditional system.
In this paper, we will present a catalogue of
social patterns that help software developers to
design and build quality-aware agent software.
Social patterns are design patterns (Gamma, Helm,
Johnson and Vilssides, 1995) to which some
additional dimensions have been added: social,
intentional, structural, communication and dynamic
(Kolp, Do, Faulkner and Hoang, 2005). For object-
oriented approach, design patterns have been being
very useful tools for designing good software
system. Therefore it is quite natural to bring the
existing design patterns and to create new design
patterns for multi-agent systems, as done by a
number of works (Gamma, Helm, Johnson and
Vilssides, 1995), (Kolp, Do, Faulkner and Hoang,
2005), (Aridor and Lange, 1998).
We adopt i* (pronounced as eye-star) notions
(Yu, 1995) to describe relations between agents. The
essentials of i* are dependencies between pairs of
agents. In a dependency, the agent that depends on
the other is called the depender and the dependee is
the one that is depended upon. The depender
depends on the dependee to have access to a
resource, to do a task or to achieve a goal (soft-goal
or hard-goal). Besides, we use also the Agent
Unified Modelling Language (AUML) (Bauer, 1999)
to model agents’ structure using class diagrams and
agents’ interaction using sequence diagrams and
collaboration diagrams.
This paper will be organized into four main
parts. This introduction is followed by a section that
positions the proposed patterns inside our current
research. The third part describes the patterns. An
example application of a high availability printing
service will be presented in the fourth part before the
final remarks and conclusions.
2 QUALITY-AWARE
AGENT-ORIENTED
SOFTWARE
One of our research objectives about agent
technology (Castro, Kolp and Mylopoulos, 2002) is
to establish a complete quality-aware development
process for multi-agent systems. The resulted
process should cover all the main development
phases ranging from early and late requirements to
architectural and detailed designs and can be
extended to the verification and the deployment of
the system.
There are evidences showing that using agent
notion and goal-based analysis might reduce the gap
between the requirements and the final system
(Castro, Kolp and Mylopoulos, 2002). This is
because the notion of agents and their goals provide
a modelling language for capturing requirements
and are the reflection of real stakeholders and their
intentions in analysing requirements. Later on,
agents and goals become main elements of the
system design reflected in the final product using
agent-oriented programming languages (JACK,
2002), (Bellifemine, Poggi and Rimassa, 2001). This
makes client requirements the principal force that
drives the development process.
An example of a complete goal-based
development process is defined by the Tropos
project (Castro, Kolp and Mylopoulos, 2002).
However, the current Tropos process does not deal
with the quality requirements. In (Hoang, 2008),
(Hoang and Kolp, 2009), quality requirements are
added into the goal-based analysis. The main
objective of this research is to capture the quality
requirements, to analyze and refine all the
requirements and to design the final system that
meets the functional requirements and is aware of all
the quality requirements. The following section is
one of the possible measures for the very last stage
of design and implementation of the system.
A well designed system should satisfy most of
the initial requirements including quality
requirements. However, it is quite common that
some quality requirements are left unsatisfied by the
design and needs to be controlled at the runtime.
Moreover, qualities may be influenced by external
conditions that do not exist at the design time. As a
consequence, quality control is needed to assure the
quality of offered services at the runtime. T o deal
with quality requirements, in the earlier development
stages (Hoang and Kolp, 2009), we use the enriched
i* notions to add the notion of quality requirements.
Quality requirements are captured as early as other
requirements. Then, they are analyzed, decomposed
and operationalized during the process. As
mentioned above, it is common that after some
design iterations (i.e. architectural design and
detailed design), some quality requirements are left
unsatisfied as in the simplified example in Fig. 1.
We analyze an online store namely E-Shop in
which there is a Banking Agent that checks the
shop’s banking account for payment arrivals. Any
received payment must be reported immediately to
Order Manager. Since fast shipping is always an
important factor for gaining the confidence of clients,
SOCIAL PATTERNS FOR QUALITY CONTROL IN MULTI-AGENT SYSTEMS
337