Measuring the reusability of software components using static analysis metrics and reuse rate information

被引:20
作者
Papamichail, Michail D. [1 ]
Diamantopoulos, Themistoklis [1 ]
Symeonidis, Andreas L. [1 ]
机构
[1] Aristotle Univ Thessaloniki, Elect & Comp Engn Dept, Thessaloniki, Greece
关键词
Developer-perceived reusability; Code reuse; Static analysis metrics; Reusability estimation; QUALITY; BENCHMARKING;
D O I
10.1016/j.jss.2019.110423
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Nowadays, the continuously evolving open-source community and the increasing demands of end users are forming a new software development paradigm; developers rely more on reusing components from online sources to minimize the time and cost of software development. An important challenge in this context is to evaluate the degree to which a software component is suitable for reuse, i.e. its reusability. Contemporary approaches assess reusability using static analysis metrics by relying on the help of experts, who usually set metric thresholds or provide ground truth values so that estimation models are built. However, even when expert help is available, it may still be subjective or case-specific. In this work, we refrain from expert-based solutions and employ the actual reuse rate of source code components as ground truth for building a reusability estimation model. We initially build a benchmark dataset, harnessing the power of online repositories to determine the number of reuse occurrences for each component in the dataset. Subsequently, we build a model based on static analysis metrics to assess reusability from five different properties: complexity, cohesion, coupling, inheritance, documentation and size. The evaluation of our methodology indicates that our system can effectively assess reusability as perceived by developers. (C) 2019 Elsevier Inc. All rights reserved.
引用
收藏
页数:14
相关论文
共 49 条
[1]   On code reuse from StackOverflow: An exploratory study on Android apps [J].
Abdalkareem, Rabe ;
Shihab, Emad ;
Rilling, Juergen .
INFORMATION AND SOFTWARE TECHNOLOGY, 2017, 88 :148-158
[2]  
Aggarwal K, 2014, Proceedings of the 11th Working Conference on Mining Software Repositories, P360, DOI [10.1145/2597073.2597120, DOI 10.1145/2597073.2597120]
[3]  
Alves T.L., 2010, 2010 IEEE INT C SOFT, P1
[4]  
[Anonymous], 2011, ISO25010
[5]  
[Anonymous], TECHNICAL REPORT
[6]  
[Anonymous], 2006, INT J COMPUTER SCI
[7]  
[Anonymous], INT J RES ENG TECHNO
[8]  
[Anonymous], 2012, INT J INF TECHNOL KN
[9]  
[Anonymous], PROFES
[10]  
[Anonymous], 1998, Software engineering: theory and practice