Configuration Management and Version Control Revisited

ed Context Figure 5.4. How to describe a configuration. This way of adding and shadowing/redefining relations resembles very much the way scope rules work for identifiers in nested blocks in programming languages. In fact, for context one we could consider layer C to be nested in layer B which is again nested in layer A. For instance, for procedure Pn from figure 5.3, context one will consist of the layer A nodes for definition and declarations, the layer B node for comments and the layer C node for implementations. When a configuration is installed (or generated) it is always done relatively to a context, which resolves the layer hierarchy. There are two types of contexts: abstracted and concatenated. The abstracted contexts are direct descriptions of the dominance hierarchy, while the concatenated contexts are formed from putting together subcontexts. The difference is that in figure 5.4 the abstracted context gives the dominance hierarchy ABCDE (from least to most dominant), while the concatenated context gives ABCADE. Thus the second occurrence of the layer A shadows for changes made to this layer in layers B and C. However, if the subcontexts are independent this will not cause problems. PIE also supplies an interface for comparing layers and contexts, thereby making it easy to merge two layers into one. The interface highlights the difference between two layers, and the user can then choose the (node, attribute, value) triples that he wishes and copy them into a merge layer. When this layer is added to the context, it can dominate the old layers. Thus merging of layers (versions) is considered an operation that has to be performed explicitly and separately from the version control.

[1]  Peter H. Feiler,et al.  An Incremental Programming Environment , 1981, IEEE Transactions on Software Engineering.

[2]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[3]  Leon J. Osterweil,et al.  Software Environment Research: Directions for the Next Five Years , 1981, Computer.

[4]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

[5]  Klaus R. Dittrich,et al.  DAMOKLES - A Database System for Software ENgineering Environments , 1986, Advanced Programming Environments.

[6]  Roy H. Campbell,et al.  An object-oriented model of software configuration management , 1991, SCM '91.

[7]  Reidar Conradi,et al.  Cooperating transactions against the EPOS database , 1991, SCM '91.

[8]  David C. Rine,et al.  A proposed standard set of principles for object-oriented development , 1991, SOEN.

[9]  Harlan D. Mills Structured Programming: Retrospect and Prospect , 1986, IEEE Software.

[10]  Adele Goldberg,et al.  Personal Dynamic Media , 1977, Computer.

[11]  C. A. R. Hoare,et al.  Programming: Sorcery or Science? , 1984, IEEE Software.

[12]  Wayne A. Babich,et al.  Software Configuration Management: Coordination for Team Productivity , 1986 .

[13]  John R. Nestor Toward a Persistent Object Base , 1986, Advanced Programming Environments.

[14]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..

[15]  Paolo Ciancarini,et al.  The evolution of configuration management and version control , 1990, Softw. Eng. J..

[16]  Erik Sandewall,et al.  Integrated Interactive Computing Systems. , 1982 .

[17]  Wolfgang Emmerich,et al.  Suitable Databases for Process-Centered Environments Do not yet Exist , 1992, EWSPT.

[18]  Ernst Denert Software Engineering in Business and Academia: How Wide is the Gap? , 1993, ESEC.

[19]  Walter F. Tichy A data model for programming support environments and its application , 1982 .

[20]  P. Kidwell,et al.  The mythical man-month: Essays on software engineering , 1996, IEEE Annals of the History of Computing.

[21]  Jack C. Wileden,et al.  Pgraphite: an experiment in persistent typed object management , 1988, SDE 3.

[22]  Laurian M. Chirica,et al.  The entity-relationship model: toward a unified view of data , 1975, SIGF.

[23]  David Lubkin Heterogeneous configuration management with DSEE , 1991, SCM '91.

[24]  Ellis Horowitz,et al.  Object database support for a software project management environment , 1988, Software Development Environments.

[25]  Mark C. Paulk,et al.  Capability Maturity Model for Software, Version 1.1 , 1993 .

[26]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[27]  Rolf Adams,et al.  Software Change Dynamics or Half of all Ada Compilations are Redundant , 1989, ESEC.

[28]  Florian Matthes,et al.  Modular and Rule-Based Database Programming in DBPL , 1993 .

[29]  Wolfgang Emmerich,et al.  Databases for Software Engineering Environments - The Goal has not yet been attained , 1993, ESEC.

[30]  Christoph Reichenberger,et al.  Delta storage for arbitrary non-text files , 1991, SCM '91.

[31]  Darlene A. Stewart,et al.  Commercial realtime software needs different configuation management , 1989, SCM.

[32]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[33]  Won Kim,et al.  Features of the ORION Object-Oriented Database System , 1989, Object-Oriented Concepts, Databases, and Applications.

[34]  Geoffrey Clemm The Odin System , 1995, SCM.

[35]  Vincenzo Ambriola,et al.  Object-oriented configuration control , 1989, SCM.

[36]  Maria H. Penedo,et al.  Prototyping a project master database for software engineering environments , 1987, SDE 2.

[37]  Lars Bendix Automatic configuration management in a General Object-Based Environment , 1992, Proceedings Fourth International Conference on Software Engineering and Knowledge Engineering.

[38]  S. J. Young,et al.  The programming language ADA reference manual: Springer-Verlag (1981) pp 243, $7.90, DM 16.50 , 1982, Microprocess. Microsystems.

[39]  Emden R. Gansner,et al.  A foundation for programming environments , 1987, SDE 2.

[40]  Rebecca Wirfs-Brock,et al.  Object-oriented design: a responsibility-driven approach , 1989, OOPSLA '89.

[41]  Jacky Estublier,et al.  Experience with a data base of programs , 1987, SDE 2.

