TY - CHAP
T1 - Dealing with complexity in agent-oriented software engineering
T2 - The importance of interactions
AU - Peña, Joaquin
AU - Levy, Renato
AU - Hinchey, Mike
AU - Ruiz-Cortés, Antonio
N1 - Publisher Copyright:
© Springer-Verlag London Limited 2012.
PY - 2012/1/1
Y1 - 2012/1/1
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=84955346988&partnerID=8YFLogxK
U2 - 10.1007/978-1-4471-2297-5_9
DO - 10.1007/978-1-4471-2297-5_9
M3 - Chapter
AN - SCOPUS:84955346988
SN - 9781447122968
SP - 191
EP - 214
BT - Conquering Complexity
PB - Springer-Verlag London Ltd
ER -