Views in General View-orinted Analysis A View System for Multiagent Systems

Views

Views in General

The terminological framework that I propose in the MASSIVE method is therefore based on so-called views. Views (sometimes also referred to as "viewpoints" or "viewports") establish to a terminological framework where each view is a representation of a different perspective onto the system. However, although all of these approaches share the same terminology, they still have different ideas of what is meant by a "view". Several different approaches to set-up generic view systems have been proposed. Balzert, for example, differentiates between four different views that a developer can have on the target system. As shown in the following figure, these four views are the Data view}, the Function view, the Dynamics view and the User Interface view. Although it is claimed that the above views can be applied to any application, I will later argue why I think that a more specific system of views that is oriented at the basic requirements of the problem class is more adequate.

Sommerville lists other possible interpretations of the term: a viewpoint is either a data source or sink within a system, a receiver of services, i.e. viewpoints are external to the system and receive system services or provide data for performing these services or it is a representation framework such as an Entity-Relationship model or a Finite-State Machine that describes a (sub-)set of the system properties.

Because of these difficulties, I have decided to approach the problem of decomposing the system into several views from the direction of the design process. During the development of the system design, the designer will soon discover that some design aspects are more closely related to one another then to other aspects. These "natural" collections of aspects seem to be characteristic for a particular class of applications and it therefore suggests itself that these empirical decompositions capture the nature of an application class quite well. For these reasons, my personal idea of a view is therefore to see a view as an collection of aspects that cross-cut functional boundaries as different representations.

Any software system is modeled in several external representations and that are manipulated by the software development process. Ideally, these different representations are semantically isomorphic and differ only in their external form although in practical situations it is a major problem to keep the different representations synchronized.

Adding, e.g. four, views to the different representations shown above, we get the following picture that shows how these views vertically cross the two representations of the target system. Views are thus a general concept of grouping things together under a common semantic concept

Ideally, the target system can be decomposed in several independent views with well defined interfaces. In MASSIVE, each view represents a set of conceptually linked aspects, a view is thus a projection of the design onto a particular subject. This interpretation is supported by results from programming experiments in cognitive psychology were it was found that different abstractions (views) are used for different sub-tasks of the software development process. A collection of views that achieves a logical decomposition of the target system is called a view system, the interfaces between the views are modeled as explicit connections.

top

View-oriented Analysis

View-oriented analysis is a two-step iterative process that is related to viewport analysis introduced elsewhere:

  1. View identification
  2. View structuring
  3. Iteration

In the first step of a view-oriented analysis, the analyst will try to identify potential views. A technique that has shown to be quite effective for this task are simple brainstorming sessions were every aspect that comes to mind and that is related to the problem area should be written down. Customers and end users should participate in these sessions as far as possible because their input is very important for starting with the right thing. In the next phase of the view analysis, the aspects that have been identified during the brainstorming sessions are grouped together according to their conceptual distance. Obviously, this is a fuzzy process as there is no real measure that can be applied to decide how related two aspects are. Nevertheless, it is usually possible to allocate each aspect to a particular conceptual abstraction and these abstractions are then the views that separate the various aspects of the system. Aspects that cannot be allocated to a particular view or that could be allocated to several views at the same time are usually a sign for a missing view. Furthermore, aspects that have been overseen earlier may become obvious later. Therefore, the entire process is iterated until a stable state is reached. A general rule in the view-oriented analysis process is that the granularity of the resulting view system should neither be too coarse nor too fine.

In the previous paragraph, I have explained view-oriented analysis as it would be done for a particular problem under consideration. But this is only one aspect where view-oriented analysis can be applied successfully. As I have said above, it is often possible to find generic view systems for entire classes of applications and here, view-oriented analysis can be used as a tool to analyze such an application class in order to find a generic view system that covers most systems in that class. In the next section, I will present such a generic view system for multiagent systems that was found during the analysis of several multiagent applications.

