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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
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.
Feigenbaum, E. A., 1970, “Models of Memory”, Information Processing and Memory, Norman, D. A., Academic Press, pp. 451–469.
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.
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.
Kant, E., 1985, “Understanding and Automating Algorithm Design”, IEEE Transactions on Software Engineering, pp. 1361–1374.
Lindsay, P. H., and Norman, D. A., 1977, Human Information Processing, Academic Press, pp. 381–417.
Naur, P., 1969, “Programming by Action Clusters”, Bit., 9, (3), pp. 250–258.
Pollard, P., 1982, “Human Reasoning: Some Possible Effects of Availability”, Cognition, 12, pp. 65–96.
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.
Siddiqi, J. I. A., 1984, An Empirical Investigation into Problem Decomposition Strategies Used in Program Design, Ph.D. Thesis, University of Aston in Birmingham.
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.
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.
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.
Soloway, E., and Ehrlich, K., 1984, Empirical Studies of Programmers, Ablex.
Wirth, N., 1971, “Program Development by Step-Wise Refinement”, Communications of the ACM, 14, (4), pp. 221–226.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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