VLDB 2026 Research / reviewers in the wild / expert
Willian Nalepa Oizumi
dblp:121/2856
· DBLP profile ↗
14ranked-venue papers
3as first author
2since 2021 · last 2023
0000-0002-8956-5272ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 14 · 3 first-author · 2 since 2021Databases, data management, data science and information retrieval · 3 · 2 since 2021Applied, interdisciplinary, general and emerging computing · 2 · 1 first-authorArtificial intelligence and machine learning · 1
| 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 | 7 |
| 2021 | Predicting Design Impactful Changes in Modern Code Review: A Large-Scale Empirical StudyabstractCompanies have adopted modern code review as a key technique for continuously monitoring and improving the quality of software changes. One of the main motivations for this is the early detection of design impactful changes, to prevent that design-degrading ones prevail after each code review. Even though design degradation symptoms often lead to changes' rejections, practices of modern code review alone are actually not sufficient to avoid or mitigate design decay. Software design degrades whenever one or more symptoms of poor structural decisions, usually represented by smells, end up being introduced by a change. Design degradation may be related to both technical and social aspects in collaborative code reviews. Unfortunately, there is no study that investigates if code review stakeholders, e.g, reviewers, could benefit from approaches to distinguish and predict design impactful changes with technical and/or social aspects. By analyzing 57,498 reviewed code changes from seven open-source systems, we report an investigation on prediction of design impactful changes in modern code review. We evaluated the use of six ML algorithms to predict design impactful changes. We also extracted and assessed 41 different features based on both social and technical aspects. Our results show that Random Forest and Gradient Boosting are the best algorithms. We also observed that the use of technical features results in more precise predictions. However, the use of social features alone, which are available even before the code review starts (e.g., for team managers or change assigners), also leads to highly-accurate prediction. Therefore social and/or technical prediction models can be used to support further design inspection of suspicious changes early in a code review process. Finally, we provide an enriched dataset that allows researchers to investigate the context behind design impactful changes during the code review process. Anderson G. Uchôa, Caio Barbosa, Daniel Coutinho, Willian Nalepa Oizumi, Wesley K. G. Assunção, Silvia Regina Vergilio, Juliana Alves Pereira, Anderson Oliveira, Alessandro F. Garcia 0001 |
MSR | 4 |
| 2020 | How Does Modern Code Review Impact Software Design Degradation? An In-depth Empirical StudyabstractSoftware design is an important concern in modern code review through which multiple developers actively discuss and improve each single code change. However, there is little understanding of the impact of such developers' reviews on continuously reducing design degradation over time. It is even less clear to what extent and how design degradation is reversed during the process of each single code change's review. In summary, existing studies have not assessed how the process of design degradation evolution is impacted along: (i) within each single review, and (ii) across multiple reviews. As a consequence, one cannot understand how certain code review practices consistently contribute to either reduce or further increase design degradation as the project evolves. We aim at addressing these gaps through a multi-project retrospective study. By investigating 14,971 code reviews from seven software projects, we report the first study that characterizes how the process of design degradation evolves within each review and across multiple reviews. Moreover, we analyze a comprehensive suite of metrics to enable us to observe the influence of certain code review practices on combating or even accelerating design degradation. Our results show that the majority of code reviews had little to no design degradation impact in the analyzed projects. Even worse, this observation also applies, to some extent, to reviews with an explicit concern on design. Surprisingly, the practices of long discussions and high proportion of review disagreement in code reviews were found to increase design degradation. Finally, we also discuss how the study findings shed light on how to improve the research and practice of modern code review. Anderson G. Uchôa, Caio Barbosa, Willian Nalepa Oizumi, Publio Silva, Rafael Lima, Alessandro F. Garcia 0001, Carla I. M. Bezerra |
ICSME | 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 | 2 |
| 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 | 4 |
| 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. | 7 |
| 2019 | Do Research and Practice of Code Smell Identification Walk Together? A Social Representations AnalysisabstractContext: It is frequently claimed the need for bridging the gap between software engineering research and practice. In this sense, the theory of social representations may be useful to characterize the actual concerns of software developers. It comprises the system of values, behaviors, and practices of communities regarding a particular social object, such as the task of smell identification. Aim: To characterize the social representations of smell identification by software developers. Method: Based on the answers given to a question-naire, we analyzed the associations made by the developers about smell identification, i.e., what immediately comes to their minds when they think about this task. Results: We found that developers strongly associate smell identification with the practice of smell removal and with the incidence of bugs. They also frequently associate the task with the practice of inspection and with the need of having individual skills. Besides, we verified that the current state of the art on smell identification partially address the social representations of the software developers. Conclusion: There is a considerable gap between the research of smell identification and its practice. We propose directions to mitigating this gap. Rafael Maiani de Mello, Anderson G. Uchôa, Roberto Oliveira 0003, Willian Nalepa Oizumi, Jairo Souza, Kleyson Mendes, Daniel Oliveira 0005, Baldoino Fonseca dos Santos Neto, Alessandro F. Garcia 0001 |
ESEM | 4 |
| 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 | 1 |
| 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 | 2 |
| 2019 | Ranking architecturally critical agglomerations of code smells
Santiago A. Vidal, Willian Nalepa Oizumi, Alessandro F. Garcia 0001, Jorge Andrés Díaz Pace, Claudia A. Marcos |
Sci. Comput. Program. | 2 |
| 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 | 3 |
| 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 | 1 |
| 2014 | A search-based approach for software product line designabstractThe Product Line Architecture (PLA) can be improved by taking into account key factors such as feature modularization, and by continuously evaluating its design according to metrics. Search-Based Software Engineering (SBSE) principles can be used to support an informed-design of PLAs. However, existing search-based design works address only traditional software design not considering intrinsic Software Product Line aspects. This paper presents MOA4PLA, a search-based approach to support the PLA design. It gives a multi-objective treatment to the design problem based on specific PLA metrics. A metamodel to represent the PLA and a novel search operator to improve feature modularization are proposed. Results point out that the application of MOA4PLA leads to PLA designs with well modularized features, contributing to improve features reusability and extensibility. It raises a set of solutions with different design trade-offs that can be used to improve the PLA design. Thelma Elita Colanzi, Silvia Regina Vergilio, Itana Maria de Souza Gimenes, Willian Nalepa Oizumi |
SPLC | 4 |
| 2012 | On the Proactive Design of Product-Line Architectures with Aspects: An Exploratory StudyabstractA product-line architecture (PLA) entails a design reused by a family of products sharing several features. The long-term stability of a PLA largely depends on the modularization of each feature from the design outset. As many features of a product-line crosscut the PLA decomposition, their modularity and stability are often improved with aspect-orientation according to recent studies. However, the use of this technique in proactive design of PLAs is challenging and has rarely been investigated. The problem is that information about the crosscutting nature of features is limited in this case. This paper presents a first study aimed at analyzing the feasibility of deriving stable aspect-oriented PLAs through a proactive design method. Our study relies on a product line and presents an in-depth exploratory analyse. We compare the stability of aspect-oriented and alternative candidates for proactively-designed PLAs. The results indicate that it is possible to derive aspect-oriented PLAs with superior stability based on a proactive design method. In addition, it is possible to anticipate pros and cons of PLAs with aspects when the latter are incorporated at an early design stage. Willian Nalepa Oizumi, Antonio C. Contieri Junior, Guilherme G. Correia, Thelma Elita Colanzi, Sandra Ferrari, Itana Maria de Souza Gimenes, Edson OliveiraJr, Alessandro F. Garcia 0001, Paulo César Masiero |
COMPSAC | 1 |