The PRACTIONIST Development Tool Fabio Centineo * , Angelo Marguglio * Vito Morreale * Michele Puccio * , * R&D Laboratory - ENGINEERING Ingegneria Informatica S.p.A. I. THE PRACTIONIST SUITE PRACTIONIST (PRACTIcal reasONIng sySTem) [1] is a suite of tools including (see figure 1): (i) a methodology, consisting of a UML-based modelling language (PAML) and an iterative and incremental development process, (ii) the PRACTIONIST runtime and framework (PRF), which defines and supports the execution logic and provides the built- in components according to such a logic to support the development of BDI agents in Java (using JADE 1 ) with a Prolog belief base, and (iii) the PRACTIONIST Develop- ment Tool (PDT), a design and development environment which supports the methodology. The PRF also includes the PAIT, to monitor the intentional components of each agent and the PRACTIONIST Autonomic Manager (PAM) which enables PRACTIONIST applications to support the self-chop features 2 (self-configuring, self-healing, self-optimizing and self-protecting) In this abstract we give an overview of the PDT, the modelling environment that is a part of the PRACTIONIST suite (figure 1), the metamodel it is built on, and a brief introduction of the PDT visual editors. II. THE PRACTIONIST DEVELOPMENT TOOL The PRACTIONIST suite provides developers with the PRACTIONIST Development Tool, a tool to design and develop multi-agent systems according to the PRACTIONIST design methodology. Indeed, it supports such a methodology from the requirements analysis to the code generation of agents and artefacts (according to the A2A approach [2]), including a set of visual editors for each phase of the methodology. As an example, in figure 2 a snapshot of the Class editor is shown. Some editors of the PDT are based on UML 2.0 meta- model 3 , such as the class and use case editors, whereas the others are based on the PRACTIONIST Agent Modeling Language (PAML), which is a semi-formal UML-based visual modeling language for specifying, representing and document- ing multi-agent systems designed with PRACTIONIST. As the PAML aims to the definition of PRACTIONIST agents, its metamodel contains metaclasses to model inten- tional components of such agents, such as beliefs, goals and relations among them, plans and so forth. The PDT has been developed by using several Eclipse 4 plug-ins, such as: UML2, Eclipse Modelling Framework 1 http://jade.tilab.com 2 http://www-03.ibm.com/autonomic/library.html 3 UML 2.0 Superstructure Specification: formal/05-07-04 4 http://www.eclipse.org/ Development Process UML i* notation PAML PRACTIONIST Methodology Eclipse PRACTIONIST Development Tool (PDT) PRACTIONIST Code Generator PRACTIONIST Packages Java Prolog (SWI, TuProlog) PRACTIONIST Runtime & Framework PAIT PAM PRACTIONIST Modelling Editors Fig. 1. The PRACTIONIST suite. (EMF), Graphical Editing Framework (GEF), Graphical Mod- eling Framework (GMF) and other Eclipse extensibility fea- tures. All the PDT editors share a common infrastructure, so that new editors can be added in it without any impact on the existing ones. Moreover, each editor inherits several features described below by the above infrastructure. As many well-known CASE tools, the PDT editors provide all the features that support the development of complete and consistent visual models. Some of them are provided by GMF, such as the cut and copy and save diagram as image supports, the look and feel management, the diagram validation and so on, whereas the other ones have been built by generalizing some of the GMF project features, such as: Unified model: all diagrams created inside a PRACTION- IST project share the same model (i.e. an instance of the meta-model), whereas each generic GMF diagram file has usually its own model file. Sharing the same model file means sharing the same command stack, allowing us to execute cross-checks among elements and consequently model more complex and greater systems as a whole; Drag and Drop support: a PRACTIONIST project has its own model view, where the developed model is displayed as a tree. From this view it is possible to drag and drop the elements into diagrams, enabling us to use the same elements in different diagrams as well. Thus, if an element is modified in a diagram, it will be updated in all the other diagrams.