Meta-models, environment and layers: agent-oriented engineering of complex systems

   page       attach   

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 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 dening 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 en-
 gineering multi-agent systems.