Versionierungskonzepte mit Unterstützung für Differenz- und Mischwerkzeuge

Softwarekonfigurations-Management (SKM) ist ein wichtiger Bestandteil moderner Softwareentwicklungsprozesse. Ein Vorteil des Einsatzes von SKM-Werkzeugen ist die Moglichkeit Versionen zu erzeugen, Unterschiede festzustellen und Produkte zu veroffentlichen, die eine Konfiguration von bestimmten Dokumenten darstellen. Es ist eine grose Anzahl von SKM-Systemen und Konzepten verfugbar, jedoch arbeiten die meisten von ihnen (einschl. CVS, RCS oder SCCS) fast ausschlieslich auf Textdateien. Deshalb ist der Einsatz von SCM-Werkzeugen in den spaten Phasen der Softwareentwicklung, insbesondere bei der Programmierung und Wartung, etabliert und gangige Praxis. SKM hat in den fruhen Phasen (z.B. Analyse und Entwurf) noch nicht diese Bedeutung erlangt. Existierende SKM-Systeme sind weniger gut geeignet, um Dokumente der fruhen Phasen zu versionieren, Unterschiede zu bestimmen oder um diese zu visualisieren. Der Grund hierfur liegt darin, das es sich bei diesen Dokumenten ublicherweise nicht um Text, sondern um Diagramme handelt, die Bestandteil von Modellierungssprachen sind, wie z. B. UML. Der erste Teil dieser Arbeit beschaftigt sich mit der Aufgabenstellung der Versionierung von Diagrammen. Das vorgeschlagene Versionierungskonzept basiert auf dem Einsatz eines Objektmanagement-Systems (OMS) und der Nutzung einer OMS-orientierten Werkzeugarchitektur. Die Werkzeugtransaktionen des OMS sind die Basis fur das vorgestellte Versionierungskonzept. Alle modifizierten Objekte werden automatisch innerhalb der Werkzeugtransaktionen versioniert. Einzelne Objektversionen fast eine Konfiguration zusammen, die eine Dokumentversion reprasentiert. Entwurfstransaktionen dienen zur Verwaltung der Dokumentversionen. Dieses Versionierungskonzept erlaubt eine andere Form der Gruppenarbeit im Vergleich zu der Nutzung von z.B. CVS oder RCS. Alle Entwickler arbeiten auf denselben Daten. Anderungen sind sofort fur alle Entwickler sichtbar, die an der selben Version arbeiten. Die Konsistenz wird durch Transaktionssperren auf Objektversionen sichergestellt. Der zweite Teil dieser Arbeit beschaftigt sich mit der Visualisierung der Differenzen zwischen zwei Diagrammen im Fall der kooperativen Arbeit. Die Berechnung der Unterschiede zwischen den Versionen stutzt sich auf die eindeutigen Objektidentifizierer ab, die durch das OMS vergeben werden. Das vorgeschlagene Visualisierungskonzept ist nur abhangig von der verwendeten Modellierungssprache, jedoch nicht vom verwendeten Versionsverwaltungs-System. Zur Visualisierung wird ein so genanntes Vereinigungsdiagramm verwendet, welches die gemeinsamen Elemente der beiden zu vergleichenden Diagramme und die spezifischen Diagrammelemente enthalt. Diese werden hierin farbig hervorgehoben. Das Versionierungskonzept und die Visualisierung sind prototypisch im OMS H-PCTE und in der Werkzeugsammlung PISET implementiert. PISET bietet Editoren fur UML Kollaborations-, Objekt-, Anwendungsfall-, Klassen- und Zustandsdiagramme. Die Visualisierung fur Klassendiagramme ist ebenfalls im CASE-Werkzeug FUJABA implementiert. Software configuration management (SCM) is an indispensable part of high-quality software development processes. An advantage of using SCM systems is that one can create versions of a document, detect the differences between them and release systems as configuration of certain document versions. A large number of SCM systems and concepts are available, however most of them (incl. systems such as RCS, CVS and SCCS) only work with text files. Therefore SCM is a well established and common practise in the later phases of software development processes, notably during programming and maintenance. SCM is a less common practise during the early phases, i.e. analysis and design. Existing SCM systems are not well suited for the versioning, detection and visualisation of differences between documents in the early phases, because those documents are not text, but diagrams usually part of modelling languages such as the UML. The first part of this thesis addresses the problem of versioning diagrams. The proposed versioning system is based an object management system (OMS) to store all diagrams and on an OMS-oriented tool architecture. The tool transactions of the OMS are the basis of the proposed versioning concept. All modified objects are automatically versioned inside the tool transactions. Single object versions are combined in a configuration, which forms one version of an entire document in the OMS. Design transactions provide the required versions of the documents to the tool transactions. This versioning concept offers a different kind of team cooperation compared to the use of RCS, CVS, etc. All developers work on the same data. Thus modifications are visible to all developers working on the same document version and do not affect others. The consistency is ensured by transaction locks on object versions. The second part of this thesis addresses the visualisation of diagram differences when working cooperatively. The computation of the differences is based on the object identifiers offered by the OMS. The proposed visualisation of the differences is independent from the used version management system but depend on the modelling language and its syntax elements. The differences are visualised by using an so called unified diagrams. This kind of diagram includes the common and the specific parts of the compared diagrams. The specific parts are highlighted using different colours. The versioning concept and the visualisation has been prototypically implemented on the OMS H-PCTE and the tool set PISET. PISET supports Editors for UML collaboration, object, use case, class and statechart diagrams . The visualisation of UML class diagrams have also been implemented in the Fujaba CASE tool.

