Department of Systems and Computer Engineering

Original Description of the TRIO Project:

High-Level Design and Prototyping of Agent Systems Project

Principal investigator R.J.A. Buhr

We are in the Department of Systems and Computer Engineering at Carleton University, in Ottawa, Canada. This project performs fundamental research into methods for high level design and prototyping of agent system software. We develop high level techniques and methods that will enable the design to flow systematically from requirements, support extensibility to accommodate new requirements, and result in overall system behaviour that is desired, constrained, controllable, stable, responsive, and predictable.

Below you will find

Current and Future Objectives


Short and Long-term


Area of Research / Background

Agent systems have emerged as a potential solution to the problem of constructing flexible network software. The problem is the impossibility of building an entire system around predefined requirements for application functionality, user interactions, communication protocols, available resources, current technology, and so forth. All of these things may change over time. The agent solution is to build intelligence into special system components called agents, to enable them to work at a metalevel, compared to ordinary software, that will enable them to adapt and evolve. The result is flexible, but has a degree of fluidity at the whole system level that yields a very complex system picture when viewed from a conventional software perspective.

As an example of the property of fluidity, multiagent systems may modify their structure while they are running, meaning that agents may be created and destroyed, visibility of fixed agents to other agents may change over time, and mobile agents may move from site to site. Such system self modification is one of the ways multiagent systems adapt to changing circumstances. The effect is complex because self modification is intertwined with ordinary interagent collaboration and agent operation.

The agent community may be said to be taking the following approach to dealing with the complexity issue: Design individual agents for adaptation and evolution (using metalevel agent concepts for heavyweight agents), implement the result in code, and then stand back and hope that satisfactory behaviour will emerge at the system level. Examples of intended system behaviour may be provided, but using techniques that yield complex and unwieldy system descriptions, do not scale, and do not yield sufficient insight into system properties. For example, presenters of agent systems at the PAAM97 agent conference typically solved the problem of explaining their systems by displaying sequences of box-arrow diagrams, in the style of object interaction diagrams that are popularly used for software design. The boxes represented agents and the arrows represented message paths. Each diagram provided a snapshot of a particular system configuration and a sequence of different snapshots indicated that the system was intended to be self modifying between the snapshots. In addition to the undesirable characteristics enumerated above, this approach is also unsatisfyingly incomplete because the means of self modification is hidden between snapshots.

Murray Woodside has pointed out that software performance engineers get complex and unwieldy descriptions when conventional performance models are applied to self modifying systems.

This project aims to work at the design problem from both ends: Work at the system level with high level descriptions that are more abstract than the style of box-arrow description described above, work at the individual agent level with well known agent metamodels (or extensions of them), and bring the two together with new conceptual glue and supporting tools. The intent is not sweep everything away and start anew, but to supplement conventional techniques from the agent domain and the software engineering domain with new techniques that give a clearer system picture. To be practically useful, the new techniques must be lightweight enough to capture a bird's eye view of whole systems in a compact fashion.

We are starting with Use Case Maps as our initial high level design approach because they provide a bird's eye view of multiagent collaboration and system self modification that both identifies them as separate system issues, in a way that current software design techniques do not, and also allows them to be freely combined in a high level way. UCMs combining these issues are easy for humans to understand and construct, do scale up, are a starting point for detailed design in more conventional terms, and do give an overview of system behaviour in a more understandable and light weight way than by piecing together details. Work on this approach was in progress before this project started (an ISRP and other research), is showing promise, and will be accelerated by this project. We think a process that starts from UCMs will ensure a measure of controllability of the results, by constraining emergent behaviour to follow specified requirements, rather than simply allowing behaviour to emerge from the details and hoping for the best. We hope that a UCM-based approach will help customers and system designers to communicate better about requirements, provide a systematic starting point for transforming requirements into designs using standard techniques, and help with system evolution by providing a high level reference for understanding the system.

