Agent-oriented software engineering is a new software engineering paradigm that is ideally suited to the analysis and design of complex systems. Open distributed environments place a growing demand on complex systems to be adaptive as well. Complex systems that can learn from and adapt to dynamically changing environments are called complex adaptive systems. These systems are characterized by emergent behaviour caused by interactions between system components and the environment. Agent-oriented software engineering methodologies attempt to control emergence during analysis and design by engineering the complex system in such a way that the correct emergent behaviour results during run-time. In a complex adaptive system however, emergent behaviour cannot be predicted during analysis and design, as it evolves only after implementation. By restricting emergent behaviour, as is done in most agent-oriented software engineering approaches, a complex system cannot be fully adaptive as well. We propose the BaBe methodology that will enable a complex system to be adaptive by learning from its environment and modifying its behaviour during run-time. This methodology adds a run-time emergence model consisting of distributed Bayesian behaviour networks to the agent-oriented software engineering lifecycle. These networks are initialised by the human software engineer during analysis and design and deployed by Bayesian agencies (also complex adaptive systems). The Bayesian agents are simple, and collectively they implement distributed Bayesian behaviour networks. These networks, being specialized Bayesian networks, enable the Bayesian agents to collectively mine relationships between emergent behaviours and the interactions that caused them to emerge, in order to adapt the behaviour of the system. The agents are organized into heterarchies of agencies, where each agency activates one or more component behaviour depending on the inference in the underlying Bayesian behaviour network. These agencies assist the human software engineer to bridge the gap between the implementation and the understanding of emergent behaviour in complex adaptive systems. Due to the simplicity of the agents and the minimal communication amongst them, they can be implemented using a commercially available component architecture. We describe a prototype implementation of the Bayesian agencies using Sun’s Enterprise JavaBeans™ component architecture.
Thesis (PhD (Computer Science))--University of Pretoria, 2005.