[1]  Norbert Ritter,et al.  Generating Versioning Facilities for a Design-Data Repository Supporting Cooperative Applications , 2000, Int. J. Cooperative Inf. Syst..

[2]  Mark Chu-Carroll,et al.  Coven: brewing better collaboration through software configuration management , 2000, SIGSOFT '00/FSE-8.

[3]  Walter F. Tichy,et al.  Implementation and evaluation of a revision control system , 1982 .

[4]  D. Janaki Ram,et al.  Modeling Design Versions , 1996, VLDB.

[5]  Won Kim,et al.  A Unifying Framework for Version Control in a CAD Environment , 1986, VLDB.

[6]  Panos K. Chrysanthis,et al.  PRO-MOTION: management of mobile transactions , 1997, SAC '97.

[7]  W. Alex Gray,et al.  Object-Oriented Versioning in a Concurrent Engineering Design Environment , 2001, BNCOD.

[8]  Walter F. Tichy,et al.  The string-to-string correction problem with block moves , 1984, TOCS.

[9]  W. Alex Gray,et al.  An Object Versioning System to Support Collaborative Design within a Concurrent Engineering Context , 1997, BNCOD.

[10]  Wolfgang Hesse RUP - A process model for working with UML , 2001, Unified Modeling Language: Systems Analysis, Design and Development Issues.

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

[12]  Susan L. Graham,et al.  Integrating Incremental Analysis with Version Management , 1995, ESEC.

[13]  Jason E. Robbins,et al.  Cognitive support, UML adherence, and XMI interchange in Argo/UML , 2000, Inf. Softw. Technol..

[14]  Hector Garcia-Molina,et al.  Meaningful change detection in structured data , 1997, SIGMOD '97.

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

[16]  Axel Meckenstock Synchronisations- und Recoverykonzepte für Transaktionen in kooperativen Entwurfsumgebungen , 1997, Datenbank Rundbr..

[17]  Bernd Bruegge,et al.  Object Oriented Software Engineering, Conquering Complex and Changing Systems , 2002 .

[18]  Oliver Haase Mengenorientierte Anfragen auf partiell zugreifbaren Datenbanken , 1998 .

[19]  John C. Grundy,et al.  Constructing multi-view editing environments using MViews , 1993, Proceedings 1993 IEEE Symposium on Visual Languages.

[20]  I. Crnkovic,et al.  Software Process Measurements using Software Configuration Management , 2000 .

[21]  Marc Monecke,et al.  Adaptierbare CASE-Werkzeuge in prozeßorientierten Software-Entwicklungsumgebungen , 2006 .

[22]  Naser S. Barghouti,et al.  Supporting cooperation in the Marvel process-centered SDE , 1992, SDE 5.

[23]  Ciaran O'Reilly,et al.  Improving Conflict Detection in Optimistic Concurrency Control Models , 2003, SCM.

[24]  Tancred Lindholm,et al.  A 3-way Merging Algorithm for Synchronizing Ordered Trees - the 3DM merging and differencing tool fo , 2001 .

[25]  Kai Koskimies,et al.  How to make apples from oranges in UML , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[26]  Gunter Schlageter,et al.  A transaction model supporting complex applications in integrated information systems , 1985, SIGMOD '85.

[27]  Scott Myers Difficulties in Integrating Multiview Development Systems , 1991, IEEE Softw..

[28]  Reidar Conradi,et al.  Uniform Versioning: The Change-Oriented Model , 2000 .

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

[30]  Reidar Conradi,et al.  Cooperating Transactions and Workspaces in EPOS: Design and Preliminary Implementation , 1991, CAiSE.

[31]  Yong Rae Kwon,et al.  An Efficient Method for Version Control of a Tree Data Structure , 1997, Software, Practice & Experience.

[32]  Terrence C. Miller Configuration Management with the NSE , 1989, SEE.

[33]  Jacky Estublier Distributed Objects for Concurrent Engineering , 1999, SCM.

