Multiagent Systems Engineering

This research project attempts to define a methodology for designing and developing multi-agent systems (MAS). In this project we draw from the legacy of object-oriented methodologies such as Rumbaugh's Object Modeling Technique (OMT) and the Unified Modeling Language (UML). Basically, we will extend the concept of object-orientation to multi-agent systems.

While similar to objects, agents are typically defined to have traits such as autonomy, cooperation, perception, and pro-activeness that imply characteristics objects generally do not have. There are two basic differences:

Looking at the characteristics mentioned above, it seems obvious that we can model agents as "active objects", or, in other words, an object with goals. We will base our approach on existing object-oriented analysis and design techniques such as OMT and UML and will add additional features (such as goals, sensors, and effectors) and modify existing OO notations to take on agent specific semantics.

The primary focus of MaSE is to help a designer take an initial set of requirements and analyze, design, and implement a working multiagent system. This methodology is the foundation for the agentTool development system, which also serves as a validation platform and a proof of concept. The agentTool system is a graphically-based, fully interactive software engineering tool for the MaSE methodology. agentTool supports the analysis and design in each of the seven MaSE steps as well as automatic verification of inter-agent communications and code generation for multiple multiagent system frameworks.

Outline of MaSE models and steps

Figure 1. MaSE Phases

The MaSE methodology, as well as agentTool, is independent of any particular agent architecture, programming language, or communication framework. The focus of our work is on building heterogeneous multiagent systems. We can implement a multiagent system designed in MaSE in several different ways from the same design. The MaSE methodology is a specialization of more traditional software engineering methodologies. The general operation of MaSE follows the phases and steps shown on the right side of Figure 1. The MaSE Analysis phase consists of three steps: Capturing Goals, Applying Use Cases, and Refining Roles. The Design phase has four steps: Creating Agent Classes, Constructing Conversations, Assembling Agent Classes, and System Design. The rounded rectangles denote the MaSE models used to capture the output of each step while the arrows between them show how the models affect each other. While we have drawn it as a single flow from top to bottom, with the models created in one step being the inputs for subsequent steps, in practice the methodology is iterative. The intent is that the analyst or designer be allowed to move between steps and phases freely such that with each successive pass, additional detail is added and, eventually, a complete and consistent system design is produced. A major strength of MaSE is the ability to track changes throughout the process. Every object created during the analysis and design phases can be traced forward or backward through the different steps to other related objects. For instance, a goal derived in the Capturing Goals step can be traced to a specific role, task, and agent class. Likewise, an agent class can be traced back through tasks and roles to the system level goal it was designed to satisfy. The details of the individual steps of the analysis and design phases are discussed in the paper Multiagent Systems Engineering.

Current/Future Work

Current and future focus areas include:

Related Publications