Design Patterns For Multi-Agent Systems: Degree Project

Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

Degree project

Design Patterns
for Multi-Agent Systems

Author: Joanna Juziuk


Date: 2012-06-26
Subject: Computer Science
Level: Master
Course code: 5DV00E
Abstract
Design patterns document a field’s systematic knowledge derived from ex-
periences. Despite the vast body of work in the field of multi-agent systems
(MAS), design patterns for MAS are not popular among software practition-
ers. As MAS have features that are widely considered as key to engineer-
ing complex distributed applications, for example in manufacturing, robotics,
ecommerce, traffic control and coordination, science simulations, it is impor-
tant to provide a clear overview of existing patterns to make this knowledge
accessible. To that end, a systematic literature review was performed covering
the main publication venues of the field since 1998, resulting in 206 patterns.
The study shows that (1) there is a lack of a standard template for doc-
umenting design patterns for MAS, which hampers the use of patterns by
practitioners, (2) associations between patterns are poorly described, which
results in a lack of overview of the pattern space, (3) patterns for MAS have
been used for a variety of application domains, which underpins their high
potential for practitioners, and (4) classifications of design patterns for MAS
are bounded to specific pattern catalogs, a more holistic view on the pattern
space is missing. From the study, a number of guidelines is outlined that are
important for future work on design patterns for MAS and their adoption in
practice.

Keywords
design patterns, multi-agent systems, classification, guidelines

i
List of Figures
2.1 Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 MAS - associated disciplines . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Multi-agent system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Pattern anatomy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Master-Slave - class diagram . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 SRL process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 ER diagram of the database . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Interface of the application - pattern list view . . . . . . . . . . . . . 15
3.4 Interface of the application - publication view . . . . . . . . . . . . . 15
3.5 CakePHP architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1 Included publications in digital databases/search engines . . . . . . . 17
4.2 Publications and patterns per year . . . . . . . . . . . . . . . . . . . 20
4.3 Popular paragraphs in pattern templates . . . . . . . . . . . . . . . . 21
4.4 Pattern space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.5 Pattern application domains . . . . . . . . . . . . . . . . . . . . . . . 23
4.6 MAS patterns dimensions . . . . . . . . . . . . . . . . . . . . . . . . 24

ii
List of Tables
2.1 Objects vs Agents - comparison . . . . . . . . . . . . . . . . . . . . . 4
3.1 Data collection form . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1 Design patterns for MAS (chronological order) . . . . . . . . . . . . . 17

iii
Contents
1 Introduction 1
1.1 Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Purpose and research questions . . . . . . . . . . . . . . . . . . . . . 1
1.3 Significance of the study . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Background 3
2.1 Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Defintion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 Agent properties . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1.3 Agent vs object . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Multi-agent system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Origins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Design pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 Design pattern for MAS . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.1 Early works . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4.2 Short example . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Research method and realization 10


3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Research questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Review protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3.1 Inclusion and exclusion criteria . . . . . . . . . . . . . . . . . 11
3.3.2 Search strategy and selection process . . . . . . . . . . . . . . 12
3.3.3 Data collection items . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.4 Data collection application . . . . . . . . . . . . . . . . . . . . 13
3.3.5 Data analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 Results 17
4.1 Publications overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Patterns overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.3 RQ1: How are the patterns documented and what pattern templates
are used? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.4 RQ2: How are the design patterns connected? . . . . . . . . . . . . . 21
4.5 RQ3: For what types of systems have the design patterns been applied? 23
4.6 RQ4: What dimensions of the design patterns exist? . . . . . . . . . 24

5 Discussion and conclusions 26


5.1 Threats to validity and limitations . . . . . . . . . . . . . . . . . . . 26
5.2 Discussion on the results . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.3 Future research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Bibliography 28

iv
1 Introduction
Chapter 1 highlights the problem, presents aim and research questions of the thesis.

1.1 Problem
During the last decade, the multi-agent system (MAS) community has put significant
efforts in documenting design patterns. Despite the substantial body of work, design
patterns for MAS have not received the attention they deserve, neither in the agent-
oriented software community, nor among software practitioners. Cruz Torres et al.
(2011) state that:

One of the main reasons why mainstream software developers do not


benefit from MAS patterns is that they simply do not know them.

First aspect of the topic - multi-agent systems, is connected to cloud and smart grid
computing, robotics, manufacturing, traffic control, ecommerce and any other ap-
plication domains that are becoming more important because of the rapid growth of
the big data and need for automatization. Multi-agent systems and agent-oriented
paradigm are more adequate and effective means to model such distributed, au-
tonomous systems than object-oriented paradigm that in past twenty years has been
achieving its peak popularity.
Second aspect of the topic - design patterns is a practice of capturing design
knowledge in the form of patterns. It is a common practice in mainstream soft-
ware engineering (Alur et al., 2003; Gamma et al., 1995; Fowler, 2003; Shaw and
Clements, 2006). Design patterns allow reuse of best practices and avoiding worst.
The usefulness of patterns has been proved empirically (Prechelt et al., 2002; Ng
et al., 2006; Yskout et al., 2012). Design patterns improve software’s quality proper-
ties, like maintainability and re-usability, and speed up the development time. These
factors are crucial in practice, especially for project managers, since improving them
reduces financial costs.
In conclusion, as MAS have features that are widely considered as key to engi-
neering complex distributed applications (Kramer and Magee, 2007; Weyns et al.,
2012), it is important to provide a clear, holistic overview of existing patterns to
make this knowledge accessible to practitioners and unlock the potential.

1.2 Purpose and research questions


The goal of the thesis is to get an overview of the existing patterns for MAS and
their use, then outline a number of guidelines that would be important for future
work and their adoption in practice. The study addresses the following questions:

• How are the patterns documented and what pattern templates are used?

• How are the design patterns connected?

• For what types of systems have the design patterns been applied?

• How can the design patterns be classified?

1
1.3 Significance of the study
Since the significance of the problem is dictated by the audience and benefits if the
study is done, it could be claimed that that study is significant on a large scale.
The significance of this study is anchored in the empirical findings, so that it is
potentially useful to every practitioner in the area of multi-agent systems.

1.4 Outline
The thesis is organized by five chapters. Chapter 1 highlights the problem to
the reader. It also presents research questions and goal of the thesis. Chapter
2 presents the theoretical background of agents, multi-agent systems and design
patterns. Chapter 3 contains the description of the research method - systematic
literature review and the review protocol. Chapter 4 focuses on the results and
includes four sections dedicated for each research question. Finally, chapter 5 ends
the thesis with a discussion on the results, guidelines and conclusions.

2
2 Background
This chapter highlights agent, multi-agent systems and design patterns as the cor-
nerstone concepts to this thesis.

2.1 Agent
This subchapter focuses on the agent concept. It gives an overview of different agent
definitions, outlines a number of agent characteristics and presents the comparison
of agent and object as object-oriented paradigm has been dominant in past twenty
years.

2.1.1 Defintion
Several agent definitions have been proposed:
An agent is a computer system that is situated in some environment,
and that is capable of autonomous action in this environment in order
to meet its design objectives.(Wooldridge, 2009)

An agent is a physical or virtual entity


- Which is capable of acting in an environment,
- Which can communicate directly with other agents,
- Which is driven by a set of tendencies,
- Which possesses resources of its own,
- Which is capable of perceiving its environment,
- Which has only a partial representation of this environment,
- Which possesses skills and can offer services,
- Which may be able to reproduce itself,
- Whose behavior tends towards satisfying its objectives,
 taking account of the resources and skills available to it
 and depending on its perception, its representations
 and the communications it receives. (Ferber, 1999)
