Dealing with Complexity in Agent-Oriented Software Engineering: The Importance of Interactions

Agent Oriented Software Engineering was born with the promise of allowing more complex systems to be built than can be with traditional OO techniques. This promise is supported by mimicking human organizations and, thus, using “agents”, rather than Objects, as the main modelling artifact. Systems developed this way usually present features that make them complex; that is to say, their behavior cannot be fully predicted. However, such degrees of unpredictability may not be acceptable for some domain applications, e.g., real-time systems or critical business applications. If we analyze these kinds of system, we soon discover that their complexity is mainly derived as a result of the interactions between their constituent components. These interactions provoke chains of cause-effects that are hard to deal with from an engineering point of view, if we do not counter them with appropriate tools. In this chapter, we present the main principles for dealing with complexity, emphasizing how to use them when addressing complex systems. In addition, we show that to overcome complexity in these kinds of systems, it is essential to focus modelling on the main source of the problem: Interactions. Finally, to exemplify all of these principles, we address a typical complex system, an Ant Colony, showing how—by applying the principles and focusing on interactions—we can derive an engineering model that dissects the cause-effect chains to show how the individual behavior of each ant produces the overall complex behavior of the entire colony.

[1]  Klaus Fischer,et al.  TeleTruck : a holonic fleet management system , 1997 .

[2]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[3]  Nicholas R. Jennings,et al.  Specification and Implementation of a Belief Desire-Joint_intention Architecture for Cooperative Problem Solving , 1993, Int. J. Cooperative Inf. Syst..

[4]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[5]  Elizabeth A. Kendall,et al.  Role modeling for agent system analysis, design, and implementation , 2000, IEEE Concurr..

[6]  H. Van Dyke Parunak,et al.  Representing Social Structures in UML , 2001, AOSE.

[7]  Christian Gerber,et al.  Holonic multi-agent systems , 1999 .

[8]  Ira R. Forman,et al.  Synchrony Loosening Transformations for Interacting Processes , 1991, CONCUR.

[9]  NICHOLAS R. JENNINGS,et al.  An agent-based approach for building complex software systems , 2001, CACM.

[10]  Jacques Ferber,et al.  From Agents to Organizations: An Organizational View of Multi-agent Systems , 2003, AOSE.

[11]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[12]  James Odell,et al.  Agents and Complex Systems , 2002, J. Object Technol..

[13]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[14]  Cristiano Castelfranchi,et al.  Founding Agents' "Autonomy" on Dependence Theory , 2000, ECAI.

[15]  Franco Zambonelli,et al.  Developing multiagent systems: The Gaia methodology , 2003, TSEM.

[16]  Klaus Fischer,et al.  Agent-oriented software engineering: a model-driven approach , 2007, Int. J. Agent Oriented Softw. Eng..

[17]  Antonio Ruiz Cortés,et al.  Multi-agent system product lines: challenges and benefits , 2006, CACM.

[18]  Nikolay Mehandjiev,et al.  A Design Complexity Evaluation Framework for Agent-Based System Engineering Methodologies , 2003, ESAW.

[19]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process , 2001 .

[20]  J. Fromm The Emergence of Complexity , 2004 .

[21]  Ira R. Forman,et al.  Interacting processes: a multiparty approach to coordinated distributed programming , 1996 .

[22]  Jacques Ferber,et al.  A meta-model for the analysis and design of organizations in multi-agent systems , 1998, Proceedings International Conference on Multi Agent Systems (Cat. No.98EX160).

[23]  Jorge J. Gómez-Sanz,et al.  Agent Oriented Analysis Using Message/UML , 2001, AOSE.

[24]  Henry Mintzberg,et al.  The Structuring of Organizations , 1979 .

[25]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[26]  Vicent J. Botti,et al.  Towards an abstract recursive agent , 2004, Integr. Comput. Aided Eng..

[27]  Ivar Jacobson,et al.  Object Design: Roles, Responsibilities, and Collaborations , 2002 .

[28]  Cynthia F. Kurtz,et al.  The new dynamics of strategy: sense-making in a complex and complicated world , 2003, IEEE Engineering Management Review.

[29]  Klaus Fisher,et al.  Agent-based design of holonic manufacturing systems , 1999 .

[30]  H. Van Dyke Parunak,et al.  Representing Agent Interaction Protocols in UML , 2000, AOSE.

[31]  Trygve Reenskaug,et al.  Working with objects - the OOram software engineering method , 1995 .