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

Large-scale object-oriented (OO) software systems have recently been found to share global network characteristics such as small world and scale free, which go beyond the scope of traditional software measurement and assessment methodologies. To measure the complexity at various levels of granularity, namely graph, class (and object) and source code, we propose a hierarchical set of metrics in terms of coupling and cohesion — the most important characteristics of software, and analyze a sample of 12 open-source OO software systems to empirically validate the set. Experimental results of the correlations between cross-level metrics indicate that the graph measures of our set complement traditional software metrics well from the viewpoint of network thinking, and provide more effective information about fault-prone classes in practice.

[1]  Geert Poels,et al.  Distance-based software measurement: necessary and sufficient properties for software measures , 2000, Inf. Softw. Technol..

[2]  M. Marchesi,et al.  On the suitability of Yule process to stochastically model some properties of object-oriented systems , 2006 .

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

[4]  Nachiappan Nagappan,et al.  Predicting defects using network analysis on dependency graphs , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[5]  Diomidis Spinellis,et al.  Power laws in software , 2008, TSEM.

[6]  R. Tsien,et al.  Specificity and Stability in Topology of Protein Networks , 2022 .

[7]  Martin H. Levinson Linked: The New Science of Networks , 2004 .

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

[9]  Mario Piattini,et al.  Finding "early" indicators of UML class diagrams understandability and modifiability , 2004, Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004. ISESE '04..

[10]  Sergi Valverde,et al.  Network motifs in computational graphs: a case study in software architecture. , 2005, Physical review. E, Statistical, nonlinear, and soft matter physics.

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

[12]  Sandro Morasca,et al.  Property-Based Software Engineering Measurement , 1996, IEEE Trans. Software Eng..

[13]  Samantha Jenkins,et al.  Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution , 2007, Inf. Sci..

[14]  Mario Piattini,et al.  A Survey of Metrics for UML Class Diagrams , 2005, J. Object Technol..

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

[16]  Ewan D. Tempero,et al.  Understanding the shape of Java software , 2006, OOPSLA '06.

[17]  Ramanath Subramanyam,et al.  Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects , 2003, IEEE Trans. Software Eng..

[18]  Katsuro Inoue,et al.  An Exploration of Power-Law in Use-Relation of Java Software Systems , 2008 .

[19]  Hao Hua Zhang,et al.  The Static Structural Complexity Metrics for Large-Scale Software System , 2010 .

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

[21]  Oscar Nierstrasz,et al.  The Inevitable Stability of Software Change , 2007, 2007 IEEE International Conference on Software Maintenance.

[22]  Tong Yi,et al.  A comparison of metrics for UML class diagrams , 2004, SOEN.

[23]  Albert-László Barabási,et al.  Linked: The New Science of Networks , 2002 .

[24]  Jing Liu,et al.  Network Motifs in Object-Oriented Software Systems , 2008, ArXiv.

[25]  K. Sneppen,et al.  Specificity and Stability in Topology of Protein Networks , 2002, Science.

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

[27]  D. Watts The “New” Science of Networks , 2004 .

[28]  Fernando Brito e Abreu,et al.  Object-Oriented Software Engineering: Measuring and Controlling the Development Process , 1994 .

[29]  Simon M. Kaplan,et al.  Scale-Free Nature of Java Software Package, Class and Method Collaboration Graphs , 2006 .

[30]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.

[31]  Alexander Chatzigeorgiou,et al.  Application of graph theory to OO software engineering , 2006, WISER '06.

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

[33]  Nathan LaBelle,et al.  Inter-Package Dependency Networks in Open-Source Software , 2004, ArXiv.

[34]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[35]  A. Barabasi,et al.  Hierarchical Organization of Modularity in Metabolic Networks , 2002, Science.

[36]  Kai-Yuan Cai,et al.  Software execution processes as an evolving complex network , 2009, Inf. Sci..

[37]  Anneke Kleppe,et al.  MDA explained - the Model Driven Architecture: practice and promise , 2003, Addison Wesley object technology series.

[38]  Jing Liu,et al.  A Complexity Metrics Set for Large-Scale Object-Oriented Software Systems , 2006, The Sixth IEEE International Conference on Computer and Information Technology (CIT'06).

[39]  Andrew Cain,et al.  Detecting structural changes in object oriented software systems , 2005, 2005 International Symposium on Empirical Software Engineering, 2005..

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

[41]  Jun Hu,et al.  Complex Network Thinking in Software Engineering , 2008, 2008 International Conference on Computer Science and Software Engineering.

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

[43]  Michele Marchesi,et al.  Power-Laws in a Large Object-Oriented Software System , 2007, IEEE Transactions on Software Engineering.

[44]  Lian Wen,et al.  Software Systems as Complex Networks , 2007, 6th IEEE International Conference on Cognitive Informatics.

[45]  Mario Piattini,et al.  No-redundant Metrics for UML Class Diagram Structural Complexity , 2003, CAiSE.

[46]  Yutao Ma,et al.  Scale Free in Software Metrics , 2006, 30th Annual International Computer Software and Applications Conference (COMPSAC'06).

[47]  Mario Piattini,et al.  Building UML class diagram maintainability prediction models based on early metrics , 2003, Proceedings. 5th International Workshop on Enterprise Networking and Computing in Healthcare Industry (IEEE Cat. No.03EX717).

[48]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

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

[50]  ZhouYuming,et al.  MEASURING STRUCTURE COMPLEXITY OF UML CLASS DIAGRAMS , 2003 .

[51]  Ayse Basar Bener,et al.  Validation of network measures as indicators of defective modules in software systems , 2009, PROMISE '09.

[52]  Letha H. Etzkorn,et al.  Empirical Validation of Three Software Metrics Suites to Predict Fault-Proneness of Object-Oriented Classes Developed Using Highly Iterative or Agile Software Development Processes , 2007, IEEE Transactions on Software Engineering.

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

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

[55]  Ying-Cheng Lai,et al.  Signatures of small-world and scale-free properties in large computer programs , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[56]  Daniel Bilar Callgraph properties of executables , 2007, AI Commun..

[57]  Keqing He,et al.  A Grid-Oriented Platform for Software Component Repository Based on Domain Ontology , 2007, IEEE International Conference on Services Computing (SCC 2007).

[58]  Steve Counsell,et al.  Power law distributions in class relationships , 2003, Proceedings Third IEEE International Workshop on Source Code Analysis and Manipulation.

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

[60]  Mark Kasunic The State of Software Measurement Practice: Results of 2006 Survey , 2006 .

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

[62]  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.

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

[64]  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).