Analyzing the Impact of Antipatterns on Change-Proneness Using Fine-Grained Source Code Changes
Autor: | Paulius Raila, Daniele Romano, Foutse Khomh, Martin Pinzger |
---|---|
Jazyk: | angličtina |
Rok vydání: | 2012 |
Předmět: |
Object-oriented programming
Public domain software Source code Java Computer science Programming language fine-grained source code changes media_common.quotation_subject antipatterns computer.software_genre Java classes Spaghetti code change-proneness Open source empirical software engineering Complex class computer computer.programming_language media_common |
Zdroj: | Technical Report Series TUD-SERG-2012-017 WCRE |
ISSN: | 1872-5392 |
Popis: | Preprint of paper published in: WCRE 2012 - Proceedings of the 19th Working Conference on Reverse Engineering, 15-18 October 2012; doi:10.1109/WCRE.2012.53 Antipatterns are poor solutions to design and implementation problems which are claimed to make object oriented systems hard to maintain. Our recent studies showed that classes with antipatterns change more frequently than classes without antipatterns. In this paper, we detail these analyses by taking into account fine-grained source code changes (SCC) extracted from 16 Java open source systems. In particular we investigate: whether classes with antipatterns are more change-prone (in terms of SCC) than classes without; (2) whether the type of antipattern impacts the change-proneness of Java classes; and (3) whether certain types of changes are performed more frequently in classes affected by a certain antipattern. Our results show that: 1) the number of SCC performed in classes affected by antipatterns is statistically greater than the number of SCC performed in classes with no antipattern; 2) classes participating in the three antipatterns ComplexClass, SpaghettiCode, and SwissArmyKnife are more change-prone than classes affected by other antipatterns; and 3) certain types of changes are more likely to be performed in classes affected by certain antipatterns, such as API changes are likely to be performed in classes affected by the ComplexClass, SpaghettiCode, and SwissArmyKnife antipatterns. |
Databáze: | OpenAIRE |
Externí odkaz: |