Studying the Relation between Anti-patterns in Models and in Source Code. Karasneh, B., Chaudron, M. R., Khomh, F., & Gu�h�neuc, Y. In Lanza, M. & Kamei, Y., editors, Proceedings of the 23<sup>rd</sup> International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 36–45, March, 2016. IEEE CS Press. 10 pages.
Studying the Relation between Anti-patterns in Models and in Source Code [pdf]Paper  abstract   bibtex   
There exists a large body of work on the specification and detection of anti-patterns in the source code of software systems. However, there are very few studies on the origins of the occurrences of anti-patterns in the source code: do the very design of the systems lead to the occurrences of anti-patterns or are anti-patterns introduced during implementation? Knowing when anti-patterns are introduced could help software designers and developers improve the quality of the source code, for example by eliminating fault-prone anti-patterns early during the design of the systems, even before their implementation. Therefore, we detect occurrences of anti-patterns in design models and in the source code of some systems, trace these occurrences between design and implementation, and study their relation and impact on the source code. First, we analyze both the UML design models and the source code of 10 open-source systems and show that antipatterns exist in design models. We observe that, on average, 37% of the classes in the design models that belong to anti-patterns also exist in the source code and also play roles in the same anti-patterns. Second, we investigate two open-source systems to assess the impact of the anti-patterns in their design models on the source code in terms of changes and faults. We show that classes that have anti-patterns in the design models have more changes and faults in the source code. Our results suggest that the design of the systems lead to anti-patterns and that the antipatterns impact negatively the change- and fault-proneness of the classes in the source code. Thus, designers should be wary of anti-patterns in their design models and could benefit from tools that detect and trace these anti-patterns into the source code.

Downloads: 0