Model-driven engineering techniques for the development of multi-agent systems Jose ´ M. Gascuen ˜a a , Elena Navarro a,b , Antonio Ferna ´ ndez-Caballero a,b,n a Instituto de Investigacio ´n en Informa ´tica de Albacete (I3A), 02071 Albacete, Spain b Departamento de Sistemas Informa ´ticos, Universidad de Castilla-La Mancha, 02071 Albacete, Spain article info Article history: Received 8 June 2010 Received in revised form 4 July 2011 Accepted 22 August 2011 Available online 9 September 2011 Keywords: Agent-based method Model-driven development Meta-modeling MDE-MAS method and tool Agent-oriented software development Multi-agent systems Surveillance systems Eclipse-Modelling Framework Graphical Modelling Framework abstract Model-driven engineering (MDE), implicitly based upon meta-model principles, is gaining more and more attention in software systems due to its inherent benefits. Its use normally improves the quality of the developed systems in terms of productivity, portability, inter-operability and maintenance. Therefore, its exploitation for the development of multi-agent systems (MAS) emerges in a natural way. In this paper, agent-oriented software development (AOSD) and MDE paradigms are fully integrated for the development of MAS. Meta-modeling techniques are explicitly used to speed up several phases of the process. The Prometheus methodology is used for the purpose of validating the proposal. The meta- object facility (MOF) architecture is used as a guideline for developing a MAS editor according to the language provided by Prometheus methodology. Firstly, an Ecore meta-model for Prometheus language is developed. Ecore is a powerful tool for designing model-driven architectures (MDA). Next, facilities provided by the Graphical Modeling Framework (GMF) are used to generate the graphical editor. It offers support to develop agent models conform to the meta-model specified. Afterwards, it is also described how an agent code generator can be developed. In this way, code is automatically generated using as input the model specified with the graphical editor. A case of study validates the method put in practice for the development of a multi-agent surveillance system. & 2011 Elsevier Ltd. All rights reserved. 1. Introduction Currently, the use of the model-driven engineering (MDE) approach throughout the software development process is gain- ing more and more attention (Gasevic et al., 2009). MDE concerns the exploitation of models as the cornerstone of the software development process. It allows both developers and stakeholders to use abstractions closer to the domain than to computing concepts. Thus, it reduces the complexity and improves the communication. As the main aim of MDE is to develop software, this paradigm uses software models as their expression vehicle. Sometimes, models are constructed to a certain level of detail, and then code is written by hand in a separate step. Some other times (most often) code is automatically generated from the models, ranging from code skeletons to completely deployable products. Usually, these models are specified by instantiating meta-models, that is, models to describe models. The basic idea of meta-model is to identify the general concepts in a given problem domain and the relations used to describe models. This serves as a strategy that forces a clear distinction between the real problem to be solved by the system and the framework where the model lives. The use of MDE has the following consequences for a software development process. (1) More time can be devoted to analyzing and designing models. (2) The time necessary to perform coding tasks is reduced, as code generators are usually available to carry them out in an automatic way. The programmers are responsible for completing those parts of the system that developers either have decided not to generate or cannot do. (3) The quality of the developed system is improved, as the generated code (usually) does not have bugs. And, (4) productivity is improved as the time necessary for coding is reduced. More effort is devoted to solve errors during early phases of the life cycle, avoiding in this way the ‘‘snow ball’’ effect (Pressman, 2010). Moreover, MDE provides inter-operability among heterogeneous systems thanks to the specification of bridges between different technologies. Portabil- ity is also improved to adopt a new technology, just developing a new code generator, as the models are independent of any technology. In summary, MDE offers important benefits in aspects as important as productivity, portability, inter-operability and maintenance (Kleppe et al., 2003). In contrast, MDE also demonstrates some drawbacks (Mattsson et al., 2009). Although MDE automates the steps from detailed design to implementation, as described before, at present Contents lists available at SciVerse ScienceDirect journal homepage: www.elsevier.com/locate/engappai Engineering Applications of Artificial Intelligence 0952-1976/$ - see front matter & 2011 Elsevier Ltd. All rights reserved. doi:10.1016/j.engappai.2011.08.008 n Corresponding author at: Departamento de Sistemas Informa ´ ticos, Universidad de Castilla-La Mancha, 02071 Albacete, Spain. Tel.: þ34 967 599200; fax: þ34 967 599224. E-mail address: Antonio.Fdez@uclm.es (A. Ferna ´ ndez-Caballero). Engineering Applications of Artificial Intelligence 25 (2012) 159–173