Generally, an agent is a computer system that acts on human behalf to do delegated
tasks in semi-intelligent way and is situated in the environment (Figure 2.1).

Figure 2.1: Agent

Agents are the recent links in software engineering evolution from monolithic
systems, following their predecessors - objects, abstract data types, procedures &

3
functions, sub-routines, programming languages, assembly language and machine
code (Wooldridge, 2009).

2.1.2 Agent properties


According to Odell (2007) among key agent attributes are:

• autonomous - capable of to autonomous actions without external intervention


in order to achieve goals,

• interactive - communicating with other agents and/or environment,

• adaptive - changing, improving behavior in response to changes.

Other attributes:

• intelligent - capable of using autonomous and flexible actions for achieving


goals and its state is dictated by knowledge,

• flexible - combaining reactive, proactive and social attributes,

• reactive - monitoring the envrioment and resonding, replanning and reorganz-


ing in order to adapt to enviroment changes,

• proactive - setting a plan to acheive a goal and working towards the plan,

• social - developing social relations,

• mobile - capable of transporting itself,

• trustworthy - truthful and don’t intentionally act in unexpected ways.

2.1.3 Agent vs object


The main difference between objects and agents (Table 2.1) is that an object reflects
ideas of devices with well-known interfaces and is an analogy to the real-world object
while an agent resembles a human being and is actively pursuing its own agendas.
Moreover, objects have autonomies over their states, not over their behaviors, while
agents are autonomous in both aspects.

Element Objects Agents


Type Classes Domain specific role
Responsibility Design by contract Pre-/post-conditions
Delegation Task Goal
Reuse Inheritance Composability, Role multiplicity
Messaging Request for service with Exchange of parts of the
certain parameters knowledge base
State Properties and values Knowledge base
Table 2.1: Objects vs Agents - comparison

The fundamental property of an object is that it encapsulates some state - mean-


ing that an object has a control over its state as there are some variables internally
in the object that are only accessible to that object. Agents also have their private

4
state, for example expressed by their beliefs. Furthermore, objects communicate by
message passing represented by for example method invocations. On the contrary,
agents are more flexible and do not act on every request, but rather decide if it
should be done (Wooldridge, 2009; Odell, 2002).

2.2 Multi-agent system


Second core concept concept - multi-agent system is highlighted in this subchapter.
Apart form the definition, the origins of the field are presented. As MAS emerged
from many disciplines, it is important to show connections between those different
fields in order to emphasize how complex those systems can be.

2.2.1 Origins
Wooldridge (2009) states that multi-agent systems emerged as a new field in com-
puter science from following trends:

• ubiquity: spreading of computer processing power everywhere,

• interconnection: communication between processes, building distributed sys-


tems,

• intelligence: constructing devices capable of human-like intelligence,

• delegation: handing over the control, automating and delegating human tasks
to computers and robots,

• human-orientation: the way we interact with people becomes the way we in-
teract with computers.

Figure 2.2: MAS - associated disciplines

Multi-agent systems are also inspired by many other disciplines (as depicted in
Figure 2.2): Artificial Intelligence, Social Sciences, Distributed Computing, Phi-
losophy, Ecology, Game Theory. This multidisciplinary character of MAS brings
well-defined models and methodologies from other fields, but many different per-
spectives as well which makes MAS more complex and difficult to capture as a
whole.

5
2.2.2 Definition
A multi-agent system is a system that consists of several interacting agents (Fig-
ure 2.3). In order to interact in human-like ways, agents must have capability to
negotiate, cooperate, and coordinate. Hence main types of multi-agent systems are
cooperative and competitive. For example, cooperative MAS concerns distributed
problem solving and planning. This type is mainly used in context of track vehi-
cle movements, sensor networks, distributed delivery. Competitive or self-interested
MAS are focused on voting, actions, contract nets and deal with fairness and sta-
bility (Wooldridge, 2009).

Figure 2.3: Multi-agent system

6
2.3 Design pattern
The concept of design pattern was introduced in architecture and urban planning
by Alexander in the 1970s Alexander (1979). According to Alexander, building
structures and planning should be supported by design patterns. These patterns
must consist of three layers as shown in Figure 2.4 - A recurring problem arises in
a situation known as a context and has well-known and proven solution.

Figure 2.4: Pattern anatomy

Design patterns have been adopted in many disciplines, from Human–computer


Interaction studies to psychology and social sciences. In the context of software
engineering, patterns support better design decision, improve communication among
stakeholders, and save time by reusing proven solutions. Gabriel (cited in Alur et al.,
2003) defines a pattern as:
[...] a three-part rule, which expresses a relation between a certain
context, a certain system of forces which occurs repeatedly in that context,
and a certain software configuration which allows these forces to resolve
themselves
Design patterns are meant to be generic, so their implementation may vary. Further-
more, design patterns are pragmatic, yet tested solutions, as they are derived from
experience with building real, concrete systems. Design patterns are often classified
and grouped in a form of a catalog. A catalog serves as a library of expertise of
successful solutions, hence it is an effective tool for learning and teaching. The Gang
of Four (GoF) proposed the first classification of software design patterns (Gamma
et al., 1995). This pattern catalog uses a two dimensional classification based on
scope and purpose. The catalog contains 23 design patterns that were previously
undocumented. Buschmann et al. (1996) classification is another well-known or-
ganization of software design patterns. This catalog promotes functionality and
structural principles, and uses also a classification along two dimensions: granular-
ity and purpose. Other popular catalogs are Fowler’s pattern catalog (Fowler, 2003)
and J2EE blueprints (Alur et al., 2003) for large scale enterprise applications, and
Schmidt et al. (2000) that documents a catalog of design patterns for concurrency.
In conclusion, a wide range of pattern catalogs have been proposed, but none of
them is related to some official standard. Moreover, the scopes are often limited to
class or object compositions that are inadequate for modeling multi-agent systems
as agents can exhibit more properties than objects such as flexibility, reactivity or
proactivness, can be formed as agent societies and can have organizational or even
political properties (Odell, 2002).

7
2.4 Design pattern for MAS
This subchapter contains a review of early works in identifying design patterns for
MAS from 1998 and exemplifies one of the first MAS pattern. The main goal of this
subchapter is to expose inadequateness of object- oriented paradigm while modeling
MAS and forming MAS design patterns.

2.4.1 Early works