[42]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[43]  B. Macchini,et al.  Reusing software with ESTRO (Evolving Software Repository) , 1992, Proceedings Fourth International Conference on Software Engineering and Knowledge Engineering.

[44]  Keith Marzullo,et al.  Jasmine: a software system modelling facility , 1987, SDE 2.

[45]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[46]  Winfried Lamersdorf,et al.  Database applications support in open systems: language concepts and implementation architectures , 1988, Proceedings. Fourth International Conference on Data Engineering.

[47]  Rubén Prieto-Díaz,et al.  Making software reuse work: an implementation model , 1991, SOEN.

[48]  James M. Purtilo,et al.  A methodology for prototyping-in-the-large , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[50]  Richard J. Beach,et al.  A structural view of the Cedar programming environment , 1986, TOPL.

[51]  Robert J. Ellison,et al.  Software Development Environments: Research to Practice , 1986, Advanced Programming Environments.

[52]  Fletcher J. Buckley Implementing Configuration Management: Hardware, Software, and Firmware , 1993 .

[53]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[54]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[55]  Geoffrey A. Pascoe Encapsulators: a new software paradigm in Smalltalk-80 , 1986, OOPSLA 1986.

[56]  Barry W. Boehm,et al.  A Software Development Environment for Improving Productivity , 1984, Computer.

[57]  L. Bendix A Taxonomy for Software Development Environments , 1993 .

[58]  Jan van Katwijk,et al.  The reuse of software design and software architecture , 1992, Proceedings Fourth International Conference on Software Engineering and Knowledge Engineering.

[59]  Matthias Jarke,et al.  Database Application Development as an Object Modeling Activity , 1990, VLDB.

[60]  B. Lampson,et al.  Organizing software in a distributed environment , 1983, SIGPLAN '83.

[61]  Mary Shaw,et al.  Beyond Programming-in-the-Large: The Next Challenges for Software Engineering , 1986, Advanced Programming Environments.

[62]  Terrence C. Miller,et al.  The Unified Programming Environment: Unobtrusive Support , 1986, Advanced Programming Environments.

[63]  Gerhard Fischer,et al.  Cognitive tools for locating and comprehending software objects for reuse , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[64]  Brian W. Kernighan,et al.  The UNIX™ programming environment , 1979, Softw. Pract. Exp..

[65]  Walter F. Tichy,et al.  Tools for Software Configuration Management , 1988, SCM.

[66]  Brian W. Kernighan The Unix System and Software Reusability , 1984, IEEE Transactions on Software Engineering.

[67]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[68]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[69]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[70]  Stuart I. Feldman Evolution of MAKE , 1988, SCM.

[71]  David B. Leblang,et al.  Increasing Productivity with a Parallel Configuration Manager , 1988, SCM.

[72]  Gail E. Kaiser,et al.  Smarter recompilation , 1988, TOPL.

[73]  David B. Leblang,et al.  Computer-Aided Software Engineering in a distributed workstation environment , 1984, SDE 1.

[74]  Bruce D. Shriver,et al.  Research Directions in Object-Oriented Programming , 1987 .

[75]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1975, IEEE Transactions on Software Engineering.

[76]  Susanne Bødker Prototyping Revisited: - design with users in a cooperative setting , 1987 .

[77]  Won Kim,et al.  Integrating an object-oriented programming system with a database system , 1988, OOPSLA '88.

[78]  Glenn S. Fowler The Fourth Generation Make , 1985 .

[79]  Hans H. Kron,et al.  Programming-in-the-Large Versus Programming-in-the-Small , 1976, IEEE Trans. Software Eng..

[80]  Robert W. Schwanke,et al.  An intelligent tool for re-engineering software modularity , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[81]  John C. Knight,et al.  Software reuse in an industrial setting: a case study , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[82]  Edward H. Bersoff,et al.  Software configuration management, an investment in product integrity , 1980 .

[83]  A.N. Habermann Programming environments for reusability , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[84]  Gail E. Kaiser,et al.  A flexible transaction model for software engineering , 1990, [1990] Proceedings. Sixth International Conference on Data Engineering.

[85]  Bruce Anderson,et al.  An iterative-design model for reusable object-oriented software , 1990, OOPSLA/ECOOP '90.

[86]  Matthew Morgenstern Active Databases as a Paradigm for Enhanced Computing Environments , 1983, VLDB.

[87]  Sacha Krakowiak,et al.  Preliminary experience with a configuration control system for modular programs , 1984, SDE 1.

[88]  Stanley B. Zdonik,et al.  A Database Approach to Languages, Libraries and Environments , 1985, Data Types and Persistence , Informal Proceedings.

[89]  Barry W. Boehm,et al.  Understanding and Controlling Software Costs , 1988, IEEE Trans. Software Eng..

[90]  Ole Lehrmann Madsen An overview of BETA , 1996 .

[91]  Barry W. Boehm,et al.  A spiral model of software development and enhancement , 1986, Computer.

[92]  Pierre America,et al.  A parallel object-oriented language with inheritance and subtyping , 1990, OOPSLA/ECOOP '90.

[93]  Ted J. Biggerstaff,et al.  Software reuse: is it delivering? , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[94]  Geoffrey Clemm,et al.  The workshop system: a practical knowledge-based software environment , 1988, Software Development Environments.

[95]  Murat M. Tanik,et al.  Rapid Prototyping in Software Development , 1989 .

[96]  J. Lindskov Knudsen Object-oriented environments : the Mjølner approach , 1993 .

[97]  Gail E. Kaiser,et al.  Concurrency control in advanced database applications , 1991, CSUR.

[98]  A. Nico Habermann,et al.  Beyond schema evolution to database reorganization , 1990, OOPSLA/ECOOP '90.