An Experimental Study of the Logical Complexity of Data Structures

  • S. S. Iyengar
  • F. B. Bastani
  • J. W. Fuller


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.


Data Structure Binary Tree Logical Complexity Abstract Data Type Complete Binary Tree 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. H Halsted,Elements of Software Science, Elsevier, North-Holland, New York, 1977Google Scholar
  2. 2.
    T. J. McCabe, A complexity measure,IEEE Trans. Softw. Eng Dec. 1976,SE-2 (4), pp. 308–230CrossRefGoogle Scholar
  3. 3.
    M. R. Woodward, M.A Hennel, and D. Hedley, A measure of control flow complexity in program text,IEEE Trans. Softw. Eng Jan. 1979,SE-5 (1), pp. 45–50CrossRefGoogle Scholar
  4. 4.
    S. Henry and D. Kafura, Sofware structure metrics based on information flow,IEEE Trans. Softw. Eng Jan. 1979,SE-7 (5), pp. 510–518CrossRefGoogle Scholar
  5. 5.
    S. S. Iyengar N, Parameswaran, and J. Fuller , A measure of logical complexity of programs,Comput. Lang Dec 19827 (4)Google Scholar
  6. 6.
    S. N. Mohanty, Models and measurements for quality assessment of software,ACM Comp. Sur. Sept 1979,11(3) pp 251–275.CrossRefGoogle Scholar
  7. 7.
    B. Schneiderman, Control flow and data structure documentation: two experiments,Comm. ACM, Jan. 1982,25(1), pp. 55–63.CrossRefGoogle Scholar
  8. 8.
    F. B. Bastani and S. S. Iyengar,The Effect of Data Structure on the Logical Complexity of Programs, Tech. Rept. UH-CS-84-7, Dept. of camp. Sri., Univ. of Houston - Univ, Park, fl9U5t9n, TXI 1984.Google Scholar
  9. 9.
    B. D. Chaudhary,Factors of Program Complexity and Their Effects on Program Comprehension, Ph.D. Dissertation, Indian Inst. of Tech., Kanpur, 1979.Google Scholar
  10. 10.
    B. Schneiderman, Measuring computer program quality and comprehension,Int. Journal Man-Machine Studies, 1977,9, pp. 465–478CrossRefGoogle Scholar
  11. 11.
    M. E. Sime, T. R. G. Green, and D. J. Guest, Psychological evaluation of two conditional constructions used in computer languages,Int. Journal Man-Machine Studies, 1973,5, pp. 105–113.CrossRefGoogle Scholar
  12. 12.
    L. Weissman,A Methodology for Studying the Psychological Complexity of Computer Programs, Tech. Rep. CSRG-37, Dept. of Comp. Sci., Univ. of Toronto, 1974.Google Scholar
  13. 13.
    E. W. Dijkstra,A Discipline of Programming, Prentice-Hall Inc., NJ, 1976.Google Scholar
  14. 14.
    B. Curtis, et al., Measuring the psychological complexity of software maintenance tasks with the Halstead and McCabe metrics,IEEE Trans. Softw. Eng March 1979,SE-5 (2), pp. 96–104CrossRefGoogle Scholar
  15. 15.
    J. V. Guttag, Abstract data types and the development of data structures,Comm. ACM, June 1977,20(6), pp. 96–104.CrossRefGoogle Scholar
  16. 16.
    B. H. Liskov and S. N. Zilles, Specification techniques for data abstraction,IEEE Trans. Softw. Eng March 1975, SE-1 (1), pp. 7–19.Google Scholar
  17. 17.
    W. A. Wulf, R. L. London, and M. Shaw, An introduction to the construction and verification of ALPHARD programs,IEEE Trans. Sof tw. Eng Dec. 1976,SE-2 (4), pp. 353–365.Google Scholar
  18. 18.
    D. S. Wile, Type transformation,IEEE Trans. Sof tw. Eng., Jan.1981,SE-7 (1), pp. 32–39.CrossRefGoogle Scholar
  19. 19.
    R. Brooks, Towards a theory of the comprehension of computer programs,Int. Journal Man-Machine Studies, June 1983,18(6), pp. 543–555.CrossRefGoogle Scholar
  20. 20.
    L. Robinson and K. N. Levitt, Proof techniques for hierarchically structured programs,Comm. ACM, April 1977,29(4), pp. 271–283.CrossRefGoogle Scholar
  21. 21.
    D. L. Parnas, A technique for software module specification with examples,Comm. ACM, May 1972,15(5), pp. 330–336.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag US 1985

Authors and Affiliations

  • S. S. Iyengar
    • 1
  • F. B. Bastani
    • 2
  • J. W. Fuller
    • 1
  1. 1.Department of Computer ScienceLouisiana State UniversityLouisianaUSA
  2. 2.Department of Computer ScienceUniversity of HoustonHoustonUSA

Personalised recommendations