Tecnologies de la Informació i de Xarxes

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

Mail: agomezlla@uoc.edu

Dr Elena Planas

Mail: eplanash@uoc.edu

Dr Robert Clarisó

Mail: rclariso@uoc.edu

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 Robert Clarisó

Mail: rclariso@uoc.edu

Dr Javier Luis Cánovas

Mail: jcanovasi@uoc.edu

SOM

Open Data & Open Science for everyone

Open Data is, in theory, the idea of allowing all people access to huge amounts of data (e.g., government data, geographical data, weather data, etc.), usually by means of public APIs, without restrictions. On the other hand, Open Science is a movement that promotes free access to scientific research. This includes scientific articles, databases, scientific samples and software, among others. 
 
The access to this kind of information is also provided via public APIs.
 
However, Open Data and Open Science movements have 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 their philosophy and keeps citizens illiterate.
 
The goal of this proposal will be to develop new research techniques for (a) 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 (b) the exploration of the best of languages and interfaces to help non-technical users express their needs.
 

Dr Robert Clarisó

Mail: rclariso@uoc.edu

Dr  Elena Planas

Mail: eplanash@uoc.edu

Dr Javier Luis Cánovas

Mail: jcanovasi@uoc.edu

 
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ó

Mail: rclariso@uoc.edu

Dr David Bañeres

Mail: dbaneres@uoc.edu

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 Robert Clarisó

Mail: rclariso@uoc.edu

SOM