A Complexity Metrics Set for Large-Scale Object-Oriented Software Systems

Although traditional software metrics have widely been applied to practical software projects, they have insufficient abilities to measure a large-scale system's complexity at high level so as to provide an overview of the system for developers. So, an adequate metrics set for large-scale software systems that can comprehensively measure the complexity at various levels is still challengeable. First, we summarize universal properties and implicit limitations of recognized object-oriented metric sets in the face of ever-increasing complexities of modern software systems. Large-scale software systems represent an important class of artificial complex networks. Then, from the perspective of software engineering, the main parameters of complex networks are introduced in detail. Furthermore, we integrate these metrics and parameters into a hierarchical complexity metrics set, which can measure the complexity at different levels of a large-scale software system. Eventually, we prove the feasibility of our metrics set through analyzing the data from a software project.

[1]  Ellis Horowitz,et al.  Software Cost Estimation with COCOMO II , 2000 .

[2]  Mark E. J. Newman,et al.  The Structure and Function of Complex Networks , 2003, SIAM Rev..

[3]  John Guare,et al.  Six Degrees of Separation: A Play , 1990 .

[4]  Frederick P. Brooks,et al.  Three great challenges for half-century-old computer science , 2003, JACM.

[5]  Duncan J. Watts,et al.  Collective dynamics of ‘small-world’ networks , 1998, Nature.

[6]  Richard H. Carver,et al.  An Evaluation of the MOOD Set of Object-Oriented Software Metrics , 1998, IEEE Trans. Software Eng..

[7]  Albert,et al.  Emergence of scaling in random networks , 1999, Science.

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

[9]  Tom DeMarco,et al.  Controlling Software Projects: Management, Measurement, and Estimates , 1986 .

[10]  Christopher R. Myers,et al.  Software systems as complex networks: structure, function, and evolvability of software collaboration graphs , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[11]  Khaled El Emam,et al.  The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics , 2001, IEEE Trans. Software Eng..

[12]  James Noble,et al.  Scale-free geometry in OO programs , 2005, CACM.

[13]  Mark Newman,et al.  Detecting community structure in networks , 2004 .

[14]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..

[15]  Sergi Valverde,et al.  Hierarchical Small Worlds in Software Architecture , 2003 .

[16]  Cemal Yilmaz,et al.  Software Metrics , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[17]  Sallie M. Henry,et al.  Software Structure Metrics Based on Information Flow , 1981, IEEE Transactions on Software Engineering.

[18]  Dan Song,et al.  Ontology application in software component registry to achieve semantic interoperability , 2005, International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II.

[19]  Keqing He,et al.  A qualitative method for measuring the structural complexity of software systems based on complex networks , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[20]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[21]  Everald E. Mills Software Metrics - SEI Curriculum Module SEI-CM-12-1.1 , 1988 .