This Article 
 Bibliographic References 
 Add to: 
A Layered Architecture for Uniform Version Management
December 2001 (vol. 27 no. 12)
pp. 1111-1133

Version management is a key part of software configuration management. A big variety of version models has been realized in both commercial systems and research prototypes. These version models differ with respect to the objects put under version control (files, directories, entities, objects), the organization of versions (version graphs versus multidimensional version spaces), the granularity of versioning (whole software products versus individual components), emphasis on states versus emphasis on changes (state- versus change-based versioning), rules for version selection, etc. We present a uniform version model—and its support architecture—for software configuration management. Unlike other unification approaches, such as UML for object-oriented modeling, we do not assemble all the concepts having been introduced in previous systems. Instead, we define a base model that is built on a small number of concepts. Specific version models may be expressed in terms of this base model. Our approach to uniform version management is distinguished by its underlying layered architecture. Unlike the main stream of software configuration management systems, our instrumentable version engine is completely orthogonal to the data model used for representing software objects and their relationships. In addition, we introduce version rules at the bottom of the layered architecture and employ them as a uniform mechanism for expressing different version models. This contrasts to the main stream solution, where a specific version model—usually version graphs—is deeply built into the system and version rules are dependent on this model.

[1] W.F. Tichy, “Tools for Software Configuration Management,” Proc. Int'l Workshop Software Version and Configuration Control, pp. 1–20, 1988.
[2] R.H. Katz,“Toward a unified framework for version modelling in engineeringdatabases,” ACM Computing Surveys, vol. 22, no. 4, pp. 375-408, 1990.
[3] P.H. Feiler, “Configuration Management Models in Commercial Environments,” Technical Report CMU/SEI-91-TR-7, Software Eng. Inst., Carnegie-Mellon Univ., Pittsburgh, Penn., Mar. 1991.
[4] R. Conradi and B. Westfechtel, "Version Models for Software Configuration Management," ACM Computing Surveys, vol. 30, no. 2, 1998, p. 233.
[5] R. Conradi and B. Westfechtel, “Towards a Uniform Version Model for Software Configuration Management,” Proc. Software Configuration Management Workshop (ICSE `97), R. Conradi, ed., May 1997.
[6] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide. Addison Wesley, 1999.
[7] M.J. Carey, “The EXODUS Extensible DBMS Project: An Overview,” Readings in Object-Oriented Database Systems, S.B. Zdonik and D. Maier, eds., pp. 477–499, 1990.
[8] A. Geppert and K.R. Dittrich, “Constructing the Next 100 Database Management Systems,” ACM SIGMOD Record, vol. 23, no. 1, pp. 27–33, Mar. 1994.
[9] R. Ramakrishnan and J.D. Ullman, “A Survey of Deductive Database Systems,” The J. Logic Programming, vol. 23, no. 2, pp. 125–149, May 1995.
[10] K. Ramamohanarao and J. Harland, “An Introduction to Deductive Database Languages and Systems,” The Very Large Data Bases J., vol. 3, no. 2, pp. 107–122, Apr. 1994.
[11] R. Conradi and B. Westfechtel, “Configuring Versioned Software Products,” Proc. Software Configuration Management Workshop (ICSE '96), pp. 88–109, Mar. 1996.
[12] B. Munch, “HiCOV: Managing the Version Space,” Proc. Software Configuration Management Workshop (ICSE '96), pp. 110–126, Mar. 1996.
[13] W. Tichy, "RCS—A System for Version Control," Software-Practice&Experience, July 1985, pp. 637-654.
[14] D.B. Leblang, “The CM Challenge: Configuration Management that Works,” Configuration Management: Trends in Software, pp. 1-38, 1994.
[15] B.P. Munch, Versioning in a Software Eng. Database—The Change Oriented Way. PhD thesis, Norwegian Univ. of Science and Technology, Trondheim, Norway, 1993.
[16] A. Lie, R. Conradi, T. Didriksen, E.-A. Karlsson, S.O. Hallsteinsen, and P. Holager, “Change Oriented Versioning,” Proc. Second European Software Eng. Conf., pp. 191–202, 1989.
[17] Software Maintenance and Development Systems, Concord, Massachusetts, Aide-de-Camp Product Overview, 1990.
[18] C. Reichenberger, “Concepts and Techniques for Software Version Control,” Software—Concepts and Tools, vol. 15, no. 3, pp. 97–104, July 1994.
[19] M.J. Rochkind, “The Source Code Control System,” IEEE Trans. Software Eng., vol. 1, no. 4, pp. 364–370, Dec. 1975.
[20] G. Fowler, D. Korn, and H. Rao, “n-DFS: The Multiple Dimensional File System,” Configuration Management, W.F. Tichy, ed., pp. 135–154, 1994.
[21] N.S. Barghouti and G.E. Kaiser, "Concurrency Control in Advanced Database Applications," ACM Computing Surveys, vol. 23, pp. 269-316, Sept. 1991.
[22] G.E. Kaiser, “Cooperative Transactions for Multiuser Environments,” Modern Database Systems, W. Kim, ed., pp. 409–433, 1995.
[23] J.N. Gray, “The Transaction Concept: Virtues and Limitations,” Proc. Seventh Int'l Conf. Very Large Databases, pp. 144–154, Sept. 1981.
[24] M. Shaw and D. Garlan, Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
[25] F. Oquendo, K. Berrado, F. Gallo, R. Minot, and I. Thomas, “Version Management in the PACT Integrated Software Engineering Environment,” Proc. Second European Software Eng. Conf., pp. 222–242, 1989.
[26] GOODSTEP, The GOODSTEP Project—Final Report, GOODSTEP ESPRIT Project 6115, Dec. 1995.
[27] K. Dittrich, W. Gotthard, and P. Lockemann, “DAMOKLES, a Database System for Software Engineering Environments,” Proc. Int'l Workshop Advanced Programming Environments, R. Conradi, T.M. Didriksen, and D.H. Wanvik, eds., pp. 353–371, June 1986.
[28] E. Sciore,“Versioning and configuration management in an object-oriented datamodel,” VLDB J., to appear in 1995.
[29] J. Estublier and R. Casallas, “The Adele Configuration Manager,” Configuration Management, Trends in Software, W. Tichy, ed., no. 2, pp. 99–134, 1994.
[30] A. Zeller and G. Snelting, “Unified Versioning through Feature Logic,” ACM Trans. Software Eng. and Methodology, vol. 6, no. 4, pp. 398-441, Oct. 1997.
[31] Y.-J. Lin and S.P. Reiss, “Configuration Management with Logical Structures,” Proc. 18th Int'l Conf. Software Eng., pp. 298–307, Mar. 1996.
[32] D.B. Leblang and G.D. McLean, “Configuration Management for Large-Scale Software Development Efforts,” Proc. Workshop Software Eng. Environments for Programming-in-the-Large, pp. 122–127, June 1985.
[33] I.P. Goldstein and D.G. Bobrow, “A Layered Approach to Software Design,” Technical Report CSL-80-5, XEROX PARC, Palo Alto, Calif., 1980.
[34] J. Micallef and G. Clemm, “The Asgard System: Activity-Based Configuration Management,” Proc. Software Configuration Management Workshop (ICSE '96), pp. 175–186, 1996.
[35] C. Reichenberger, “VOODOO—A Tool for Orthogonal Version Management,” Software Configuration Management: Selected Papers SCM-4 and SCM-5, pp. 61–79, Apr. 1995.
[36] L. Allen, G. Fernandez, K. Kane, D. Leblang, D. Minard, and J. Posner, “ClearCase MultiSite: Supporting Geographically-Distributed Software Development,” Software Configuration Management: Int'l Conf. Software Eng. SCM-4 and SCM-5 Workshops Selected Papers, pp. 194-214, 1995.
[37] D.B. Leblang and R.P. Chase, “Computer-Aided Software Engineering in a Distributed Workstation Environment,” Proc. SIGPLAN/SIGSOFT Software Eng. Symp. Practical Software Development Environments, ACM SIGPLAN Notices, vol. 19, no. 5, pp. 104-112, 1984.
[38] D.B. Leblang, R.P. Chase Jr., and H. Spilke, “Increasing Productivity with a Parallel Configuration Manager,” Proc. Int'l Workshop Software Version and Configuration Control, pp. 21–37, 1988.
[39] L. Wakeman and J. Jowett, PCTE—The Standard for Open Repositories. Hertfordshire, U.K.: Prentice Hall, 1993.
[40] J. Estublier and R. Casallas, “Three Dimensional Versioning,” Software Configuration Management: Selected Papers SCM-4 and SCM-5, pp. 118–135, Apr. 1995.
[41] A. Zeller and G. Snelting, “Handling Version Sets Through Feature Logic,” Proc. Fifth European Software Eng. Conf., W. Schäfer and P. Botella, eds., pp. 191–204, Sept. 1995.
[42] A. Zeller, “A Unified Version Model for Configuration Management,” Proc. ACM SIGSOFT '95 Symp. Foundations of Software Eng., ACM Software Eng. Notes, vol. 20, no. 4, pp. 151–160, Oct. 1995.
[43] W. Rigg, C. Burrows, and P. Ingram, Configuration Management Tools. London: Ovum Ltd., 1995.
[44] R. Conradi, M. Hagaseth, J-O Larsen, M. Nguyen, B. Munch, P. Westby, W. Zhu, M. Letizia, and C. Liu, "Object-Oriented and Cooperative Process Modeling in EPOS," Software Process Modeling and Technology, A. Finkelstein, J. Kramer, and B.A. Nuseibeh, eds., Advanced Software Development Series. Research Studies Press Ltd. (John Wiley), pp. 33-70, 1994.
[45] A.I. Wang, J.-O. Larsen, R. Conradi, and B. Munch, “Improving Cooperation Support in the EPOS CM System,” Proc. Sixth European Workshop Software Process Technology (EWSPT `98) V. Gruhn, ed., pp. 75–91, Sept. 1998.
[46] A. Lie, “Versioning in Software Engineering Databases,” PhD thesis, Division of Computer Systems and Telematics, Norwegian Inst. of Technology, Trondheim, Norway, Jan. 1990.
[47] A. Lie, R. Conradi, T.M. Didriksen, and E.-A. Karlsson, “Change-Oriented Versioning in a Software Engineering Database,” Proc. Second Int'l Workshop Software Configuration Management, ACM SIGSOFT Software Eng. Notes, vol. 14, no. 7, pp. 56-65, 1989.
[48] V. Kruskal, “Managing Multiversion Programs with an Editor,” IBM J. Research and Development, vol. 28, no. 1, pp. 74–81, Jan. 1984.
[49] N. Sarnak, R. Bernstein, and V. Kruskal, “Creation and Maintenance of Multiple Versions,” Proc. Int'l Workshop Software Version and Configuration Control, pp. 264–275, 1998.
[50] B. Gulla, E.-A. Karlsson, and D. Yeh, “Change-Oriented Version Descriptions in EPOS,” Software Eng. J., vol. 6, no. 6, pp. 378-386, 1991.
[51] S.E. Bratsberg, “Unified Class Evolution by Object-Oriented Views,” Proc. 12th Int'l Conf. the Entity-Relationship Approach (ER), pp. 423–439, Oct. 1992.
[52] E. Odberg, “Category Classes: Flexible Classification and Evolution in Object-Oriented Databases,” Advanced Information Systems Eng.—Sixth Int'l Conf. (CAISE '94), G. Wijers, S. Brinkkemper, and T. Wasserman, eds., pp. 406–420, June 1994.
[53] R. Conradi, C. Liu, and M. Hagaseth, “Planning Support for Cooperating Transactions in EPOS,” Information Systems, vol. 20, no. 4, pp. 317–335, Dec. 1995.
[54] R.T. Snodgrass, "Temporal Databases," Proc. Int'l Conf. GIS: From Space to Territory, vol. 639of Lecture Notes in Computer Science, pp. 22-64. Springer-Verlag, Sept. 1992.
[55] B. Gulla, User Support Facilities for Software Configuration Management. PhD thesis, Norwegian Univ. of Science and Technology, Trondheim, Norway, 2000.
[56] J. Estublier, “Distributed Objects for Concurrent Enginering,” Proc. System Configuration Management: SCM-9 Symp., J. Estublier, ed., pp. 172–186, Sept. 1999.
[57] B. Gulla, “Improved Maintenance Support By Multi-Version Visualizations,” Proc. Int'l Conf. Software Maintenance, pp. 376–383, Nov. 1992.
[58] I. Sommerville and R. Thomson, “An Approach to the Support of Software Evolution,” The Computer J., vol. 32, no. 5, pp. 386–398, Dec. 1989.
[59] E. Tryggeseth, B. Gulla, and R. Conradi, “Modelling Systems with Variability Using the PROTEUS Configuration Language,” Software Configuration Management: Selected Papers SCM-4 and SCM-5, pp. 216–240,
[60] B.P. Munch, J.-O. Larsen, B. Gulla, R. Conradi, and E.-A. Karlsson, “Uniform Versioning: The Change-Oriented Model,” Proc. Fourth Int'l Workshop Software Configuration Management (Preprint), S. Feldman, ed., pp. 188–196, May 1993.
[61] P. Schachte and G. Saab, “Efficient Object-Oriented Programming in Prolog,” Logic Programming: Formal Methods and Practical Applications, C. Beierle and L. Plümer, eds., chapter 7, pp. 205–243, 1995.
[62] A. Geppert and K.R. Dittrich, “Strategies and Techniques: Reusable Artifacts for the Construction of Database Management Systems,” Proc. Seventh Int'l Conf. Advanced Information Systems Eng. (CAiSE '95), J. Iivari, K. Lyytinen, and M. Rossi, eds., pp. 297–310, June 1995.
[63] J.F.H. Winkler, ed., Proc. Int'l Workshop Software Version and Configuration Control, 1988.
[64] Proc. Software Configuration Management, Workshop SCM-6, (ICSE `96), I. Sommerville, ed., Mar. 1996.
[65] Configuration Management, vol. 2 of Trends in Software. W.F. Tichy, ed., New York: John Wiley&Sons, 1994.
[66] Proc. Second European Software Eng. Conf., C. Ghezzi and J.A. McDermid, eds., Sept. 1989.
[67] Software Configuration Management: Selected Papers SCM-4 and SCM-5, J. Estublier, ed., Apr. 1995.

Index Terms:
Version model, version rules, software configuration management, software architecture, software repositories
B. Westfechtel, B.P. Munch, R. Conradi, "A Layered Architecture for Uniform Version Management," IEEE Transactions on Software Engineering, vol. 27, no. 12, pp. 1111-1133, Dec. 2001, doi:10.1109/32.988710
Usage of this product signifies your acceptance of the Terms of Use.