Early works in identifying design patterns for multi-agent systems have object-
oriented flavor since many authors used classes and objects to document those pat-
ters.
Aridor and Lange (1998) published one of the first proposal to identify and doc-
ument agent-oriented software engineering experiences in a form of patterns. Their
work includes a catalogue of domain-independent patterns for mobile agents. The
patterns are filed into three categories: traveling patterns that focus on mobility
management (e.g. Itinerary pattern), task patterns (e.g. Master-Slave pattern) that
concern agent task’s division and allocation and interaction patterns (e.g. Meeting,
Messenger patterns) that facilitate agents’ interactions. Although, Aridor and Lange
distinguished three categories of patterns, they don’t describe any classification cri-
teria. Therefore, this limitation makes it difficult to find needed patterns quickly.
Those patterns address mainly implementation issues leaving problems from other
phases of software development. Furthermore, only three patterns are discussed in
more detail with examples using an abridged (six elements) GoF form.
Another catalog was introduced by Kendall et al. (1998). The catalog covers
design patterns for internal architecture of agents, therefore those design patterns
can be only applied at the source level as well. In order to build MAS architecture,
they propose to use several patterns using building blocks as a metaphor. Each
pattern belongs to one of the seven layers concerning mobility, translation, collabo-
ration, actions, reasoning, beliefs, and sensory. Although the layered model helps to
establish structure and order in the system’s decomposition and cognitive agency,
it fails to separate various concerns, like autonomy. The template used to describe
consists of five elements: problem, forces, solution, variations and known uses. The
use of template paragraphs is inconsistent since most of the patterns, are described
without variations and some without known uses. Furthermore, there are no guide-
lines that would help to extend or remove other agent aspects. Hence it is difficult
to understand, maintain and reuse.
The main problem with those early design patterns is that they support object-
oriented paradigm that is inadequate and outdated for modeling agent systems,
because an agent as the core concept to MAS has a dual nature and can be defined
either from Artificial Intelligence (AI) or Software Engineering (SE) viewpoints. In
AI domain, agents must be intelligent and autonomous, so that they converse instead
of non-proactive computing. In SE domain, agents are perceived as components with
threads of execution that can be engaged in interaction protocols.

2.4.2 Short example


Master-Slave design pattern proposed by Aridor and Lange (1998) is an example
of a design pattern for mobile agents based on a cooperation. Aridor and Lange
(1998) claim that ”the Master-Slave pattern provides a fundamental way to reuse

8
code among agent classes”. It is applicable when an agent needs to delegate the
tasks, because it has other parallel tasks or the tasks need to be performed at a
remote destination. The Master agent sends the Slave agent to defined place, where
it should succeed in doing the task and then the slave agent should return to the
source with the results. Finally, the Slave agent destroys itself. The localization and
specification of handing the tasks are supported by using abstract classes - Master
and Slave (as in Figure 2.5)

Figure 2.5: Master-Slave - class diagram

9
3 Research method and realization
Chapter 3 focuses on the description of the methodology used in this thesis - sys-
tematic literature review and its review protocol. Firstly, an overview of the review
process is presented, followed by research questions’ motivations and review protocol
details - inclusion and exclusion criteria, search strategy, data collection and data
analysis.

3.1 Overview
The research method used in this study is a systematic review of the literature
(SLR). The study aims in providing an appropriate background in order to position
future research, concerning popularization of MAS design patterns in the industry
and standardization. The main benefit of incorporating SLR is that it decreases
likelihood that the results of the literature review will be biased (Kitchenham, 2004).

Figure 3.1: SRL process

10
SRL process (Fig. 3.1) started with establishing initial protocol development,
then retrieving and selecting publications, data analysis and report writing. The
harvesting of the publications was divided into four iterations. This approach
was inspired by Agile system development methodologies as their core principles
are: adaptive planning, time-boxed iterations and rapid/flexible response to change
(Martin, 2003). Since systematic literature reviews are more time consuming than
normal literature reviews (Kitchenham, 2004) and the time of the study is relatively
short, it is necessary to adapt these principles as they promote pragmatism and are
effect-oriented.

3.2 Research questions


Following research questions are defined:

RQ 1: How are the patterns documented and what pattern templates are used?

RQ 2: How are the design patterns connected?

RQ 3: For what types of systems have the design patterns been applied?

RQ 4: How can the design patterns be classified?

As the simplicity and intelligibility of a template are crucial factors in reusing pat-
terns by practitioners, the motivation behind RQ1 is to study how pattern templates
are used, find out if they require standardization and what may constitute as a com-
mon and universal vocabulary for a future pattern language. The answer of RQ2
would benefit in enhancing learnability and quicker orientation in the domain of
design patterns for MAS. Visualizing associations between patterns would help in
capturing a holistic picture for learners. RQ3 aims to identify for which applica-
tion domains design patterns have been applied in practice. The answer may reveal
potential domains for future application of design patterns for MAS. RQ4 aims in
identifying dimensions to classify design patterns. Such classification can serve as a
roadmap to search for particular patterns. The coverage for the various dimensions
can help identifying areas that deserve further attention in future work on patterns
for MAS.

3.3 Review protocol


The review protocol as essential to any systematic literature review (Kitchenham,
2004). Driven by the research questions, the protocol defines inclusion/exclusion
criteria to select primary studies, a search strategy, the data items that will be
collected to answer the research questions, and finally the approach that will be
used for data analysis. In the following sections, there are detailed explanations of
how the different steps of the protocol have been applied.

3.3.1 Inclusion and exclusion criteria


A study was included if it fulfilled all the inclusion criteria, i.e.:

IC 1: The study concerns design patterns for multi-agent systems,

IC 2: is published between 1998 and 2012,

11
IC 3: and the abstract and content are written in English.

Grey literature, not obtainable through mainstream publication channels, if found


was also included. A study was excluded if it fulfilled one of the exclusion criteria,
i.e.:

EC 1: The patterns are not described in detail, or a structured template is lacking,

EC 2: a newer study exists that documents the same patterns,

EC 3: or the paper concerns a review or evaluation of existing patterns for MAS.

3.3.2 Search strategy and selection process


During all four iterations a mixed search strategy was adopted in order to get more
varied results. The first iteration included manual searches in the International
Journal of Agent-Oriented Software Engineering (IJAOSE) and an automatic liter-
ature search based on a list of keywords in the electronic databases: ACM Digital
Library, Science Direct and Lib Hub. To get a general overview of the existing
contributions, following Boolean search strings were forged:

