ELDAMeth: A Methodology For Simulation-based Prototyping of Distributed Agent Systems Giancarlo Fortino and Wilma Russo Department of Electronics, Informatics and Systems (DEIS) University of Calabria Via P. Bucci, cubo 41C, I-87036 Rende (CS), Italy {g.fortino, w.russo}@unical.it Abstract—In application domains, such as distributed information retrieval, content management and distribution, e- Commerce, the agent-based computing paradigm has been demonstrated to be effective for the analysis, design and implementation of distributed software systems. In particular, several agent-oriented methodologies, incorporating suitable agent models, frameworks and tools, have been to date defined to support the development lifecycle of distributed agent systems (DAS). However, few of them provide effective methods for dynamic validation to analyze design objects at different degrees of refinement before their actual implementation and deployment. In this paper, ELDAMeth, a simulation-based methodology for DAS that enables rapid prototyping based on visual programming, automatic code generation and dynamic validation, is presented. ELDAMeth can be used both stand- alone for the modeling and evaluation of DAS and coupled with other agent-oriented methodologies for enhancing them with simulation-based validation. In particular, the proposed methodology is based on the ELDA (Event-driven Lightweight Distilled StateCharts-based Agents) agent model, and provides key programming abstractions (event-driven computation, multi- coordination, and coarse-grained strong mobility) very suitable for highly dynamic distributed computing and on a CASE tool- driven iterative process fully supporting the modeling, simulation, and implementation phases of DAS. A simple yet effective case study in the distributed information retrieval domain is used to illustrate the proposed methodology. Keywords – agent oriented software engineering; simulation; CASE tools; mobile agents; multi-coordination; statecharts I. INTRODUCTION The ubiquitous diffusion and usage of the Internet have promoted the development of new kinds of distributed applications characterized by a huge number of participants, high decentralization of software components and code mobility, which are typical of application domains such as distributed information retrieval, content management and distribution, and e-Commerce. In these application domains, the agent-based computing paradigm [19] has been demonstrated to be effective for the analysis, design and implementation of distributed software systems. In particular, in the context of the agent-oriented software engineering (AOSE), several agent-oriented methodologies based on suitable agent models, frameworks and tools, have been defined to support the development lifecycle of distributed agent systems (DAS). The key elements, identified through an in-depth analysis of such methodologies, for the provision of an effective development of distributed agent systems are the agent model, the development methodology and the supporting CASE tool. The agent models aim at providing abstractions for the modelling of the agent behavior and interactions. Basically they can be classified in two large groups: (i) models based on intelligent agent architectures [19, 21] ranging from reactive agents (e.g. Brook’s subsumption architecture) to deliberative agents (e.g. BDI agents); (ii) models based on the mobile active object concept encompassing mobile agent architectures [4]. Models of the first group are mainly oriented to problem- solving, planning and reasoning systems whereas models of the second group are more oriented to distributed computation in open and dynamic environments like the Internet. In the context of Internet computing, agent models and related frameworks based on lightweight architectures, asynchronous messages/events and state-based programming such as JADE [2], Bond [3], and Actors [1], have demonstrated great effectiveness for modeling and programming agent-based distributed applications. In particular, such models define suitable abstractions for the modelling of reactiveness and proactiveness of agent behaviors and interactions. However, they mainly consider messages (and related message-based protocols and infrastructures) as a means of interaction among agents and mobility as an auxiliary feature of agents. The exploitation of coordination models and infrastructures based not only on messages but also on events, tuples, blackboards and other coordination abstractions [6] can provide more effectiveness in designing complex agent interactions and more efficiency in their actual implementation. Moreover, mobility, which can provide a powerful means for dynamic organization of distributed components modeled as mobile agents, also enables and demands for new non-message-based coordination models. The agent-oriented development methodologies aim at supporting the development lifecycle of agent-based systems from analysis to deployment and maintenance. They can be classified into general-purpose and domain-specific methodologies. The general-purpose methodologies such as Gaia [27], PASSI [7], Tropos [5], Ingenias [23] are suitable for the development of multi-agent systems in different application domains whereas the domain-specific methodologies can be