An Object Oriented Complexity Metric Based on Cognitive Weights

Complexity in general is defined as "the degree to which a system or component has a design or implementation that is difficult to understand and verify ". Complexity metrics are used to predict critical information about reliability and maintainability of software systems. Object oriented software development requires a different approach to software metrics. In this paper, an attempt has been made to propose a metric for an object oriented code, which calculates the complexity of a class at method level. The proposed measure considers the internal architecture of the class, subclass, and member functions, while other proposed metrics for object oriented programming do not. An attempt has also been made to evaluate and validate the proposed measure in terms of Weyuker's properties and against the principles of measurement theory. It has been found that seven of nine Weyuker's properties have been satisfied by the proposed measure. It also satisfies most of the parameters required by the measurement theory perspective, hence establishes as a well-structured one.

[1]  Yingxu Wang,et al.  Psychological experiments on the cognitive complexities of fundamental control structures of software systems , 2005, Fourth IEEE Conference on Cognitive Informatics, 2005. (ICCI 2005)..

[2]  Kapsu Kim,et al.  Complexity measures for object-oriented program based on the entropy , 1995, Proceedings 1995 Asia Pacific Software Engineering Conference.

[3]  Lionel C. Briand,et al.  Modeling Development Effort in Object-Oriented Systems Using Design Properties , 2001, IEEE Trans. Software Eng..

[4]  Genny Tortora,et al.  Class point: an approach for the size estimation of object-oriented systems , 2005, IEEE Transactions on Software Engineering.

[5]  Gursaran,et al.  On the Applicability of Weyuker Property 9 to Object-Oriented Structural Inheritance Complexity Metrics , 2001, IEEE Trans. Software Eng..

[6]  Mark Lorenz Object-Oriented Software Metrics , 1994 .

[7]  Norman Wilde,et al.  Maintenance Support for Object-Oriented Programs , 1992, IEEE Trans. Software Eng..

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

[9]  Sanjay Misra,et al.  Evaluating cognitive complexity measure with Weyuker properties , 2004 .

[10]  Yingxu Wang,et al.  Measurement of the cognitive functional complexity of software , 2003, The Second IEEE International Conference on Cognitive Informatics, 2003. Proceedings..

[11]  Sandro Morasca,et al.  Foundations of a Weak Measurement-Theoretic Approach to Software Measurement , 2003, FASE.

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

[13]  Yingxu Wang,et al.  On Cognitive Informatics , 2002, Proceedings First IEEE International Conference on Cognitive Informatics.

[14]  Ron Weber,et al.  Research on Structured Programming: An Empiricist's Evaluation , 1984, IEEE Transactions on Software Engineering.

[15]  Cem Kaner,et al.  Software Engineering Metrics: What Do They Measure and How Do We Know? , 2004 .

[16]  Elaine J. Weyuker,et al.  Evaluating Software Complexity Measures , 2010, IEEE Trans. Software Eng..

[17]  Naveen Sharma,et al.  Applicability of Weyuker's Property 9 to object oriented metrics , 2006, IEEE Transactions on Software Engineering.

[18]  Lu Zhang,et al.  Comments on "On the Applicability of Weyuker Property 9 to Object-Oriented Structural Inheritance Complexity Metrics" , 2002, IEEE Trans. Software Eng..

[19]  Sanjay Misra Modified Set of Weyuker's Properties , 2006, 2006 5th IEEE International Conference on Cognitive Informatics.

[20]  Ron Weber,et al.  Toward a Theory of the Deep Structure of Information Systems , 1990, ICIS.