1 Extending UML for Agents James Odell James Odell Associates 3646 W. Huron River Dr. Ann Arbor, MI 48103 Tel: +1 (734) 994-0833 jodell@compuserve.com www.jamesodell.com H. Van Dyke Parunak ERIM Center for Elec. Commerce P.O. Box 134001 Ann Arbor, MI 48113 Tel: +1 (734) 623-2509 vparunak@erim.org www.erim.org/~vparunak Bernhard Bauer Siemens ZT IK 6 D-81730 München Tel: +49 (89) 6 36-5 06 54 bernhard.bauer@ mchp.siemens.de ABSTRACT Gaining wide acceptance for the use of agents in industry requires both relating it to the nearest antecedent technology (object-oriented software development) and using artifacts to support the development environment throughout the full system lifecycle. We address both of these requirements in this paper by describing some of the most common requirements for modeling agents and agent-based systems—using a set of UML idioms and extensions. This paper illustrates the approach by presenting a three-layer AUML representation for agent interaction protocols and concludes by including other useful agent-based extensions to UML. Keywords Agents, UML, interaction protocols, AUML, design artifacts, software engineering. 1. INTRODUCTION Successful industrial deployment of agent technology requires techniques that reduce the risk inherent in any new technology. Two ways that reduce risk in the eyes of potential adopters are: • to present the new technology as an incremental extension of known and trusted methods, and • to provide explicit engineering tools that support industry-accepted methods of technology deployment. We apply both of these risk-reduction insights to agents. To leverage the acceptance of existing technology, we present agents as an extension of active objects, exhibiting both dynamic autonomy (the ability to initiate action without external invocation) and deterministic autonomy (the ability to refuse or modify an external request). Thus, our basic definition of an agent is “an object that can say ‘go’ (dynamic autonomy) and ‘no’ (deterministic autonomy).” This approach leads us to focus on fairly fine-grained agents. More sophisticated capabilities can also be added, such as mobility, BDI mechanisms, and explicit modeling of other agents. Such capabilities are extensions to our basic agents, that is, they can be applied where needed, but are not diagnostic of agenthood. Accepted methods of industrial software development depend on standard representations for artifacts to support the analysis, specification, and design of agent software. Three characteristics of industrial software development require the disciplined development of artifacts throughout the software lifecycle. The scope of industrial software projects is much larger than typical academic research efforts, involving many more people across a longer period of time, and artifacts facilitate communication. The skills of developers are focused more on development methodology than on tracking the latest agent techniques, and artifacts can help codify best practice. The success criteria for industrial projects require traceability between initial requirements and the final deliverable—a task that artifacts directly support. The Unified Modeling Language (UML) is gaining wide acceptance for the representation of engineering artifacts in object-oriented software. Our view of agents as the next step beyond objects leads us to explore extensions to UML and idioms within UML to accommodate the distinctive requirements of agents. The result is an Agent UML (AUML). 1 Section 2 provides background information on agent design methods in general, on UML, and on the need for AUML. Section 3 introduces a layered approach to representing agent protocols in AUML. Templates and packages provide a high-level summary (Section 4), sequence diagrams and collaboration diagrams furnish alternative views of the interactions among agents (Section 5), and state diagrams and activity diagrams detail the internal behavior of individual agents in executing protocols (Section 6). Section 7 proposes some other UML extensions that represent several commonly used notions employed by the agent community. 1 Note: Many of the features required by agents and agent-based systems are also—independently—cited as useful by objects and object- oriented systems. As such, many of the extensions suggested in this paper would be in harmony with many of the new features suggested for OO development.