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.