Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
The StarLogo definition is available here: http://education.mit.edu/starlogo/samples/ants.htm.
- 2.
The Santa Fe Institute’s webpage is here: http://www.santafe.edu/.
- 3.
Notice that hereafter we call it Composition in order to differentiate it from the organization term in AOSE.
References
Booch, G.: Object-Oriented Design with Applications. Benjamin/Cummings, Redwood City (1990)
Bürckert, H.-J., Fischer, K., Vierke, G.: Teletruck: a holonic fleet management system. In: 14th European Meeting on Cybernetics and Systems Research, pp. 695–700 (1998)
Caire, G., Coulier, W., Garijo, F.J., Gómez-Sanz, J.J., Pavón, J., Leal, F., Chainho, P., Kearney, P.E., Stark, J., Evans, R., Massonet, P.: Agent oriented analysis using MESSAGE/UML. In: Proceedings of Agent-Oriented Software Engineering (AOSE’01), Montreal, pp. 119–135 (2001)
Castelfranchi, C.: Founding agent’s “autonomy” on dependence theory. In: 14th European Conference on Artificial Intelligence, pp. 353–357. IOS Press, Amsterdam (2000)
Castelfranchi, C., Miceli, M., Cesta, A.: Dependence relations among autonomous agents. In: Demazeau, I.Y., Werner, E. (eds.) Third European Workshop on Modeling Autonomous Agents in a Multi-agent World. Decentralized AI 3. Elsevier, Amsterdam (1992)
D’Souza, D.F., Wills, A.C.: Objects, Components, and Frameworks with UML: The Catalysis Approach. Addison-Wesley, Reading (1999)
Ferber, J., Gutknecht, O.: A meta-model for the analysis and design of organizations in multi-agent systems. In: Third International Conference on Multi-agent Systems (ICMAS’98), pp. 128–135. IEEE Comput. Soc., Los Alamitos (1998)
Ferber, J., Gutknecht, O., Michel:, F.: From agents to organizations: an organizational view of multi-agent systems. In: Giorgini, P., Müller, J.P., Odell, J. (eds.) IV International Workshop on Agent-Oriented Software Engineering (AOSE’03). LNCS, vol. 2935, pp. 214–230. Springer, Berlin (2003)
Fischer, K.: Agent-based design of holonic manufacturing systems. Robot. Auton. Syst. 27(1–2), 3–13 (1999)
Fischer, K., Hahn, C., Madrigal-Mora, C.: Agent-oriented software engineering: a model-driven approach. Int. J. Agent-Oriented Softw. Eng. 1, 334–369 (2007)
Francez, N., Forman, I.: Synchrony loosening transformations for interacting processes. In: Baeten, J., Klop, J. (eds.) Proceedings of Concurr’91: Theories of Concurrency—Unification and Extension. LNCS, vol. 527, pp. 27–30. Springer, Amsterdam (1991)
Francez, N., Forman, I.: Interacting Processes: A Multiparty Approach to Coordinated Distributed Programming. Addison-Wesley, Reading (1996)
Fromm, J.: The Emergence of Complexity. Kassel University Press, Kassel (2004)
Gerber, C., Siekmann, J., Vierke, G.: Flexible autonomy in holonic multi-agent systems. In: AAAI Spring Symposium on Agents with Adjustable Autonomy (1999)
Gerber, C., Siekmann, J., Vierke, G.: Holonic multi-agent systems. Technical report RR-99-03, DFKI, Kaiserslautern, Germany (1999)
Giret, A., Botti, V.: Towards an abstract recursive agent. Integr. Comput. Aided Eng. 11(2) (2004)
Jennings, N.: An agent-based approach for building complex software systems. Commun. ACM 44(4), 35–41 (2001)
Jennings, N.R.: Specification and implementation of a belief-desire-joint-intention architecture for collaborative problem solving. Int. J. Intell. Coop. Inf. Syst. 2(3), 289–318 (1993)
Karageorgos, A., Mehandjiev, N.: A design complexity evaluation framework for agent-based system engineering methodologies. In: Omicini, A., Petta, P., Pitt, J. (eds.) Fourth International Workshop Engineering Societies in the Agents World. LNCS, vol. 3071, pp. 258–274. Springer, Berlin (2004)
Kendall, E.A.: Role modeling for agent system analysis, design, and implementation. IEEE Concurr. 8(2), 34–41 (2000)
Larman, C.: Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 2nd edn. Prentice Hall, Upper Saddle River (2001)
Meyer, B.: Object-Oriented Software Construction. Prentice Hall, Hertfordshire (1988)
Mintzberg, H.: The Structuring of Organizations. Prentice Hall, Upper Saddle River (1978)
Odell, J.: Agents and complex systems. J. Object Technol. 1(2), 35–45 (2002)
Odell, J., Parunak, H.V.D., Bauer, B.: Representing agent interaction protocols in UML. In: Proceedings of the 1th Int. Workshop on Agent-Oriented Software Engineering (AOSE’00). LNCS, vol. 1957. Springer, Limerick (2000)
Parunak, H.V.D., Odell, J.: Representing social structures in UML. In: Müller, J.P., Andre, E., Sen, S., Frasson, C. (eds.) Proceedings of the Fifth International Conference on Autonomous Agents, pp. 100–101. ACM Press, Montreal (2001)
Peña, J.: On improving the modelling of complex acquaintance organisations of agents. A method fragment for the analysis phase. PhD thesis, University of Seville (2005)
Peña, J., Corchuelo, R., Ruiz-Cortés, A., Toro, M.: Towards an automatic method for detecting synchrony loosening anomalies in the context of multiparty interactions. In: Actas del II taller de trabajo sobre Desarrollo de Software Preciso. VI Jornadas de Ingeniería del Software y Bases de Datos (JISBD’01), Almagro (Ciudad Real, Spain) (2001)
Peña, J., Hinchey, M.G., Cortés, A.R.: Multi-agent system product lines: challenges and benefits. Commun. ACM 49(12), 82–84 (2006)
Pressman, R.S.: Software Engineering: A Practitioner’s Approach, 2nd edn. McGraw-Hill, New York (1986)
Reenskaug, T.: A methodology for the design and description of complex, object-oriented systems. Technical report, Center for Industrial Research, Oslo, Norway (November 1988)
Reenskaug, T.: Working with Objects: The OOram Software Engineering Method. Manning Publications, Greenwich (1996)
Snowden, D., Kurtz, C.: The new dynamics of strategy: sense-making in a complex and complicated world. IBM Syst. J. 42(3), 35–45 (2003)
Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Reading (2002)
Wirfs-Brock, R., McKean, A.: Object-Oriented Design: Roles, Responsibilities, and Collaborations. Addison-Wesley, Reading (1990)
Zambonelli, F., Jennings, N.R., Wooldridge, M.: Developing multiagent systems: the GAIA methodology. ACM Trans. Softw. Eng. Methodol. 12(3), 317–370 (2003)
Acknowledgements
This work has been partially supported by the European Commission (FEDER) and the Spanish Government under the CICYT project SETI (TIN2009-07366), and by the Andalusian Government under the projects ISABEL (P07-TIC-2533 and TIC-5906) and THEOS (TIC-5906).
This work was supported, in part, by Science Foundation Ireland grant 03/CE2/I303_1 to Lero—the Irish Software Engineering Research Centre (www.lero.ie)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag London Limited
About this chapter
Cite this chapter
Peña, J., Levy, R., Hinchey, M., Ruiz-Cortés, A. (2012). Dealing with Complexity in Agent-Oriented Software Engineering: The Importance of Interactions. In: Hinchey, M., Coyle, L. (eds) Conquering Complexity. Springer, London. https://doi.org/10.1007/978-1-4471-2297-5_9
Download citation
DOI: https://doi.org/10.1007/978-1-4471-2297-5_9
Publisher Name: Springer, London
Print ISBN: 978-1-4471-2296-8
Online ISBN: 978-1-4471-2297-5
eBook Packages: Computer ScienceComputer Science (R0)