An empirical investigation of changes in some software properties over time

Software metrics are easy to define, but not so easy to justify. It is hard to prove that a metric is valid, i.e., that measured numerical values imply anything on the vaguely defined, yet crucial software properties such as complexity and maintainability. This paper employs statistical analysis and tests to check some plausible assumptions on the behavior of software and metrics measured for this software in retrospective on its versions evolution history. Among those are the reliability assumption implicit in the application of any code metric, and the assumption that the magnitude of change, i.e., increase or decrease of its size, in a software artifact is correlated with changes to its version number. Putting a suite of 36 metrics to the trial, we confirm most of the assumptions on a large repository of software artifacts. Surprisingly, we show that a substantial portion of the reliability of some metrics can be observed even in random changes to architecture. Another surprising result is that Boolean-valued metrics tend to flip their values more often in minor software version increments than in major increments.

[1]  P. Gács,et al.  Algorithms , 1992 .

[2]  C. F. Kossack,et al.  Rank Correlation Methods , 1949 .

[3]  Neville Churcher,et al.  CodeRank: a new family of software metrics , 2006, Australian Software Engineering Conference (ASWEC'06).

[4]  Paulo Sérgio Almeida Balloon Types: Controlling Sharing of State in Data Types , 1997, ECOOP.

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Georgios Lajios Software Metrics Suites for Project Landscapes , 2009, 2009 13th European Conference on Software Maintenance and Reengineering.

[7]  Meilir Page-Jones,et al.  Fundamentals of object-oriented design in UML , 1999 .

[8]  U. Brandes A faster algorithm for betweenness centrality , 2001 .

[9]  M. Kendall,et al.  Rank Correlation Methods (5th ed.). , 1992 .

[10]  Hisham M. Haddad,et al.  The State of Metrics in Software Industry , 2008, Fifth International Conference on Information Technology: New Generations (itng 2008).

[11]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[12]  Brian Henderson-Sellers,et al.  Object-oriented metrics: measures of complexity , 1995 .

[13]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[14]  Itay Maman,et al.  Micro patterns in Java code , 2005, OOPSLA '05.

[15]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[16]  Mark Lorenz,et al.  Object-oriented software metrics - a practical guide , 1994 .

[17]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .