A metaphor and a conceptual architecture for software development environments
A conceptual architecture for software development environments (SDEs) is presented in terms of a new metaphor drawn from business enterprises. A metaphor is employed as the architecture is complex, requiring understanding from several perspectives. The metaphor provides a rich set of familiar concepts that strongly aid in understanding the environment architecture and software production. The metaphor is applicable to individual programming environments, software development environments supporting teams of developers, and to large-scale software production as a whole.
The paper begins by considering three perspectives on SDEs, a function-based view, an objects-and-relations view, and a process-centered view. The process view, being the most encompassing, is held through the remainder of the paper. Three metaphors for organizing and explaining a process-centered environment are then examined, including the hierarchical contract model and the individual/family/city/state model. Next the corporation model is introduced and a detailed analogy is drawn between corporations and software development environments. Within the context of the corporation metaphor, three corporate organization schemes are reviewed and federal decentralization is argued to be most appropriate for an SDE. Relationships induced by such an organization are discussed and a mapping between the conceptual architecture and a possible implementation architecture is briefly discussed.
Keywordsmodels of software development software development environments process modeling software factory scalable heterogeneous architectures metaphors
Unable to display preview. Download preview PDF.
- [BuDr80]Buxton, J.N. and Druffel, L.E., “Rationale for Stoneman”, in Fourth International Computer Software and Applications Conference, pp. 66–72, Chicago, Illinois, October 1980.Google Scholar
- [ClOs89]Clemm, G.M. and Osterweil, L.J., “A Mechanism for Environment Integration”, ACM Transactions on Programming Languages and Systems, 1989. To appear.Google Scholar
- [Conw68]Conway, M.E., “How do Committees Invent”, Datamation, 14(4):28–31, April 1968.Google Scholar
- [Dows86]Dowson, M., “ISTAR — An Integrated Project Support Environment”, in Proceedings of the Second ACM SIGSOFT/SIGPLAN Symposium on Practical Software Development Environments, pp. 27–33, Palo Alto, California, December 1986. Appeared as SIGPLAN Notices 22(1), January 1987.Google Scholar
- [Dows87]Dowson, M., “Integrated Project Support with ISTAR”, IEEE Software, 4(6):6–15, November 1987.Google Scholar
- [ESF89]Eureka Software Factory Consortium ESF, Technical reference guide, June 1989.Google Scholar
- [KeMa81]Kernighan, B.W. and Mashey, J.R., “The UNIX Programming Environment”, IEEE Computer, 14(4):12–24, April 1981.Google Scholar
- [LeCh84]Leblang, D.B. and Chase, R.P. Jr., “Computer-Aided Software Engineering in a Distributed Workstation Environment”, ACM Sigplan Notices, 19(5):104–112, May 1984. (Proceedings of the First ACM SIGSOFT/SIGPLAN Symposium on Practical Software Development Environments).Google Scholar
- [Mats87]Matsumoto, Y., “A Software Factory: An Overall Approach to Software Production”, in Freeman,P., editor, Tutorial: Software Reusability, pp. 155–178. IEEE Computer Society Press, 1987.Google Scholar
- [Oste81]Osterweil, L.J., “Software Environment Research: Directions for the Next Five Years”, IEEE Computer, 14(4):35–43, 1981.Google Scholar
- [Oste87]Osterweil, L.J., “Software Processes are Software Too”, in Proceedings of the Ninth International Conference on Software Engineering, pp. 2–13, Monterey, California, March 1987.Google Scholar
- [PeKa87]Perry, D.E. and Kaiser, G.E., “Infuse: A Tool for Automatically Managing and Coordinating Source Changes in Large Systems”, in ACM Fifteenth Annual Computer Science Conference, pp. 292–299, St. Louis, MO, February 1987.Google Scholar
- [PeKa88]Perry, D.E. and Kaiser, G.E., “Models of Software Development Environments”, in Proceedings of the Tenth International Conference on Software Engineering, pp. 60–68, April 1988.Google Scholar
- [Roch75]Rochkind, M.J., “The Source Code Control System”, IEEE Transactions on Software Engineering, 1(4):364–370, December 1975.Google Scholar
- [TBC+88]Taylor, R.N., Belz, F.C., Clarke, L.A., Osterweil, L., Selby, R.W., Wileden, J.C., Wolf, A.L. and Young, M., “Foundations for the Arcadia Environment Architecture”, in Proceedings of ACM SIGSOFT '88: Third Symposium on Software Development Environments, pp. 1–13, Boston, November 1988. Appeared as Sigplan Notices 24(2) and Software Engineering Notes 13(5).Google Scholar
- [Tich82]Tichy, W.F., “Design, Implementation, and Evaluation of a Revision Control System”, in Proceedings of the Sixth International Conference on Software Engineering, pp. 58–67, Tokyo, Japan, September 1982.Google Scholar
- [TeMa81]Teitelman, W. and Masinter, L., “The Interlisp Programming Environment”, IEEE Computer, 14(4):25–33, April 1981.Google Scholar
- [WWRT89]Wileden, J.C., Wolf, A.L., Rosenblatt, W.R. and Tarr, P.L., “UTM-0: Initial Proposal for a Unified Type Model for Arcadia Environments”, Arcadia Technical Report UM-89-01, University of Massachusetts, Amherst, 1989.Google Scholar