NUROP CONGRESS PAPER AGENT BASED SOFTWARE ENGINEERING METHODOLOGIES WONG KENG ONN 1 AND BIMLESH WADHWA 2 School of Computing, National University of Singapore 3 Science Drive 2, Singapore 117543 ABSTRACT With recent burgeoning interest in agent-based research and development, there has been a proliferation of agent-based methodologies over the past few years. Subsequently, we find a growing need to assess the various methodologies that are proposed for use in software engineering analysis and design based on a common framework. This project is a broad-based analysis and summary of 10 methodologies proposed over the last 5 years, and evaluates them according to certain criteria derived from the field of agent research and software engineering. These criteria will be further elaborated and defined, and observations as to which of them are non-discriminatory / discriminatory will be made. 1 INTRODUCTION & PAPER OUTLINE With a relatively recent flurry of research articles and papers appearing over the last decade, agent-based software research and development has been the intense focus of researchers and software engineers in recent years. Though much work has been done in this field, the agent-based software engineering paradigm can still be regarded as being in its infancy, lacking the relative maturity of other technologies and boasting of only a small number of real-world deployed agent applications (Wooldridge & Jennings, 2000). In the section 1.1, the motivation behind this paper will be discussed, section 1.2 will go into what exactly is meant by a software agent and other definitions relevant to this discussion, and section 1.3 will briefly detail how agent-based methodologies are different from old methodologies and situations which are optimal for their use. Section 2 will go into various agent methodologies proposed over the last few years, and note the 10 methodologies analysed in this paper. Section 3 will briefly describe the set of software criteria used (derived from agent characteristics and general software engineering principles), and section 3.1 will evaluate these methodologies based on this framework. Section 3.2 will note the key recurring features and discriminatory / non-discriminatory traits across these methodologies. Section 4 will conclude this paper and suggest directions in which further research could be made. 1.1 MOTIVATION 1 Student 2 Supervisor 1
In recent years, there have been a number of agent-based methodologies arriving on the scene, each claiming (to various degrees) to alleviate the dearth of development techniques in this field and provide a framework within which analysis and design of agent-based software could take place. However, there has been little consolidation and standardization amongst these proposed agent methodologies, even to the extent that common concepts like agent lack agreement (Cernuzzi and Rossi, 2002). Thus the aim of this paper is to evaluate / analyse a certain number of methodologies using a common framework and terminology, and from this analysis, abstract properties / features which are present (or absent) and (hopefully) help contribute towards establishing a common ground from which further research and development could take place. The next section will define a software agent. 1.2 WHAT IS A SOFTWARE AGENT? For the purpose of this discussion, and from what appears to be the emerging consensus amongst researchers (but by no means is a universal agreement), the definition of an agent is as follows: An agent is an encapsulated computer system that is situated in some environment, and that is capable of flexible, autonomous action in that environment in order to meet its design objectives (Wooldridge & Jennings, 2000) Unless otherwise stated, this definition will be used throughout this paper. Definitions of agent-related and software engineering-related terms like autonomous will be elaborated later in this paper in section 3.1. 1.3 SITUATIONS ESPECIALLY SUITED FOR AGENT METHODOLOGIES As opposed to object-oriented techniques and methodologies, agent methodologies appear especially suited to resolve complex, distributed problems (Wooldridge, 2000). As pointed out by some researchers (Wooldridge & Jennings, 2000) (Nwana & Ndumu, 1999), an agentcentered approach in software development is conceptually intuitive and provides mechanisms suited to construct real-world complex systems that have a large number of parts with many interactions (flexible in nature, and not passive and dumb (Nwana & Ndumu, 1999) or represent too fine a granuality of behaviour and method invocation (Wooldridge & Jennings, 2000) as typical of object-oriented methodologies), are decentralised in nature (eg. air-traffic control, distributed sensor networks) instead of having a central thread of control, and have high-level message-passing, explicitly address social issues like organisational relationships (or, relationships between the various component parts) (eg. allowing organisations to be first-class entities, peer-peer) beyond simple is-a, part-of relationships typical of object-oriented methodologies, address cooperative and/or competitive system goals (ie. higher-level objectives beyond that of component-level objectives). As shall be seen later on in this paper, these are the defining characteristics of agent methodologies. Detailed characteristics like autonomy, concurrency et al will be described in section 3.1. 2
2 CURRENT AGENT METHODOLOGIES Surveys (Iglesias, Garijo et al 1999) and evaluations (Cernuzzi and Rossi, 2000) have been conducted on agent methodologies, and the latter are observed to fall into two main categories: object oriented (OO) methodologies and knowledge engineering (KE) methodologies. The methodologies compared are Gaia, AAII (the methodology proposed by the Australian Artificial Intelligence Institute which we term AAII for short), ROADMAP (ie. Role-Oriented Analysis and Design for Multi-Agent Programming), MASCommonKADS, Styx, Tropos, Prometheus, MaSE (Multi-agent Systems Engineering), AUML, and MESSAGE (Methodology for Engineering Systems of Software Agents). Due to space constraint, individual characteristics of these methodologies will not be elaborated on. 3 EVALUATION OF METHODOLOGIES A description of the criteria (Bergenti et al, 2000) used in evaluating the various methodologies is as follows: Agent-based criteria autonomy: whether the agent is active and responsible for its actions showing proactive and reactive behaviour. complexity: whether there is provision for algorithms, computational reasoning etc. adaptability: agents are flexible in adjusting to changes to the environment. concurrency: whether control is multi-threaded and agents perform multiple activities simultaneously. communication richness: whether high-level messages (intra and inter-agent) are provided for, as well as their type and content distribution: whether the agents are located in different areas in a network initially mobility: whether the agent can transport itself to another platform or network. security and privacy: whether agents can keep their data, state or activities to themselves openness: can add or remove agents at runtime. Software engineering criteria preciseness: unambiguous semantics accessibility: ease of use (whether by expert or layman). expressiveness: whether can be applied across different domains and represent the system adequately modularity: whether the modeling technique is expressible in stages without any over-lap (ie. changes in prior stages of analysis / design) complexity management: whether there is provision for analysis at various levels of abstraction, eg. via hierarchical decomposition executability: whether rapid prototyping / simulation is possible. refinability: seamless carry-over from analysis to implementation etc analyzability: providing for consistency and coverage checking portability: architecture, language and platform independent 3
extensibility: whether roles / agent types can be extended. social / system / global laws: whether the notion of social rules / conventions is provided for (Wooldridge, Jennings, 2000) origins: where the methodology is derived from, either OO or KE etc. self-interest: whether there is provision for self-interested behaviour (ie. competitive vs cooperative behaviour). Table 1. Evaluation Criteria 3.1 EVALUATION OF CURRENT METHODOLOGIES completeness: covers the whole SDLC software development life cycle, ie. requirements analysis, software analysis and design, implementation Legend: Y Yes (it is present) N No (it is absent) U Unknown Agent-based Characteristics O-O Object-oriented KE Knowledge engineering Gaia AUML ROADMAP MAS- CommonKads Autonomy Y (role) Y Y Y Y Complexity N U Y Y N Adaptability Y Y Y Y N Concurrency N Y N Y Y Communication richness N Y N N N Distribution N Y N Y N Mobility N U N N N Security and Privacy N U Y N N Openness Y Y Y N N Extensibility N N Y N N Social laws N N Y Y Y Origins O-O O-O From Gaia. KE KE Self-interest N N Y N N Software engineering characteristics Preciseness Y Y Y Y Y Tropos 4
Accessibility Y U Y N Y Expressiveness Y N Y N N Modularity Y Y Y Y Y Complexity mgmt N Y Y Y Y Executability N Y N N Y Refinability N Y N N Y Analyzability N Y Y Y N Portability Y Y Y N N Completeness N Y N N Y Table 2. Current Methodologies (1 st to 5 th ) Due to space constraints, evaluation of the other 5 methodologies will not be elaborated here. 3.2 OBSERVATIONS / KEY TRENDS The evaluation of these 10 methodologies revealed that there were several key aspects which were non-discriminatory in nature (ie. at most one methodology differed from the rest; the others either already exhibited or did not have that aspect): agent autonomy (as expected) was dealt with, and the methodologies were generally modular and precise, however, there was little or no discussion on agent mobility, as well as non-functional issues like security and privacy, and self-interested agent behaviour. Social laws and behaviour on a system-level were not discussed for many methodologies, as well as the concept of emergence which Wooldridge and Jennings noted in their paper (Wooldridge and Jennings, 2000). Key trends would be the converging focus and consensus on central concepts like agent autonomy, roles and goals, as well as the various inter-agent as well as intra-agent interaction which lies at the center of multi-agent systems. Due to space constraint, these will not be elaborated. 4 CONCLUSION AND FURTHER RESEARCH Agent-based methodologies have yet to fully converge to a standardized form, which would mean having general terms and concepts like agent, role and interaction clearly defined. As the situation now stands, different methodologies use the same term within different contexts, and this presents difficulty in assessing and evaluating them on a uniform framework. However, certain key trends can be noted, and these could serve to spring-board research into having either a comprehensive methodology for this emerging field (much like the Rational Unified Process and UML), or they could be broken down into 2 or 3 major methodologies with minimal overlap (with respect to system objectives eg. self-interested and open systems vs closed and static systems). 5
5 REFERENCES [1] H. S. Nwana and D. T. Ndumu (1999), A Perspective on Software Agents Research, The Knowledge Engineering Review. [2] N. R. Jennings and M. Wooldridge (2000), Agent-Oriented Software Engineering, Proceedings of the 9 th European Workshop on Modeling Autonomous Agents in a Multi- Agent World: Multi-Agent System Engineering (MAAMAW-99). [3] M. Wooldridge, N. R. Jennings, and D. Kinny (2000), The Gaia Methodology for Agent- Oriented Analysis and Design, Journal of Autonomous Agents and Multi-Agent Systems 3 (3) 285-312. [4] L. Cernuzzi and G. Rossi (2002), On The Evaluation Of Agent Oriented Modelling Methods. Proceedings of Agnets Oriented Methodology workshop, Seattle, November 2002. [5] C. A. Iglesias, M. Garijo and J. C. Gonzalez (1999), A Survey of Agent-Oriented Methodologies, in: Muller, J. P. Singh, MP Rao, A.S., (Eds.): Intelligent Agents V Proceedings of the Fifth International Workshop on Agent Theories, Architectures, and Languages (ATAL-98), Lecture Notes in Artificial Intelligence. [6] T. Juan, A. Pearce, L. Sterling, ROADMAP: Extending the Gaia Methodology for Complex Open Systems. [7] C. A. Iglesias, M. Garijo and J. C. Gonzalez and J. R. Velasco (1998), Analysis and Design of Multiagent Systems using MAS-CommonKADS, Intelligent Agents IV Agent Theories,Architectures, and Languages. [8] J. Mylopoulos and J. Castro (2000), TROPOS: A Framework for Requirements-Driven Software Development, Information Systems Engineering: State of the Art and Research Themes (A. S01vberg, S. Brinkkemper, and E. Lindencrona, eds.) [9] J. Odell, H. V. D. Parunak, B. Bauer (2000), Extending UML for Agents, Proceedings of the Agent-Oriented Information Systems Workshop, pages 3--17, 2000. [10] F. Bergenti, O. Shehory, F. Zambonelli, Agent-Oriented Software Engineering. Website: http://polaris.ing.unimo.it/zambonelli/talks/easss2002.pdf. 6