An Experimental Study of the Logical Complexity of Data Structures

The logical complexity of a program is a measure of the effort required in order to understand it. Current program complexity metrics do not model the complexity induced by the choice of different data structures. It is proposed that the complexity of a program increases with the increase in the opaqueness of the relationship between abstract data types and the data structures used to implement them. The details of an experiment conducted to investigate this hypothesis are reported. Some documentation techniques which can reduce the difficulty in understanding programs using complex data structures are illustrated for the programs used in the experiment.

[1]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[2]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[3]  Stephen N. Zilles,et al.  Specification techniques for data abstractions , 1975 .

[4]  David S. Wile Type Transformations , 1981, IEEE Transactions on Software Engineering.

[5]  Siba N. Mohanty,et al.  Models and Measurements for Quality Assessment of Software , 1979, CSUR.

[6]  Lawrence Robinson,et al.  Proof techniques for hierarchically structured programs , 1977, CACM.

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

[8]  Laurence Mark Weissman,et al.  A methodology for studying the psychological complexity of computer programs. , 1974 .

[9]  Bill Curtis,et al.  Measuring the Psychological Complexity of Software Maintenance Tasks with the Halstead and McCabe Metrics , 1979, IEEE Transactions on Software Engineering.

[10]  S. Iyengar,et al.  A Measure of Logical Complexity of Programs , 1982, Comput. Lang..

[11]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[12]  Ben Shneiderman,et al.  Measuring Computer Program Quality and Comprehension , 1977, Int. J. Man Mach. Stud..

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

[14]  Martin R. Woodward,et al.  A Measure of Control Flow Complexity in Program Text , 1979, IEEE Transactions on Software Engineering.

[15]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1977, CACM.

[16]  Ben Shneiderman,et al.  Control flow and data structure documentation: two experiments , 1982, CACM.

[17]  Mary Shaw,et al.  An introduction to the construction and verification of Alphard programs , 1976, ICSE '76.