• (multi-agent OR multiagent OR MAS OR “multi-agent system” OR “multi-


agent systems” OR “multiagent system” OR “multiagent systems”) AND ("de-
sign pattern" OR pattern OR patterns OR “design patterns”)

• (agent-based OR agent-oriented OR agent) AND ("design pattern" OR pattern


OR patterns OR “design patterns”)

During the second iteration, the automatic search was continued in other databases:
IEEE Xplore, SpringerLink and GoogleScholar. In the third iteration, after ini-
tal selection and creation of preliminary list with patterns, other search techniques
were incorporated - targeted search, ancestor search in the lists of references and
descendant search aiming in finding early works and locating later articles that cite
them in their references, mainly using CiteSeerX. In the fourth iteration, targeted
searches were performed and other journals searched. The Knowledge Engineering
Review (KER) was searched automatically, Transactions on Autonomous and Adap-
tive Systems (TAAS) and Journal of Autonomous Agents and Multi-Agent Systems
(JAAMAS) were manually searched.
The selection process was split into two phases and done concurrently and re-
cursively during all four phases. Firstly, publications were assessed taking their title
and abstract into consideration. Secondly, the full texts were screened.

3.3.3 Data collection items


Table 3.1 shows data items that were collected for each paper. Data items F1-F7
were used for documentation purposes, and include authors, year, title, venue, key-
words, and design pattern name/alias. Catalog pattern categories (F8) refers to
different categories of patterns. A list of categories have been built during data col-
lection. A number of authors explicitly define categories of their patterns, such as Ar-
chitectural, Mobility, Organizational, Mediation etc. Other categories were inferred
from the publications’ titles, descriptions of the patterns, such as Self-organizing,
Large-scale, Bio-inspired, Social etc. F8 helps determining a pattern classification,

12
answering RQ4. Short pattern description (F9) provides a brief overview of a pat-
tern, which helps identifying pattern relations (RQ2) and supports pattern classi-
fication (RQ4). Pattern application domains item (F10) refers to specific field of
application where the pattern was initially applied. Options are:

• domain-independent (not specified),

• industrial applications
(process control and manufacturing, air traffic control, traffic and transporta-
tion),

• commercial applications
(information management, electronic commerce, business process management),

• robotics,

• entertainment (games, interactive theater and cinema),

• simulation.

The options were elicited from papers commenting MAS practical applications (Jen-
nings and Wooldridge, 1998; Wooldridge, 2009; Dignum and Dignum, 2010) as there
is no explicit taxonomy of software application domains (Glass and Vessey, 2011).
Pattern associations item (F11) and design pattern name/alias (F7, F8) are needed
to collect all related, referenced patterns from template’s paragraphs such as ’See
also’ or ’Related patterns’ (RQ2). Finally, pattern template details (F12) that con-
sist of text paragraphs and supplied graphical descriptions, are needed in resolving
RQ1.

Item id Field Concern


F1 Author(s) Documentation
F2 Year Documentation
F3 Title Documentation
F4 Venue Documentation
F5 Keywords Documentation
F6 Design pattern name RQ2
F7 Design pattern alias RQ2
F8 Catalog pattern categories RQ4
F9 Short pattern description RQ3, RQ4
F10 Pattern application domains RQ3
F11 Pattern associations RQ2
F12 Pattern template details RQ1
Table 3.1: Data collection form

3.3.4 Data collection application


The collected data was stored in a SQL-based relational database (Figure 3.2) and
modified via a self-made MVC (Model-View-Controller) web application (Figures:
3.3, 3.4) to provide more flexibility when validating. The web application was made
using PHP framework - CakePHP.

13
Figure 3.2: ER diagram of the database

14
Figure 3.3: Interface of the application - pattern list view

Figure 3.4: Interface of the application - publication view

This framework architecture follows the Separation of Concerns principle and


isolates business logic from other aspects by implementing Model-View-Controller
pattern. The pattern mechanism is illustrated in the Figure 3.5 - (1) a client sends
a HTTP request to the web server where it is parsed by a Router (2), then using
routes the request is mapped to a controller action (3). Then the controller uses
specific models to get the asked data (4). Models send queries to the database and
return the requested data to the controller (5) that instructs specific view how to
display the data (7). Finally, the response is sent to the client by the view (8).

15
Figure 3.5: CakePHP architecture

3.3.5 Data analysis


Deduction of conclusions and recommendations for future research were based on
the synthesis. The process of synthesizing the data collection included the following:

1. Listing of design patterns and articles

2. Analysis of data associated with design patterns

3. Answering research questions

4. Interpretation of the results

The data analysis of patterns incorporated three different methods: meta analysis
for RQ1 and RQ3, cluster analysis based on graph model for RQ2, and data classi-
fication for RQ4. Firstly, meta analysis relied on a qualitative coding schema with
dichotomous parameters. In case of RQ1, if a pattern contained a structured tem-
plate, it was coded as 1, otherwise as 0. As for the specific templates, any contained
paragraph in a template was coded as 1, otherwise 0. Any mentions of pattern
application domain, resulted coding specified option as 1, otherwise as 0. The data
was further analyzed using descriptive statistics. Secondly, graph-based model for
cluster analysis aimed in establishing what groups of patterns were most influential.
Thirdly, the goal of taxonomical organization of design patterns was to create a top-
ical classification that would help learners to find quickly searched pattern without
knowing details. However, the main drawback of this method is that it relies on
subjective categorization.

16
4 Results
Chapter 4 focuses on the results and includes four sections dedicated for each of four
research question.

4.1 Publications overview


Overall, 815 papers were proceeded - 526 articles from journals, 289 papers were
retrieved from digital databases. By the end of the data retrieval, 83 papers were
qualified after applying inclusion criteria, out of which 39 were included after ap-
plying exclusion criteria (47%). Figure 4.1 presents the distribution of included
publications in electronic sources - academic databases and search engines.

Figure 4.1: Included publications in digital databases/search engines

4.2 Patterns overview


In general, 206 patterns were found in 39 articles written by 95 researchers as listed
in Table 4.1. 93% of the patterns have unique names which indicates the possibility
that some existing patterns are only rewritten.

Patterns Author(s) Year


Itinerary, Master-Slave, Meeting, Plan, Ticket,
Facilitator, Forwarding, Organized group, Aridor and Lange 1998
Locker, Messenger
The Layered Agent, Reactive Agent,
Deliberative Agent, Opportunistic Agent,
Interface Agent, Intention, Prioritizer,
Adaptable Active Object, Message Forwarder,
Plan as Command, Plan and Intention Kendall et al.
Factory, Conversation, Facilitator, Agent
Proxy, Protocol, Emergent Society, Clone,
Remote Configurator, Broker, Migration
Thread Factory, Agent Builder, Layer Linker

Table 4.1: Design patterns for MAS (chronological order)

17
Patterns Author(s) Year
Basic Mobility, Itinerary, Star-shaped
Movement, Branching, Contract net protocol,
Tahara et al. 1999
Cooperation Protocol Pattern, Direct
Interaction, Mediation, Dispatching
Broker, Embassy, Mediator, Monitor, Wrapper Hayden et al.
Metamorphic Architecture Pattern, Mediator,
Task Decomposition Pattern, Virtual
Shu and Norrie
Clustering Pattern, The Partial Cloning
Pattern, The Prototyping Pattern
Direct Coupling Pattern, Proxy Agent
Pattern, Communication Sessions Pattern, Deugo et al.
Badges, Event Dispatcher Pattern
Sentinel Agent Behavior Pattern Chacón et al. 2000
Recepcionist, Session Pattern, Secretary,
Mobile Session, Antenna, Private Session, Silva et al.
Meeting with Moderator
Blackboard, Market Maker, Meeting,
Deugo et al. 2001
Master-Slave, Negotiating Agents
Synchronizer, Environment Mediated
Communication, Updating shared state, Schelfthout et al. 2002
Behavior-based Decision
InteRRaP, Contract net protocol Lind
Agency Guard, Agent Authenticator, Sandbox,
Mouratidis et al. 2003
Access Controller
Role Agent Pattern Cabri et al.
Monitor, Broker, Matchmaker, Mediator,
Kolp et al.
Embassy, Booking, Call-For-Proposal, Bidding
Reflective Blackboard Silva et al.
Organisation schemes, Protocols, Marks,
Influences, BDI architecture, Vertical
architecture, Horizontal architecture, Sauvage 2004
Recursive architecture, Iniquity, Discretisation,
Physical entity
Hybrid Recogniser, Sense-and-Infer, Assisted
Sense and Infer, Ecological Recogniser, Heinze
Assisted Ecological Recogniser, Clairvoyant
Market-organiser, Agent-side
comparison-shopping, Server-side
Nguyen and Yang
comparison-shopping pattern,
Itinerary-balancing pattern
Pipeline Gonzalez-Palacios
and Luck
Agent Society, Agent as Delegate, Agent as
Mediator, Common Vocabulary, User Agent, Weiss
Task Agent, Resource Agent

18
Patterns Author(s) Year
Multi-agent layer pattern, Web usage mining
pattern for adaptive multi-agent systems,
Girardi et al. 2005
WUMA-Interface, WUMA-UserM,
WUMA-Acquirer, WUMA-Miner
Rule Composer, Decision Tree Taylor and
Evans-Greenwood
Service Client Pattern, Service Representative Müller et al.
Initiator, Observer Mohamad et al. 2006
Structure-in-5, Pyramid, Chain of values, The
matrix, Bidding, Joint venture, Arm’s-length, Kolp et al.
Hierarchical contracting, Co-optation
Define Actors, Refine Actor Goals, Means-End
Analysis, Contribution Analysis, AND/OR
Mouratidis and Weiss
Decomposition, Ask for Help, Refine Models,
System-to-Be
Replication, Collective Sort, Evaporation,
Gardelli et al. 2007
Aggregation, Diffusion
Behaviour Helper Pattern Charan Ojha et al.
Gradient Fields, Market-Based Control De Wolf and Holvoet
Agent Interface, SCADA control sequence
agent, Agent optimization, Agent NET-MAP Eichelkraut and
pattern Etzkorn
Virtual Environment, Situated Agent,
Selective Perception, Roles & Situated Weyns 2009
Commitments, Protocol-based Communication
Perception Memory Pattern, Exponential
Klügl and Karlsson
Growth Pattern
Disciplined flood, Propertinerary, Smart
Holvoet et al. 2010
message, Delegate ant MAS, Delegate MAS
Planner, VFHPlanner Pattern, A*Planner,
Persistence agent, Memento agent, Social
agent, Explorer, Sequential-resource share ,
Parallel resource share, Query, Inform,
Chella et al.
Request, Secure Query, Secure Request, Secure
Inform, Contract net protocol,
Publish-subscribe, Information agent, Holonic
society, Supply chain
Selection of Relevant Source Material Cheah et al.
Policy-based Guo et al. 2011
Scheduler Scramble, Context and Projection
Hierarchy, Diffuser, Strategy, Logo World,
North and Macal
Learning, Model-View-Controller, Double
Buffer
Aggregation, Spreading, Gossip Fernandez-Marquez
et al.
Composite DelegateMAS Cruz Torres et al.

19
Figure 4.2 depicts efforts in documenting design patterns over the years. Most
of the papers and identified design patterns are from years: 1998, 1999, 2004 and
2010. There are no selected publications from 2008.

Publications Patterns
Mean 2,79 14,71
Median 3 12,50
Standard 1,25 9,92
Deviation
Variance 1,57 98,37
Minimum 0 0
Maximum 5 32
Total 39 206
Figure 4.2: Publications and patterns per year

4.3 RQ1: How are the patterns documented and what pat-
tern templates are used?
The state of the documentation of the patterns that would indicate the need of
standardization was derived from the pattern template details (F12). Overall, 69%
of all patterns are described using structured templates, out of which 53% contains
some graphical descriptions as diagrams. 73% of visual explanations are modeled
using UML. Six is the average number of paragraphs in a template excluding name
(assuming that every template contains this element).
102 unique paragraphs were identified. This clearly indicates that there are
ambiguities in pattern templates. As pointers to other patterns paragraphs with
names: Related patterns, Associated patterns, See also, References, represent one
thing, so that they can be grouped without further analysis. However, there are
many paragraphs that can have the same semantic meaning, but their grouping is
not obvious as: Context/Applicability, Problem/Intent/Purpose, Examples/Known
Uses or Participants/Entities.

20
Figure 4.3: Popular paragraphs in pattern templates

Among most popular paragraphs, as illustrated in Figure 4.3, are: Solution,


Problem, Forces, Context and Consequences. Those paragraphs should be essential
while documenting, especially Problem, Context and Solution, because a design pat-
tern follows a three-part rule (Alexander, 1979). Least popular paragraphs include:
Technical Issues, Reasoning capabilities, Temporal context or Configuration.

4.4 RQ2: How are the design patterns connected?


To answer this question and to create the graph, we used data extracted from
items: Pattern associations (F11), Design pattern alias (F7) and Design pattern
name (F6). A cluster analysis is used to establish what groups of patterns are most
influential among patterns. Figure 4.4 presents a directed graph (114 nodes, 137
edges, modularity: 0,771) illustrating associations between found patterns used for
the analysis. Three main clusters can be distinguished.
First cluster contains patterns that were inspired by object-oriented patterns
from GoF catalog (Gamma et al., 1995), as Proxy, Mediator and by concurrency
patterns (Schmidt et al., 2000) as Broker, Active Object. Those patterns mainly
concern low-level issues and are found in early papers: Tahara et al. (1999); Kendall
et al. (1998); Hayden et al. (1999); Schelfthout et al. (2002).
Second cluster is built around bio-inspired concepts as ants, pheromones or stig-
mergy. It includes recent patterns concerning self-organization and adaptive behav-
ior imitating mechanisms found in the nature: Gardelli et al. (2007); Fernandez-
Marquez et al. (2011); De Wolf and Holvoet (2007); Holvoet et al. (2010); Guo et al.
(2011); Cruz Torres et al. (2011); Sauvage (2004).
Third cluster covers patterns referencing to mobile agents and Aglets patterns
(Aridor and Lange, 1998), for example Messenger, Itinerary. It contains patterns
from: Silva et al. (2000); Deugo et al. (2001); Nguyen and Yang (2004); Holvoet
et al. (2010).

21
Figure 4.4: Pattern space

Other groups are built, for example around FIPA protocols (Chella et al., 2010;
Lind, 2003; Tahara et al., 1999) or are closed clusters and were not included in the
graph. A closed cluster includes patterns only from one catalog and contains only
relationships within the catalog. It indicates unextended pattern language that
was not connected to existing pattern space. Those patterns are mostly domain
specific - applying to military simulations, e-commerce, intelligent manufacturing,
security (Heinze, 2004; Nguyen and Yang, 2004; Shu and Norrie, 1999; Eichelkraut
and Etzkorn, 2007; Mouratidis et al., 2003).

22
4.5 RQ3: For what types of systems have the design pat-
terns been applied?
Data items: Short pattern description (F9) and Pattern application domain (F10)
were used to extract the data and to answer the third question. To sum up, there
is not dominant type of system for which MAS design patterns have been used. As
depicted in Figure 4.5: 59% of the patterns can be applied in every field, 41% of the
patterns are focused on more specific uses.

Figure 4.5: Pattern application domains

For industrial applications, main subdomains are: process control and manu-
facturing (6%) and traffic and transportation (5%), for commercial applications:
information management (4%) and electronic commerce (3%). No patterns were
identified in correlation with entertainment (games, interactive theater and cinema)
domain. Nevertheless, there is a balance and diversity of application domains for
MAS design patterns revealing high potential and attractiveness of MAS patterns
for software practitioners.

23
4.6 RQ4: What dimensions of the design patterns exist?
The objective of classifying design patterns for multi-agent systems is to provide an
intellectual graspable overview of the huge space of existing patterns. The classifi-
cation offers engineers a general picture of the pattern space of multi-agent systems,
and helps those who are not familiar with the domain to get an easy jump-start
to understand the pattern space. Several researchers have proposed classifications
of design patterns for MAS, but these classifications are either bound to a specific
catalog of patterns, or to an development methodology(Aridor and Lange, 1998;
Schelfthout et al., 2002; Chella et al., 2010; Kendall et al., 1998; Tahara et al., 1999;
Oluyomi, 2006).

Figure 4.6: MAS patterns dimensions

The data for the classification was derived from Catalog pattern categories (F8)
and Short pattern description (F9). Based on the analysis of the data, four dimen-
sions of patterns for multi-agent systems were identified: inspiration, abstraction,

24
focus, and granularity. Figure 4.6 shows a graphical overview of the dimensions,
illustrated with example patterns.

Inspiration
Metaphors and analogies help in understanding complex systems. The inspira-
tion dimension has four categories that provide intuitive domains from which pat-
terns are derived. Examples of nature-inspired patterns are gradient fields (De Wolf
and Holvoet, 2007) that is inspired by the fields in nature, and delegate ant MAS
(Holvoet et al., 2010) that is inspired by behavior of social insects. Examples of
society-inspired patterns are emergent society (Kendall et al., 1998) and holonic so-
ciety (Chella et al., 2010) that get their inspiration from the way societies emerge and
structure themselves. Examples of human-inspired patterns are receptionist (Silva
et al., 2000) and gossip (Fernandez-Marquez et al., 2011). Finally, locker (Aridor
and Lange, 1998) and blackboard (Deugo et al., 1999) are example of patterns that
get there inspiration from artifacts in our environment.

Abstraction
The abstraction dimension classifies patterns either as conceptual or concrete. Both
these main categories are further refined in subcategories that refer to stages in the
software life cycle where the patterns can be used. Define actors (Mouratidis and
Weiss, 2006) and pyramid (Kolp et al., 2006) are examples of patterns that are useful
in early phases in the life cycle, while broker (Hayden et al., 1999) and synchronizer
(Schelfthout et al., 2002) can be applied in detailed design and the implementation
phase.

Focus
The focus dimension has two categories: structural and behavioral. Structural pat-
terns are useful to deal with the decomposition of a system, while behavior patterns
are useful to deal with interaction aspects. Examples of structural patterns are
reflective blackboard(Silva et al., 2003) and joint venture (Kolp et al., 2006), the
former focusing a particular coordination structure for an agent system, the latter
focusing on the way a community of agents is organized. Examples of behavioral
patterns are market maker (Deugo et al., 1999), negotiating agents (Deugo et al.,
1999), and conversation (Kendall et al., 1998). These patterns provide different
approaches to support interactions among agents.

Granularity
Finally, the granularity dimension refers to the scope of the patterns, i.e., the system
or parts of the system. Hierarchical contracting (Kolp et al., 2006) and emergent
society (Kendall et al., 1998) are examples of patterns that apply to a multi-agent
system as a whole. Messenger (Aridor and Lange, 1998) and virtual environment
(Weyns, 2009) are patterns that apply to parts of a multi-agent system. Intention
(Kendall et al., 1998) and InteRRaP (Lind, 2003) are patterns that support the
design of individual agents.

25
5 Discussion and conclusions
Chapter 5 ends the thesis with a discussion on the method, results, guidelines and
conclusions directing to the future research.

5.1 Threats to validity and limitations


The main limits of the study lie in the number and quality of search engines and
digital databases, so that the main threat to validity of the study is a potential lack
of accuracy of search results due to the search strategy. To anticipate missing papers
during automatic search, pilot searchers were performed to tune the search criteria.
Furthermore, manual searches for the journal articles were performed. Theses and
technical reports were omitted as it was assumed that the patterns would eventually
be published in journals or conference proceedings. The time frame of searching
was limited to the period 1998-2011. This is motivated by the fact that the Agents
conference started around 1998. Before that, documented design patterns for MAS
could not be found.
Among reliability procedures was making sure if there were no mistakes while
collecting the data in the database. To ensure the validity and strengthen reliability
of the research, various strategies were followed:

• triangulation of data,

• crosschecking data from multiply sources,

• member checking,

• using rich and graphical descriptions to convey the findings,

• peer examination and reviewing the entire project.

5.2 Discussion on the results


The objective of this literature study was to summarize existing design patterns for
Multi-agent systems. To that end a systematic literature review aiming to answer
four research questions was performed.
The first research question (subsection: 4.3) was concerned with the templates
used to document the patterns. Analysis of the collected data shows that there are
currently no agreed pattern templates to document design patterns for MAS. In
addition, it was observed that many patterns are documented without structured
templates. This observation hampers the accessibility of the patterns for practition-
ers as well as students. Hence, there is a need for standard templates to document
patterns for MAS. Such template should clearly define the semantics of the differ-
ent paragraphs. It is suggested that the pragmatic base for the pattern scheme
should contain: Name, Problem, Solution, Context, Forces, Consequences, Related
Patterns. The first four paragraphs are essential as any design pattern should docu-
ment a solution to recurring problem in a given context. Context and forces should
be also included as these aspects are essential for software engineers to select proper
design patterns and it also supports learning of the patterns. Documenting conse-
quences is crucial to understand the design trade-offs implied by patterns. Finally,
related patterns enable to connect patterns and build up pattern languages.

26
The goal of the second research question (subsection: 4.4) was to investigate how
the design patterns for MAS are connected. It was observed that there is a strong
coupling between patterns from the same catalog. However, more effort should be
put in documenting associations between patterns. Moreover, duplicated efforts in
describing the same patterns should be avoided.
The third research question (subsection: 4.5) identified the type of systems and
application domains for which design patterns for MAS have been used. The col-
lected data shows that the patterns have a wide range of applications. Nevertheless,
although MAS are suggested to be primary candidates to design emerging domains
such as cloud computing and smart grids, no applications of patterns for these sys-
tems are reported. Empirical evidence is required that demonstrates the usefulness
of design patterns for MAS in these areas.
Finally, the fourth question (subsection: 4.6) was concerned with classifying
design patterns for MAS. The data collected to answer this question shows that the
space of design patterns for MAS is huge and very diverse. Patterns are related to a
variety of disciplines, including Systems and Organization Theory, Social Sciences,
Biology, Psychology or Ecology. To bring order in this huge space, four dimensions
that allows to classify patterns were identified. This classification allows engineers
to better browse the pattern space and helps those who are new to the field to better
find their way through the myriad of patterns.

5.3 Future research


To conclude, future research directions should include:

1. Formalization and standardization:


eliminate ambiguity, documentation must be more rigorous and precise;

2. Empirical evaluation of the patterns is required to demonstrate the added


value of the patterns (as well as their tradeoffs);

3. Building bridges: creating catalogs and pattern languages will help to better
connect patterns, and enhance their combined use,
generalizing domain-specific patterns, linking other disciplines;

Other opportunities for future research could be to report MAS anti-patterns - design
patterns that were unsuccessful (Brown et al., 1998), to evaluate patterns using
frameworks for evaluating design patterns (Petter et al., 2010), to evaluate in the
context of MAS patterns formal specifications of design patterns that are intended
to complement textual descriptions, eliminate ambiguity and facilitate automation
(Khwaja and Alshayeb, 2011; Taibi and Check Ling Ngo, 2003) or to create more
CASE tools allowing to graphically generate agents from patterns as Chella et al.
(2010).

27
Bibliography
Alexander, C. (1979). The Timeless Way of Building. Oxford U.P., New York, NY,
USA.

Alur, D., Crupi, J., and Malks, D. (2003). Core J2EE patterns: best practices and
design strategies. Prentice Hall PTR, Upper Saddle River, NJ, USA, 2 ed. edition.

Aridor, Y. and Lange, D. B. (1998). Agent design patterns: elements of agent appli-
cation design. In Proceedings of the 2nd International Conference on Autonomous
Agents, pages 108–115, New York, NY, USA. ACM. ISBN 0-89791-983-1.

Brown, W. J., Malveau, R. C., McCormick, H. W., and Mowbray, T. J. (1998).


AntiPatterns: refactoring software, architectures, and projects in crisis. John
Wiley & Sons, New York, NY, USA. ISBN 0-471-19713-0.

Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. (1996).
Pattern-oriented software architecture. [Vol. 1], A system of patterns. John Wiley
& Sons, Chichester, UK.

Cabri, G., Ferrari, L., and Leonardi, L. (2003, oct). Role agent pattern: a developer
guideline. In IEEE International Conference on Systems, Man and Cybernetics,
volume 5, pages 4114 – 4119.

Chacón, D., Mccormick, J., Mcgrath, S., and Stoneking, C. (2000). Rapid applica-
tion development using agent itinerary patterns. Technical Report 01, Lockheed
Martin Advanced Technology Laboratories.

Charan Ojha, A., Kumar Pradhan, S., and Ranjan Patra, M. (2007). Pattern-
based design for intelligent mobile agents. In Proceedings of the 4th International
Conference on Innovations in Information Technology, pages 501 –505.

Cheah, W., Sterling, L., and Taveter, K. (2010). Task knowledge patterns reuse
in multi-agent systems development. In Proceedings of the 13th International
Conference on Principles and Practice of Multi-Agent Systems, PRIMA’10, pages
459–474, Berlin. Springer. ISBN 978-3-642-25919-7.

Chella, A., Cossentino, M., Gaglio, S., Sabatucci, L., and Seidita, V. (2010, apr).
Agent-oriented software patterns for rapid and affordable robot programming. J.
Syst. Softw., 83:557–573. ISSN 0164-1212.

Cruz Torres, M., Van Beers, T., and Holvoet, T. (2011). (No) more design pat-
terns for multi-agent systems. In Proceedings of the compilation of the co-located
workshops on DSM’11, TMC’11, AGERE!’11, AOOPES’11, NEAT’11, VMIL’11,
SPLASH ’11 Workshops, pages 213–220, New York, NY, USA. ACM. ISBN 978-
1-4503-1183-0.

De Wolf, T. and Holvoet, T. (2007). Design patterns for decentralised coordination


in self-organising emergent systems. In Engineering Self-Organising Systems, vol-
ume 4335 of Lecture Notes in Computer Science, pages 28–49. Springer, Berlin,
Heidelberg, Germany. ISBN 978-3-540-69867-8.

28
Deugo, D., Oppacher, F., Kuester, J., and Otte, I. V. (1999). Patterns as a means
for intelligent software engineering. In Proceedings of the 1999 Conference on
Artificial Intelligence, pages 605–611.

Deugo, D., Weiss, M., and Kendall, E. (2001). Reusable patterns for agent coordi-
nation. In Coordination of Internet agents, chapter Reusable patterns for agent
coordination, pages 347–368. Springer-Verlag, London, UK. ISBN 3-540-41613-7.

Dignum, V. and Dignum, F. (2010, nov). Designing agent systems: state of the
practice. Int. J. Agent-Oriented Softw. Eng., 4(3):224–243. ISSN 1746-1375.

Eichelkraut, C. and Etzkorn, L. (2007). Describing agent based real-time distributed


systems using design patterns. In Proceedings of the 45th Annual Southeast Re-
gional Conference, ACM-SE 45, pages 156–161, New York, NY, USA. ACM. ISBN
978-1-59593-629-5.

Ferber, J. (1999). Multi-agent systems: an introduction to distributed artificial in-


telligence. Addison-Wesley, Harlow. ISBN 0-201-36048-9.

Fernandez-Marquez, J. L., Arcos, J. L., Di Marzo Serugendo, G., and Casadei,


M. (2011, apr). Description and composition of bio-inspired design patterns: The
gossip case. In Engineering of Autonomic and Autonomous Systems (EASe), 2011
8th IEEE International Conference and Workshops on, pages 87 –96.

Fowler, M. (2003). Patterns of enterprise application architecture. Addison-Wesley,


Boston, MA, USA.

Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design patterns: ele-
ments of reusable object-oriented software. Addison-Wesley, Reading, MA, USA.

Gardelli, L., Viroli, M., and Omicini, A. (2007). Design patterns for self-organising
systems. In Burkhard, H.-D., Lindemann, G., Verbrugge, R., and Varga, L. Z.,
editors, Multi-Agent Systems and Applications V, volume 4696 of LNCS (LNAI),
pages 123–132, Berlin, Heidelberg, Germany. Springer-Verlag. ISBN 978-3-540-
75253-0.

Girardi, R., Marinho, L. B., and de Oliveira, I. R. (2005, sep). A system of agent-
based software patterns for user modeling based on usage mining. Interact. Com-
put., 17(5):567–591. ISSN 0953-5438.

Glass, R. L. and Vessey, I. (2011, sep). Naivete squared: In search of two taxonomies
and a mapping between them. IEEE Softw., 28(5):14–15. ISSN 0740-7459.

Gonzalez-Palacios, J. and Luck, M. (2004). A framework for patterns in gaia: A


case-study with organisations. In Proceedings of the 5th International Workshop
on Agent-Oriented Software Engineering.

Guo, Y., Mao, X., and Hu, C. (2011). Design pattern for self-organization multi-
agent systems based on policy. In Proceedings of the 10th International Conference
on Trust, Security and Privacy in Computing and Communications (TrustCom),
pages 1572 –1577.

29
Hayden, S. C., Carrick, C., and Yang, Q. (1999). Architectural design patterns for
multiagent coordination. In Proceedings of the 3rd international conference on
autonomous agents.

Heinze, C. (2004). Modelling intention recognition for intelligent agent systems.


Research Report DSTO-RR-0286, Air Operations Division Systems Sciences Lab-
oratory.

Holvoet, T., Weyns, D., and Valckenaers, P. (2010). Delegate MAS patterns for
large-scale distributed coordination and control applications. In Proceedings of
the 15th European Conference on Pattern Languages of Programs. ACM.

Jennings, N. and Wooldridge, M. (1998). Agent technology: foundations, applica-


tions, and markets. Springer, Berlin, Germany. ISBN 3-540-63591-2 (kart.) ;.

Kendall, E. A., Murali Krishna, P. V., Pathak, C. V., and Suresh, C. B. (1998).
Patterns of intelligent and mobile agents. In Proceedings of the 2nd International
Conference on Autonomous Agents, pages 92–99. ACM.

Khwaja, S. and Alshayeb, M. (2011, sep). Towards design pattern definition lan-
guage. Softw: Pract. Exper. ISSN 1097-024X.

Kitchenham, B. (2004). Procedures for performing systematic reviews. Technical


Report TR/SE-0401, Department of Computer Science, Keele University, Depart-
ment of Computer Science, Keele University, UK.

Klügl, F. and Karlsson, L. (2009). Towards pattern-oriented design of agent-based


simulation models. In Proceedings of the 7th German conference on Multia-
gent system technologies, MATES’09, pages 41–53, Berlin, Heidelberg, Germany.
Springer-Verlag. ISBN 3-642-04142-6, 978-3-642-04142-6.

Kolp, M., Do, T. T., and Pirotte, A. (2003). Social patterns for designing multi-
agent systems. In Proceedings of the 15th International Conference on Software
Engineering & Knowledge Engineering (SEKE’2003), pages 103–110.

Kolp, M., Giorgini, P., and Mylopoulos, J. (2006). Multi-agent architectures as


organizational structures. Autonomous Agents and Multi-Agent Systems, 13:3–
25. ISSN 1387-2532.

Kramer, J. and Magee, J. (2007). Self-managed systems: an architectural challenge.


In FOSE ’07: Future of Software Engineering. IEEE Computer Society.

Lind, J. (2003). Patterns in agent-oriented software engineering. In Proceedings


of the 3rd international conference on Agent-oriented software engineering III,
AOSE’02, pages 47–58, Berlin, Heidelberg, Germany. Springer-Verlag. ISBN 3-
540-00713-X.

Martin, R. (2003). Agile software development : principles, patterns, and practices.


Prentice Hall, Upper Saddle River, NJ, USA. ISBN 0-13-597444-5.

Müller, I., Braun, P., and Kowalczyk, R. (2005, sep). Design patterns for agent-based
service composition in the web. In Proceedings of the International Conference on
Quality Software (QSIC 2005), pages 425 – 430.

30
Mohamad, R., Deris, S., and Ammar, H. H. (2006). Agent design patterns framework
for MaSE/POAD methodology. In Proceedings of the ACS/IEEE International
Conference on Computer Systems and Applications, AICCSA ’06, pages 521–528,
Washington, DC, USA. IEEE Computer Society. ISBN 1-4244-0211-5.
Mouratidis, H. and Weiss, M. (2006). Patterns for modelling agent systems with
tropos. In Garcia, A., Choren, R., Lucena, C., Giorgini, P., Holvoet, T., and
Romanovsky, A., editors, Software Engineering for Multi-Agent Systems IV, vol-
ume 3914 of Lecture Notes in Computer Science, pages 207–223. Springer-Verlag.
ISBN 978-3-540-33580-1.
Mouratidis, H., Giorgini, P., and Schumacher, M. (2003). Security patterns for agent
systems. In Proceedings of the 8th European Conference on Pattern Languages of
Programs.
Ng, T. H., Cheung, S. C., Chan, W. K., and Yu, Y. T. (2006). Work experience
versus refactoring to design patterns: a controlled experiment. In Proceedings
of the 14th ACM SIGSOFT international symposium on Foundations of software
engineering, SIGSOFT ’06/FSE-14, pages 12–22, New York, NY, USA. ACM.
ISBN 1-59593-468-5.
Nguyen, A. and Yang, X. (2004). Design patterns for mobile agent-mediated e-
business. In Proceedings of the 10th Australian World Wide Web Conference.
North, M. J. and Macal, C. M. (2011, dec). Product design patterns for agent-based
modeling. In Proceedings of the 2011 Winter Simulation Conference (WSC), pages
3082 –3093.
Odell, J. (2002). Objects and agents compared. Journal of Object Technology, 1(1):
41–53.
Odell, J. (2007). Agent technology: What is it and why do we care? Technical
Report 10(3), Cutter Consortium, Arlington, MA, USA. Enterprise Architecture,
executive report.
Oluyomi, A. (2006). Patterns and protocols for agent oriented software development.
Phd, The University of Melbourne.
Petter, S., Khazanchi, D., and Murphy, J. D. (2010, aug). A design science based
evaluation framework for patterns. SIGMIS Database, 41(3):9–26. ISSN 0095-
0033.
Prechelt, L., Unger-Lamprecht, B., Philippsen, M., and Tichy, W. F. (2002, jun).
Two controlled experiments assessing the usefulness of design pattern documen-
tation in program maintenance. IEEE Trans. Softw. Eng., 28(6):595–606. ISSN
0098-5589.
Sauvage, S. (2004). Design patterns for multiagent systems design. In MICAI 2004:
Advances in Artificial Intelligence, volume 2972 of Lecture Notes in Computer
Science, pages 352–361. Springer Berlin / Heidelberg. ISBN 978-3-540-21459-5.
Schelfthout, K., Coninx, T., Helleboogh, A., Holvoet, T., Steegmans, E., and Weyns,
D. (2002). Agent implementation patterns. In Proceedings of the OOPSLA 2002
Workshop on Agent-Oriented Methodologies, pages 119–130.

31
Schmidt, D. C., Stal, M., Rohnert, H., and Buschmann, F. (2000). Pattern-oriented
software architecture. Vol. 2, Patterns for concurrent and networked objects. John
Wiley & Sons, Chichester, UK. ISBN 0-471-60695-2 ;.

Shaw, M. and Clements, P. (2006, mar). The golden age of software architecture.
IEEE Softw., 23(2):31–39. ISSN 0740-7459.

Shu, S. and Norrie, D. H. (1999). Patterns for adaptive multi-agent systems in


intelligent manufacturing. In Proceedings of the 2nd International Workshop on
Intelligent Manufacturing Systems, pages 67–74.

Silva, I. C., da Silva, A. R., and Meira, N. (2000). A set of agent patterns for a more
expressive approach. In Proceedings of the EuroPLOP 2000, pages 331–346.

Silva, O., Garcia, A., and Lucena, C. (2003). The reflective blackboard pattern:
Architecting large multi-agent systems. In Garcia, A., Lucena, C., Zambonelli,
F., Omicini, A., and Castro, J., editors, Software Engineering for Large-Scale
Multi-Agent Systems, volume 2603 of Lecture Notes in Computer Science, pages
73–93. Springer Berlin, Heidelberg. ISBN 978-3-540-08772-4.

Tahara, Y., Ohsuga, A., and Honiden, S. (1999). Agent system development method
based on agent patterns. In Proceedings of the 21st International Conference on
Software Engineering, ICSE ’99, pages 356–367, New York, NY, USA. ACM. ISBN
1-58113-074-0.

Taibi, T. and Check Ling Ngo, D. (2003, jul-aug). Formal specification of design
patterns - a balanced approach. Journal of Object Technology, 2(4):127–140.

Taylor, P. R. and Evans-Greenwood, P.and Odell, J. (2005). The genesis of a pattern


language for agent-based enterprise systems. In Proceedings of the 5th Interna-
tional Conference on Quality Software, QSIC ’05, pages 395–400, Washington,
DC, USA. IEEE Computer Society. ISBN 0-7695-2472-9.

Weiss, M. (2004). A pattern language for motivating the use of agents. In Giorgini,
P., Henderson-Sellers, B., and Winikoff, M., editors, Agent-Oriented Informa-
tion Systems, volume 3030 of Lecture Notes in Computer Science, pages 142–157.
Springer Berlin / Heidelberg. ISBN 978-3-540-22127-2.

Weyns, D. (2009, sep). A pattern language for multi-agent systems. In Proceedings of


Joint Working IEEE/IFIP European Conference on Software Architecture, pages
191 –200.

Weyns, D., Schmerl, B., Grassi, V., Malek, S., Mirandola, R., Prehofer, C., Wuttke,
J., Andersson, J., Giese, H., and Goschka, K. (2012). Software engineering for
self-adaptive systems ii. chapter On Patterns for Decentralized Control in Self-
Adaptive Systems. Springer-Verlag, Berlin, Heidelberg, Germany.

Wooldridge, M. J. (2009). An introduction to multiagent systems. John Wiley &


Sons, Chichester, UK, 2 ed. edition. ISBN 978-0-470-51946-2 (pbk.).

Yskout, K., Scandariato, R., and Joosen, W. (2012). Does organizing security pat-
terns focus architectural choices? In Proceedings of the 34th international confer-
ence on Software engineering. ACM.

32
SE-391 82 Kalmar / SE-351 95 Växjö
Tel +46 (0)772-28 80 00
[email protected]
Lnu.se/dfm

You might also like