A model of software manufacture
Software manufacture is the process by which a software product is derived, through an often complex sequence of steps, from the primitive components of a system. This paper presents a model of software manufacture that addresses the amount of work that has to be done, after a given set of changes has been made, to consistently incorporate those changes in a given product.
Based on a formal definition of a software configuration that characterizes a software product in terms of how it was manufactured, the model uses difference predicates to discriminate between changes that are significant and those that are not. A difference predicate is an assertion about the relationship between two sets of components. Difference predicates determine when one set of components can be substituted for another. By predicting when existing components can be substituted for the output of a manufacturing step, difference predicates determine which steps in the manufacturing process can be omitted when incorporating a given set of changes.
KeywordsFormal Definition Label Function Derivation Step Defense Advance Research Project Agency Software Configuration
Unable to display preview. Download preview PDF.
- [Conradi 85]Reidar Conradi and Dag Heieraas Wanvik. Mechanisms and Tools for Separate Compilation. Technical Report 25/85, The University of Trondheim, The Norweigian Institute of Technology, October, 1985.Google Scholar
- [Cooper 84]Jack Cooper. Software Development Management Planning. IEEE Transactions on Software Engineering 10(1):22–26, January, 1984.Google Scholar
- [Cooprider 79]Lee W. Cooprider. The Representation of Families of Software Systems. PhD thesis, Carnegie-Mellon University, April, 1979.Google Scholar
- [Cristofor 80]Eugene Cristofor, T. A. Wendt and B. C. Wonsiewicz. Source Control + Tools = Stable Systems. In Proceedings of the 4th Computer Science and Applications Conference, pages 527–532. IEEE Computer Society, October, 1980.Google Scholar
- [Dausmann 84]Manfred Dausmann. Reducing Recompilation Costs for Software Systems in Ada. March 30, 1984 Draft of a Karlsruhe Technical Report presented at the IFIP WG 2.4 conference in Canterbury UK in September 1984.Google Scholar
- [DeRemer 76]Frank DeRemer and Hans H. Kron. Programming-in-the-Large Versus Programming-in-the-Small. IEEE Transactions on Software Engineering 2(2):80–86, June, 1976.Google Scholar
- [Erickson 84]V. B. Erickson and J. F. Pellegrin. Build — A Software Construction Tool. AT&T Bell Laboratories Technical Journal 63(6), July–August, 1984.Google Scholar
- [Estublier 84]J. Estublier, S. Ghoul, S. Krakowiak. Preliminary Experience with a Configuration Control System for Modular Programs. SIGPLAN Notices 19(5), May, 1984. Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments.Google Scholar
- [Feldman 79]Stuart I. Feldman. Make — A Program for Maintaining Computer Programs. Software-Practice and Experience 9(4):255–265, April, 1979.Google Scholar
- [Kaiser 83]Gail E. Kaiser and A. Nico Habermann. An Environment for System Version Control. In Digest of Papers COMPCON Spring 83, pages 415–420. IEEE Computer Society, San Francisco, California, February, 1983.Google Scholar
- [Lampson 83]Butler W. Lampson and Eric E. Schmidt. Organizing Software in a Distributed Environment. In Proceedings of the SigPlan '83 Symposium on Programming Language Issues in Software Systems, pages 1–13. ACM, San Francisco, California, June, 1983.Google Scholar
- [Leblang 84]David B. Leblang, Robert P. Chase, Jr. Computer-Aided Software Engineering in a Distributed Workstation Environment. SIGPLAN Notices 19(5), May, 1984. Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments.Google Scholar
- [Leblang 85]David B. Leblang, Robert P. Chase Jr., and Gordon D. McLean Jr. The DOMAIN Software Engineering Environment for Large-Scale Software Development Efforts. In IEEE Conference on Workstations. November, 1985.Google Scholar
- [Rochkind 75]Marc J. Rochkind. The Source Code Control System. IEEE Transactions on Software Engineering 1(4):364–370, December, 1975.Google Scholar
- [Rowland 83]B. R. Rowland and R. J. Welsch. The 3B20D Processor & DMERT Operating System: Software Development System. The Bell System Technical Journal 62(1):275–289, January, 1983.Google Scholar
- [Tichy 80]Walter F. Tichy. Software Development Control Based on System Structure Description. PhD thesis, Carnegie-Mellon University, January, 1980.Google Scholar
- [Tichy 82]Walter F. Tichy. Design, Implementation, and Evaluation of a Revision Control System. Technical Report CSD-TR-397, Department of Computer Science, Purdue University, March, 1982. A version of this paper appeared in Proceedings of the 6th International Conference on Software Engineering, Tokoyo, September 1982.Google Scholar
- [Tichy 85]Walter F. Tichy and Mark C. Baker. Smart Recompilation. In Principles of Programming Languages 1985, pages 236–244. ACM SIGPLAN and SIGACT, January, 1985.Google Scholar