How changes affect software entropy: an empirical study (original) (raw)

Abstract

Context Software systems continuously change for various reasons, such as adding new features, fixing bugs, or refactoring. Changes may either increase the source code complexity and disorganization, or help to reducing it. Aim This paper empirically investigates the relationship of source code complexity and disorganization—measured using source code change entropy—with four factors, namely the presence of refactoring activities, the number of developers working on a source code file, the participation of classes in design patterns, and the different kinds of changes occurring on the system, classified in terms of their topics extracted from commit notes. Method We carried out an exploratory study on an interval of the life-time span of four open source systems, namely ArgoUML, Eclipse-JDT, Mozilla, and Samba, with the aim of analyzing the relationship between the source code change entropy and four factors: refactoring activities, number of contributors for a file, participation of classes in design patterns, and change topics. Results The study shows that (i) the change entropy decreases after refactoring, (ii) files changed by a higher number of developers tend to exhibit a higher change entropy than others, (iii) classes participating in certain design patterns exhibit a higher change entropy than others, and (iv) changes related to different topics exhibit different change entropy, for example bug fixings exhibit a limited change entropy while changes introducing new features exhibit a high change entropy. Conclusions Results provided in this paper indicate that the nature of changes (in particular changes related to refactorings), the software design, and the number of active developers are factors related to change entropy. Our findings contribute to understand the software aging phenomenon and are preliminary to identifying better ways to contrast it.

Access this article

Log in via an institution

Subscribe and save

Buy Now

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

Instant access to the full article PDF.

Fig. 1

The alt text for this image may have been generated using AI.

Fig. 2

The alt text for this image may have been generated using AI.

Fig. 3

The alt text for this image may have been generated using AI.

Fig. 4

The alt text for this image may have been generated using AI.

Fig. 5

The alt text for this image may have been generated using AI.

Fig. 6

The alt text for this image may have been generated using AI.

Fig. 7

The alt text for this image may have been generated using AI.

Fig. 8

The alt text for this image may have been generated using AI.

Fig. 9

The alt text for this image may have been generated using AI.

Similar content being viewed by others

Notes

  1. In the following for Eclipse-JDT we refer to classes rather than to files, knowing that in the discussed cases there is a correspondence between a class and a file.

References

Download references

Author information

Authors and Affiliations

  1. Department of Engineering-RCOST, University of Sannio, Benevento, Italy
    Gerardo Canfora & Massimiliano Di Penta
  2. Department of Biological and Environmental Studies, University of Sannio, Benevento, Italy
    Luigi Cerulo
  3. Department of Jurisprudence, Unitelma Sapienza, Napoli, Italy
    Marta Cimitile

Authors

  1. Gerardo Canfora
  2. Luigi Cerulo
  3. Marta Cimitile
  4. Massimiliano Di Penta

Corresponding author

Correspondence toMassimiliano Di Penta.

Additional information

This paper is an extension of the paper “An Exploratory Study of Factors Influencing Change Entropy” (Canfora et al. 2010).

Appendix: Detailed Analyses

Appendix: Detailed Analyses

Table 8 ArgoUML: comparison of change entropy among different design patterns

Full size table

Table 9 Eclipse-JDT: comparison of change entropy among different design patterns

Full size table

Table 10 ArgoUML: Cliff’s delta resulting from the comparison of change entropy for different topics

Full size table

Table 11 Eclipse-JDT: Cliff’s delta resulting from the comparison of change entropy for different topics

Full size table

Table 12 Mozilla: Cliff’s delta resulting from the comparison of change entropy for different topics

Full size table

Table 13 Samba: Cliff’s delta resulting from the comparison of change entropy for different topics

Full size table

Rights and permissions

About this article

Cite this article

Canfora, G., Cerulo, L., Cimitile, M. et al. How changes affect software entropy: an empirical study.Empir Software Eng 19, 1–38 (2014). https://doi.org/10.1007/s10664-012-9214-z

Download citation

Keywords