Identifying comprehension bottlenecks using program slicing and cognitive complexity metrics

Achieving and maintaining high software quality is most dependent on how easily the software engineer least familiar with the system can understand the system's code. Understanding attributes of cognitive processes can lead to new software metrics that allow the prediction of human performance in software development and for assessing and improving the understandability of text and code. In this research we present novel metrics based on current understanding of short-term memory performance to predict the location of high frequencies of errors and to evaluate the quality of a software system. We further enhance these metrics by applying static and dynamic program slicing to provide programmers with additional guidance during software inspection and maintenance efforts.

[1]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software exploration , 1999, J. Syst. Softw..

[2]  Denis Besnard,et al.  Expert error in trouble-shooting: an exploratory study in electronics , 1999, Int. J. Hum. Comput. Stud..

[3]  Martin Hitz,et al.  Measuring coupling and cohesion in object-oriented systems , 1995 .

[4]  T. Klemola,et al.  A Cognitive Model for Complexity Metrics , 2000 .

[5]  Mark Harman,et al.  Slice-based measurement of coupling , 1997 .

[6]  Norman E. Fenton,et al.  Software metrics: roadmap , 2000, ICSE '00.

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

[8]  Martin Hitz,et al.  Chidamber & Kemerer's Metrics Suite: a Measurement Theory Perspective , 1996 .

[9]  Bogdan Korel,et al.  Dynamic program slicing in understanding of program execution , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[10]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[11]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

[12]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

[13]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[14]  Juergen Rilling,et al.  Maximizing functional cohesion of comprehension environments by integrating user and task knowledge , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[15]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[16]  B. S. Gupta A Critique of Cohesion Measures in the Object-Oriented Paradigm , 1997 .

[17]  Sandro Morasca,et al.  Measuring and assessing maintainability at the end of high level design , 1993, 1993 Conference on Software Maintenance.

[18]  Ben Shneiderman,et al.  Exploratory experiments in programmer behavior , 1976, International Journal of Computer & Information Sciences.

[19]  Anneliese Amschler Andrews,et al.  Program understanding behavior during adaptation of large scale software , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[20]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[21]  K. A. Ericsson,et al.  Long-term working memory. , 1995, Psychological review.

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

[23]  Barry Boehm,et al.  Software economics: a roadmap , 2000, ICSE '00.

[24]  Neville Churcher,et al.  Comments on "A Metrics Suite for Object Oriented Design" , 1995, IEEE Trans. Software Eng..

[25]  Linda M. Ott,et al.  Slice based metrics for estimating cohesion , 1993, [1993] Proceedings First International Software Metrics Symposium.

[26]  Premkumar T. Devanbu,et al.  An Investigation into Coupling Measures for C++ , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[27]  Walter Kintsch,et al.  Toward a model of text comprehension and production. , 1978 .

[28]  Tuomas Klemola Software comprehension : theory and metrics , 1998 .

[29]  Walter Kintsch,et al.  Comprehension: A Paradigm for Cognition , 1998 .

[30]  N. Madhavji,et al.  Validating Object-Oriented Design Metrics on a Commercial Java Application , 2000 .

[31]  Miguel Goulão,et al.  Toward the Design Quality Evaluation of Object-Oriented Software Systems , 1995 .

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