Advertisement

Software Complexity Assessment and Human-Machine Interface Evaluation

  • Leslie J. WaguespackJr.

Abstract

Man-machine interfaces may be complex in two ways: 1) they may be complex in their construction, and 2) they may be complex for a user to manipulate. A human-machine interface model is presented which focuses on these two forms of complexity which we term intrinsic and extrinsic complexity, respectively. In terms of their construction we may wish to evaluate their complexity based on metrics defined for computer programs in software science, control structure complexity, or logical complexity. In terms of their manipulation, each interface may be viewed as a language composed of abstractions representing objects and/or actions that the interface embodies. We relate various software metrics to the different aspects of the model and attempt to identify aspects for which measures don’t currently exist. Finally, we discuss implications this model may have on interface design decisions.

Keywords

Mental Model Software Engineer Internal Model Problem Space Interface Model 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Adelson, B., 1981, “Problem Solving and the Development of Abstract Categories in Programming Languages”, Memory Cognition, 9, (4), pp. 422–433.CrossRefGoogle Scholar
  2. Apple Computer, Inc., 1985, Inside Macintosh: The Macintosh User Interface Guidelines, Addeson-Wesley, Reading, MA, pp. 23–70.Google Scholar
  3. Atwood, M. A., and Ramsey, H. R., 1978, Cognitive Structures in the Comprehension and Memory of Computer Programs: An Investigation of Computer Program Debugging, ARI Technical Report TR-78-A21, Science Applications, Inc.Google Scholar
  4. Baker, A. L., and Zweben, S. H., 1980, “A Comparison of Measures of Control Flow Complexity”, IEEE Transactions on Software Engineering, SE-6, pp. 506–512.MathSciNetCrossRefGoogle Scholar
  5. Bastani, F. B., 1983, “An Approach to Measuring Program Complexity”, Proceedings of COMPSAC ʼ83, Chicago, IL, pp. 1–8.Google Scholar
  6. Brooks, R., 1977, “Toward a Theory of Cognitive Processes in Computer Programming”, International Journal of Man-Machine Studies, 9, pp. 465–478.CrossRefGoogle Scholar
  7. Brooks, R., 1983, “Towards a Theory of the Comprehension of Computer Programs”, International Journal of Man-Machine Studies, 18, (6), pp. 543–555.MathSciNetCrossRefGoogle Scholar
  8. Bulut, N., Halstead, M. H., and Bayer, R., 1974, “Experimental Validation of a Structural Property of Fortran Algorithms”, Proceedings of the ACM National Conference, pp. 207–211, San Diego.Google Scholar
  9. Cater, S., Iyengar, S. S., and Fuller, J. W., 1982, Algorithms to Compute Logical Effort in Programs, Technical Report, Department of Computer Science, Louisiana State University.Google Scholar
  10. Cater, S., Iyengar, S. S., and Fuller, J. W. 1984, “Computation of Logical Effort in High Level Languages”, Journal of Computer Languages, 9, (3/4), pp. 133–148.MATHCrossRefGoogle Scholar
  11. Coulter, N. S., 1983, “Software Science and Cognitive Psychology”, IEEE Transactions on Software Engineering, SE-9, (3), pp. 166–171.CrossRefGoogle Scholar
  12. Cox, B. J., 1984, “Message/Object Programming: An Evolutionary Change in Programming Technology”, IEEE Software, 0740–7459/84/0100/0050, January 1984.Google Scholar
  13. Curtis, B., Sheppard, S. B., Milliman, P., 1979, “Third Time Charm: Stronger Replication of the Ability of Software Complexity Metrics to Predict Programmer Performance”, Proceedings of the 4th International Conference on Software Engineering, September 1979, pp. 356–360.Google Scholar
  14. Curtis, B., Sheppard, S. B., Milliman, P. M., Borst, M. A., Love, T., 1979, “Measuring the Psychological Complexity of Software Maintenance Tasks with Halstead and McCabe Metrics”, IEEE Transactions on Software Engineering, SE-5, pp. 95–104.CrossRefGoogle Scholar
  15. Curtis, B., 1980, “In Search of Software Complexity”, IEEE Workshop on Quantitative Software Models, pp. 95–106.Google Scholar
  16. Curtis, B., Forman, I., Brooks, R., Soloway, E., and Ehrlich, D., 1982, “Psychological Perspectives for Software Science”, Empirical Foundations of Information and Software Science, Proceedings of the First Symposium, Atlanta, GA, November 1982, pp. 119–128.Google Scholar
  17. Elshoff, J. L. 1978, “An Investigation Into the Effects of the Counting Method Used on Software Science Measurements”, ACM SIGPLAN Notices, 13, (2), February, pp. 30–45.CrossRefGoogle Scholar
  18. Fitsos, G. P., 1979, Software Science Counting Rules and Tuning Methodology, IBM Technical Report TR 03.075.Google Scholar
  19. Fitter, M., and Green, T. R. G., 1979, “When do Diagrams Make Good Computer Languages”, International Journal of Man-Machine Studies, 11, pp. 235–261.CrossRefGoogle Scholar
  20. Fitzsimmons, A., and Love, T., 1978, “A Review and Evaluation of Software Science”, Computing Surveys, 10, (1), pp. 3–18.MATHCrossRefGoogle Scholar
  21. Gannon, J. D., and Horning, J. J., 1975, “Language Design for Programming Reliability”, IEEE Transactions on Software Engineering, SE-1, (2), pp. 179–191.Google Scholar
  22. Gannon, J. D., 1976, “An Experiment for the Evaluation of Language Features”, International Journal of Man-Machine Studies, 8, pp. 61–73.CrossRefGoogle Scholar
  23. Gannon, J. D., 1977, “An Experimental Evaluation of Data Type Conventions”, Communications of the ACM, 20, (2), pp. 584–595.MathSciNetMATHCrossRefGoogle Scholar
  24. Goldberg, A., and Robson, D., 1983, Smalltalk-80: The Language and Its Implementation, Addison-Wesley, Reading, MA.MATHGoogle Scholar
  25. Gordon, R. D., 1979(a), “Measuring Improvements in Program Clarity”, IEEE Transactions on Software Engineering, SE-5, pp. 79–90, March, 1979.CrossRefGoogle Scholar
  26. Gordon, R. G., 1979(b), “A Qualitative Justification for a Measure of Program Clarity”, IEEE Transactions on Software Engineering, SE-5, pp. 177–128.CrossRefGoogle Scholar
  27. Gould, J. D., and Drongowski, P., 1974, “An Exploratory Study of Computer Program Debugging”, Human Factors, 1, (6), pp. 258–277, June 1974.Google Scholar
  28. Gould, J. D., 1975, “Some Psychological Evidence on How People Debug Computer Programs”, International Journal of Man-Machine Studies, 7, (1), pp. 151–182, January 1975.MATHCrossRefGoogle Scholar
  29. Halstead, M. H., 1977, Elements of Software Science, Elsevier, New York.MATHGoogle Scholar
  30. Hamilton, A. G., 1978, Logic for Mathematicians, Cambridge University Press.MATHGoogle Scholar
  31. Hansen, W., 1978, “Measurement of Program Complexity by the Pair (Cyclomatic Number, Operators Count)”, ACM SIGPLAN Notices, 13, pp. 19–33.CrossRefGoogle Scholar
  32. Harrison, W., 1981, A Hybrid Metric to Measure Software Complexity, Master’s Thesis, University of Missouri-Rolla, Department of Computer Science.Google Scholar
  33. Harrison, W., et al., 1981, “A Topilogical Analysis of the Complexity of Computer Programs with less than Three Binary Branches”, ACM SIGPLAN Notices, 16, pp. 51–63.CrossRefGoogle Scholar
  34. Harrison, W. A., and Magel, K. I., 1981, “A Complexity Measure Based on Nesting Level”, ACM SIGPLAN Notices, 16, (3), pp. 63–74 March 1981.CrossRefGoogle Scholar
  35. Hennell, M. A., Woodward, M. R., and Hedley, D., 1976, “On Program Analysis”, Information Processing Letters, 5, pp. 136–140.CrossRefGoogle Scholar
  36. Hou, T., and Iyengar, S. S., 1983, The Logical Complexity of Data Flow Programs, Technical Report TR 83–018, Department of Computer Science, Louisiana State University.Google Scholar
  37. Iyengar, S. S., Parameswaran, N., and Fuller, J. W., 1982, “A Measure of Logical Complexity of Programs, Journal of Computer Languages, 7, pp. 147–160.MATHCrossRefGoogle Scholar
  38. Iyengar, S. S., and Bruno, G., 1983, Formalization of Logical Complexity of Programs, Technical Report TR 83–013, Department of Computer Science, Louisiana State University.Google Scholar
  39. Iyengar, S. S., Bastani, F. B., and Fuller, J. W., 1985, “An Experimental Study of the Logical Complexity of Data Structures”, Empirical Foundations of Information and Software Science, Agrawal, J. C., and Zunde, P., eds., Plenum Press, New York.Google Scholar
  40. Ledbetter, L., and Cox, G. J., 1985, “Software-ICs”, BYTE, June 1985, pp. 307–316.Google Scholar
  41. Love, T., 1977, “An Experimental Investigation on the Effect of Program Structure on Program Understanding”,ACM SIGPLAN Notices, 12, pp. 105–113.CrossRefGoogle Scholar
  42. MacLennan, B. J., 1982, “Simple Metrics for Programming Languages”, Proc. Empirical Foundations of Information and Software Science, Atlanta, GA, November 1982, pp. 209–222.Google Scholar
  43. Mayer, R. E., 1979, “A Psychology of Learning Basic”, Communications of the ACM, 22, (11), pp. 589–593.CrossRefGoogle Scholar
  44. Mayer, R. E. 1981, “The Psychology of How Novices Learn Computer Programming”, Computing Surveys, 13, (1), pp. 121–141.CrossRefGoogle Scholar
  45. McCabe, T. J., 1976, “A Complexity Measure”, IEEE Transactions on Software Engineering, SE-2, pp. 308–320.MathSciNetCrossRefGoogle Scholar
  46. McKeithen, K. B., Reitman, J. S., Rueter, H. H., and Hirtle, S. C., 1981, “Knowledge Organization and Skill Differences in Computer Programming”, Cognitive Psychology, 13, pp. 307–325.CrossRefGoogle Scholar
  47. Moranda, P. B., 1981, “Is Software Science Hard?”, Computing Surveys, Surveyor’s Forum, 10, pp. 503–504, December 1981.CrossRefGoogle Scholar
  48. Myers, G., 1977, “An Extension to the Cyclomatic Measure of Program Complexity”, ACM SIGPLAN Notices, 12, ACM SIGPLAN Notices, 12, (10), pp. 61–64.CrossRefGoogle Scholar
  49. Negrini, R. M., and Sami, M., 1983, “Some Properties Derived from Structural Analysis of Program Graph Models”, IEEE Transactions on Software Engineering, SE-9, (2), pp. 172–178.MathSciNetCrossRefGoogle Scholar
  50. Newell, A., and Simon, H. A., 1972, Human Problem Solving, Prentice-Hall, Englewood Cliffs, New Jersey.Google Scholar
  51. Olsen, D. R., 1983, “Automatic Generation of Interactive Systems”, Computer Graphics, 17, (1), January 1983, pp. 53–57.CrossRefGoogle Scholar
  52. Olsen, D. R., and Dempsey, E. P., 1983, “SYNGRAPH: A Graphic User Interface Generator”, Computer Graphics, 17, (3), July 1983, pp. 43–50.CrossRefGoogle Scholar
  53. Oviedo, E., 1980, “Control Flow, Data Flow and Program Complexity”, Proceedings of COMPSAC ʼ80, Chicago, IL, pp. 146–152.Google Scholar
  54. Parameswaran, N., and Iyengar, S. S., 1983, “Logical Complexity of Programs”, Proceedings of the IEEE-SMC Conference, Bombay, India.Google Scholar
  55. Parameswaran, N., Iyengar, S. S., and Ramesh, S., 1983, A Complexity Measure That Takes Into Account the Complete Program Semantics, Technical Report TR 83–022, Department of Computer Science, Louisiana State University.Google Scholar
  56. Piwowarski, P., 1982, “A Nesting Level Complexity Measure”, ACM SIGPLAN Notices, 17, pp. 44–50.CrossRefGoogle Scholar
  57. Rama Rao, K. V. S., and Iyengar, S., 1984, “A General Measure for Program Complexity”, Software Engineering Workshop, Nice, France, June 1984.Google Scholar
  58. Ramsey, H. R., Atwood, M. E., and Van Dören, J. R., 1978, A Comparative Study of Flowcharts and Program Design Languages for the Detailed Procedural Specification of Computer Programs, ARI Technical Report TR-78-A22, Science Applications, Inc.Google Scholar
  59. Reisner, P., 1981, “Formal Grammar and Human Factors Design of an Interactive Graphics System”, IEEE Transactions on Software Engineering, SE-7, (2), March 1981, pp. 229–240.CrossRefGoogle Scholar
  60. Rosenthal, D., and Yen, A., 1983, “User Interface Models Summary”, Computer Graphics, 17, (1), January 1983, pp. 38–45.CrossRefGoogle Scholar
  61. Shannon, C. E., 1948, “A Mathematical Theory of Communication”, Bell Systems Journal, reprinted in Key Paper in the Development of Information Theory, Slepian, D., ed., IEEE Press, New York, 1974.Google Scholar
  62. Shen, V., Conte, S. D., and Dunsmore, H., “Software Science Revisited: A Critical Analysis of the Theory and Its Empirical Support”, IEEE Transactions on Software Engineering, SE-9, (2), pp. 155–165.Google Scholar
  63. Sheppard, S. B., Kruesi, E., and Curtis, B., 1981, “The Effect of Symbology and Spatial Arrangement on the Comprehension of Software Specifications”, Proceedings of the 5th International Conference on Software Engineering, San Diego, CA, pp. 207–214.Google Scholar
  64. Shneiderman, B., 1976, “Exploratory Experiments in Programmer Behavior”, International Journal of Computer and Information Sciences, 5, (2), pp. 123–143, April 1976.MathSciNetMATHCrossRefGoogle Scholar
  65. Shneiderman, B., 1977, “Measuring Computer Program Quality and Comprehension”, International Journal of Man-Machine Studies, 9, pp. 737–751.CrossRefGoogle Scholar
  66. Shneiderman, B., Mayer, R., McKay, D., and Heller, P., 1977, “Experimental Investigations of the Utility of Detailed Flowcharts in Programming, Communications of the ACM, 20, pp. 373–381.CrossRefGoogle Scholar
  67. Shneiderman, B., 1979, “Human Factors Experiments in Designing Interactive Systems”, IEEE Computer, 12., (12).Google Scholar
  68. Shneiderman, B., and Mayer, R., 1979, “Syntactic/Semantic Interactions in Programmer Behavior”, International Journal of Computer and Information Sciences, 7 s PP 219–239.CrossRefGoogle Scholar
  69. Shneiderman, B., 1980, Software Psychology, Winthrop, Reading, MA.Google Scholar
  70. Shneiderman, B., 1982, “Control Flow and Data Structure Documentation: Two Experiments”, Communications of the ACM, 25, (1), pp. 55–63.CrossRefGoogle Scholar
  71. Soloway, E., Ehrilich, K., and Bonar, J., 1982, “Tapping into Tacit Programming Knowledge”, Proceedings of the Conference on Human Factors in Computer Systems, ACM, New York, pp. 52–57.Google Scholar
  72. Weiser, M., 1981, “Program Slicing”, Proceedings of the Fifth International Conference on System Science, Honolulu, HI, March 1981.Google Scholar
  73. Weiser, M., 1982, “Programmer Use Slices When Debugging”, Communications of the ACM, 25, (7), pp. 446–452.CrossRefGoogle Scholar
  74. Woodfield, S. N., 1979, “An Experiment in Unit Increase in Problem Complexity”, IEEE Transactions on Software Engineering, SE-5, pp. 76–79, March 1979.CrossRefGoogle Scholar
  75. Woodfield, S. N., Dunsmore, H. E., and Shen, V. Y., 1981, “The Effect of Modularization and Comments on Program Comprehension”, Proceedings of the 5th International Conference on Software Engineering, San Diego, CA, March, 1981, pp. 215–223.Google Scholar
  76. Woodfield, S. N., Shen, V. Y., and Dunsmore, H. E., “A Study of Several Metrics for Programming Effort”, Journal of Systems Software, 2, December 1981, pp. 97–103.Google Scholar
  77. Woodward, M. R., Hennell, M. A., and Hedley, D., 1979, “A Measure of Control Flow Complexity in Program Text”, IEEE Transactions on Software Engineering, SE-5, pp. 45–50.CrossRefGoogle Scholar
  78. Zeigler, B. P., and Rada, R., 1982, “Abstraction in Methodology: A Framework for Computer Support”, Proc. Empirical Foundations of Information and Software Science, Atlanta, GA, November 1982, pp. 63–80.Google Scholar
  79. Zunde, P., 1982, “Empirical Laws and Theories of Information and Software Sciences”, Proc. Empirical Foundations of Information and Software Science, Atlanta, GA, November 1982, pp. 5–18.Google Scholar
  80. Zweben, S. H., 1977, “A Study of the Physical Structure of Algorithms”, IEEE Transactions on Software Engineering, SE-3, (3), pp. 250–258.MathSciNetCrossRefGoogle Scholar

Copyright information

© Plenum Press, New York 1987

Authors and Affiliations

  • Leslie J. WaguespackJr.
    • 1
  1. 1.Computer Information Systems DepartmentBentley CollegeWalthamUSA

Personalised recommendations