Dept. of Computer Science, York University,
Toronto, ON Canada, M3J 1P3
Dept. of Computer Science, University of Toronto
Toronto, ON, Canada M5S 3G4
Agent-oriented techniques can make a substantial contribution to the implementation of information systems by providing additional functionality and better user interfaces. However in this paper, we focus on prospects for the use of agent-oriented frameworks in the early stages of the design of a system, mainly in requirements analysis. In this area, we think that agent-orientation brings several important benefits.
First, the specification of agents in terms of their mental states (beliefs, goals, commitments, etc.) allows modeling at a higher level of abstraction. By ascribing such mental attitudes to agents, we may be able to explain or predict their behavior even when we have little information about their internal control structure. Mental attitudes are also very important in understanding how the behavior of agents changes in response to changes in their environment or organization.
Secondly, in modeling the organization or environment in which a system operates, representing communication as various types of ``speech acts'' being performed by agents abstracts over the form and mechanism of messages. Moreover, analyses of multiagent cooperative problem-solving can be imported into models. As well, representations of social relations and social rules can be integrated into models.
Finally, requirements engineering tools can draw on implementation techniques for agent-oriented frameworks to provide more powerful and effective modeling and analysis techniques.
One should note that the move to agent-oriented frameworks is consistent with a long-standing recognition of the need to adequately model the organizations in which information systems operate.
We have been developing an agent-oriented modeling framework and exploring its use for modeling processes in organizations and requirements engineering. The framework is based on the language ConGolog, originally developed as a high-level language for programming robots and software agents .
In the ConGolog modeling framework, a domain is modeled logically so as to support reasoning about the specification. ConGolog's semantics is based on the situation calculus, a language of predicate logic for representing and reasoning about action.
A ConGolog model of a domain involves two components. The first component is a specification of the domain dynamics, i.e., how the states of the system are modeled, what actions may be performed by the agents, when they are possible (preconditions), what their effects are (postconditions), and what is known about the initial state of the system. The model can include a specification of the agents' mental states, i.e., what knowledge and goals they have, as well as of the dynamics of these mental states, i.e., how knowledge and goals are affected by communication actions (e.g. inform, request, cancel-request, etc.) and perception actions. This component is specified in a purely declarative way, either in the high-level Golog Domain Language (GDL), or directly in the situation calculus.
The second component of a ConGolog domain model is a specification of the behavior of the agents in the domain. Because we are interested in modeling domains involving complex processes, this component is specified procedurally. For this, we use the ConGolog process description language, which provides a rich set of constructs for specifying multiagent processes, including concurrency, priorities, interrupts, and nondeterminism. This approach aims for a middle ground between a purely intentional (i.e., mental attitudes-based) specification of agents, which allows only weak predictions to be made, and the usual kind of process specifications, which are too low-level, and don't model mental states at all.
Because of its logical foundations, ConGolog can accommodate incompletely specified models, both in the sense that the initial state of the system is not completely specified, and in the sense that the processes involved are nondeterministic and may evolve in any number of ways. These features are especially useful when one models organizational processes and open-ended real-world situations. The framework supports both simulation and verification.
The ConGolog agent modeling framework and its foundations are described in detail in ; this paper also discusses a model of a simple multiagent application for scheduling office meetings. A discussion of how the process modeling features of the framework are used for requirements engineering appears in ; this paper also presents the support tools that are being developed. In , the framework in  is extended to support the modeling of goals and a simpler account of communication acts is developed.
Simulation is a useful method for validating domain models. We have developed a tool for incrementally generating execution traces of ConGolog process specifications. This tool can be used to check whether a model executes as expected in various conditions. Our simulation tool is based on a logic programming technology implementation of the ConGolog framework. It involves three main components:
The logic programming technology implementation of the ConGolog framework is fairly efficient and can be used for both simulation and for deploying actual applications when one provides implementations for the actions used. However, the current implementation is limited to specifications of the initial situation that can be represented as logic programs, which are essentially closed-world theories. This is a limitation of the logic programming implementation, not the ConGolog framework. This implementation also does not currently support the representation of mental states. We are working on extensions to remedy this and to support limited types of incompleteness.
One may be interested in verifying that the processes in a domain satisfy certain properties. The ConGolog framework supports this through its logic-based semantics. A user-assisted verification tool that can handle arbitrary ConGolog theories, including theories with incompletely specified initial situations and specifications of agents' mental states, is being developed. The tool provides high-level proof steps, in the PVS verification system, designed to facilitate the verification of properties of ConGolog process specifications. PVS itself provides an Emacs-based user interface, a graphical display of the proof tree, and useful proof-management functionality.
The most pressing task for future research is to complete the development of the ConGolog verification tool so that it can support a designer in verifying properties of process specifications. Even though ConGolog has been used to model and analyze several example domains, we plan to experiment with the scalability of the ConGolog tools by trying them out on larger and more realistic examples. We are currently using the ConGolog framework to model a complex multiagent system proposed by Griffeth and Velthuijsen  for resolving feature interactions in telecommunication applications. We are also investigating ways of combining the ConGolog framework with the i* design rationale modeling formalism described in .