# INGENIAS

INGENIAS (Engineering for Software Agents) is an open-source software framework for the analysis, design and implementation of multi-agent systems (MAS).

## Technical approach

It adopts since its inception a model-driven engineering (MDE) approach. Model-driven engineering (MDE) organizes developments around the specification of systems through models that are automatically transformed to generate other artifacts, e.g., code, tests, or documentation. INGENIAS follows these principles specifying the MAS meta-models that define its modeling language and allow generating automatically its development tools distributed as the INGENIAS Development Kit (IDK). The INGENME framework, developed as part of the INGENIAS research line, supports this automated development from meta-models of model editors, modules for checking and validation, and generators for code, tests, and documentation.

## Details

The INGENIAS approach based on MDE supports research in different areas characterized by the use of modeling languages and requiring flexibility to adapt these to new requirements. In particular, it has been very successful in the areas of Software Agents and Agent-based simulation.
The agent paradigm uses the concept of agent as the basis to develop complex software systems. The field is fairly fragmented with different approaches on how to apply agents and perspectives on the agent concept itself. In this context, INGENIAS emerged as an integrative approach able to support the simultaneous use of different works. This use is based in the facilities to develop new version of its modeling language. The addition, modification, or deletion of concepts just requires modifying its meta-models and then regenerating the development tools using INGENME. This allows researchers focusing on the theoretical tasks of deciding what are the relevant concepts, relationships and attributes of their work, as the infrastructure generates the support tools for their application.
This flexibility has facilitated that INGENIAS addressed new extensions over the years. Two of them are of particular relevance. INGENIAS development process has been one of the few processes of agent-oriented methodologies in having their development process formally specified with SPEM, a language of the Object Management Group (OMG). Currently, there is one development process based on the Unified Process and another based on Scrum. It also incorporated research on requirements elicitation from an organizational perspective. This work adopts the Activity Theory framework from Social Sciences to develop a modeling language for requirements with a holistic perspective of organizations and their systems, as well as several semi-automated processes for the elicitation and validation of these requirements.
The continuous revision of the INGENIAS modeling language and the tools for its application have made of it one of the most popular methodologies in the literature and actually applied by researchers and engineers. It has been repeatedly included in relevant surveys and comparisons in the field (according to Google Scholar, Elsevier's Scopus and Thomson ISI's Web of Knowledge), e.g., Brian Henderson-Sellers and Paolo Giorgini (2005) or Beydoun et al. (2009). Its open-source tools organized in the IDK are also very successful in the agent community, as assessed by their number of downloads. INGENIAS gained the best demo award in the AAMAS 2008 celebrated in Estoril (Portugal).