An empirical investigation on the reusability of design patterns and software packages

被引:18
作者
Ampatzoglou, Apostolos [1 ]
Kritikos, Apostolos [1 ]
Kakarontzas, George [1 ]
Stamelos, Ioannis [1 ]
机构
[1] Aristotle Univ Thessaloniki, Dept Informat, Thessaloniki 54124, Greece
关键词
Design patterns; Design; Quality; Reusability; Empirical approach; COHESION METRICS; QUALITY; PREDICTION; MODELS;
D O I
10.1016/j.jss.2011.06.047
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Nowadays open-source software communities are thriving. Successful open-source projects are competitive and the amount of source code that is freely available offers great reuse opportunities to software developers. Thus, it is expected that several requirements can be implemented based on open source software reuse. Additionally, design patterns, i.e. well-known solution to common design problems, are introduced as elements of reuse. This study attempts to empirically investigate the reusability of design patterns, classes and software packages. Thus, the results can help developers to identify the most beneficial starting points for white box reuse, which is quite popular among open source communities. In order to achieve this goal we conducted a case study on one hundred (100) open source projects. More specifically, we identified 27,461 classes that participate in design patterns and compared the reusability of each of these classes with the reusability of the pattern and the package that this class belongs to. In more than 40% of the cases investigated, design pattern based class selection, offers the most reusable starting point for white-box reuse. However there are several cases when package based selection might be preferable. The results suggest that each pattern has different level of reusability. (C) 2011 Elsevier Inc. All rights reserved.
引用
收藏
页码:2265 / 2283
页数:19
相关论文
共 56 条
[21]   Life Cycles for Component-Based Software Development [J].
Fahmi, Syed Ahsan ;
Choi, Ho-Jin .
8TH IEEE INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION TECHNOLOGY WORKSHOPS: CIT WORKSHOPS 2008, PROCEEDINGS, 2008, :637-642
[22]   Using quality models in software package selection [J].
Franch, X ;
Carvallo, JP .
IEEE SOFTWARE, 2003, 20 (01) :34-+
[23]  
Gamma E., 1995, DESIGN PATTERNS ELEM
[24]   Building measure-based prediction models for UML class diagram maintainability [J].
Genero, Marcela ;
Manso, Esperanza ;
Visaggio, Aaron ;
Canfora, Gerardo ;
Piattini, Mario .
EMPIRICAL SOFTWARE ENGINEERING, 2007, 12 (05) :517-549
[25]   Fingerprinting design patterns [J].
Guéhéneuc, YG ;
Sahraoui, H ;
Zaidi, F .
11TH WORKING CONFERENCE ON REVERSE ENGINEERING, PROCEEDINGS, 2004, :172-181
[26]   Ranking reusability of software components using coupling metrics [J].
Gui, Gui ;
Scott, Paul D. .
JOURNAL OF SYSTEMS AND SOFTWARE, 2007, 80 (09) :1450-1459
[27]   How do architecture patterns and tactics interact? A model and annotation [J].
Harrison, Neil B. ;
Avgeriou, Paris .
JOURNAL OF SYSTEMS AND SOFTWARE, 2010, 83 (10) :1735-1758
[28]   LARGE-SCALE INDUSTRIAL REUSE TO REDUCE COST AND CYCLE TIME [J].
HENRY, E ;
FALLER, B .
IEEE SOFTWARE, 1995, 12 (05) :47-53
[29]  
Holzle U., 1993, ECOOP '93 - Object-Oriented Programming. 7th European Conference Proceedings, P36
[30]   A quantitative approach for evaluating the quality of design patterns [J].
Hsueh, Nien-Lin ;
Chu, Peng-Hua ;
Chu, William .
JOURNAL OF SYSTEMS AND SOFTWARE, 2008, 81 (08) :1430-1439