Improving design-pattern identification: a new approach and an exploratory study

被引:32
作者
Gueheneuc, Yann-Gael [1 ]
Guyomarc'h, Jean-Yves [2 ]
Sahraoui, Houari [2 ]
机构
[1] Ecole Polytech, Ptidej Team, Montreal, PQ H3C 3A7, Canada
[2] Univ Montreal, GEODES, DIRO, Montreal, PQ, Canada
关键词
Program understanding; Design patterns; Explanation-based constraint programming; Metrics; Exploratory study; SOFTWARE;
D O I
10.1007/s11219-009-9082-y
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The identification of occurrences of design patterns in programs can help maintainers to understand the program design and implementation. It can also help them to make informed changes. Current identification approaches are limited to complete occurrences, are time- and resource-consuming, and lead to many false positives. We propose to combine a structural and a numerical approach to improve the identification of complete and incomplete occurrences of design patterns. We develop a structural approach using explanation-based constraint programming and we enhance this approach using experimentally built numerical signatures. We show that the use of numerical signatures improves the identification of complete and incomplete occurrences in terms of performance and precision.
引用
收藏
页码:145 / 174
页数:30
相关论文
共 45 条
[1]   Instantiating and detecting design patterns:: Putting bits and pieces together [J].
Albin-Amiot, H ;
Cointe, P ;
Guéhéneuc, YG ;
Jussien, N .
16TH ANNUAL INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2001), PROCEEDINGS, 2001, :166-173
[2]   Design pattern recovery in object-oriented software [J].
Antoniol, G ;
Fiutem, R ;
Cristoforetti, L .
6TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION (IWPC 98) - PROCEEDINGS, 1998, :153-160
[3]  
Bansiya J., 1998, DOBBS J
[4]  
Bayardo RJ, 1996, PROCEEDINGS OF THE THIRTEENTH NATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND THE EIGHTH INNOVATIVE APPLICATIONS OF ARTIFICIAL INTELLIGENCE CONFERENCE, VOLS 1 AND 2, P298
[5]   Efficient relational calculation for software analysis [J].
Beyer, D ;
Noack, A ;
Lewerentz, C .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2005, 31 (02) :137-149
[6]   Design patterns and change proneness: An examination of five evolving systems. [J].
Bieman, JM ;
Straw, G ;
Wang, HX ;
Munger, PW ;
Alexander, RT .
NINTH INTERNATIONAL SOFTWARE METRICS SYMPOSIUM, PROCEEDINGS, 2003, :40-49
[7]  
BOEHM BW, 1976, IEEE T COMPUT, V25, P1226, DOI 10.1109/TC.1976.1674590
[8]   An investigation into coupling measures for C++ [J].
Briand, L ;
Devanbu, P ;
Melo, W .
PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1997, :412-421
[9]   A unified framework for cohesion measurement in object-oriented systems [J].
Briand, LC ;
Daly, JW ;
Wust, J .
FOURTH INTERNATIONAL SOFTWARE METRICS SYMPOSIUM, PROCEEDINGS, 1997, :43-53
[10]  
BROWN K, 1996, TR9607 U ILL URB DEP