Mining design patterns from C++ source code

被引:57
作者
Balanyi, Z [1 ]
Ferenc, R [1 ]
机构
[1] Univ Szeged, Res Grp Artificial Intelligence, Szeged, Hungary
来源
INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS | 2003年
关键词
design patterns; DPML; C plus; UML; ASG; schema Columbus;
D O I
10.1109/ICSM.2003.1235436
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Design patterns are micro architectures that have proved to be reliable, easy-to implement and robust. There is a need in science and industry for recognizing these patterns. We present a new method for discovering design patterns in the source code. This method provides a precise specification of how the patterns work by describing basic structural information like inheritance, composition, aggregation and association, and as an indispensable part, by defining call delegation, object creation and operation overriding. We introduce a new XML-based language, the Design Pattern Markup Language (DPML), which provides an easy way for the users to modify pattern descriptions to suit their needs, or even to define their own patterns or just classes in certain relations they wish to find. We tested our method on four open-source systems, and found it effective in discovering design pattern instances.
引用
收藏
页码:305 / 314
页数:10
相关论文
共 15 条
[1]   Using metrics to identify design patterns in object-oriented software [J].
Antoniol, G ;
Fiutem, R ;
Cristoforetti, L .
FIFTH INTERNATIONAL SOFTWARE METRICS SYMPOSIUM - METRICS 1998, PROCEEDINGS, 1998, :23-34
[2]  
BANSIYA J, 1998, DR DOBBS J JUN
[3]  
Ferenc R., 2002, Acta Cybernetica, V15, P669
[4]   Columbus -: Reverse engineering tool and schema for C++ [J].
Ferenc, R ;
Beszédes, A ;
Tarkiainen, M ;
Gyimóthy, T .
INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2002, :172-181
[5]   Data exchange with the Columbus schema for C++ [J].
Ferenc, R ;
Beszédes, A .
SIXTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 2002, :59-66
[6]  
Gamma E., 1995, Design Patterns: Elements of Reusable Object-Oriented Software, V206, P395, DOI 10.1093/carcin/bgs084
[7]  
GUEHENEUC YG, 2001, P 1 IJCAI WORKSH MOD, P57
[8]  
*IJNT STAND ORG, 1998, 148821998E ISOIEC
[9]   Design recovery by automated search for structural design patterns in object-oriented software [J].
Kramer, C ;
Prechelt, L .
PROCEEDINGS OF THE THIRD WORKING CONFERENCE ON REVERSE ENGINEERING, 1996, :208-215
[10]  
MEHLHORN K, 1997, LEDA PALTFORM COMBIN