25.0SEMay 20
An Event-Driven Tool for Context-Aware Code Smell Detection Using SmellDSLMatheus dos Santos Viegas, Adrian Gabriel Keller dos Santos, Kleinner Farias et al.
Code smells signal violations of design principles that degrade the internal quality of evolving software systems. Although many tools detect such anomalies using static metrics, they often ignore the development context in which smells arise and are resolved. This limitation can lead to misleading warnings and weak support for refactoring decisions. To address this problem, we present SmellHunter, a context-aware tool that interprets scripts written in the SmellDSL domain-specific language to detect and contextualize code smells. SmellHunter integrates static code metrics with contextual information (such as team characteristics, project stage, and geographic metadata) to produce richer, more actionable analyses. The tool adopts an event-driven architecture in which a service bus orchestrates validation, interpretation, and persistence services through asynchronous events. This architecture enables scalable analysis while minimizing disruption to developers' workflows. SmellHunter is integrated into the Eclipse development environment via a dedicated plugin and provides aggregated insights via a mobile application, allowing developers to explore smell occurrences by type, severity, and location. By linking smell detection with contextual data and collaborative visualization, SmellHunter supports developers acting as smell hunters, helping teams identify recurring quality issues emerging from a particular location and assign refactoring tasks to developers with relevant expertise. We describe the architecture of SmellHunter, the interpretation process of SmellDSL scripts, and the integration of contextual data to support more informed refactoring decisions in modern software development environments.
SEOct 27, 2021
An exploratory study on the effects of event-driven architecture on software modularityLuan Lazzari, Kleinner Farias
Event-driven architecture has been widely adopted in the software industry, emerging as an alternative to the development of enterprise applications based on the REST architectural style. However, little is known about the effects of event-driven architecture on modularity while enterprise applications evolve. Consequently, practitioners end up adopting it without any empirical evidence about its impacts on essential indicators, including separation of concerns, coupling, cohesion, complexity and size. This article, therefore, reports an exploratory study comparing event-driven architecture and REST style in terms of modularity. A real-world application was developed using an event-driven architecture and REST through five evolution scenarios. In each scenario, a feature was added. The generated versions were compared using ten metrics. The initial results suggest that the event-driven architecture improved the separation of concerns, but was outperformed considering the metrics of coupling, cohesion, complexity and size. The findings are encouraging and can be seen as a first step in a more ambitious agenda to empirically evaluate the benefits of event-driven architecture against the REST style.
SEMay 28, 2021
On the Usage of Psychophysiological Data in Software Engineering: An Extended Systematic Mapping StudyRoger Vieira, Kleinner Farias
In recent years, many studies have applied wearable devices to capture psychophysiological data from software developers. However, the current literature lacks investigations that classify the studies and point out gaps to be explored. This article, therefore, seeks to present a comprehensive overview of the literature by classifying and creating a systematic map of the works. Besides, it seeks to pinpoint research gaps, challenges, and trends. Based on widely known guidelines, a systematic mapping of the literature was designed and run to answer eight research questions. After applying a careful filtering process, we selected 27 representative studies from a sample of 2,084 potentially relevant works retrieved from seven digital libraries. The main results are: a classification scheme of the published studies was produced; there is no predominance of the devices used to capture psychophysiological data; over 50% of the studies have explored indicators related to mental states and neural activity; and 80% have analyzed composite data to understand the cognitive load and in the context of understanding debugging programs and strategies. Our findings can benefit researchers and students by creating a systematic map of the literature, being a starting point for future research.
SEMay 12, 2021
Parthenos: A Source Code Injection Approach for Software TransformationGabriel Lopes Nunes, Kleinner Farias, Lucas Silveira Kupssinski
Maintaining legacy enterprise information systems is a known necessity in companies. To date, it remains an expensive and time-consuming process, requiring high effort and cost to get small changes implemented. MITRAS seeks to reduce the maintenance cost by providing an automatic maintenance system model based on graph transformations. This article presents Parthenos, a different approach to MITRAS, whose goal is to guarantee the correctness of introduced modifications at a syntax and type semantics level of the source code. Along with that, it proposes an extensible architecture, which allows the most varied types of systems to carry out software maintenance. Parthenos was evaluated through functional tests to evaluate its effectiveness, using measures of precision, recall, and f-measure.
SEOct 27, 2016
Empirical Evaluation of Effort on Composing Design ModelsKleinner Farias
Model composition plays a central role in many software engineering activities such as evolving models to add new features and reconciling conflicting design models developed in parallel by different development teams. As model composition is usually an error-prone and effort-consuming task, its potential benefits, such as gains in productivity can be compromised. However, there is no empirical knowledge nowadays about the effort required to compose design models. Only feedbacks of model composition evangelists are available, and they often diverge. Consequently, developers are unable to conduct any cost-effectiveness analysis as well as identify, predict, or reduce composition effort. The inability of evaluating composition effort is due to three key problems. First, the current evaluation frameworks do not consider fundamental concepts in model composition such as conflicts and inconsistencies. Second, researchers and developers do not know what factors can influence the composition effort in practice. Third, practical knowledge about how such influential factors may affect the developers' effort is severely lacking. In this context, the contributions of this thesis are threefold: (i) a quality model for supporting the evaluation of model composition effort, (ii) practical knowledge, derived from a family of quantitative and qualitative empirical studies, about model composition effort and its influential factors, and (iii) insight about how to evaluate model composition efforts and tame the side effects of such influential factors.