Multiagent Systems and Software Architecture

Biographical notes: Danny Weyns is a post-doctoral researcher at the Katholieke Universiteit of Leuven, Belgium. He obtained his PhD in 2006 for research on the connection between multiagent systems and software architecture. Weyns's research interests include the role of the environment in multiagent systems, architectural description languages for decentralised systems and aspect-oriented software development. Since the mid-1990s the idea that multiagent systems are a radically new way of engineering software has dominated research in agent-oriented software engineering. Wooldridge et al. (2000) state: " There is a fundamental mismatch between the concepts used by object-oriented developers and other mainstream software engineering paradigms, and the agent-oriented view. [...] Existing software development techniques are unsuitable to realise the potential of agents as a software engineering paradigm. " Zambonelli and Omicini (2003) state, " Agent-based computing can be considered as a new general-purpose paradigm for software development, which tends to radically influence the way a software system is conceived and developed. " This vision has led to the development of numerous multiagent system methodologies. However, the results that have been obtained in the application of these methodologies to real-world problems are disappointing. Another perspective on engineering multiagent systems starts from the viewpoint that multiagent system engineering fits well within mainstream software engineering. One particular argument that researchers of this vision have put forward is the observation that there is a strong connection between multiagent systems and software architecture. Mainstream software engineering has generally recognised software architecture as the primary vehicle to manage complexity and to achieve the system's required qualities. Software architecture consists of the structures of the system, which comprise software elements, the externally visible properties of those elements and the relationships among them (Bass et al., 2003). Software elements provide the functionality of the system, while the required system qualities are primarily achieved through the structures of the software architecture. A multiagent system is structured as a set of autonomous software components (agents) that are situated in a shared environment. Agents can flexibly 2 D. Weyns achieve their design objectives by acting in the environment and interacting with one another. Multiagent systems are typically ascribed quality properties such as adaptability, robustness and scalability. The connection between multiagent systems and software architecture was the subject of a special track at Net.ObjectDays 2006 (Weyns and Holvoet, 2006). This special issue contains a selection of four thoroughly revised papers from this special track. 'View composition …