Modeling the Software Design Process

  • Bill Curtis
  • Neil Iscoe


There are many levels at which the software development process can be modeled. MCC-STP’s Empirical Studies Team has developed a layered behavioral model to guide our analyses of these processes. We have performed empirical studies of processes at each of these levels. At the level of individual cognitive problem-solving processes, we conducted a thinking aloud protocol study wherein software professionals were given a specification for an elevator system (a lift) and instructed to design a control system for it to the level of detail that they would hand over to a competent programmer for implementation. In this Lift Experiment we were seeking to determine the primary breakdowns experienced during design to determine the functionality that should be explored in developing prototypes of design tools. At the team and project levels, we videotaped three months worth of requirements and design meetings of a project team designing an object server. We analyzed these tapes to determine how group dynamics altered the processes we observed during individual design problem-solving, and what types of design technology should be provided in the group meeting environment. Finally, at the organizational and business milieu levels we conducted on-site interviews with personnel from 17 large software development projects to gather case study information on actual design processes. Transcripts of these interviews were analyzed to model factors affecting the processes of making design decisions and communicating them across the project. In this paper models of the software process developed at each of the levels are described and the aggregation of their effects across levels are discussed.


Software Development Application Domain Project Team Design Team Software Development Process 
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. Adams, J. S., 1976, The Structure and Dynamics of Behavior in Organizational Boundary Roles, Handbook of Industrial and Organization Psychology,Dunnette, M. D., ed., Rand-McNally, Chicago, pp. 11751199.Google Scholar
  2. Boehm, B. W., 1981, Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ. Boehm, B. W., 1987, Improving Software Productivity, IEEE Computer, Vol. 20, No. 9, pp. 43–57.Google Scholar
  3. Boehm, B. W., 1988, A Spiral Model of Software Development and Maintenance, IEEE Computer, Vol. 21, No. 5, pp. 61–72.Google Scholar
  4. Brooks, F. P., 1975, The Mythical Man-Month, Addison-Wesley, Reading, MA.Google Scholar
  5. Brooks, F. P., 1987, No Silver Bullet, IEEE Computer, Vol. 20, No. 4, pp. 10–19.MathSciNetCrossRefGoogle Scholar
  6. Curtis, B., 1981, Substantiating Programmer Variability, Proceedings of the IEEE, Vol. 69, No. 7, p. 846. Curtis, B., ed., 1985, Human Factors in Software Development ( 2nd ed. ), IEEE Computer Society, Washington, D.C.Google Scholar
  7. Curtis, B., Krasner, H., and Iscoe, N., 1988, A Field Study of the Software Design Process for Large Systems, Communications of the ACM, Vol. 31, No. 11, pp. 1268–1287.CrossRefGoogle Scholar
  8. DeMarco, T., and Lister, T. A., 1987, Peopleware, Dorset, New York.Google Scholar
  9. Fox, J. M., 1982, Software and Its Development, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  10. Gould, J. D., and Lewis, C., 1985, Designing for Usability: Key Principles and What Designers Think, Communications of the ACM, Vol. 28, No. 3, pp. 300–311.CrossRefGoogle Scholar
  11. McGarry, F. E., 1982, What Have We Learned in the Last Six Years?, Proceedings of the Seventh Annual Software Engineering Workshop (SEL-82–007), NASA-GSFC, Greenbelt, MD.Google Scholar
  12. Royce, W. W., 1970, Managing the Development of Large Software Systems, Proceedings of IEEE WESCON, IEEE Computer Society, D.C., pp. 1–9.Google Scholar
  13. Vosburgh, J., Curtis, B., Wolverton, R., Albert, B., Malec, H., Hoben, S., and Liu, Y., 1984, Productivity Factors and Programming Environments, Proceedings of the Seventh International Conference on Software Engineering, IEEE Computer Society, Washington, D.C., pp. 143–152.Google Scholar
  14. Walston, C. E., and Felix, C. P., 1977, A Method of Programming Measurement and Estimation, IBM Systems Journal, Vol. 16, No. 1, pp. 54–73.CrossRefGoogle Scholar
  15. Weinberg, G. M., 1971, The Psychology of Computer Programming, Van Nostrand Reinhold, New York.Google Scholar
  16. Zelkowitz, M., Yeh, R., Hamlet, R., Gannon, J., and Basili, V., 1984, Software Engineering Practices in the U.S. and Japan, IEEE Computer, Vol. 17, No. 6, pp. 57–66.Google Scholar

Copyright information

© Plenum Press, New York 1990

Authors and Affiliations

  • Bill Curtis
    • 1
  • Neil Iscoe
    • 1
  1. 1.MCC Software Technology ProgramAustinUSA

Personalised recommendations