Skip to main content
Log in

Mining software change data stream to predict changeability of classes of object-oriented software system

  • Original Paper
  • Published:
Evolving Systems Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anshu Parashar.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12530-016-9151-y

Keywords

Navigation