Modeling the Software Design Process
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.
KeywordsSoftware Development Application Domain Project Team Design Team Software Development Process
Unable to display preview. Download preview PDF.
- 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
- 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
- Boehm, B. W., 1988, A Spiral Model of Software Development and Maintenance, IEEE Computer, Vol. 21, No. 5, pp. 61–72.Google Scholar
- Brooks, F. P., 1975, The Mythical Man-Month, Addison-Wesley, Reading, MA.Google Scholar
- 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
- DeMarco, T., and Lister, T. A., 1987, Peopleware, Dorset, New York.Google Scholar
- Fox, J. M., 1982, Software and Its Development, Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
- 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
- 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
- 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
- Weinberg, G. M., 1971, The Psychology of Computer Programming, Van Nostrand Reinhold, New York.Google Scholar
- 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