Measuring Complexity, Development Time and Understandability of a Program: A Cognitive Approach

Full Text (PDF, 375KB), PP.53-60

Views: 0 Downloads: 0

Author(s)

Amit Kumar Jakhar 1,* Kumar Rajnish 1

1. Department of CSE, BIT, Mesra, Ranchi-835 215, Jharkhand, India

* Corresponding author.

DOI: https://doi.org/10.5815/ijitcs.2014.12.07

Received: 20 Feb. 2014 / Revised: 11 Jun. 2014 / Accepted: 6 Sep. 2014 / Published: 8 Nov. 2014

Index Terms

Program Complexity, Development Time, Understandability, Cognitive Weight, Basic Control Structures, Cognitive Functional Size, Lines of Code

Abstract

One of the central problems in software engineering is the inherent complexity. Since software is the result of human creative activity and cognitive informatics plays an important role in understanding its fundamental characteristics. This paper models one of the fundamental characteristics of software complexity by examining the cognitive weights of basic software control structures. Cognitive weights are the degree of the difficulty or relative time and effort required for comprehending a given piece of software, which satisfy the definition of complexity. Based on this approach a new concept of New Weighted Method Complexity (NWMC) of software is developed. Twenty programs are distributed among 5 PG students and development time is noted of all of them and mean is considered as the actual time needed time to develop the programs and Understandability (UA) is also measured of all the programs means how much time needed to understand the code. This paper considers Jingqiu Shao et al Cognitive Functional Size (CFS) of software for study. In order to validate the new complexity metrics we have calculated the correlation between proposed metric and CFS with respect to actual development time and performed analysis of NWMC with CFS with Mean Relative Error (MRE) and Standard Deviation (Std.). Finally, the authors found that the accuracy to estimate the development time with proposed measure is far better than CFS.

Cite This Paper

Amit Kumar Jakhar, Kumar Rajnish, "Measuring Complexity, Development Time and Understandability of a Program: A Cognitive Approach", International Journal of Information Technology and Computer Science(IJITCS), vol.6, no.12, pp.53-60, 2014. DOI:10.5815/ijitcs.2014.12.07

Reference

[1]T.J. McCabe, “A complexity measure”, IEEE Transactions on Software Engineering, Vol. 2, No.4, December 1976, pp.308-320.

[2]M.H. Halstead, “Elements of Software Science”, Elsevier North- Holland, New York, 1997.

[3]S. Henry, and D. Kafura, “Software structure metrics based on information flow”, IEEE Transaction on Software Engineering, SE-7, Sept. 1981, pp.510-518.

[4]E. I. Oviedo, “Control flow, data flow and program complexity”, Proc. COMPSAC, Chicago, 1980, pp. 146-152.

[5]K.C. Tai, “A program complexity metric based on data flow information in control graphs”, Proceedings of the 7th international conference on software engineering (ICSE 84), NJ, USA, 1984, ISBN: 0-8186-0528-6.

[6]W. Harrison, “An Entropy-based Measure of Software Complexity”, IEEE Transactions on Software Engineering, Vol. 18, No. 11, 1992, pp. 1025-1029.

[7]J.K. Chhabra and V. GUPta, “Evaluation of Object-Oriented Spatial Complexity Measures”, ACM SIGSOFT Software Engineering Notes, Vol. 34, No. 3, May 2009, pp. 1-5.

[8]C. R. Douce, P. J. Layzell, and J. Buckley, “Spatial measures of software complexity”, Proc. 11th Annual Workshop of Psychology of Programming Interest GroUP, University of Leeds, UK, Jan. 1999, pp. 36-45.

[9]J. Shao and Y. Wang, “A new measure of software complexity based on cognitive weights”, Canadian Journal of Electrical and Computer Engineering, Vol.28, No.2, April 2003, pp. 1-6.

[10]D.S. Kushwaha and A.K. Misra, “A modified cognitive information complexity measure of software”, ACM SIGSOFT Software Engineering Notes, Vol. 31, No.1, January 2006, pp.1-4.

[11]S. Misra, “Complexity measure based on cognitive weights”, International Journal of Theoretical and Applied Computer Sciences,Vol.1, No. 1, 2006, pp.1-10.

[12]Briand, L.C., S. Morasca, and V.R. Basili, “Property based Software Engineering Measurement,” IEEE Transactions on Software Engineering, vol. 22, 1996, pp. 68-86.

[13]Lakshmanian, K.B., S. Jayaprakash, P.K. Sinha, “Properties of Control-Flow Complexity Measures,” IEEE Transaction on Software Engineering, vol. 17, 1991, pp. 1289-1295.

[14]Tian, J., and M.V. Zelkowitz, “A Formal Program Complexity Model and its Application,” J. Systems Software, vol. 17, 1992, pp. 253-266.

[15]E. J. Weyuker, “Evaluating Software Complexity Measure.” IEEE Transaction on Software Engineering, vol. 14, 1988, pp. 1357-1365.

[16]Y. Wang, “On cognitive informatics: Keynote lecture,” in Proc. 1st IEEE Int. Conf. Cognitive Informatics (ICCI’02), Calgary, Alta., Aug. 2002, pp. 34–42. 

[17]Y. Wang, “Component-based software measurement,” chap. 14 in Business Compo-nent-Based Software Engineering, ed. F. Barbier, Boston: Kluwer Academic Publish-ers, 2002, pp. 247–262.

[18]E. Da-wei, “The software complexity model and metrics for object-oriented”, School of Computer Engineering, Jimei University, Xiamen, China, April 2007, pp. 464-469.

[19]J. K. Kearney, “Software complexity measurement”, Communications of the ACM, Vol. 29, No. 11, November 1986, pp. 1044-1050.

[20]C.A.R. Hoare, “Laws of programming”, Communications of the ACM, Vol. 30, No. 8, Aug. 1987, pp. 672–686.