doi: 10.4304/jsw.9.6.1485-1493
Detecting Breaks in Design Patterns from Code Changes
- 1 Department of Software Engineering, The Hashemite University, Zarqa, Jordan
- 2 Department of Information Technology, Mu'tah University, AL Karak, Jordan
- 3 Department of Software Engineering, Department of Computer Science and Applications, The Hashemite University, Zarqa, Jordan
Abstract
This paper presents an approach to automatically detect and identify breaks in design patterns from a code change during software evolution for C++ programs. The proposed approach aims to determine whether a code change breaks a predefined design pattern or not. The approach analyzes a code change and checks if the change breaks a predefined design pattern that is defined by software designers. Classes and their methods and relationships that are involved in a design pattern are represented in XML format named patternXML with the corresponding design pattern information. After each code change, patternXML file is parsed to determine possible breaks of patterns caused by the committed code change. All identified breaks are saved and archived for future analysis. A simple set of rules are defined to detect and identify breaks in predefined design patterns. The patternXML representation is flexible and can represent different types of design patterns. The approach is realized as a tool and it is evaluated on a set of test cases. Experimental results show that the tool can achieve high accuracy rate in discovering breaks in design patterns from code changes.
Keywords
- software
- design;
- design
- patterns;
- softwa
How to Cite
Maen Hammad, Mustafa Hammad, Ahmed F. Otoom, and Mohammad Bsoul, "Detecting Breaks in Design Patterns from Code Changes," Journal of Software, vol. 9, no. 6, pp. 1485-1493, 2014. https://doi.org/ 10.4304/jsw.9.6.1485-1493
Copyright & License
Copyright © 2014 by the authors. This is an open access article distributed under the Creative Commons Attribution License which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited (CC BY 4.0).