Applications will be selected to characterize difficult issues, such as the need for conflict resolution, or the existence of strong system self modification. We have provisionally identified two examples for initial exploration, each of which characterizes one of these issues. Feature interaction in telephony may be used to explore conflict resolution through means such as negotiation, jurisdictional control, and contracts (this example is currently being developed in collaboration with Mitel). Agent support for system self-configuration (e.g., plug-and-play peripherals) may be used to explore strong system self modification (we intend to develop this example in collaboration with Bernie Pagurek's Trio project on agents). Other applications will be identified and investigated as the project progresses.

Achievements to Date

This is a new project, so no achievements yet, but project is built on developing momentum in agents:

Research Description 1997/98

(Participation of coinvestigators is identified under paragraph 9)

  1. Develop an initial experimental facility in three parts:
  2. Define and perform case studies of example applications, with the help of industrial partners. This requires first preparing a description of the application that would be usable by graduate students and other researchers. The case studies will at least include the examples used for developing the initial ideas and tools. They should include strong elements of adaptation and self modification, because these are aspects that uniquely characterize agent systems and that cause difficulty for conventional methods. Responsibility: All researchers.
  3. Train the project research engineer in the use of the experimental facility so the engineer can support subsequent research by faculty and students. Responsibility: Daniel Amyot (self-trained through the work on item 1).
  4. Determine and document how to use the experimental facility to experiment with agent system issues. Responsibility: Daniel Amyot.
  5. Through case studies, develop design patterns, architectures, unifying principles, and methods, and document them for industrial use. Because the agents overlap so many fields, develop a glossary of terminology. Responsibility: All researchers.
  6. Work with industrial partners and other Trio thrusts to transfer the research ideas to applications. With Mitel, this will continue work already started in relation to their CATA prototypes.
  7. As this is a new area for many TRIO companies, a special effort will be made to develop new partnerships in agent software design, in industry and with other researchers. As part of this effort, open meetings will be held approximately every six months among researchers, collaborators, and interested Trio members. The first such meeting was held on May 15, 97, shortly after funding for the project was announced, and attracted twenty participants. A second meeting is planned for mid-fall with an enlarged invitation list.
  8. Investigate for future use other prototyping frameworks than the MICMAC/Java combination proposed for the initial A. PART1. Responsibility: Initially a background activity with no identified milestones, but hope to enlist students to investigate.
  9. Coinvestigators have identified points of contact (listed here, without attempting to be complete): Woodside, Rolia: help develop support in A. PART 1 for Angio traces. Probert: help develop support in A. PART 1 for test agents, and in all parts of A for use case trees for test specification and evaluation. Woodside, Rolia, Logrippo: help associate with UCMs in A. PART 3 a number of properties and parameters needed for research, such as, performance parameters, error recovery, quality of service, relationships between preconditions and postconditions. All coinvestigators: participate in case studies in B, with focus by Logrippo on use case design methods and linkages with ODP, by Woodside and Rolia on architectures and design patterns for performance, and by Probert on verification/validation. Actual work depends on the availability of students. Some are in prospect at University of Ottawa, but no commitments can be made yet.

Future Direction of Research

Cohesion - Linkages and Cooperation

Expected Knowledge created in 1997/98 and its Product/Service Implication

Deliverables to Industry

Benefits to Academia

Co-Investigators and all other Personnel

1997/98 Milestones

  1. August 97 - By hand workthrough of UCMs-to-agent logic for a small sample.
  2. August 97 - Case study application system defined.
  3. October 97 - MICMAC testbed installation/familiarization complete.
  4. October 97 - Research engineering training completed.
  5. December 97 - Facility usage defined.
  6. January 98 - Full integration of UCM tool with the testbed.
  7. February 98 - First design/prototyping case study completed.
  8. April 98 - First results on design patterns, architectures, unifying principles and methods, written up and transferred to industrial partners.
  9. April 98 - New working partnerships established.

Selected References

  1. R.J.A. Buhr, "Use Case Maps Updated: A Simple Notation to Help Humans Understand and Architect the Emergent Behaviour of Large, Complex, Self Modifying Systems", Carleton report (extract from a chapter on a forthcoming ACM book on OO methods and applications)
  2. R.J.A. Buhr, M. Elammari, T. Gray, S. Mankovski, D. Pinard, "A High Level Visual Notation for Understanding and Designing Collaborative, Adaptive Behaviour in Multiagent Systems",
  3. R.J.A. Buhr, Understanding Macroscopic Behaviour Patterns in Object-Oriented Frameworks, with Use Case Maps, chapter of a forthcoming Wiley book on "OO Application Frameworks".
  4. F. Bordeleau and R.J.A. Buhr, "The UCM-ROOM Design Method: from Use Case Maps to Communicating State Machines, Conference on the Engineering of Computer-Based Systems, Monterey, March 97.
  5. R.J.A. Buhr, A. Hubbard, Use Case Maps for Engineering Real Time and Distributed Computer Systems: A Case Study of an ACE Framework Application, 30th Hawaii International Conference on System Science, Jan 97.
  6. R.J.A. Buhr, Design Patterns at Different Scales, presented at PLoP96, Allerton Park Illinois, Sep 96.
  7. R.J.A. Buhr, Use Case Maps for Attributing Behaviour to Architecture, Fourth International Workshop on Parallel and Distributed Real Time Systems (WPDRTS), April 15-16, 1996, Honolulu, Hawaii,
  8. R.J.A. Buhr, R.S. Casselman, T.W. Pearce, Design Patterns with Use Case Maps: A Case Study in Re-engineering an Object-Oriented Framework,

Related Standards, Tools, and Platforms

UCM - Agents Group

Last modified: Oct. 15 EDT 1997