Rule-based detection of design patterns in program code

Awny Alnusair, Tian Zhao, Gongjun Yan
2013 International Journal on Software Tools for Technology Transfer (STTT)  
The process of understanding and reusing software is often time-consuming, especially in legacy code and open-source libraries. While some core code of open-source libraries may be well-documented, it is frequently the case that open-source libraries lack informative API documentation and reliable design information. As a result, the source code itself is often the sole reliable source of information for program understanding activities. In this article, we propose a reverseengineering approach
more » ... that can provide assistance during the process of understanding software through the automatic recovery of hidden design patterns in software libraries. Specifically, we use ontology formalism to represent the conceptual knowledge of the source code and semantic rules to capture the structures and behaviors of the design patterns in the libraries. Several software libraries were examined with this approach and the evaluation results show that effective and flexible detection of design patterns can be achieved without using hardcoded heuristics.
doi:10.1007/s10009-013-0292-z fatcat:zfb6uh4rabc6bayxkp2ws2btmy