Demo Data from EDBT 2026 / reviewers in the wild / expert
Leonardo da Silva Sousa
dblp:179/8618
· DBLP profile ↗
13ranked-venue papers
5as first author
1since 2021 · last 2023
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 3 first-author · 1 since 2021Databases, data management, data science and information retrieval · 4 · 2 first-author · 1 since 2021Human-computer interaction and ubiquitous computing · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
3 papers |
Software maintenance and evolution · 82% Empirical software engineering · 18% |
Topics — the 4 heaviest of 5, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution
code smell |
0.5 | 2 | 2017 | Understanding the impact of refactoring on smells: a longitudinal study of 23 software projects · ESEC/SIGSOFT FSE 2017 Code anomalies flock together: exploring code anomaly agglomerations for locating design problems · ICSE 2016 |
Software maintenance and evolution
refactoring |
0.3 | 1 | 2017 | Understanding the impact of refactoring on smells: a longitudinal study of 23 software projects · ESEC/SIGSOFT FSE 2017 |
Empirical software engineering › qualitative research
grounded theory |
0.1 | 1 | 2018 | Identifying design problems in the source code: a grounded theory · ICSE 2018 |
Empirical software engineering › software engineering research methodology
longitudinal study |
0.1 | 1 | 2017 | Understanding the impact of refactoring on smells: a longitudinal study of 23 software projects · ESEC/SIGSOFT FSE 2017 |
Methods — techniques the papers use, named apart from their topics
industrial experiment · 0.3grounded theory · 0.3statistical analysis · 0.3longitudinal study · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Don't Forget the Exception! : Considering Robustness Changes to Identify Design ProblemsabstractModern programming languages, such as Java, use exception-handling mechanisms to guarantee the robustness of software systems. Although important, the quality of exception code is usually poor and neglected by developers. Indiscriminate robustness changes (e.g., the addition of empty catch blocks) can indicate design decisions that negatively impact the internal quality of software systems. As it is known in the literature, multiple occurrences of poor code structures, namely code smells, are strong indicators of design problems. Still, existing studies focus mainly on the correlation of maintainability smells with design problems. However, using only these smells may not be enough since developers need more context (e.g., system domain) to identify the problems in certain scenarios. Moreover, these studies do not explore how changes in the exceptional code of the methods combined with maintainability smells can give complementary evidence of design problems. By covering both regular and exception codes, the developer can have more context about the system and find complementary code smells that reinforce the presence of design problems. This work aims to leverage the identification of design problems by tracking poor robustness changes combined with maintainability smells. We investigated the correlation between robustness changes and maintainability smells on the commit history of more than 160k methods from different releases of 10 open-source software systems. We observed that maintainability smells can be worsened or even introduced when robustness changes are performed. This scenario mainly happened for the smells Feature Envy, Long Method, and Dispersed Coupling. We also analyzed the co-occurrence between robustness and maintainability smells. We identified that the empty catch block and catch throwable robustness smells were the ones that co-occurred the most with maintainability smells related to the Concern Overload and Misplaced Concern design problems. The contribution of our work is to reveal that poor exception code, usually neglected by developers, negatively impacts the quality of methods and classes, signaled by the maintainability smells. Therefore, existing code smell detecting tools can be enhanced to leverage robustness changes to identify design problems. Anderson Oliveira, João Lucas Correia, Leonardo da Silva Sousa, Wesley K. G. Assunção, Daniel Coutinho, Alessandro F. Garcia 0001, Willian Nalepa Oizumi, Caio Barbosa, Anderson G. Uchôa, Juliana Alves Pereira |
MSR | 3 |
| 2020 | When Are Smells Indicators of Architectural Refactoring Opportunities: A Study of 50 Software ProjectsabstractRefactoring is a widely adopted practice for improving code comprehension and for removing severe structural problems in a project. When refactorings affect the system architecture, they are called architectural refactorings. Unfortunately, developers usually do not know when and how they should apply refactorings to remove architectural problems. Nevertheless, they might be more susceptible to applying architectural refactoring if they rely on code smells and code refactoring -- two concepts that they usually deal with through their routine programming activities. To investigate if smells can serve as indicators of architectural refactoring opportunities, we conducted a retrospective study over the commit history of 50 software projects. We analyzed 52,667 refactored elements to investigate if they had architectural problems that could have been indicated by automatically-detected smells. We considered purely structural refactorings to identify elements that were likely to have architectural problems. We found that the proportion of refactored elements without smells is much lower than those refactored with smells. By analyzing the latter, we concluded that smells can be used as indicators of architectural refactoring opportunities when the affected source code is deteriorated, i.e., the code hosting two or more smells. For example, when God Class or Complex Class appear together with other smells, they are indicators of architectural refactoring opportunities. In general, smells that often co-occurred with other smells (67.53%) are indicators of architectural refactoring opportunities in most cases (88.53% of refactored elements). Our study also enables us to derive a catalog with patterns of smells that indicate refactoring opportunities to remove specific types of architectural problems. These patterns can guide developers and make them more susceptible to apply architectural refactorings. Leonardo da Silva Sousa, Willian Nalepa Oizumi, Alessandro F. Garcia 0001, Anderson Oliveira, Diego Cedrim, Carlos José Pereira de Lucena |
ICPC | 1 |
| 2020 | Characterizing and Identifying Composite Refactorings: Concepts, Heuristics and PatternsabstractRefactoring consists of a transformation applied to improve the program internal structure, for instance, by contributing to remove code smells. Developers often apply multiple interrelated refactorings called composite refactoring. Even though composite refactoring is a common practice, an investigation from different points of view on how composite refactoring manifests in practice is missing. Previous empirical studies also neglect how different kinds of composite refactorings affect the removal, prevalence or introduction of smells. To address these matters, we provide a conceptual framework and two heuristics to respectively characterize and identify composite refactorings within and across commits. Then, we mined the commit history of 48 GitHub software projects. We identified and analyzed 24,911 composite refactorings involving 104,505 single refactorings. Amongst several findings, we observed that most composite refactorings occur in the same commit and have the same refactoring type. We found that several refactorings are semantically related to each other, which occur in different parts of the system but are still related to the same task. Our study is the first to reveal that many smells are introduced in a program due to "incomplete" composite refactorings. Our study is also the first to reveal 111 patterns of composite refactorings that frequently introduce or remove certain smell types. These patterns can be used as guidelines for developers to improve their refactoring practices as well as for designers of recommender systems. Leonardo da Silva Sousa, Diego Cedrim, Alessandro F. Garcia 0001, Willian Nalepa Oizumi, Ana Carla Bibiano, Daniel Oliveira 0005, Miryung Kim, Anderson Oliveira |
MSR | 1 |
| 2020 | Refactoring effect on internal quality attributes: What haven't they told you yet?
Eduardo Fernandes, Alexander Chavez, Alessandro F. Garcia 0001, Isabella Ferreira, Diego Cedrim, Leonardo da Silva Sousa, Willian Nalepa Oizumi |
Inf. Softw. Technol. | 6 |
| 2019 | On the Density and Diversity of Degradation Symptoms in Refactored Classes: A Multi-case StudyabstractRoot canal refactoring is a software development activity that is intended to improve dependability-related attributes such as modifiability and reusability. Despite being an activity that contributes to these attributes, deciding when applying root canal refactoring is far from trivial. In fact, finding which elements should be refactored is not a cut-and-dried task. One of the main reasons is the lack of consensus on which characteristics indicate the presence of structural degradation. Thus, we evaluated whether the density and diversity of multiple automatically detected symptoms can be used as consistent indicators of the need for root canal refactoring. To achieve our goal, we conducted a multi-case exploratory study involving 6 open source systems and 2 systems from our industry partners. For each system, we identified the classes that were changed through one or more root canal refactorings. After that, we compared refactored and non-refactored classes with respect to the density and diversity of degradation symptoms. We also investigated if the most recurrent combinations of symptoms in refactored classes can be used as strong indicators of structural degradation. Our results show that refactored classes usually present higher density and diversity of symptoms than non-refactored classes. However, root canal refactorings that are performed by developers in practice may not be enough for reducing degradation, since the vast majority had little to no impact on the density and diversity of symptoms. Finally, we observed that symptom combinations in refactored classes are similar to the combinations in non-refactored classes. Based on our findings, we elicited an initial set of requirements for automatically recommending root canal refactorings. Willian Nalepa Oizumi, Leonardo da Silva Sousa, Anderson Oliveira, Alessandro F. Garcia 0001, Thelma Elita Colanzi, Roberto Oliveira 0003 |
ISSRE | 2 |
| 2019 | Removal of design problems through refactorings: are we looking at the right symptoms?abstractA design problem is the result of design decisions that negatively impact quality attributes. For example, a stakeholder introduces a design problem when he decides to addresses multiple unrelated responsibilities in a single class, impacting the modifiability and reusability of the system. Given their negative consequences, design problems should be identified and refactored. The literature still lacks evidence on which symptoms' characteristics can be used as strong indicators of design problems. For example, it is unknown if the density and diversity of certain symptoms (e.g., violations of object-oriented principles) are correlated with the occurrence of design problems. Thus, in this paper, we report a case study involving two C# systems. We evaluated the impact of refactoring, focused on removing design problems, on the density and diversity of symptoms. Results indicate that refactored classes usually present higher density and diversity of symptoms. However, the density and diversity of some symptoms, such as the violation of object-oriented principles, was not predominantly higher in refactored classes. Moreover, contrary to our expectations, refactorings caused almost no positive impact on the density and diversity of symptoms. Andre Eposhi, Willian Nalepa Oizumi, Alessandro F. Garcia 0001, Leonardo da Silva Sousa, Roberto Oliveira 0003, Anderson Oliveira |
ICPC | 4 |
| 2018 | Identifying design problems in the source code: a grounded theoryabstractThe prevalence of design problems may cause re-engineering or even discontinuation of the system. Due to missing, informal or outdated design documentation, developers often have to rely on the source code to identify design problems. Therefore, developers have to analyze different symptoms that manifest in several code elements, which may quickly turn into a complex task. Although researchers have been investigating techniques to help developers in identifying design problems, there is little knowledge on how developers actually proceed to identify design problems. In order to tackle this problem, we conducted a multi-trial industrial experiment with professionals from 5 software companies to build a grounded theory. The resulting theory offers explanations on how developers identify design problems in practice. For instance, it reveals the characteristics of symptoms that developers consider helpful. Moreover, developers often combine different types of symptoms to identify a single design problem. This knowledge serves as a basis to further understand the phenomena and advance towards more effective identification techniques. Leonardo da Silva Sousa, Anderson Oliveira, Willian Nalepa Oizumi, Simone D. J. Barbosa, Alessandro F. Garcia 0001, Jaejoon Lee, Marcos Kalinowski, Rafael Maiani de Mello, Baldoino Fonseca dos Santos Neto, Roberto Oliveira 0003, Carlos José Pereira de Lucena, Rodrigo B. de Paes |
ICSE | 1 |
| 2018 | Reducing the Cost of Mutation Testing Using the Semantic Size of MutantabstractMutation Testing has been proved to be effective in detecting faults. However, it suffers from the large number of mutants generated and analyzed when we apply the operators to create mutants. To alleviate this problem, this paper proposes an approach to find a reduced set of mutation operators that reduces the generated mutants and maintains the test effectiveness. Our approach adapts the semantic characterization of faults in order to find this set of mutation operators that will reduce the cost of Mutation Testing. The experimental results indicate that our approach is able to find a set of operators that reduce the mutation cost while maintaining the test effectiveness. Leonardo da Silva Sousa, Auri M. R. Vincenzi, Márcio Eduardo Delamaro, Igor Rodrigues Vieira, Vinicius R. L. Mendonca, Cássio L. Rodrigues |
SMC | 1 |
| 2018 | VazaDengue: An information system for preventing and combating mosquito-borne diseases with social networks
Leonardo da Silva Sousa, Rafael Maiani de Mello, Diego Cedrim, Alessandro F. Garcia 0001, Paolo Missier, Anderson G. Uchôa, Anderson Oliveira, Alexander B. Romanovsky |
Inf. Syst. | 1 |
| 2017 | No Code Anomaly is an Island - Anomaly Agglomeration as Sign of Product Line Instabilities
Eduardo Fernandes, Gustavo Vale, Leonardo da Silva Sousa, Eduardo Figueiredo 0001, Alessandro F. Garcia 0001, Jaejoon Lee |
ICSR | 3 |
| 2017 | Recruiting from the Network: Discovering Twitter Users Who Can Help Combat Zika Epidemics
Paolo Missier, Callum McClean, Jonathan Carlton, Diego Cedrim, Leonardo da Silva Sousa, Alessandro F. Garcia 0001, Alexandre Plastino 0001, Alexander B. Romanovsky |
ICWE | 5 |
| 2017 | Understanding the impact of refactoring on smells: a longitudinal study of 23 software projectsabstractCode smells in a program represent indications of structural quality problems, which can be addressed by software refactoring. However, refactoring intends to achieve different goals in practice, and its application may not reduce smelly structures. Developers may neglect or end up creating new code smells through refactoring. Unfortunately, little has been reported about the beneficial and harmful effects of refactoring on code smells. This paper reports a longitudinal study intended to address this gap. We analyze how often commonly-used refactoring types affect the density of 13 types of code smells along the version histories of 23 projects. Our findings are based on the analysis of 16,566 refactorings distributed in 10 different types. Even though 79.4% of the refactorings touched smelly elements, 57% did not reduce their occurrences. Surprisingly, only 9.7% of refactorings removed smells, while 33.3% induced the introduction of new ones. More than 95% of such refactoring-induced smells were not removed in successive commits, which suggest refactorings tend to more frequently introduce long-living smells instead of eliminating existing ones. We also characterized and quantified typical refactoring-smell patterns, and observed that harmful patterns are frequent, including: (i) approximately 30% of the Move Method and Pull Up Method refactorings induced the emergence of God Class, and (ii) the Extract Superclass refactoring creates the smell Speculative Generality in 68% of the cases. Diego Cedrim, Alessandro F. Garcia 0001, Melina Mongiovi, Rohit Gheyi, Leonardo da Silva Sousa, Rafael Maiani de Mello, Baldoino Fonseca dos Santos Neto, Márcio Ribeiro 0001, Alexander Chavez |
ESEC/SIGSOFT FSE | 5 |
| 2016 | Code anomalies flock together: exploring code anomaly agglomerations for locating design problemsabstractDesign problems affect every software system. Diverse software systems have been discontinued or reengineered due to design problems. As design documentation is often informal or nonexistent, design problems need to be located in the source code. The main difficulty to identify a design problem in the implementation stems from the fact that such problem is often scattered through several program elements. Previous work assumed that code anomalies -- popularly known as code smells -- may provide sufficient hints about the location of a design problem. However, each code anomaly alone may represent only a partial embodiment of a design problem. In this paper, we hypothesize that code anomalies tend to "flock together" to realize a design problem. We analyze to what extent groups of inter-related code anomalies, named agglomerations, suffice to locate design problems. We analyze more than 2200 agglomerations found in seven software systems of different sizes and from different domains. Our analysis indicates that certain forms of agglomerations are consistent indicators of both congenital and evolutionary design problems, with accuracy often higher than 80%. Willian Nalepa Oizumi, Alessandro F. Garcia 0001, Leonardo da Silva Sousa, Bruno B. P. Cafeo, Yixue Zhao |
ICSE | 3 |