Dottorato in Ingegneria Elettronica, Informatica e delle Telecomunicazioni
Alma Mater Studiorum-Università di Bologna
Bologna, Italy
February 2008
Traditional software engineering approaches and metaphors fall short when applied to areas of growing relevance such as electronic commerce, enterprise resource planning, and mobile computing: such areas, in fact, generally call for open architectures that may evolve dynamically over time so as to accommodate new components and meet new requirements.
This is probably one of the main reasons that the \emph{agent} metaphor and the agent-oriented paradigm are gaining momentum in these areas.
This thesis deals with the engineering of complex software systems in terms of the agent paradigm. This paradigm is based on the notions of agent and systems of interacting agents as fundamental abstractions for designing, developing and managing at runtime typically distributed software systems. However, today the engineer often works with technologies that do not support the abstractions used in the design of the systems. For this reason the research on methodologies becomes the basic point in the scientific activity.
Currently most agent-oriented methodologies are supported by small teams of academic researchers, and as a result, most of them are in an early stage and still in the first context of mostly “academic” approaches for agent-oriented systems development. Moreover, such methodologies are not well documented and very often defined and presented only by focusing on specific aspects of the methodology. The role played by meta-models becomes fundamental for comparing and evaluating the methodologies. In fact a meta-model specifies the concepts, rules and relationships used to define methodologies. Although it is possible to describe a methodology without an explicit meta-model, formalising the underpinning ideas of the methodology in question is valuable when checking its consistency or planning extensions or modifications. A good meta-model must address all the different aspects of a methodology, i.e. the process to be followed, the work products to be generated and those responsible for making all this happen. In turn, specifying the work products that must be developed implies defining the basic modelling building blocks from which they are built.
As a building block, the agent abstraction alone is not enough to fully model all the aspects related to multi-agent systems in a natural way. In particular, different perspectives exist on the role that environment plays within agent systems: however, it is clear at least that all non-agent elements of a multi-agent system are typically considered to be part of the multi-agent system environment.
The key role of environment as a first-class abstraction in the engineering of multi-agent system is today generally acknowledged in the multi-agent system community, so environment should be explicitly accounted for in the engineering of multi-agent system, working as a new design dimension for agent-oriented methodologies. At least two main ingredients shape the environment: environment abstractions — entities of the environment encapsulating some functions —, and topology abstractions — entities of environment that represent the (either logical or physical) spatial structure.
In addition, the engineering of non-trivial multi-agent systems requires principles and mechanisms for supporting the management of the system representation complexity. These principles lead to the adoption of a multi-layered description,
which could be used by designers to provide different levels of abstraction over multi-agent systems.
The research in these fields has lead to the formulation of a new version of the SODA methodology where environment abstractions and layering principles are exploited for engineering multi-agent systems.
keywords
Multi-agent Systems, Agent-oriented Software Engineering, Agent-oriented Methodologies, Environment, Infrastructures, Meta-models, Layering Principle, SODA
works as
reference publication for talk