As an example for the view-oriented analysis, consider the above figure where I have depicted an excerpt of the analysis map that lead to the generic view system for multiagent systems. According to the previously explained process model, this analysis map is the result of a brainstorming session for the view identification process. In the second step of the view-oriented analysis, the relevant aspects of the system under consideration are grouped together according to their semantic relation. In the above figure, for example, the terms role, role assignment, capabilities and responsibilities are closely interrelated and are thus grouped together under the overall concept of a role view onto the system. Another example is the interaction view that covers things such as protocol specifications, message types and message transport. These initial groupings are then extended in subsequent iterations of the process when new aspects are discovered either by adding to existing concepts or by introducing a new general concept.

The major point in developing a general purpose view system for multiagent systems is to take specific applications and to abstract away from domain specific aspects while preserving the generic ones. The careful analysis of various application that are discussed in this book has finally lead to the generic view system that I shall present in the next section.

top

A View System for Multiagent Systems

Views are a general concept to arrange knowbbles with respect to a logical decomposition of the application class and I will now instantiate the general framework for the application class of multiagent systems. Before doing so, however, I will define some basic requirements that the resulting view system should comply to. First of all, the view system should help the designer to analyze the system with respect to the four fundamental questions: what, where, who and how? However, the focus of these questions is very broad and thus we need a more fine-grained conceptual framework that separates the aspects of the target system as far as possible and that covers all relevant aspects of the target system. As a starting point, we can use the following classification scheme for partial models:

Entity models
Entity models describe the fundamental entities that make up the target system and are thus concerned with more static aspects of the system. Common names for these models are either "Task" model for more fine-grained models, or "Role" or "Agent" model for the description on a higher level of abstraction. While some approaches make a clear distinction between these two models, others mix them up. Sometimes, architectural decisions such as an inheritance hierarchy are included in these models as well. Furthermore, while the concept of roles appears in many of the models, it usually refers to different ideas in each of them.
Dynamics models
Dynamics models, on the other hand, are intended to capture the dynamic aspects of the target system on various levels of abstraction and can be divided into two distinct classes. Models in the first class describe the dynamics-in-the-large of the multiagent system and are usually referred to either as "Interaction", "Co-operation" or "Collaboration" model. Models of the second class are usually more fine-grained and describe the problem solving mechanisms of individual agents. Common names for these models are "Capabilities", "Services" or "Plans".
Structural models
Structural models, finally, are used to either to describe the basic structure of the target system in terms of the connections between the agents or the knowledge an agent has about other agents, but also to describe the organisational context of the target system. The models of the first class are called "Society", "Organisation" or "Acquaintance" models whereas the others are referred to as "Organisation" or "Context" models.

Using the product models of the multiagent specific software develepment methods as guideline, we can derive the following requirements for a view system for multiagent systems.

Separation
Separation in this context means, that the view system should support ``separation of concern'', i.e. changes in one part of the system should affect as few other parts of system as possible. In the knowbble oriented approach I have presented in the previous section, this property can be expressed by using as few shared knowbbles as possible. Generally speaking, the view system should provide a high cohesion among the knowbbles that are grouped together in the view and achieve a low coupling with other views.
Coverage
The view system must be able to cover all aspects of the target system. For example, the view system should reflect the fact that the target system is not developed or used in isolation but rather in a well-defined development and operational context. Thus the view system must allow to specify and model not only the properties of the target system but also the properties of the environment of the target system. Furthermore, the view system must allow the designer to specify functional as well as nonfunctional properties of the target system.
Flexibility
The view system should allow the designer to model a broad range of multiagent systems ranging from multi-robot applications to systems of directly communicating software agents. Furthermore, the view system should not be limited to a particular technology, e.g. a specific agent architecture or a particular agent framework.
Size
The size of the view system is a crucial factor with respect to acceptability in the development community. If the system is too fine-grained it is likely to be too complicated to be used. If, on the other hand, the model is too coarse-grained it will not be used because it provides no added value to the designer in comparison to an unstructured approach.
Naming
The names that are used within the view system should be suggestive, i.e. they should cover the semantic attributes of the objects referred to as far as possible. They should also be distinguishable in a way that the designer is able to clearly associate a particular group of attributes with each view.

Later, we can use this set of high level requirements to assess the MASSIVE view system.

top