[34]  Oswald Drobnik,et al.  Agent-based configuration management of distributed applications , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[35]  Steven P. Reiss,et al.  Configuration management with logical structures , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[36]  P.H. Feller Software Process Support Through Software Configuration Management , 1989, [1989] Proceedings of the 5th International Software Process Workshop.

[37]  Susan L. Graham,et al.  Efficient self-versioning documents , 1997, Proceedings IEEE COMPCON 97. Digest of Papers.

[38]  Dennis Heimbigner,et al.  A generic, peer-to-peer repository for distributed configuration management , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[39]  Richard Hull,et al.  A Specificational Approach to Merging Persistent Object Bases , 1990, POS.

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

[41]  Ivica Crnkovic A change process model in an SCM tool , 1998, Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).

[42]  Klaus R. Dittrich,et al.  Support for Design Processes in a Structurally Object-Oriented Database System , 1988, OODBS.

[43]  Marc J. Rochkind,et al.  The source code control system , 1975, IEEE Transactions on Software Engineering.

[44]  Umeshwar Dayal,et al.  A Transactional Model for Long-Running Activities , 1991, VLDB.

[45]  Dirk Platz Ein Werkzeugtransaktionskonzept für Objekt-Managementsysteme als Basis von Software-Entwicklungsumgebungen , 1999 .

[46]  Jürgen Wäsch Transactional support for cooperative applications , 1998 .

[47]  Guilaine Talens,et al.  Versions of Simple and Composite Objects , 1993, VLDB.

[48]  Udo Kelter Concurrency Control for Design Objects with Versions in CAD Databases , 1987, Inf. Syst..

[49]  Mark C. Paulk,et al.  Comparing ISO 9001 and the Capability Maturity Model for Software , 1993, Software Quality Journal.

[50]  Michael Berger,et al.  Supporting Autonomous Work and Reintegration in Collaborative Systems , 1996, Coordination Technology for Collaborative Applications.

[51]  Stefano Paraboschi,et al.  XML: Current Developments and Future Challenges for the Database Community , 2000, EDBT.

[52]  Chisu Wu,et al.  An efficient version model of software diagrams , 1998, Proceedings 1998 Asia Pacific Software Engineering Conference (Cat. No.98EX240).

[53]  Ian Sommerville,et al.  A Model for Versioning of Classes in Object-Oriented Databases , 1992, BNCOD.

[54]  Martin Glinz,et al.  An Integrated Formal Model of Scenarios Based on Statecharts , 1995, ESEC.

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

[56]  Marc Monecke,et al.  Komponentenbasierte Konstruktion flexibler Software-Entwicklungswerkzeuge , 2000, GI Jahrestagung.

[57]  Timothy G. Olson,et al.  A Software Process Framework for the SEI Capability Maturity Model: Repeatable Level , 1993 .

[58]  Andreas Henrich P-OQL: an OQL-oriented query language for Pcte , 1995, Proceedings Software Engineering Environments.

[59]  David J. DeWitt,et al.  X-Diff: an effective change detection algorithm for XML documents , 2003, Proceedings 19th International Conference on Data Engineering (Cat. No.03CH37405).

[60]  Susan A. Dart,et al.  Spectrum of Functionality in Configuration Management Systems , 1990 .

[61]  Jochen Seemann,et al.  Extending the Sugiyama Algorithm for Drawing UML Class Diagrams: Towards Automatic Layout of Object-Oriented Software Diagrams , 1997, GD.

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

[63]  Udo Kelter Transaktionskonzepte für Non-Standard-Datenbanksysteme / Transaction Concepts for Non-Standard Database Systems , 1988, it Inf. Technol..

[64]  D. Daberitz,et al.  Rapid prototyping of graphical editors in an open SDE , 1995, Proceedings Software Engineering Environments.

[65]  Ulf Asklund Configuration management for distributed development - practice and needs , 1999 .

[66]  Lu Zhang,et al.  A software configuration management model for supporting component-based software development , 2001, SOEN.

[67]  Andreas Zeller,et al.  Unified versioning through feature logic , 1997, TSEM.

[68]  Eiichi Tanaka,et al.  The Tree-to-Tree Editing Problem , 1988, Int. J. Pattern Recognit. Artif. Intell..

[69]  Udo Kelter Parallele Transaktionen in Datenbanksystemen , 1985, Reihe Informatik.

[70]  J. Estublier,et al.  Process centered SEE and Adele , 1992, [1992] Proceedings of the Fifth International Workshop on Computer-Aided Software Engineering.

[71]  Simone Sédillot,et al.  Open Nested Transaction: A Support for Increasing Performance and Multi-tier Applications , 1999, FMLDO.

[72]  P. Cederqvist,et al.  Version Management with CVS , 1993 .

[73]  N. Hari Narayanan,et al.  An integrated approach to distributed version management and role-based access control in computer supported collaborative writing , 2001, J. Syst. Softw..

