Definição e detecção de design smells em aplicações de processamento em lotes utilizando spring batch framework
To meet the constant changes of requirements and needs for new features, software systems always remain in a state of constant evolution. The control of the software evolution and maintenance process is crucial and one of the most complicated phases of software development. If this control is not managed, systems are at risk of degradation of important quality attributes, that consequently directly affect the degree of maintainability of applications. Factors such as inexperience, lack of knowledge and pressure in relation to the time to complete tasks lead to the adoption of bad practices of software design and are the origin of Design Smells. In order to obtain a better control of the software evolution and maintenance process, it is important to know how to identify the occurrence of Design Smells in projects, and new studies indicate that the use of information specific to the context of the application, such as the nature of the programs or architectural roles used, can influence the detection process and the identification of problems that only exist in the studied context. This work carries out a study to define and identify Design Smells specific to the context of batch applications, and proposes the definition of a catalog with 7 Design Smells and the implementation of a tool to automate the detection process. The implemented tool was used in a case study in which the codes of 40 systems were analyzed. In this study, it was observed that smells specific to the context of batch processing applications affected almost 20% of the classes and more than 30% of the lines of code of the systems analyzed. It was also possible to observe, through the application of the tool in several versions of two systems, that the number of smells remained constant throughout the versions, and in some cases it even grew. What can evidence the lack of knowledge about the existence of the smells and the negative impacts that they can incorporate in the applications.
Aplicações batches, Arquitetura de software, Code smells, Design smells, Processamento em lote, Spring batch
Networked Digital Library of Theses and Dissertations
Universidade Federal do Rio Grande do Norte