The MASSIVE Method Views Process

The MASSIVE Method

Agents and multiagent systems are being increasingly used in the software industry, but existing software development methods are often not suited for such highly complex and dynamic systems. Thus, new methods are needed in order to establish agent technology in an industrial context.

It is the goal of agentlab to provide a development method for multiagent systems that satisfies industrial needs for clearly specified product and process models that can be readily used by software engineers for a better understanding and modeling of agent-based systems.

We propose a pragmatic method for the development of multiagent systems that is requirements-driven, view-oriented and iterative. The Multi Agent SystemS Iterative View Engineering (MASSIVE) development method provides a multiagent system specific product model that is used to describe the design and the implementation of the target system, a macro process model that covers the entire life cycle of the system development as well as several micro process models that are used to describe particular aspects of the target system. An organizational framework supports learning and reuse over project boundaries and allows the project management to configure the process and product models of a particular project.

top

MASSIVE Views

The MASSIVE method consists of three major parts. The core of the method is a system of views that form the conceptual basis for a wide range of product models that are developed and refined throughout various software projects. A view represents a set of conceptually linked features of the target system, ie. a view is a projection of the complete model onto a particular subject. Ideally, the target system can be decomposed into several independent units with well defined interfaces that are explicitly modeled in order to clarify the interdependencies that exist within the model. In the MASSIVE method, we propose a system that consists of seven views.

Environment view In this view, the environment of the target system is analyzed from the developers perspective as well as from the systems perspective. These two perspectives usually differ as the developer has global knowledge whereas the system has only local knowledge. In the RoboCup domain, for example, the developer has access to the complete state of the system and its environment and this state is completely deterministic from this point-of-view. From the perspective of the individual agent within the system, on the other hand, only parts of the environment are accessible and the state transitions appear to be nondeterministic because of ongoing activities that cannot be perceived by the agent.

top

Task view In the Task view, the functional aspects of the target system are analyzed and a task hierarchy is generated that is then used to determine the basic problem solving capabilities of the entities in the final system. Furthermore, the nonfunctional requirements of the target system are defined and quantified as far as possible. Note that this view does not assume that a multiagent approach is used for the final system and therefore provides a rather high-level analysis of the problem. In the case of a compiler application, for example, the basic functional requirement is that the system translates a program specified in a high-level language to a particular assembly language. The quality of the resulting code or the maximal tolerable time for the compilation are nonfunctional requirements and the basic problem solving capabilities are for example lexical analysis or code generation.

top

Role view This view determines the functional aggregation of the basic problem solving capabilities according to the physical constraints of the target system. A role is an abstraction that links the domain dependent part of the application to the agent technology that solves the problem under consideration. In my view, an agent consists of one or more role descriptions and an architecture that is capable of executing these role models which makes it important to aggregate the basic capabilities according to physical constraints. In a robotics application for a storage area, for example, we may find robots that are capable of carrying containers from one area to another and others that are capable of stacking containers onto each other. Therefore, the roles of ``carrier'' and ``stacker'' cannot be assigned to a single agent because of the physical constraints of the robots unless a third sort of robot exists that can execute both basic problem solving capabilities.

top

Interaction view Interaction is a fundamental concept for a system that consists of multiple independent entities that coordinate themselves in order to achieve their individual as well as their joint goals. In this view, interaction within the target system is seen as a generalized form of conflict resolution that is not limited to a particular form such as communication. Instead, several generic forms of interaction exist that can be instantiated in a wide variety of contexts. The developer is encouraged to analyze the target problem with respect to the applicability of these generic forms before designing new forms. The most popular example for interaction is of course a communication protocol, simply because communication protocols have been studied for quite some time. However, multiagent systems that simulate physical environments or real physical multiagent systems such as robots or machines have many other possibilities of interaction besides communication and these forms of interaction must be allowed for in a general purpose method as well.

top

Society view A society is a structured collection of entities that pursue a common goal. The goal of this view is to classify the society that either pre-exists within the organizational context of the system or that is desirable from the point-of-view of the system developer. According to this classification and to well defined quality measures for the performance of the target society that depend on application specific aspects, a society model is developed that is consistent with the roles within the society and that achieves the defined goals. To illustrate how the quality measure affects the desirable society structure, consider, for example, Internet trading. In order to achieve the best trade, the number of participants in the trading process should be rather high in order to increase the chance of finding a profitable trade. On the other hand, a high number of participants also increases the computational and communicational overhead and thus a clustering of trading agents would increase the communicational and computational efficiency of the system. The final structure of the agent society (flat or clustered) thus depends on the quality measures (quality of the solution vs. efficiency).

top

Architecture view The Architecture view is a projection of the target system onto the fundamental structural attributes with respect to the system design. The major aspects that are dealt with in this view are the system architecture as a whole and -- due to the size and complexity of this particular aspect -- the agent architecture. The system architecture is described according to various aspects and includes things such as agent management or database integration. The required agent architecture is characterized according to the requirements of the problem to be solved and it is strongly recommended that the system developer should at first try to select one of the numerous existing architectures before trying to develop a new architecture from scratch. An important aspect that has to be dealt with in this view is to find the appropriate segregation between agents and objects. Just because agents provide a means for structuring a problem does not mean that they are necessarily the best means to do so. Sometimes, it is better to implement particular abstractions as ordinary objects and thereby increase the system performance by avoiding the inevitable overhead associated with turning an object into an agent.

top

System view This view, finally, deals with systems aspects that affect several of the other views or even the system as a whole. The System view, for example, handles the user interface that controls the interaction between the system and the user(s) whose the task specific aspects are usually the input specification and the output presentation whereas task independent aspects deal with the visualization of the system activities in order to enable the user to follow the ongoing computations and interactions. Other aspects that are described in this view are the system-wide error-handling strategy, performance engineering and the system deployment once it has been developed.

top

The MASSIVE Process Model

The main idea of the suggested process model is an Iterative View Engineering approach that is itself based on Iterative Enhancement and Round-trip Engineering. The overall process model contains itself several small micro models that are used for individual tasks within the design process for a particular view. The advantages of this life-cycle model are that it can deal with an incomplete problem specification because of the Iterative Enhancement approach. The model is also useful for early risk detection because parts of the model are incrementally implemented and can direct the project managers view to critical regions.


The MASSIVE Macro Process

The micro models as well as the overall process model are in not fixed for the entire lifetime of the project model. Just like the views discussed earlier, they are also subject to changes and refinements during the course of time. In order to preserve these adaptations and to make them accessible to others, the process model and the product model are both embedded into a larger organizational structure called the Experience Factory. The Experience Factory provides the formal framework for a permanent learning process over project boundaries that eventually captures the multiagent experience of organization in terms of specific product and process models for various domains.

The MASSIVE method has evolved over several years and it has been successfully applied and refined in different types of multiagent systems among others for cost optimization in railroad transport, intermodal route planning and an agent-based library for distributed search applications.

top