VLDB 2026 Research / reviewers in the wild / expert
Thiago do Nascimento Ferreira
dblp:08/10067
· DBLP profile ↗
15ranked-venue papers
4as first author
7since 2021 · last 2026
0000-0001-7010-8306ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 13 · 3 first-author · 7 since 2021Artificial intelligence and machine learning · 5 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Understanding Docker Refactorings: Expanded Taxonomy, Operational Trade-Offs, and Role-Aware RecommendationsabstractDocker-based software containerization has recently emerged as the de facto standard for delivering reusable software artifacts. With a plethora of publicly available Docker images, developers can easily build and deploy their applications, resulting in an industry-wide shift toward containerized solutions. Container-based projects, on the other hand, include several components, such as the Docker and Docker-compose files, as well as several dependencies in the source code, combining different containers and simplifying interactions with them. Like any other complex system, Container-based projects are prone to multiple quality and technical debt issues relating to several artifacts, namely, Docker and Docker-compose files. In a previous work, we conducted the first foundational study on refactorings, i.e., structural changes, while preserving the behavior applied in open-source Docker projects and the technical debt issues they alleviate. The findings suggest that developers refactor these Docker projects for a variety of reasons specific to the configuration, combination, and execution of containers. We defined different best practices and introduced 24 new Dockerspecific refactorings and 7 technical debt categories. In this paper, we extend our prior study by expanding the dataset nearly sixfold, from 68 to 443 projects, and refining our selection methodology. These changes reveal 17 additional Docker-specific refactorings, bringing our catalog to 41 distinct mechanisms, and introduce two new technical-debt categories, for a total of nine. We also derive 48 role-aware (Dev vs. Ops) recommendations and quantify the operational impact of refactorings on release-image size and build time, analyzing size–time trade-offs.These extensions not only expand the known landscape of Docker-specific quality issues but also provide deeper insights into how practitioners manage and alleviate technical debt in container environments. Emna Ksontini, Thiago do Nascimento Ferreira, Rania Khalsi, Wael Kessentini |
IEEE Trans. Software Eng. | 2 |
| 2023 | Dynamic Software Containers Workload Balancing via Many-Objective SearchabstractSoftware containers are becoming the new state of the art in the industry as they are extensively used to deploy systems. Indeed, the use of containers enables better modularity, reusability, and portability compared to other technologies. As the complexity of software systems is dramatically increasing, it is critical to enable optimal usage of the needed resources to execute them such as memory and CPU. Thus, different scheduling strategies are proposed to select the most suitable nodes to execute a set of containers. For instance, the default strategy in the Docker Swarm kit scheduling framework is based on an equal distribution of the containers between nodes independent of their sizes and consumed resources. However, balancing the containers’ workload is a complex problem due to the conflicting objectives of minimizing the number of selected nodes, minimizing the number of containers per node, the number of changes compared to the original schedule, and the coupling between containers allocated to different nodes. To deal with those conflicting scheduling objectives, we propose a scheduler based on a many-objective optimization approach for scheduling the execution of containers between multiple nodes. The proposed approach aims at finding the best allocation for containers in nodes that leads to efficient utilization of resources. To evaluate our approach, we compared the performance of multiple many and multi-objective techniques based on NSGA-II, NSGA-III, and IBEA algorithms using 48 Docker-related systems and the results show that NSGA-III outperforms the other algorithms in quality attributes as well as in CPU, Memory and Network usage. Anwar Ghammam, Thiago do Nascimento Ferreira, Wajdi Aljedaani, Marouane Kessentini, Ali Husain |
IEEE Trans. Serv. Comput. | 2 |
| 2023 | Dependent or Not: Detecting and Understanding Collections of RefactoringsabstractRefactoring is a program transformation to improve the internal structure of a program while preserving its external behavior. Developers frequently apply multiple refactorings that depend on each other to achieve goals such as improving code reusability. Although manually applying a sequence of dependent refactorings is a common practice, existing refactoring recommendation tools treat refactorings in isolation without revealing the dependencies among them to developers. One reason is that these relationships among refactorings are poorly understood. Current approaches treat refactoring recommendations as a strictly ordered sequence limiting developers’ ability to understand, validate, and apply recommended refactorings. To address this gap, this paper describes a theory for reasoning about collections of refactorings through defining an ordering dependency relation among refactorings and organizing collection of refactorings as a set of refactoring graphs. We propose an algorithm for identifying refactoring dependencies and illustrate these concepts with a tool for visualizing such refactoring dependencies and refactoring graphs. Our validation results demonstrate that 43% of the 1,457,873 recommended refactorings from 9,595 projects that we studied are part of dependent refactoring graphs. Furthermore, refactorings are not only commonly involved in dependent relations, but also when applied, dependent refactoring graphs improve all of the quality attribute metrics in our experiments more than individual refactorings. Thiago do Nascimento Ferreira, James Ivers, Jeffrey J. Yackley, Marouane Kessentini, Ipek Ozkaya, Khouloud Gaaloul |
IEEE Trans. Software Eng. | 1 |
| 2022 | Variability testing of software product line: A preference-based dimensionality reduction approach
Thiago do Nascimento Ferreira, Silvia Regina Vergilio, Marouane Kessentini |
Inf. Softw. Technol. | 1 |
| 2022 | X-SBR: On the Use of the History of Refactorings for Explainable Search-Based Refactoring and Intelligent Change OperatorsabstractRefactoring is widely adopted nowadays in industry to restructure the code and meet high quality while preserving the external behavior. Many of the existing refactoring tools and research are based on search-based techniques to find relevant recommendations by finding trade-offs between different quality attributes. While these techniques show promising results on open-source and industry projects, they lack explanations of the recommended changes which can impact their trustworthiness when adopted in practice by developers. Furthermore, most of the adopted search-based techniques are based on random population generation and random change operators (e.g., crossover and mutation). However, it is critical to understand which good refactoring patterns may exist when applying change operators to either keep them or exchange with other solutions rather than destroying them with random changes. In this paper, we propose knowledge-informed change operators and an improved seeding mechanism that we integrated in a multi-objective genetic algorithm. We also provide explanations for refactoring solutions. First, we generate association rules using the Apriori algorithm to find relationships between applied refactorings in previous commits, their locations, and their rationale (quality improvements). Then, we use these rules to 1) initialize the population, 2) improve the change operators and seeding mechanisms of the multi-objective search in order to preserve and exchange good patterns in the refactoring solutions, and 3) explain how a sequence of refactorings collaborate in order to improve the quality of the system (e.g., fitness functions). The validation on large open-source systems shows that X-SBR provides refactoring solutions of a better quality than those given by the state-of-the-art techniques in terms of reducing the invalid refactorings, improving the quality, and increasing trustworthiness of the developers in the suggested refactorings via the provided explanations. Chaima Abid, Dhia Elhaq Rzig, Thiago do Nascimento Ferreira, Marouane Kessentini, Tushar Sharma 0001 |
IEEE Trans. Software Eng. | 3 |
| 2021 | Intelligent Change Operators for Multi-Objective RefactoringabstractIn this paper, we propose intelligent change operators and integrate them into an evolutionary multi-objective search algorithm to recommend valid refactorings that address conflicting quality objectives such as understandability and effectiveness. The proposed intelligent crossover and mutation operators incorporate refactoring dependencies to avoid creating invalid refactorings or invalidating existing refactorings. Further, the intelligent crossover operator is augmented to create offspring that improve solution quality by exchanging blocks of valid refactorings that improve a solution’s weakest objectives. We used our intelligent change operators to generate refactoring recommendations for four widely used open-source projects. The results show that our intelligent change operators improve the diversity of solutions. Diversity is important in genetic algorithms because crossing over a homogeneous population does not yield new solutions. Given the inherent nature of design trade-offs in software, giving developers choices that reflect these trade-offs is important. Higher diversity makes better use of developers time than lots of incredibly similar solutions. Our intelligent change operators also accelerate solution convergence to a feasible solution that optimizes the trade-off between the conflicting quality objectives. Finally, they reduce the number of invalid refactorings by up to 71.52% compared to existing search-based refactoring approaches, and increase the quality of the solutions. Our approach outperformed the state-of-the-art search-based refactoring approaches and an existing deterministic refactoring tool based on manual validation by developers with an average manual correctness, precision and recall of 0.89, 0.82, and 0.87. Chaima Abid, James Ivers, Thiago do Nascimento Ferreira, Marouane Kessentini, Fares E. Kahla, Ipek Ozkaya |
ASE | 3 |
| 2021 | Refactorings and Technical Debt in Docker Projects: An Empirical StudyabstractSoftware containers, such as Docker, are recently considered as the mainstream technology of providing reusable software artifacts. Developers can easily build and deploy their applications based on the large number of reusable Docker images that are publicly available. Thus, a current popular trend in industry is to move towards the containerization of their applications. However, container-based projects compromise different components including the Docker and Docker-compose files, and several other dependencies to the source code combining different containers and facilitating the interactions with them. Similar to any other complex systems, container-based projects are prone to various quality and technical debt issues related to different artifacts: Docker and Docker-compose files, and regular source code ones. Unfortunately, there is a gap of knowledge in how container-based projects actually evolve and are maintained.In this paper, we address the above gap by studying refactorings, i.e., structural changes while preserving the behavior, applied in open-source Docker projects, and the technical debt issues they alleviate. We analyzed 68 projects, consisting of 19,5 MLOC, along with 193 manually examined commits. The results indicate that developers refactor these Docker projects for a variety of reasons that are specific to the configuration, combination and execution of containers, leading to several new technical debt categories and refactoring types compared to existing refactoring domains. For instance, refactorings for reducing the image size of Dockerfiles, improving the extensibility of Docker-compose files, and regular source code refactorings are mainly associated with the evolution of Docker and Docker-compose files. We also introduced 24 new Docker-specific refactorings and technical debt categories, respectively, and defined different best practices. The implications of this study will assist practitioners, tool builders, and educators in improving the quality of Docker projects. Emna Ksontini, Marouane Kessentini, Thiago do Nascimento Ferreira, Foyzul Hassan |
ASE | 3 |
| 2020 | Understanding and Characterizing Changes in Bugs Priority: The Practitioners' PerceptiveabstractAssigning appropriate priority to bugs is critical for timely addressing important software maintenance issues. An underlying aspect is the effectiveness of assigning priorities: if the priorities of a fair number of bugs are changed, it indicates delays in fixing critical bugs. There has been little prior work on understanding the dynamics of changing bug priorities. In this paper, we performed an empirical study to observe and understand the changes in bugs' priority to build a 3-W model on Why and When bug priorities change, and Who performs the change. We conducted interviews and a survey with practitioners as well as performed a quantitative analysis containing 225,000 bug reports, developers' comments, and source code changes from 24 open-source systems. The interviews with 11 developers from industry aim to establish an initial model to characterize the changes in bugs priority. The survey with an additional 38 developers was to understand their experience in why and when bug priorities change, and who performs the change. Then, we conducted a manual inspection of the collected data on open-source projects to compare our final bugs priority change model with changes identified in practice. Our quantitative results confirmed the outcomes of our interviews and surveys. For instance, we observed frequent changes in bug priorities and their impact on delaying critical bug fixes especially just before shipping a new release. Our findings can enable 1) researchers to build automated tools for checking and validating requests for bug priority changes, 2) practitioners to use a standard format in documenting and approving bug priority changes, and 3) educators to teach the better management of bug priorities. Rafi Almhana, Thiago do Nascimento Ferreira, Marouane Kessentini, Tushar Sharma 0001 |
SCAM | 2 |
| 2019 | Preference based multi-objective algorithms applied to the variability testing of software product lines
Helson L. Jakubovski Filho, Thiago do Nascimento Ferreira, Silvia Regina Vergilio |
J. Syst. Softw. | 2 |
| 2018 | Incorporating User Preferences in a Software Product Line Testing Hyper-Heuristic ApproachabstractTo perform the variability testing of Software Product Lines (SPLs) a set of products, represented in the Feature Model (FM), should be selected. Such selection is impacted by conflicting factors and has been efficiently solved by Evolutionary Multi-objective Algorithms in combination with hyper-heuristics. However, many times there is a cost budget or coverage level to be satisfied during the test, which are difficult to be incorporated as objective functions. Due to this, the choice of the best solution to be used in practice is not always easy. To deal with this situation, this paper introduces a preference-based hyper-heuristic approach to solve this problem. The approach implements the preference-based algorithm r-NSGA-II working with the random and FRRMAB selection methods. This last one uses a reward function based on r-dominance concept that takes into consideration a Reference Point provided by the tester. Our approach outperforms existing approaches, as well as the traditional algorithm r-NSGA-II, generating a reduced number of non-interesting solutions from the tester's point of view, that is, considering the provided Region of Interest (ROI). Helson L. Jakubovski Filho, Thiago do Nascimento Ferreira, Silvia Regina Vergilio |
CEC | 2 |
| 2017 | Incorporating user preferences in search-based software engineering: A systematic mapping study
Thiago do Nascimento Ferreira, Silvia Regina Vergilio, Jerffeson Teixeira de Souza |
Inf. Softw. Technol. | 1 |
| 2016 | Product selection based on upper confidence bound MOEA/D-DRA for testing software product linesabstractThe selection of products for testing Software Product Lines (SPLs) is an optimization problem. The goal is to select a possible minimum set of products that satisfies testing criteria, such as, pairwise and mutation testing. Multi-objective Evolutionary Algorithms (MOEAs) have been successfully used to solve this problem and other ones related to software development. However, the use of MOEAs demands setting a number of control parameters and selection of genetic operators, to which the algorithm performance is often very sensitive. Adaptive Operator Selection (AOS) methods, such as Upper Confidence Bound (UCB) based ones can help in this task. UCB methods used with Multi-objective Evolutionary Algorithm Based on Decomposition with Dynamical Resource Allocation (MOEA/D-DRA) have presented promising results, but they are underexplored in the Search Based Software Engineering (SBSE) field. To contribute to this research area and to solve efficiently the product selection problem, this paper investigates the use of different AOS UCB-based methods with MOEA/D-DRA. The idea is to reduce effort spent by the tester. Some parameters and evolutionary operators can be automatically set. The approach is empirical evaluated using four instances and three UCB methods. The UCB methods present similar results and outperform the canonical version of MOEA/D-DRA. Thiago do Nascimento Ferreira, Josiel Kuk, Aurora T. R. Pozo, Silvia Regina Vergilio |
CEC | 1 |
| 2015 | OPLA-tool: a support tool for search-based product line architecture designabstractThe Product Line Architecture (PLA) design is a complex task, influenced by many factors such as feature modularization and PLA extensibility, which are usually evaluated according to different metrics. Hence, the PLA design is an optimization problem and problems like that have been successfully solved in the Search-Based Software Engineering (SBSE) area, by using metaheuristics such as Genetic Algorithm. Considering this fact, this paper introduces a tool named OPLA-Tool, conceived to provide computer support to a search-based approach for PLA design. OPLA-Tool implements all the steps necessary to use multi-objective optimization algorithms, including PLA transformations and visualization through a graphical interface. OPLA-Tool receives as input a PLA at the class diagram level, and produces a set of good alternative diagrams in terms of cohesion, feature modularization and reduction of crosscutting concerns. Édipo Luis Féderle, Thiago do Nascimento Ferreira, Thelma Elita Colanzi, Silvia Regina Vergilio |
SPLC | 2 |
| 2015 | Optimizing Software Product Line Architectures with OPLA-Tool
Édipo Luis Féderle, Thiago do Nascimento Ferreira, Thelma Elita Colanzi, Silvia Regina Vergilio |
SSBSE | 2 |
| 2011 | An Ant Colony Optimization Approach to the Software Release Planning with Dependent Requirements
Jerffeson Teixeira de Souza, Camila Loiola Brito Maia, Thiago do Nascimento Ferreira, Rafael Augusto Ferreira do Carmo, Márcia Maria Albuquerque Brasil |
SSBSE | 3 |