Abstract
In software development, changes are continuously performed and stream of change-commits are generated during the evolution of software systems. Such stream of change-commits for classes are vital to understand how classes have co-evolved or change-coupled. The premise of this paper is to present a framework for mining the stream of class-changes to predict the future changeability behavior of classes. We present changeability measures for classes namely, Change-Coupling Index and Class Change-Impact Set. For these measures firstly, stream of change-commits are mined to extract the change-coupling among the classes, secondly, changeability measures of classes are computed. The proposed measures are empirically validated and some research questions have been answered to validate the usefulness of the change-stream. The obtained results are promising and show that proposed change-data-stream based changeability prediction can be very useful for the maintenance of software systems.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Ajrnal Chaumun M, Kabaili H, Keller R, Lustman F (1999) A change impact model for changeability assessment in object- oriented software systems. In: Proceedings of the European conference on software maintenance and reengineering, pp 130–138. doi:10.1109/CSMR.1999.756690
Ambros MD, Lanza M, Robbes R (2009) On the relationship between change coupling and software defects. In: Proceedings of the working conference on reverse engineering, pp 135–144. doi:10.1109/WCRE.2009.19
Arisholm E (2006) Empirical assessment of the impact of structural properties on the changeability of object-oriented software. Inf Softw Technol 48:1046–1055. doi:10.1016/j.infsof.2006.01.002
Arisholm E, Briand LC (2006) Predicting fault-prone components in a java legacy system. In: Proceedings of the international symposium on empirical software engineering, pp 8–17. doi:10.1145/1159733.1159738
Arisholm E, Briand LC, Foyen A (2004) Dynamic coupling measurement for object-oriented software. IEEE Trans Softw Eng 30:491–506. doi:10.1109/TSE.2004.41
Beck F, Diehl S (2010) Evaluating the impact of software evolution on software clustering. In: Proceedings of the working conference on reverse engineering, pp 99–108. doi:10.1109/WCRE.2010.19
Beyer D, Noack A (2005) Clustering software artifacts based on frequent common changes. In: Proceedings of the international workshop on program comprehension, pp 259–268. doi:10.1109/WPC.2005.12
Bouktif B, Gueheneuc YJ, Antoniol G (2006) Extracting change-patterns from CVS repositories. In: Proceedings of the working conference on reverse engineering, pp 221–230. doi:10.1109/WCRE.2006.27
Briand LC, Wuest J (2002) Empirical studies of quality models in object-oriented systems. Advs Comput 66:97–166. doi:10.1016/S0065-2458(02)80005-5
Briand LC, Labiche Y, Sullivan LO, Sowka MM (2006) Automated impact analysis of UML models. J Syst Softw. doi:10.1016/j.jss.2005.05.001
Ceccarelli M, Cerulo L, Canfora G, Penta MD (2010) An eclectic approach for change impact analysis. In: Proceedings of the international conference on software engineering, pp 163–166. doi:10.1145/1810295.1810320
Chidamber SR, Kemerer CF (1994) A metrics suite for object oriented design. IEEE Trans Softw Eng 20:476–493. doi:10.1109/32.295895
Connor AM, Finlay JA, Pears R (2014) Mining developer communication streams. In: Proceedings of the international conference on computer science and information technology, pp 13–25. doi:10.5121/csit.2014.4202
Dagpinar M, Jahnke JH (2003) Predicting maintainability with object oriented metrics-an empirical comparison. In: Proceedings of the working conference on reverse engineering, pp 155–164. doi:10.1109/WCRE.2003.1287246
Dondero RM, Hislop GW (2008) Predicting software change coupling. Dissertation, Drexel University, Philadelphia
Eski S, Buzluca F (2011) An empirical study on object-oriented metrics and software evolution in order to reduce testing costs by predicting changeprone classes. In: Proceedings of the international conference on software testing, verification and validation, pp 566–571. doi:10.1109/ICSTW.2011.43
Finlay J, Pears R, Connor AM (2014) Data stream mining for predicting software build outcomes using source code metrics. Inf Softw Technol 56:183–198. doi:10.1016/j.infsof.2013.09.001
Fluri B (2007) Assessing changeability by investigating the propagation of change types. In: Proceedings of the international conference on software engineering, pp 97–98. doi:10.1109/ICSECOMPANION.2007.23
Gupta V, Chhabra JK (2009) Package coupling measurement in object-oriented software. J Comput Sci Technol 24:273–283. doi:10.1007/s11390-009-9223-6
Jabangwe R, Borstler J, Smite D, Wohlin C (2015) Empirical evidence on the link between object-oriented measures and external quality attributes: a systematic literature review. Empir Softw Eng 20:640–693. doi:10.1007/s10664-013-9291-7
Kouroshfar E (2013) Studying the effect of co-change dispersion on software quality. In: Proceedings of the international conference on software engineering, pp 1450–1452. doi:10.1109/ICSE.2013.6606741
Li W, Henry S (1993) Object-oriented metrics that predict maintainability. J Syst Softw 23:111–122. doi:10.1016/0164-1212(93)90077-B
Li B, Sun X, Leung H, Zhang S (2003) A survey of code-based change impact analysis techniques. Softw Test Verif Reliab 23:613–646. doi:10.1002/stvr.1475
Oliva GA, Santana FW, Gerosa MA, De Souza CRB (2011) Towards a classification of logical dependencies origins: a case study. In: Proceedings of the workshop on principles of software evolution, pp 31–40. doi:10.1145/2024445.2024452
Pai G, Bechta Dugan J (2007) Empirical analysis of software fault content and fault proneness using bayesian methods. IEEE Trans Softw Eng 33:675–686. doi:10.1109/TSE.2007.70722
Silva LL, Valente MT, Maia MA (2014) Assessing modularity using co-change clusters. In: Proceedings of the international conference on modularity, pp 49–60. doi:10.1145/2577080.2577086
Sun X, Li B, Zhang Q (2012) A change proposal driven approach for changeability assessment using FCA-based impact analysis. In: Proceedings of the international conference on computer software and applications, pp 328–333. doi:10.1109/COMPSAC.2012.44
Vanya A, Premraj R, Vliet HV (2011) Approximating change sets at philips healthcare: a case study. In: Proceedings of the conference on software maintenance and reengineering, pp 121–130. doi:10.1109/CSMR.2011.18
Vanya A, Premraj R, Vliet HV (2012) Resolving unwanted couplings through interactive exploration of co- evolving software entities—an experience report. Inf Softw Technol 54:347–359. doi:10.1016/j.infsof.2011.11.003
Vanya A, Premraj R, Vliet HV (2010) Interactive exploration of co-evolving software entities. In: Proceedings of the conference on software maintenance and reengineering, pp 260–263. doi:10.1109/CSMR.2010.50
Ying ATT, Murphy GC, Ng R, Chu-Carroll MC (2004) Predicting source code changes by mining change history. IEEE Trans Soft Eng 30:574–586. doi:10.1109/TSE.2004.52
Yu L (2007) Understanding component co-evolution with a study on Linux. Empir Softw Eng 12:123–141. doi:10.1007/s10664-006-9000-x
Yu L, Mishra A, Ramaswamy S (2010) Component co-evolution and component dependency: speculations and verifications. IET Softw 4:252–267. doi:10.1049/iet-sen.2008.0084
Zhou Y, Wursch M, Giger E, Gall H, Lu J (2008) A bayesian network based approach for change coupling prediction. In: Proceedings of the working conference on reverse engineering, pp 27–36. doi:10.1109/WCRE.2008.39
Zimmermann T, Weißgerber P (2004) Preprocessing CVS data for fine-grained analysis. In: Proceedings of the international workshop on mining software repositories (MSR), pp 2–6. doi:10.1049/ic:20040466
Zimmermann T, Diehl S, Zeller A (2003) How history justifies system architecture (or not). In: Proceedings of the international workshop on principles of software evolution, pp 73–83. doi:10.1109/IWPSE.2003.1231213
Zimmermann T, Weißgerber P, Diehl S, Zeller A (2005) Mining version histories to guide software changes. IEEE Trans Softw Eng 31:429–445. doi:10.1109/TSE.2005.72
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Parashar, A., Chhabra, J.K. Mining software change data stream to predict changeability of classes of object-oriented software system. Evolving Systems 7, 117–128 (2016). https://doi.org/10.1007/s12530-016-9151-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12530-016-9151-y