Software Engineering

Proposta de tesi

Investigadors/es

Grup de recerca

Model-driven development

Model-driven development is a software development approach that attempts to reduce development costs by focusing on producing software models (usually specified by UML) rather than code, and relying on tools to automatically generate the final implementation from these models.

This line of research will investigate techniques and tools to support model-driven software development processes (model transformations, executable models, domain specific languages). The focus of this work will be on developer productivity improvements and the quality of the final software product.

Dr Abel Gómez

Dr Elena Planas

Dr Robert Clarisó

Dr Jordi Cabot

SOM

Software analytics

Software analytics is the study of all data related to software and its engineering processes in order to better understand how software is built. The goal is to be able to predict and improve important quality factors of software artifacts. Software analytics includes the analysis of the program code but we are interested also in the analysis of all the collaboration and social aspects around it (who is the community that builds the software? How are they organized? What best practices do they follow? Etc.).

Dr Jordi Cabot

Dr Javier Luis Cánovas

SOM

Open data for everyone

Open data is, in theory, the idea of allowing all people access to huge amounts of data (eg government data, geographical data, weather data, etc.), usually by means of public APIs, without restrictions. Nevertheless, non-technical people have no means to “consume” that data in a way in which they can extract meaningful knowledge from it.

The open data movement has not been accompanied by a parallel development of methods to empower end users to find, filter and combine that data, which defeats the whole purpose of the open data philosophy and keeps citizens illiterate.

Our goal will be to develop new research techniques for 1 - the semiautomatic API discovery and mashup of data sources to find the information needed to answer the user request in the most optimal way and 2 - the exploration of the best of languages and interfaces to help non-technical users express their needs.

Dr Jordi Cabot

Dr  Elena Planas

Dr Javier Luis Cánovas

 
SOM

Lightweight formal methods

Bugs in software systems may lead to catastrophic consequences, especially in safety-critical systems such as medical or aerospace software. Testing and code reviews can reduce the defect rate, but sometimes a higher level of assurance is required. To this end, formal methods are a family of techniques that analyse a mathematical description of the system in order to ensure its correctness.

Some techniques used in the formal verification of software are model checking, theorem proving and static analysis. A problem shared by these approaches is their high computational complexity, which can limit their applicability in real-world examples. This line of research will consider pragmatic approaches for ensuring the quality of software systems at an industrial scale, considering key issues such as usability, efficiency and applicability.

Dr Robert Clarisó

Dr David Bañeres

Dr Jordi Cabot

SOM

 

Artificial Intelligence in Software Engineering

This research line will study both the impact of AI in software engineering and the application of software engineering techniques in the development of AI applications.

AI in software engineering will study how AI techniques can improve and speed up software development. For instance, by recommending improvements to the software models based on past projects or general language models. Software engineering for AI will focus on defining new languages and frameworks to facilitate the creation of intelligent software, especially targeting hybrid applications where the system needs to combine smart components (e.g. a chatbot) with a “traditional” ones (e.g. a database that contains the answers to the chatbot questions).

Dr Loli Burgueño

Dr Robert Clarisó

Dr Jordi Cabot

 

SOM