Skip to main content

How do Software Practitioners Write Programs? An Empirical Study

  • Chapter
Empirical Foundations of Information and Software Science IV

Abstract

Findings of a research investigation into problem decomposition strategies employed by software practitioners during program design are introduced. A cognitive model of designer behavior advances the view that program design is a problem solving task involving repeated application of decomposition and elaboration. The former activity is viewed as goal generation, while the latter activity is considered to consist of the allocation of known ‘clusters’ or plans to the existing decomposition structure. The paper argues that problem decomposition is not performed in an idealized top-down manner, but is influenced by availability effects caused by problem specification characteristics and subject familiarity with component parts of the problem. In addition, it argues that the elaboration of a decomposition involves either the retrieval of known process action clusters or the transformation and re-categorization of information into new clusters. These characteristics of the model provide specific experimental hypotheses. Results from an observational experiment evaluating these hypotheses provide empirical support for the model. The results obtained are discussed in relation to other empirical investigations into program design and directions for further experimentation are presented.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Dahl, O., Dijkstra, E. W., and Hoare, C. A. R., 1972, Notes on Structured Programming, Academic Press.

    Google Scholar 

  • Feigenbaum, E. A., 1970, “Models of Memory”, Information Processing and Memory, Norman, D. A., Academic Press, pp. 451–469.

    Google Scholar 

  • Greeno, J. G., 1973, “The Structure of Memory and the Process of Solving Problems”, Contemporary Issues in Cognitive Psychology: The Loyola Symposium, Solso, R. L., V. H. Winston & Sons, pp. 103–131.

    Google Scholar 

  • Hoc, J. M., 1982, “Analysis of Beginners Problem Solving Strategies in Programming”, Proceedings of a Conference on the Psychology of Problem Solving with Computers, Vrijie University, Amsterdam, pp. 85–93.

    Google Scholar 

  • Kant, E., 1985, “Understanding and Automating Algorithm Design”, IEEE Transactions on Software Engineering, pp. 1361–1374.

    Google Scholar 

  • Lindsay, P. H., and Norman, D. A., 1977, Human Information Processing, Academic Press, pp. 381–417.

    Google Scholar 

  • Naur, P., 1969, “Programming by Action Clusters”, Bit., 9, (3), pp. 250–258.

    Article  MATH  Google Scholar 

  • Pollard, P., 1982, “Human Reasoning: Some Possible Effects of Availability”, Cognition, 12, pp. 65–96.

    Article  Google Scholar 

  • Rist, R. S., 1986, “Plans in Programming: Definition, Demonstration, and Development”, Empirical Studies of Programmers, Soloway, E., and Iyengar, S. S., eds., Ablex, New York.

    Google Scholar 

  • Siddiqi, J. I. A., 1984, An Empirical Investigation into Problem Decomposition Strategies Used in Program Design, Ph.D. Thesis, University of Aston in Birmingham.

    Google Scholar 

  • Siddiqi, J. I. A., and Ratcliff, B. R., 1987, “The Influence of Problem Specification on Problem Decomposition”, International Journal of Man-Machine Studies, to appear.

    Google Scholar 

  • Siddiqi, J. I. A., and Sumiga, J. H., 1986, “Empirical Evaluation of a Proposed Model of the Program Design Process”, The Symposium on Empirical Foundations of Information and Software Sciences, Georgia Institute of Technology, Atlanta, Georgia.

    Google Scholar 

  • Shneiderman, B., and Mayer, R., 1979, “Syntactic/Semantic Interactions in Programmer Behavior: A Model and Experimental Results”, International Journal of Computer and Information Sciences, 8, pp. 219–235.

    Article  MATH  Google Scholar 

  • Soloway, E., and Ehrlich, K., 1984, Empirical Studies of Programmers, Ablex.

    Google Scholar 

  • Wirth, N., 1971, “Program Development by Step-Wise Refinement”, Communications of the ACM, 14, (4), pp. 221–226.

    Article  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1987 Plenum Press, New York

About this chapter

Cite this chapter

Siddiqi, J. (1987). How do Software Practitioners Write Programs? An Empirical Study. In: Zunde, P., Agrawal, J.C. (eds) Empirical Foundations of Information and Software Science IV. Springer, Boston, MA. https://doi.org/10.1007/978-1-4684-5472-7_27

Download citation

  • DOI: https://doi.org/10.1007/978-1-4684-5472-7_27

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4684-5474-1

  • Online ISBN: 978-1-4684-5472-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics