Pesquisa
Projetos de pesquisa atuais e passados. Clique em um card para expandir a descrição completa.
Projetos em Andamento
Resource Provider Framework
Coordenador: Dr. Lincoln Rocha (UFC) · Patrocinador: DELL Computadores do Brasil
Parceiros: Anderson Uchôa (UFC, Brasil), Lincoln Rocha (UFC, Brasil), Bruno Gois, and Marcos de Oliveira.
This project aims to research and develop a base framework for a Resource Provider Framework capable of standardizing and orchestrating infrastructure management operations in corporate environments. The proposal seeks to replace the dependency on fragmented scripts with a reusable, scalable, and observable layer that can translate generic management intentions into specific actions on computing, storage, and network resources.
The project intends to develop: (i) a base architecture for resource providers with standardized and idempotent operations; (ii) compliance, versioning, and asynchronous execution mechanisms to support long-running tasks; (iii) telemetry and observability interfaces aligned with modern standards; and (iv) an MVP with a simulated provider and demonstration application to validate the proposed model.
LLM-Assisted Refactoring: A Human-in-the-Loop Approach for Sustainable Software Quality
Coordenador: Dr. Anderson Uchôa (UFC) · Patrocinador: CNPq
Parceiros: Anderson Uchôa (UFC, Brasil), Rohit Gheyi (UFCG, Brasil), and Wesley K. G. Assunção (NC State, EUA).
Recent advances in Large Language Models (LLMs) have revolutionized the automation of software engineering tasks, especially in code generation and refactoring suggestions. However, despite their potential, the direct use of these tools in real development workflows still faces important limitations: lack of sensitivity to the architectural context of the system, risks of introducing semantic regressions, and low transparency in model decisions.
This project aims to investigate, develop, and evaluate an LLM-assisted refactoring approach centered on Human-in-the-Loop (HITL) cycles, in which the developer acts as a critical validation and refinement agent for automatically generated suggestions. The research includes: (i) mapping existing approaches for LLM-based refactoring and HITL collaborative workflows; (ii) context-sensitive prompt engineering; (iii) development of a functional prototype with IDE integration supporting classic smells such as Long Method, God Class, and Feature Envy; (iv) execution of HITL cycles with structured human feedback collection; and (v) empirical study on open-source repositories comparing generated refactorings with real developer history.
SP4Dev — Security and Privacy in Software: Automation Strategies and Development Practices
Coordenador: Dr. Anderson Uchôa (UFC) · Patrocinador: FUNCAP
Parceiros: Anderson Uchôa (UFC, Brasil), Alessandro Garcia (PUC-Rio, Brasil), Matheus Paixão (UECE, Brasil), Juliana Alves Pereira (PUC-Rio, Brasil), João Henrique Correa (UFC, Brasil), Edna Dias Canedo (UnB, Brasil), and Sávio Freire (IFCE, Brasil).
Security in digital public systems is pervasive in the digital transformation and adoption of new technologies. With the growing complexity of these systems, digital security presents itself as a central concern. Legacy systems, frequently based on outdated technologies, make it difficult to adopt modern privacy and security practices. The lack of effective tools to identify and correct vulnerabilities in complex systems puts the integrity and confidentiality of data at risk.
The SP4Dev project aims to: (i) survey the most widely used tools for detecting and mitigating vulnerabilities; (ii) investigate security automation in CI pipelines, exploring tool integration and developer perceptions in platforms like Travis CI and GitHub Actions; (iii) understand security practices adopted by developers, identifying challenges and factors influencing their adoption; and (iv) propose an automated technique to recommend security practices in CI configuration files, leveraging GitHub Actions, repository mining, and static analysis.
Applications of LLMs in Software Engineering
Coordenador: Dr. Marco Tulio Valente (UFMG) · Patrocinador: CNPq
Parceiros: Anderson Uchôa (UFC, Brasil), Carla Bezerra (UFC, Brasil), Marco Tulio de Oliveira Valente (UFMG, Brasil), João Eduardo Montandon de Araujo Filho (UFMG, Brasil), Andre Hora (UFMG, Brasil), Luciana Silva (IFMG, Brasil), Guilherme Avelino (UFPI, Brasil), and Pedro de Alcântara dos Santos Neto (UFPI, Brasil).
Recent advances in Generative AI and Large Language Models (LLMs) raise important questions about their impact on software engineering. Studies indicate significant adoption of these technologies by software developers, making them no longer a promise but a technology that has rapidly gained practical adoption. However, more sophisticated and advanced use cases where LLMs are applied in software engineering remain less obvious and more challenging.
This project explores LLM applications beyond trivial code generation contexts. Specifically, three classic software engineering challenges are investigated: (1) application generation, including full applications from UI to data repositories considering functional and non-functional requirements such as performance, usability, and security; (2) modernization of APIs and programming languages, exploring LLM support for activities that ensure the longevity of software systems; and (3) code quality improvement, applying LLMs to identify and assess design and comprehension problems, including those in domain-specific systems such as functional languages, smart contracts, and AI systems.
CREPSI — Reference Center in Signal Processing, Information, and Intelligent Systems
Coordenador: Dr. André Lima Férrer de Almeida (UFC) · Patrocinador: MCTI / FINEP
Parceiros: Anderson Uchôa (UFC, Brasil), João Henrique Correa (UFC, Brasil), André Lima Férrer de Almeida (UFC, Brasil), Charles Casimiro Cavalcante (UFC, Brasil), Francisco Rafael Marques Lima (UFC, Brasil), Guilherme de Alencar Barreto (UFC, Brasil), Kléber Zuza Nóbrega (UFC, Brasil), Francisco Rodrigo Porto Cavalcanti (UFC, Brasil), Rubens Viana Ramos (UFC, Brasil), Tarcisio Ferreira Maciel (UFC, Brasil), Victor Farias Monteiro (UFC, Brasil), Walter da Cruz Freitas Júnior (UFC, Brasil), Yuri Carvalho Barbosa Silva (UFC, Brasil), Eduardo Sávio Passos Rodrigues Martins (UFC, Brasil), and Julio César Santos dos Anjos (UFC, Brasil).
This project aims to deploy new high-performance computational infrastructure for cutting-edge scientific and technological research at UFC related to signal processing in airborne monitoring, as well as the development of platforms, intelligent systems, radiofrequency systems, and instrumentation, including AI-based applications. It also covers transversal themes such as environmental monitoring and surveillance, enabling scenario simulation and large-scale AI model construction.
The project aims to support research development with young faculty researchers at UFC interior campuses, creating an attractive and stimulating environment for faculty and students from undergraduate to graduate levels. Direct results include the qualified training of human resources, young researchers, and entrepreneurs, enabling their retention in the Northern region of Ceará, Piauí, Alagoas, and the Center-West region.
Learning Software Variability from Software Evolution
Coordenador: Dr. Juliana Alves Pereira (PUC-Rio) · Patrocinador: CAPES / COFECUB
Parceiros: Anderson Uchôa (UFC, Brasil), Alessandro Garcia (PUC-Rio, Brasil), Wesley Klewerton Guez Assunção (NC State, EUA), Juliana Alves Pereira (PUC-Rio, Brasil), Eduardo Sany Laber (PUC-Rio, Brasil), Mathieu Acher (Université Rennes, France), Djamel Khelladi (INRIA / Université Rennes, France), and Paul Temple (Université de Namur, Belgium).
Software variability refers to the ability to customize a software system to meet different usage requirements. However, understanding and managing this variability is challenging due to its dynamic and constantly evolving nature. This project proposes an innovative approach based on machine learning to understand software variability through its evolutionary analysis.
Through the collection and analysis of evolutionary data from software systems, the project seeks to identify patterns and trends that can help understand how variability manifests over time. The project involves adapting existing algorithms and methods for variability analysis and aims to build a recommendation system that will provide insights and suggestions to assist developers in decision-making during software maintenance and evolution. An empirical evaluation phase will include controlled experiments to collect quantitative and qualitative data about the proposed solutions.
Building a Non-Intrusive Bot to Monitor Incivility Traces in Pull Request Conversations
Coordenador: Dr. Anderson Uchôa (UFC) · Patrocinador: FUNCAP / PIBITI
Parceiros: Anderson Uchôa (UFC, Brasil), Matheus Feitosa de Oliveira Rabelo (UFC, Brasil), José Eric Mesquita Coelho (UFC, Brasil), Carlos Jefté Bastos de Mesquita Freire (UFC, Brasil), Antonio Cruz Gomes (UFC, Brasil), Antonio Lucas Melo de Sousa (UFC, Brasil), Arthur Willame Barroso de Mesquista (UFC, Brasil), Silas Eufrasio da Silva (UFC, Brasil), and Jose Mario Oliveira Patricio (UFC, Brasil).
In open source software (OSS) development environments such as GitHub, interactions between developers are essential for project progress. These interactions tend to occur through pull request conversations. However, they can be hampered by uncivil behaviors such as disrespectful and offensive comments, which can discourage contributions or even result in code quality deterioration. Currently, there are few automated solutions for dealing with incivility in pull request conversations.
This project proposes a non-intrusive and automated bot (The PeacemakerBot) capable of assisting developers and project managers in identifying and moderating uncivil behavior in pull request conversations. The approach uses Natural Language Processing (NLP) and Large Language Models (LLMs) to analyze large volumes of text, understand linguistic patterns, and detect expressions that denote incivility. The project also includes experimental studies to evaluate the effectiveness and effects of moderation on developer interactions, along with guidelines for the responsible use of the bot.
Investigating Security Automation in Continuous Integration of Machine Learning-Based Systems
Coordenador: Dr. Anderson Uchôa (UFC) · Patrocinador: CNPq / PIBIC
Parceiros: Anderson Uchôa (UFC, Brasil) and Nelson Felipe Andrade Araújo (UFC, Brasil).
Machine learning (ML) based systems are widely diffused and of increasing interest in academia and industry. With the popularization of these systems, continuous integration (CI) has become essential for ensuring fast and consistent delivery of new features. However, security is frequently neglected in this process, leaving systems vulnerable to attacks. It is essential to integrate security activities into CI processes, enabling early detection of security vulnerabilities.
This project aims to investigate security automation in ML-based systems during the CI process. Selected ML-based systems on GitHub will be analyzed, and CI-related files and logs from services such as Travis CI, Circle CI, and GitHub Actions will be mined and examined to identify and characterize security tools and the prevalence of security activities. Additionally, a questionnaire will be applied to project developers to understand their perception of the importance of security automation in ML-based systems.
MAINTAIN — Intelligent Maintenance of Software Systems
Coordenador: Dr. Matheus Paixão (UECE) · Patrocinador: CNPq
Parceiros: Anderson Uchôa (UFC, Brasil), Matheus Paixão (UECE, Brasil), Paulo Henrique Mendes Maia (UECE, Brasil), Jerffeson Teixeira de Souza (UECE, Brasil), Ismayle de Sousa Santos (UECE, Brasil), Allysson Allex de Paula Araújo (UFCA, Brasil), Thiago do Nascimento Ferreira (University of Michigan-Flint, EUA), and Chaiyong Ragkhitwetsagul (Mahidol University, Thailand).
Currently, digital technologies are used for several aspects of an individual's life, such as entertainment, work etc. Hence, the software industry grows every year with a constant increase in the number of products being developed. As a sub-area of Software Engineering, Software Maintenance refers to updating software after it has been deployed to its users. Among the maintenance tasks, one may mention bug fixing, source code improvement, technical debt management etc. As pointed out by Lehman, software needs to constantly change to remain useful. Thus, on average, more than half of a software project's resources are spent on maintenance.
Considering the existing software industry, the massive amount of data and the complexity of modern software generates scenarios where practitioners have difficulties in performing efficient maintenance tasks. In parallel, recent advances in Artificial Intelligence (AI) have been gaining notoriety. Techniques such as natural language processing, data mining and optimization have been successfully applied to several scientific and engineering areas. Thus, this project aims at investigating and using AI techniques to assist practitioners in software maintenance tasks. Data mining will be used to analyze large amounts of maintenance data to identify recurrent patterns and find best practices. We plan to employ natural language processing to assist in tasks related to text writing and comprehension, such as technical debt management and code review, for instance.
Projetos Concluídos
Modernization of Legacy Systems: (Semi-)Automated Support and Development Practices
Coordenador: Dr. Anderson Uchôa (UFC) · Patrocinador: FUNCAP
Parceiros: Anderson Uchôa (UFC, Brasil), Rafael Maiani de Mello (UFRJ, Brasil), Matheus Paixão (UECE, Brasil), Paulo Henrique Mendes Maia (UECE, Brasil), Carla Ilane (UFC, Brasil), and Alessandro Garcia (PUC-Rio, Brasil).
The State of Ceará is responsible for a significant portion of software development, accounting for about 20% of national production. Many of these software programs become legacy systems: they provide essential functionalities for organizations but use commonly outdated technologies. There is a great difficulty in maintaining or even modernizing these software programs, especially due to structural degradation that affects the code. However, several of these software programs are too important to be discarded. For organizations to remain competitive in national and international markets, it is crucial to modernize legacy software and use good software development practices.
The inclusion of new disruptive technologies, such as microservices and Big Data, helps to avoid the discontinuation of essential legacy software and offer various other opportunities for organizations. Thus, the project aimed to: (i) conduct studies with the legacy systems of the Ceará industry that are undergoing modernization; (ii) investigate software development practices that assist in the identification, application, and restructuring of legacy code; (iii) propose and develop a technique that aids in the process of modernizing and evolving legacy code; and (iv) evaluate the impact on software quality after the restructuring proposed by the technique.
An Exploratory Study on Developers' Perception of Code Smells in AI-Enabled Systems
Coordenador: Dr. Anderson Uchôa (UFC) · Patrocinador: CNPq / PIBIC
Parceiros: Anderson Uchôa (UFC, Brasil), Pedro Jonnathan Matos de Sousa (UFC, Brasil), Lucas do Nascimento de Sousa (UFC, Brasil), Carlos Eduardo Teles Alencar (UFC, Brasil), and Jose Mario Oliveira Patricio (UFC, Brasil).
AI-enabled systems are composed of one or more components that learn how to perform a task from a given dataset. Similar to other complex systems, AI-enabled systems are also affected by poor code structures (e.g., code smells). In particular, the code quality of AI-enabled systems has rarely been studied. Unfortunately, little is known about the perception of developers of AI-enabled systems regarding the code smells that affect their systems. Understanding developers' perceptions is important to direct research efforts that aim to support the needs and problems of developers of AI-enabled systems.
Our goal is to obtain empirically driven actionable insights for researchers and tool builders about the level of knowledge regarding code smells, their perceived criticality, and the procedures used by developers to remove or minimize the effects of code smells in AI-enabled systems. We conducted an exploratory survey with developers involved in the development of AI-enabled systems, including frameworks, systems, and machine learning libraries, as well as developers who used these frameworks to build their AI-enabled systems.
MAssiSo — Assisted Modernization of Legacy Software for Adoption of Disruptive Technologies
Coordenador: Dr. Alessandro Garcia (PUC-Rio) · Patrocinador: FAPERJ
Parceiros: Anderson Uchôa (UFC, Brasil), Alessandro Garcia (PUC-Rio, Brasil), and Marcos Kalinowski (PUC-Rio, Brasil).
This project aimed to (i) perform studies concerning legacy systems of the industry in Rio de Janeiro, which are going through the modernization process; (ii) propose and develop a recommendation system to assist the refactoring process of legacy code; (iii) investigate optimization and recommendation techniques that allow the identification, application, and reintegration of refactoring in legacy code; (iv) evaluate the impact of software quality after the restructuring proposed by the recommender.
ReSTaurA — Sequential Refactoring: Theory and Automated Support
Coordenador: Dr. Alessandro Garcia (PUC-Rio) · Patrocinador: CNPq
Parceiros: Anderson Uchôa (UFC, Brasil) and Alessandro Garcia (PUC-Rio, Brasil). Collaborators include Microsoft Research (Gustavo Soares), Google (Emerson Murphy-Hill), Amazon (Diego Cedrim), IBM Research (Renato Cerqueira), NCSU (Christopher Parnin), UCLA (Myriung Kim), UCI (Andre van der Hoek), PUC-Rio (Marcos Kalinowski, Carlos J. P. Lucena), UFCG (Rohit Gheyi), UFAM (Tayana Conte), UFAL (Baldoino F. Neto, Marcio Ribeiro), and others.
This project aimed to: (i) provide a conceptual framework for sequential refactoring as well as related concepts; (ii) develop a theory that explains how developers perform sequential refactoring in practice; (iii) propose heuristics for automated identification of sequential refactoring existing in a program; (iv) assess the quality impact of sequential refactoring; (v) evaluate and classify sequential refactoring as positive or negative based on their impact on structural degradation symptoms; and (vi) propose a recommendation system for sequential refactoring.
Leveraging Gamification and Social Networks for Improving Prevention and Control of Zika
Coordenadores: Prof. Alexander Romanovsky & Dr. Paolo Missier (Newcastle University) · Patrocinadores: British Council & Newton Fund
Parceiros: Federal University of Alagoas (Prof Baldoino Fonseca), Federal University of Pernambuco (Prof Leopoldo Teixeira), Pontifical Catholic University of Rio de Janeiro (Prof Alessandro Garcia) and Fundacao Oswaldo Cruz - Fiocruz (Dr Oswado Cruz), Brazil. Newcastle University project page.
Brazilian population has not responded well to the prevention programs to combat arboviral diseases, such as Zika and Dengue. Concerns with such diseases has led an overwhelming number of people to increasingly share online strategic information, including the discovery of mosquito breeding sites in public locations. The term social sensors refers to the online population that is motivated to contribute relevant information on social media channels. Recent increasing use of smartphones triggered the growing use of social networks even in poorer communities.
The project developed a platform for promoting virtual communities to prevent and combat Zika. Its core is the VazaZika application, which uses geolocation and gamification technologies for stimulating citizens to denounce and confirm Aedes breeding sites, and for updating users, in real time, about actions taken by health agents.
CARECO — Recommendation Systems for Collaborative Software Maintenance
Coordenadores: Dr. Alessandro Garcia & Carlos José Pereira de Lucena (PUC-Rio) · Patrocinador: CAPES
Parceiros: PUC-Rio (Prof. Alberto Raposo), PUC-Rio (Prof. Hugo Fuks), Federal University of Campina Grande (Prof. Rohit Gheyi), Federal University of Alagoas (Prof. Márcio Ribeiro), Federal University of Manaus (Prof. Tayana Conte), PUC-Rio (Prof. Simone Barbosa) and PUC-Rio (Prof. Clarisse Sousa).
The CARECO project aimed to develop: (i) recommendation systems to support collaborative maintenance of software systems; (ii) methods that support the evaluation of the quality of use of recommendation systems; (iii) new collaboration mechanisms integrated with development environments; (iv) application of advanced artificial intelligence and database techniques to develop recommendation systems that support collaborative maintenance of software systems, and (v) design and evaluation of recommendation systems to support the teaching and learning software maintenance.
A Software Infrastructure for Promoting Efficient Entomological Monitoring of Dengue Fever
Coordenadores: Prof. Dr. Alessandro Garcia & Prof. Dr. Alexander Romanovsky (Newcastle University) · Patrocinadores: British Council & Newton Fund
Parceiros: Federal University of Alagoas (Prof Baldoino Fonseca), Pontifical Catholic University of Rio de Janeiro (Prof Alessandro Garcia) and Fundacao Oswaldo Cruz - Fiocruz (Dr Oswado Cruz), Brazil. UKRI project page.
Dengue is an endemic problem in many areas where public health services assistance is inefficient, and sometimes it is not even there. The Brazilian public health system cannot meet the demands of these areas due to the scarcity of resources available and the number of risk areas that requires monitoring. To make the matters worse, it is very difficult to identify and control dengue outbreaks in their initial stages.
To assist the surveillance and detection of dengue mosquito and outbreaks, we proposed an integrated platform for population to act as an etymological surveillance agent. The goal was to collect and transmit geo-referenced data, providing information to assist in entomological surveillance of dengue. To accomplish the aforementioned goal, we developed (i) mobile applications to collect data, (ii) a web portal for centralizing data and (iii) social media mining to extract data and to monitor dengue outbreaks.