Lines of Research Software Engineering / MDE

Model-Driven Engineering (MDE)

Model-driven engineering (MDE) is an example of software development that is focused on creating and using domain models (meaning abstract representations of the knowledge and activities that govern a particular application domain) and not using traditional computer concepts (algorithms).

The intention of the MDE focus is to increase productivity by maximising the compatibility between systems (through the re-use of standardised models), which simplifies the design process (through models of recurring design patterns in the application domain), and by promoting communication between the individuals and teams working on a system (through standardisation of the processes, terminology and best practices used in the application domain). 

Within this broad definition, our line of research is focused on practical application of the MDE approach at the process level (Model-based process engineering) and product level (Model-based software engineering) and at the practical level in industry.

This line pursues work in the following fields, as it is applied to processes:

  • The definition and execution of software and logistics processes.
  • The development of distributed and cooperative systems (Global Software Engineering).
  • Making collaborative decisions (as it is applied to the development and maintenance of systems and to management of the supply chain).

As it is applied to products, it endeavours to cover:

  • The creation of intensive systems in software through Model-Driven Development.
  • Reverse software engineering to generate models based on legacy systems (Model-Driven Reverse Engineering).
  • The integration of other disciplines related to software development, such as Model-Driven Architecture and Model-Driven Testing.

In particular, it is endeavoured to conduct research on the creation of languages and models that allow describing and executing processes as an initial step towards building an IT governance framework, as well as industrialisation of the systems development process by applying software engineering.