Rule-based detection of design patterns in program code

被引:29
作者
Alnusair, Awny [1 ]
Zhao, Tian [2 ]
Yan, Gongjun [3 ]
机构
[1] Indiana Univ, Kokomo, IN 46904 USA
[2] Univ Wisconsin, Milwaukee, WI 53201 USA
[3] Univ So Indiana, Evansville, IN 47712 USA
关键词
Design patterns; Design recovery; Software maintenance; Ontology formalisms; Knowledge representation; Semantic inference;
D O I
10.1007/s10009-013-0292-z
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 reverse-engineering approach 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 hard-coded heuristics.
引用
收藏
页码:315 / 334
页数:20
相关论文
共 36 条
[1]  
Alnusair A, 2009, 2 INT WORKSH TRANSF
[2]  
Alnusair A., 2012, SOURCE CODE REPRESEN
[3]   Mining design patterns from C++ source code [J].
Balanyi, Z ;
Ferenc, R .
INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2003, :305-314
[4]   The Semantic Web - A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities [J].
Berners-Lee, T ;
Hendler, J ;
Lassila, O .
SCIENTIFIC AMERICAN, 2001, 284 (05) :34-+
[5]   DPJF - Design Pattern Detection With High Accuracy [J].
Binun, Alexander ;
Kniesel, Guenter .
2012 16TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR), 2012, :245-254
[6]  
Chen L., 2001, IEEE T KNOWL DATA EN, V19, P283
[7]  
Cinneide M. O., 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). `Software Maintenance for Business Change' (Cat. No.99CB36360), P463, DOI 10.1109/ICSM.1999.792644
[8]   Improving Behavioral Design Pattern Detection through Model Checking [J].
De Lucia, Andrea ;
Deufemia, Vincenzo ;
Gravino, Carmine ;
Risi, Michele .
14TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR 2010), 2010, :176-185
[9]   Behavioral Pattern Identification through Visual Language Parsing and Code Instrumentation [J].
De Lucia, Andrea ;
Deufemia, Vincenzo ;
Gravino, Carmine ;
Risi, Michele .
13TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING: CSMR 2009, PROCEEDINGS, 2009, :99-108
[10]   A formal description of design patterns using OWL [J].
Dietrich, J ;
Elgar, C .
2005 AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2005, :243-250