Since existing software metrics do not consider the whole structure of a software project in evaluating classes
two new static metrics based on significance are proposed to build a better software change-proneness prediction model. The new metrics represent a project as a graph with classes being vertices and dependencies between classes being edges. The importance of a class is evaluated in the whole structure of the project
and the significance metrics for software change-proneness prediction are then proposed. Six open source software projects are used to validate the new metrics. Data used in experiments include two parts. The first part is metric of each class
including 4 volume metrics
6 complexity metrics and 2 significance metrics
and the second part is the number of changed lines of each class during the selected history period. Experimental results show that when the new metrics are combined with other metrics
the accuracy increases on 5 projects by 1.16% on average
and the area under ROC curve increases on 6 projects by 3.65% on average.
关键词
Keywords
references
LI Wei, HENRY S. Object-oriented metrics which predict maintainability [J]. Journal of Systems and Software, 1993, 23(2): 111-122.
CHAUMUM M A, KABAILI H, KELLER R K, et al. A change impact model for changeability assessment in object-oriented software systems [C]∥Proceedings of 3rd European Conference on Software Maintenance and Reengineering. Los Alamitos, CA, USA: IEEE Computer Society, 1999: 130-138.
AMOUI M, SALEHIE M, TAHVILDARI L. Temporal software change prediction using neural networks [J]. International Journal of Software Engineering and Knowledge Engineering, 2009, 9(7): 995-1014.
KORU A G, LIU Hongfang. Identifying and characterizing change-prone classes in two large-scale open-source products [J]. Journal of Systems and Software, 2007, 80(1): 63-73.
ZIMMERMANN T, ZELLER A, WEISSGERBER P, et al. Mining version histories to guide software changes [J]. IEEE Transactions on Software Engineering, 2005, 31(6): 429-445.
LINDVALL M, SANDAHL K. How well do experienced software developers predict software change? [J]. Journal of Systems and Software, 1998, 43(1): 19-27.
HAN A R, JEON S U, BAE D H, et al. Measuring behavioral dependency for improving change-proneness prediction in UML-based design models [J]. Journal of Systems and Software, 2010, 83(2): 222-234.
ZHOU Yuming, LEUNG H. Predicting object-oriented software maintainability using multivariate adaptive regression splines [J]. Journal of Systems and Software, 2007, 80(8): 1349-1361.
CHEN Zhenqiang, XU Baowen. An approach to measurement of class cohesion based on dependence analysis [J]. Journal of Software, 2003, 14(11): 1849-1856.
RUAN Tong, SHEN Beijun, JU Dehua. A flexible architecture in a measurement tool towards programs written in OO languages [J]. Journal of Computer Research and Development, 2000, 37(4): 401-406.
KITCHENHAM B A, PICKARD L M, LINKMAN S J. An evaluation of some design metrics [J]. Software Engineering Journal, 1990, 5(1): 50-58.
KLEINBERG J M. Authoritative sources in a hyperlinked environment [J]. Journal of the ACM, 1999, 46(5): 604-632.
O'MADADHAIN J, FISHER D, SMYTH P, et al. Analysis and visualization of network data using JUNG [J]. Journal of Statistical Software, 2005, 10(2): 1-25.
HOLM S. A simple sequentially rejective multiple test procedure [J]. Scandinavian Journal of Statistics, 1979, 6(2): 65-70.