[74]  Valdis Berzins Software merging and slicing , 1995 .

[75]  Peter H. Feiler,et al.  Configuration Management Models in Commercial Environments , 1994 .

[76]  Fabio Vitali,et al.  Things change: deal with it! versioning, cooperative editing and hypertext , 1996, HYPERTEXT '96.

[77]  Pascal Molli,et al.  Unifying coupled and uncoupled collaborative work in virtual teams , 2000 .

[78]  François Coallier,et al.  How ISO 9001 fits into the software world , 1994, IEEE Software.

[79]  Johann H. Schlichter,et al.  Rechnergestützte Gruppenarbeit - eine Einführung in verteilte Anwendungen , 1995, Springer-Lehrbuch.

[80]  Gert Florijn,et al.  Implementation Techniques for Integral Version Management , 1991, ECOOP.

[81]  Kuo-Chung Tai,et al.  The Tree-to-Tree Correction Problem , 1979, JACM.

[82]  Randy H. Katz,et al.  Toward a unified framework for version modeling in engineering databases , 1990, CSUR.

[83]  Jacky Estublier Software configuration management: a roadmap , 2000, ICSE '00.

[84]  Petri Selonen Set Operations for the Unified Modeling Language , 2003, SPLST.

[85]  Fabio Vitali,et al.  Versioning Issues in a Collaborative Distributed Hypertext System , 1993 .

[86]  Ian Thomas,et al.  PCTE interfaces: supporting tools in software-engineering environments , 1989, IEEE Software.

[87]  Manfred Nagl,et al.  Software-Entwicklungsumgebungen: Einordnung und zukünftige Entwicklungslienien , 1993, Inform. Spektrum.

[88]  Ivan Porres,et al.  Difference and Union of Models , 2003, UML.

[89]  Marek J. Sergot,et al.  Versioning of Objects in Deductive Databases , 1993, DOOD.

[90]  Harvey P. Siy,et al.  Parallel changes in large scale software development: an observational case study , 1998, Proceedings of the 20th International Conference on Software Engineering.

[91]  Reidar Conradi,et al.  Planning Support for Cooperating Transactions in EPOS , 1994, CAiSE.

[92]  Bjørn Gulla,et al.  A Browser for a Versioned Entity-Relationship Database , 1992, IDS.

[93]  Ian Thomas,et al.  Definitions of Tool Integration for Environments , 1992, IEEE Softw..

[94]  Andreas Zeller,et al.  Configuration management with version sets: a unified software versioning model and its applications , 1997 .

[95]  Ulf Asklund,et al.  Identifying Conflicts During Structural Merge , 1999 .

[96]  Udo Kelter,et al.  Differences between versions of UML diagrams , 2003, ESEC/FSE-11.

[97]  Udo Kelter,et al.  A fine-grained version and configuration model in analysis and design , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[98]  Jacky Estublier Software Configuration Management , 1995 .

[99]  W. Kafer,et al.  Mapping a version model to a complex-object data model , 1992, ICDE 1992.

[100]  Henrik Bærbak Christensen The Ragnarok architectural software configuration management model , 1999, Proceedings of the 32nd Annual Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and CD-ROM of Full Papers.

[101]  William Kent,et al.  An Overview of the Versioning Problem , 1989, SIGMOD Conference.

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

[103]  Cora Burger Team awareness with mobile agents in mobile environments , 1998, Proceedings 7th International Conference on Computer Communications and Networks (Cat. No.98EX226).

[104]  M. H. Kay,et al.  The Raleigh Activity Model: Integrating Versions, Concurrency, and Access Control , 1992, BNCOD.

[105]  Amélie Marian,et al.  Change-Centric Management of Versions in an XML Warehouse , 2001, VLDB.

[106]  Balachander Krishnamurthy,et al.  Practical reusable UNIX software , 1995 .

[107]  Boris Magnusson,et al.  Fine-grained revision control for collaborative software development , 1993, SIGSOFT '93.

[108]  Tom Mens,et al.  A State-of-the-Art Survey on Software Merging , 2002, IEEE Trans. Software Eng..

[109]  Michael K. Johnson Diff, Patch, and Friends , 1996 .

[110]  Andreas Zeller,et al.  Handling Version Sets Through Feature Logic , 1995, ESEC.

[111]  André van der Hoek International workshop on software configuration management (SCM-10): new practices, new challenges, and new boundaries , 2001, SOEN.

[112]  Anil K. Midha Software configuration management for the 21st century , 1997, Bell Labs Technical Journal.

[113]  Jacky Estublier Objects Control for Software Configuration Management , 2001, CAiSE.

[114]  Bernhard Mitschang,et al.  TOGA-A Customizable Service for Data-Centric Collaboration , 1999, Inf. Syst..