Thesis proposals |
Researchers |
Research Group |
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.
|
Mail: agomezlla@uoc.edu
Mail: eplanash@uoc.edu
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.). |
Mail: rclariso@uoc.edu 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. |
Mail: rclariso@uoc.edu Mail: dbaneres@uoc.edu |
|
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). |
Mail: rclariso@uoc.edu |
SOM |