Object-Oriented Cognitive-Spatial Complexity Measures

Software maintenance and mainly software comprehension pose the largest costs in the software lifecycle. In order to assess the cost of software comprehension, various complexity measures have been proposed in the literature. This paper proposes new cognitive-spatial complexity measures, which combine the impact of spatial as well as architectural aspect of the software to compute the software complexity. The spatial aspect of the software complexity is taken into account using the lexical distances (in number of lines of code) between different program elements and the architectural aspect of the software complexity is taken into consideration using the cognitive weights of control structures present in control flow of the program. The proposed measures are evaluated using standard axiomatic frameworks and then, the proposed measures are compared with the corresponding existing cognitive complexity measures as well as the spatial complexity measures for object-oriented software. This study establishes that the proposed measures are better indicators of the cognitive effort required for software comprehension than the other existing complexity measures for object-oriented software.




References:
[1] M. .P. O-Brien and J. Buckley, "Inference-Based and Expectation based
Processing in Program Comprehension", in Proc. Ninth IEEE Int-l
Workshop Program Comprehension, 2001, pp. 71-78.
[2] T. J. McCabe, "A complexity measure", IEEE Transactions on Software
Engineering, vol. SE-2 (4), pp. 308-320, 1976.
[3] M.H. Halstead, Elements of Software Science, Elsevier North-Holland,
New York, 1997.
[4] W. Harrison, "An entropy-based measure of software complexity", IEEE
Transactions on Software Engineering, vol. 18(11), 1992, pp. 1025-
1029.
[5] Y. Wang and J. Shao, "Measurement of the cognitive functional
complexity of software", in Proc. IEEE International Conference on
Cognitive Informatics, ICCI-03, 2003, pp. 67-71.
[6] Y. Wang, and J. Shao, "A new measure of software complexity based on
cognitive weights", Canadian Journal of Electrical & Computer
Engineering, vol. 28(2), 2003, pp. 69-74.
[7] S. Misra, "Modified cognitive complexity measure", 21st ISCIS-06,
LNCS, vol. 4263, pp. 1050-59, 2006.
[8] S. Misra, "A complexity measure based on cognitive weights",
International Journal of Theoretical and Applied Computer Science, vol.
l (1), 2006, pp. 1-10.
[9] C.R. Douce, P.J. Layzell, and J. Buckley, "Spatial measures of software
complexity", in Proc. 11th Meeting of Psychology of Programming
Interest Group, 1999.
[10] J. K. Chhabra, K. K. Aggarwal, and Y. Singh, "Code and data spatial
complexity: two important software understandability measures",
Information and Software Technology, vol. 45(8), 2003, pp. 539-546.
[11] J. K. Chhabra, K. K. Aggarwal, and Y. Singh, "Measurement of object
oriented software spatial complexity", Information and Software
Technology, vol. 46(10), 2004, pp. 689-699.
[12] J. K. Chhabra and V. Gupta, "Towards spatial complexity measures for
comprehension of Java programs", in Proc. IEEE International
Conference on Advanced Computing and Communications, 2006, pp.
430-433.
[13] N. E. Gold and P. J. Layzell, "Spatial complexity metrics: an
investigation of utility", IEEE Transactions on Software Engineering,
vol. 3(1), 2005, pp. 203-212.
[14] S. D. Conte, H. E. Dunsmore, and V. Y. Shen, Software Engineering
Metrics and Models, Cummings Pub. Coi. Inc., USA, 1986.
[15] E. J. Weyuker, "Evaluating software complexity measure", IEEE
Transaction on Software Engineering, vol. 14(9), 1988, pp. 1357-1365.
[16] L. C Briand, S. Morasca, and V. R. Basili, "Property based software
engineering measurement", IEEE Transactions on Software
Engineering, vol. 22(1), 1996, pp. 68-86.
[17] S. Chidamber and C. Kemerer, "A metrics suite for object-oriented
design", IEEE Transactions on Software Engineering, vol. 20(6), 1994,
pp. 476-493.
[18] J. K. Chhabra, K. K. Aggarwal, and Y. Singh, "A unified measure of
complexity of object-oriented software", Journal of the Computer
Society of India, vol. 34(3), 2004, pp. 2-13.
[19] S. Misra and A. K. Misra, "Evaluating cognitive complexity measures
with Weyuker properties", in Proc. third IEEE International Conference
on Cognitive Informatics (ICCI2004), 2004, pp.103-108.
[20] S. Misra and A. K. Misra, "Evaluation and comparison of cognitive
complexity measure", ACM SIGSOFT Software Engineering Notes , vol.
32(2), 2007, pp. 1-5.
[21] D. P. Tegarden, S. D. Sheetz, and D. E. Monarchi, "The effectiveness of
traditional metrics for object-oriented systems", in Proc. Twenty-Fifth
Hawaii International Conference on System Sciences, 1992.
[22] D. P. Tegarden, S. D. Sheetz, and D. E. Monarchi, "A software
complexity model of object-oriented systems", Decision Support
Systems: the International Journal, vol. 13, 1995, pp. 241-262.
[23] V. Y. Shen, S. D. Conte, and H. E. Dunsmore, "Software Science
Revisited: A Critical Analysis of the Theory and its Empirical Support",
IEEE Transactions on Software Engineering, vol. SE-9 (2), 1983, pp.
155-165.
[24] Y. Singh, "Metrics and Design Techniques for Reliable Software", PhD
Thesis, Kurukshetra University, Kurukshetra, 1995.