Kapitel 2 Software Configuration Management

Transcription

Kapitel 2 Software Configuration Management
Vorlesung „Softwaretechnologie“
Wintersemester
te se este 2009/10
009/ 0
ROOTS
Kapitel 2
Software Configuration Management
Stand: 15.Oktober 2009
Probleme während der
Softwareentwicklung
Viele Anforderungen
g
Viele Änderungen
g
Viele Versionen
Koordination erforderlich!
Viele Projekte
Viele Arbeitsumgebungen
Viele Entwickler
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-2
ROOTS
Warum Software Configuration Management?
Problem
Sie möchten
 Software
Software-Entwicklung
Entwicklung ist nicht linear
 Man macht Programmierfehler
 Man trifft falsche Entwurfsentscheidungen
 wissen, was Sie wann
warum getan haben
 zu alter Version
zurückgehen
g
 Software-Entwicklung ist Teamarbeit
 Sie
Si und
d andere
d
arbeiten
b it parallel
ll l
 ... auf vielen verschiedenen Dateien
 wissen, wer was wann
warum getan hat
 Änderungen gemeinsam
nutzen
 Verwaltung verschiedener Versionen
 Kunde erhält stabile Version, während
Entwicklung weitergeht
 Bugfixes müssen in alle Versionen
integriert werden
 Verschiedene Kunden erhalten
verschiedene Varianten des Produkts
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
 parallele Entwicklung und
I t
Integration
ti kontrollieren
k t lli
 Varianten kontrollieren
Seite 2-3
ROOTS
SCM: Das Fundament des
Entwicklungsprozesses
Analyse
Entwurff
Implementierung
Test
Wartung
Software Configuration
g
Management
g
((SCM))
Sammeln und Verwalten von Informationen
um Software zu erzeugen,
erzeugen zu warten und zu erweitern.
erweitern
 Quellcode
Q ll d
 Bitmaps
Bit
& JPEGs
JPEG
 Anforderungen
A f d
 Binärcode
 HTML/XML Dateien
 Entwürfe
 Build Skripte
 CGI,
CGI Javascript
 Test Skripte
 Konfigurationen
 CSS
 Dokumentation
SCM Features
 Managt alle Komponenten des Projekts in einem „Repository“
 Keine
K i redundanten
d d t K
Kopien
i
 Sicher
 Macht Unterschiede zwischen Versionen sichtbar
 „Was hat sich verglichen mit der gestrigen Version verändert?“
 Erlaubt Änderungen zu identifizieren, auszuwerten, zu diskutieren (!)
und
d sie
i schließlich
hli ßli h anzunehmen
h
oder
d zu verwerfen.
f
 Verwaltet Metadaten: Wer hat was, wann, warum und wo getan?
 „Wer
Wer hat was in Klasse X geändert?“
geändert?
 „Warum hat er es verändert?“
 Ermöglicht die Wiederherstellung voriger Zustände
 Vollständig oder selektiv
 Erlaubt die Definition von Referenzversionen (Tags)
 Letzte konsistente Version
 Milestones
 Releases
SCM Aktivitäten

“Configuration item identification “
 Bestimmung
B ti
d per SCM zu verwaltenden
der
lt d Artefakte
A t f kt
 “Branch management”
 Verwaltung
V
l
verschiedener
hi d
V i
Versionen,
di später
die
ä integriert
i
i werden
d sollen
ll
 “Variant management”
 Verwaltung von Versionen die nebeneinander existieren sollen
 “Change management“
 Erfassung, Genemigung und Nachverfolgung von Änderungswünschen
Ä
 “Promotion”
 Erzeugung von Versionen für andere Entwickler
 “Release”
 Erzeugung von Versionen für Kunden bzw. Benutzer
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-6
ROOTS
SCM Grundbegriffe
 Arbeitskopie
 Unter Kontrolle eines Programmierers
 Nur für ihn sichtbar
Promotion
 Repository
 Zentrales Verzeichnis aller “promoteten”
Versionen
 Von allen Teammitgliedern benutzt
Zentrales
Archiv
Release
 Produkt
 Externe, veröffentlichte Version
Foo’95
Foo’98
Vorlesung „Softwaretechnologie“
Kapitel
ap te 2: So
Software
t a e Co
Configuration
gu at o Management
a age e t
ROOTS
Grundlegende Ansätze
Vault Model
Standard Repository
Virtual File System
Arbeitsumgebung und Repository
Arbeitsumgebung
g
g ((“Sandbox”))
Repository
p
y
 Enthält nur die aktuell relevante
 Enthält alle Versionen (incl.
Version eines jeden Artefaktes
aus d
dem R
Repository
it
 die Aktuellste
 die letzte Funktionierende
 ...
“branches”) eines jeden
A t f kt
Artefaktes,
d unter
das
t SCMSCM
Kontrolle stehen
src
foo.c
src
foo.c
foo.h
foo.h
Allgemeines Szenario
Entwicklungswerkzeuge
k
/
...
...
Entwickler
...
Arbeitsumgebung
SCM-Tools
Repository
 Frage:
F
Wie
Wi interagieren
i t
i
obige
bi B
Beteiligte?
t ili t ?
 Muss der Entwickler selbst seine Arbeitsumgebungen verwalten oder kann
das ein SCM-Tool (größtenteils) automatisch?
 Ist immer eine lokale Kopie in einer Arbeitsumgebung erforderlich oder
können Entwicklungswerkzeuge direkt auf das Repository zugreifen?
SCM-Ansätze: „Vault Model“
Entwicklungswerkzeuge
k
/
...
...
Entwickler
...
Arbeitsumgebung
Repository
SCM-Tools
 Idee
 Dateien kopieren: Arbeitsumgebung   Repository
 Probleme
 Evtl. viele private Kopien in Arbeitsumgebungen außerhalb des Repository
 Entwickler arbeitet evtl. auf veralteten Dateien
 Möglicher Datenverlust durch gleichzeitige oder abgebrochene Updates
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-11
ROOTS
SCM-Ansätze: "Standard Repository API"
Entwicklungs-Werkzeuge
...
API
/
Entwickler
...
...
...
Repository
Dateien in Arbeitsumgebung (‚sandbox‘)
 Idee
 Alle
All E
Entwicklungswerkzeuge
t i kl
k
greifen
if di
direkt
kt auff d
das R
Repository
it
zu,
über eine standardisierte Schnittstelle
 Problem
 Alle Werkzeuge müssen angepasst werden -- bei jeder Änderung des
Standards!
SCM-Ansätze: "Virtual File System" (VFS)
Entwicklungs-Werkzeuge
...
/
Entwickler
...
...
Repository
...
Arbeitsumgebung
 Idee
 Abfangen von I/O-Operationen des Betriebssystems (open, read, write)
und Umleiten zum Repository
p
y
 Vorteile
 Transparenz, da das Repository als normaler Verzeichnisbaum erscheint
 nahtlose Integration bestehender Standardsoftware
 Benutzer kann wie gewohnt arbeiten
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-13
ROOTS
Verbreitete SCM-Tools die obige Ansätze
umsetzen
 CVS (simpel, kostenlos)
 Repository = Dateisystem
 Versionierung von Dateien
 Hauptsächlich Textdateien, Binärdateien nur eingeschränkt
 Repository = Datenbank  Transaktionsunterstützung
 Versionierung von Dateien und Ordnern  Umbenennungen
 Text und Binärdatein
 Komfortable graphische Benutzeroberflächen
mächttiger
 SVN (besser, kostenlos)
 ClearCase (high-end, kommerziell)
 Virtuelles Dateisystem basierend auf Datenbank
 Alle Eigenschaften von SVN plus...
 Dynamische Sichten auf Repository
 „Derived Object Sharing“
 Multiple Server, Replikation

© 2000-2009 Dr. G. Kniesel
Prozessmodelierung
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-14
ROOTS
Vorlesung „ Softwaretechnologie“
Kapitel
ap te 2: Konfigurationsmanagement
o gu at o s a age e t mitt Sub
Subversion
e so
Arbeiten mit SVN (und CVS)
Check-in und Check-out
Commit und Update
Synchronisierung
Konfliktbeurteilung durch Dateivergleich
Manuelle Konfliktauflösung
ROOTS
CVS und SVN: “Vault Model”
Entwicklungswerkzeuge
CVS / SVN
Arbeitskopie
p
Repository
Entwicklungswerkzeuge
CVS / SVN
Arbeitskopie
 Prinzip
 Ein
Ei zentrales
t l Sammelbecken
S
lb k („Repository“)
(R
it “) aller
ll relevanter
l
t D
Dateien
t i
 Nur „offizielle“ Versionen
 Viele private Arbeitsumgebungen („Sandbox“) mit Kopien von Dateien
 Auch temporäre, inkonsistente, unfertige, ... Versionen
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-16
ROOTS
CVS und SVN: Checkin und Checkout
Entwicklungswerkzeuge
CVS / SVN
Arbeitskopie
p
Checkout
CVS(Projekt)
/ SVN
Entwicklungswerkzeuge
Repository
Arbeitskopie
 Checkin
 Fügt
Fü t Projekt
P j kt dem
d
R
Repository
it
hi
hinzu
 Checkout
 Erstellt eine Arbeitskopie des Projekts vom Repository
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-17
ROOTS
CVS und SVN: Commit und Update
Entwicklungswerkzeuge
Commit
CVS
/ SVN
(Dateien)
Arbeitskopie
p
Update
CVS / SVN
(Dateien)
Entwicklungswerkzeuge
Repository
Arbeitskopie
 Commit
 Transferiert
T
f i t vom Programmierer
P
i
geänderte
ä d t Dateien
D t i in
i d
das R
Repository
it
 Update
 Transferiert geänderte Dateien vom Repository in die Arbeitskopie
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-18
ROOTS
Check-In: Projekt unter Versionskontrolle
stellen
 Ausgangssituation
 Ein
Ei R
Repository
it
existiert
i ti t
 Ein Projekt existiert, wird aber noch nicht gemeinsam genutzt.
g / Promotion des Projektes
j
 Check-In / Sharing
 Das Projekt wird dem Repository hinzugefügt
 Es ist nun für alle Entwickler verfügbar die Zugriff auf das Repository
haben
Check-In / Sharing
Projekt X
Repository
Projekt X
Entwickler
https://svn.iai.uni-bonn.de/repos/IAI_Software/se/ swt-vorlesung/groupXX
Repository root
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Projekt Pfad
Seite 2-19
ROOTS
Check-Out: Initialer Projektdownload
 Check-out eines Projektes
 Entwickler
E t i kl bekommen
b k
eine
i lokale
l k l A
Arbeitskopie
b it k i
 Von jetzt an können sie an dem Projekt arbeiten
pro Projekt
j
g
gemacht!
 Auschecken wird nur einmal p
 Neue Version aus Repository holen  siehe „Update“
Arbeitskopie
Projekt X
R
Repository
it
Entwickler A
Check out
Projekt X
Projekt X
Entwickler B
Arbeitskopie
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-20
ROOTS
Check-Out: Initialer Projektdownload
 Entwickler bekommt eine lokale Arbeitskopie eines Projektes
 Auschecken
A
h k wird
i d nur einmal
i
l pro P
Projekt
j kt gemacht!
ht!
 Neue Version aus Repository holen  siehe „Update“
Arbeitskopie von
Entwickler A
Check Out
Projekt im Repository
Check Out
Arbeitskopie von
Entwickler B
t0
t1
Commit: Änderungen in das Repository
übertragen
 Ausgangslage: Entwickler A hat seine Arbeitskopie geändert
 Commit
C
it
 Er fügt seine Änderungen dem Repository hinzu
 Mit einem „Commit Kommentar“
Kommentar teilt er dem Team mit was er warum
geändert hat: „NullPointer-Exception behoben, die auftrat wenn ...“
Arbeitskopie von
Entwickler A
Check Out
Commit
Projekt im Repository
Check Out
Arbeitskopie von
Entwickler B
t0
t1
t2
Update: Neueste Änderungen vom
Repository übernehmen
 Ausgangslage: Repository hat sich geändert
 Entwickler
E t i kl B iistt sich
i h sicher(!),
i h (!) dass
d
er di
die Ä
Änderungen
d
üb
übernehmen
h
will
ill
 Update
 B aktualisiert seine Arbeitskopie mit dem aktuellen Zustand des Repository
 Problem
 Woher weiß der Entwickler, welche Änderungen er übernehmen soll?
 Besser: Zuerst „Synchronize“ benutzen!
Arbeitskopie von
Entwickler A
Projekt im Repository
Check Out
Commit
/ Update
p
Check Out
Arbeitskopie von
Entwickler B
Update
/ Update
t0
t1
t2
t3
Konflikt?
Synchronisation: Versionsvergleich
 Vergleich des Projektes in Arbeitskopie mit Repository bezogen auf
Stand beim letzten Abgleich (check
(check-in
in / commit / check-out
check out / update)
 Automatisierter Vergleich aller Dateien im Projekt
 Automatisierter Vergleich einzelner Dateiinhalte
 Der Entwickler entscheidet selbst was aktuell ist
 ... und führt Updates oder Commits durch (eventuell selektiv)
Arbeitskopie von
Entwickler A
Projekt im Repository
Check Out
Commit
/ Update
p
Check Out
Arbeitskopie von
Entwickler B
Gemeinsame
Bezugsversion
Update
/ Update
t0
t1
t2
t3
Konflikt?
“Synchronize View”: Gesamtübersicht
 Automatisierte Gesamtübersicht
 Vergleich
V l i h auff P
Projektebene:
j kt b
All
Alle D
Dateien
t i des
d Projektes
P j kt ((oder
d d
des
selektierten Ordners) werden verglichen
 Zeigt pro Datei ein- und ausgehende Änderungen sowie Konflikte durch
entsprechende Symbole
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-25
ROOTS
(lokale Änderung)
 Lokale Datei ist neuer als ihre Version im Repository
 Überschreibe Version im Repository
p
y mit lokaler Version
 Neue lokale Datei existiert nicht im Repository
+
 Füge Datei zum Repository hinzu
 Datei aus Repository wurde lokal gelöscht
(Ä
Änderung im
m Repositorry)
Ein
ngehende
e Änderung
Ausgehen
A
nde Änderrung
Symbole im „Synchronize View“
© 2000-2009 Dr. G. Kniesel
 Datei aus (nächster Version in) dem Repository löschen
 Datei im Repository ist neuer als ihre lokale Version
 Überschreibe
Üb
h ib llokale
k l K
Kopie
i mit
it d
der aus d
dem R
Repository
it
+
-
 Neue Datei aus Repository existiert nicht lokal
 Füge die Datei der lokalen Arbeitskopie hinzu
 Lokale Datei wurde im Repositoryy g
gelöscht
 Lösche die Datei aus der lokalen Arbeitskopie
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-26
ROOTS
Bedeutung der Symbole im „Synchronize
View“ (Fortsezung)
View
 Die vorherige Folie stellt die Fälle dar, wenn eine Datei gegenüber dem
Stand des letzten Abgleichs mit dem Repository nur auf einer Seite
verändert wurde
 Änderung nur lokal  Übernahme ins Repository (ausgehende Änderung)
 Änderung nur in Repository  Übernahme in lokale Kopie (eingehende
Änderung)
 Wenn eine Datei auf beiden Seiten neuer als der Stand beim letzten
Abgleich ist, wird ein Konflikt gemeldet:
 Dateiinhalt wurde lokal und im Repository verändert
Konfflikt
 Manuelle Konfliktlösung notwendig
+
–
© 2000-2009 Dr. G. Kniesel
 Lokale veränderte Datei wurde im Repository gelöscht
 Manuelle Konfliktlösung notwendig
 Lokale gelöschte Datei wurde im Repository verändert
 Manuelle Konfliktlösung notwendig
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-27
ROOTS
Synchronisieren: Konfliktauflösung
 Konfliktauflösung erfordert Inhaltsvergleich der Dateien
 Angezeigt
A
i t iin “Sid
“Side-by-side
b id View”
Vi ” / “Compare
“C
Edit ” von Eclipse
Editor”
E li
 Zeigt Versionsvergleich von Dateien („diff“) übersichtlich an
Beginne Detailvergleich durch Doppelklick
auff die
di entsprechende
t
h d Datei
D t i ...
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-28
ROOTS
Synchronisieren: Inhaltsvergleich im
„Compare
Compare“ Fenster
 Die lokale Arbeitskopie wird mit der Repository Version verglichen
 Hier
Hi ein
i F
Fallll ohne
h K
Konflikte:
flikt nur ausgehende
h d Änderung
Ä d
 SVN
SVN- / CVS
CVS-Plugin
Plugin für Eclipse hilft beim Versionsvergleich
 „Compare View“
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-29
ROOTS
Synchronisieren: Inhaltsvergleich im
„Compare
Compare Editor
Editor“ Fenster
 Hier die Anzeige eines Konfliktes
 Bei
B iB
Bedarf
d f kkann auch
h di
die gemeinsame
i
B
Bezugsversion
i angezeigt
i t
werden (“Show Ancestor Pane”).
 So kann man selbst entscheiden,, welches die relevante Änderung
g ist
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-30
ROOTS
3-Wege-Konfliktauflösung mit Hilfe der
„Common
Common Ancestor Pane
Pane“
 Anhand des gemeinsamen Vorfahren feststellen was sich geändert hat
 Die
Di Änderung
Ä d
üb
übernehmen
h
gemeinsamer Vorfahre
Version A
...
x=0
...
...
x=0
...
...
x=1
...
Version B
...
x=1
...
abgeglichene
g g
Version ((nach „merge“)
g )
 Mit SVN ist dies ein manueller Prozess: Sie selbst entscheiden
 für jjede Datei mit Konflikten
 für jeden Konflikt in der Datei
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-31
ROOTS
Beispiel: „Common Ancestor Pane“ (1)
 Szenario: Gemeinsam eine Ausarbeitung / Veröffentlichung schreiben
 Konflikte
K flikt in
i Datei
D t i “evaluation.lyx”
“
l ti l ”
 Frage: Welcher Stand ist der neueste?
 Erster Schritt: “Show
Show Ancestor Pane”
Pane
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-32
ROOTS
Beispiel: „Common Ancestor Pane“ (2)
 Antwort: Keiner
 Hier
Hi wurde
d tatsächlich
t t ä hli h an der
d gleichen
l i h Stelle
St ll parallel
ll l geändert!
ä d t!
 Absprache mit dem Kollegen / Co-Author erforderlich!
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-33
ROOTS
Beispiel: „Common Ancestor Pane“ (3)
 Antwort: Keiner
 Hi
Hier wurde
d ttatsächlich
t ä hli h an d
der gleichen
l i h St
Stelle
ll parallel
ll l geändert!
ä d t!
 Absprache mit dem Kollegen / Co-Author erforderlich!
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-34
ROOTS
Synchronisieren: Aktionen zur
Konfliktauflösung
 „Override and Update“ (Menupunkt)
 Überschreibt
Üb
h ibt llokale
k l V
Version
i mit
it R
Repository-Inhalt
it
I h lt
Override and Commit
Commit“ (Menupunkt)
 „Override
 Überschreibt Repository-Version mit lokaler Version
 Nie ohne vorherige Kommunikation mit dem Autor
d R
der
Repository-Version!
it
V i !
 „Merging
Merging“ (Manueller Vorgang)
 Selektive Übernahme einzelner Änderungen der Datei im „Compare Editor“
 Nur Übernahme von Repository-Stand in lokale Version!
 Anschließend „Mark as Merged“ auf lokaler Version (Menupunkt)
 Lokale Version wird nun als aktueller als die aus dem Repository angesehen
 Bei einem „Commit“ würden nun die nicht übernommenen Repository-Inhalte
p
y
überschrieben!
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-35
ROOTS
Tagging (= Baselining)
h
c
rc
minicalc.dsw
minicalc.h
minicalc.cpp
minicalc.rc
0
0
0
0
Release 1
1
Release 1
1
2
2
Release 1
Release 1
1
1
Release 2
Release 2
2
Release 2
3
4
© 2000-2009 Dr. G. Kniesel
3
Release 2
Jede
J
d Version
V i im
i Repository
R
i
k
kann
ein
i
globales Label (z.B. "Release 1") erhalten
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-36
ROOTS
Vorlesung „ Softwaretechnologie“
Kapitel
ap te 2: Konfigurationsmanagement
o gu at o s a age e t mitt Sub
Subversion
e so
ROOTS
Vergleich von Subversion (SVN)
und CVS
Versionierung von Verzeichnissen
Globale Commit-Nummerierung
Atomare Commit-Aktionen
Subversion kann mehr als CVS:
1 Versionierung von Verzeichnissen
1.
 Dateien und Verzeichnisse zu löschen, umzubenennen und zu
verschieben entspricht einer neuen Version des umgebenden
Verzeichnisses
 Hier eine Versionsänderung von /usr/src/proj
/usr/src/proj
/usr/src/proj
gui_src
gui
gui_doc
schedule
schedule
src
arc.c
zbuf.c
plan.doc
arc.c
© 2000-2009 Dr. G. Kniesel
doc
Vorlesung „Softwaretechnologie“ (SWT)
zbuf.c
plan.doc
Seite 2-38
ROOTS
Subversion kann mehr als CVS:
1 Versionierung von Verzeichnissen
1.
 Es ist in Subversion möglich Dateien und Verzeichnisse zu löschen,
umzubenennen und zu verschieben
Warnung
g
 Man muss diese Operationen mit einem „Subversion Client“
durchführen!
 Siehe
Si h Folie
F li „Wichtige
Wi hti Li
Links“
k “
 Führt man es selbst auf Systemebene durch wird Subversion nichts
vom Umbenennen oder Verschieben erfahren.
 Es wird annehmen eine Datei wurde gelöscht und eine andere hinzugefügt!
 Man sollte tunlichst vermeiden, versehentlich die „.svn“ Ordner
innerhalb der Arbeitskopie zu verändern!
 Sie enthalten die Meta-Informationen für SVN über die zwischen den
Abgleichen mit dem Repository geschehenen Änderungen auf Dateiebene
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-39
ROOTS
Subversion kann mehr als CVS:
2 Globale Versions
2.
Versions-Nummerierung
Nummerierung
 CVS weist jeder Datei ihre eigenen Versions-Nummern zu
A
B
C
D
1.0
1.0
1.0
1.0
1.1
1.1
1.1
1.1
12
1.2
12
1.2
12
1.2
1.3
1.3
 Problem: Es ist nicht einfach zusehen welche Versionen verschiedener
Dateien zusammengehören
 „Gehört Version 1.0 von Datei A wirklich zu Version 1.1 von Datei B?“
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-40
ROOTS
Subversion kann mehr als CVS:
2 Globale Versions
2.
Versions-Nummerierung
Nummerierung
 SVN weist jeder Datei die bei einem Commit verändert wurde die selbe
Versions
Versions-Nummer
Nummer zu
zu.
Build 3
Build ?
A
B
C
D
1
1
1
2
3
3
2
5
4
7
3
5
6
 Vorteil: Dateiversionen die zusammengehören sind auf einen Blick zu
erkennen: Zu einer Projektversion V gehören alle Elemente mit
V i
Versionsnummer
V oder
d kleiner
kl i
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-41
ROOTS
Subversion kann mehr als CVS:
2 Globale Versions
2.
Versions-Nummerierung
Nummerierung
 Ein „Roll back“ auf eine alte Version ist einfach, selbst ohne „Tags“
 „Gehe
G h zurück
ü k zu V
Version
i 3“
Build 3
A
B
C
D
1
1
1
2
3
3
2
5
4
7
3
5
6
 Tagging sollte für wichtige Zwischenstände trotzdem genutzt werden
 „Release 1.0 alpha
alpha“ ist leichter zu merken als Version 1093
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-42
ROOTS
Subversion kann mehr als CVS:
3 Atomic commits
3.
 Netzwerkfehler oder andere Probleme können zu unvollständigen
Commits führen (nicht alle Dateien wurden „commitet
commitet“))
 Wenn dies p
passiert, hinterlässt CVS das Repository
p
y in einem
inkonsistenten Zustand.
 SVN führt bei unvollständigen Commits einen „Roll
Roll back
back“ durch.
durch
 SVN benutzt ein Datenbanksystem um das Repository zu speichern und
kann daher Commits als atomare Transaktionen implementieren!
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-43
ROOTS
Vorlesung „ Softwaretechnologie“
Kapitel
ap te 2: Konfigurationsmanagement
o gu at o s a age e t mitt Sub
Subversion
e so
ROOTS
Struktur von Subversion-Repositories
Spezielle
p
Ordner
Optionen
Repository Layout: Spezielle Ordner
 trunk
 Enthält
E thält di
die aktuelle
kt ll E
Entwicklungslinie
t i kl
li i
(wie HEAD in CVS)
 Also den trunk „auschecken“!
 tags
 Enthält unveränderliche Versionen des
Projekts
 Für Releases, Milestones, Backups
 branches
 Enthält alternative Entwicklungszweige
des Projekts
 Für Untergruppen
g pp eines Teams oder
parallele Entwicklung verschiedener
Varianten
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-45
ROOTS
Repository Layout: Alles nur Konvention!
 Vorherige Folie ist nur
Konvention!
 trunk, branches, tags
sind für Subversion
l O
d
normale
Ordner
 Es ist bloß der
Subversive-Client, der
sie besonders behandelt
 Ob das geschehen soll,
kann als Option
angegeben werden
 Man darf die Ordner des
Projekts organisieren wie
man möchte!
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-46
ROOTS
Vorlesung „Softwaretechnologie“
Kapitel
ap te 2: So
Software
t a e Co
Configuration
gu at o Management
a age e t
Installation des „Subversive
Subversive“
Plugins für Eclipse
Hinweise zur Installation des „Subversive
Subversive“ Plugins in Eclipse finden Sie in
einem „Exkurs“-Foliensatz zum aktuellen Kapitel und auf der Vorlesungswebsite.
ROOTS
Wichtige Links
 Subversion Buch
 http://svnbook.red-bean.com/nightly/en/svn-book.pdf
htt //
b k db
/ i htl / /
b k df
 Subversion Server
 subversion.tigris.org
 Subversion Clients als Erweiterung für den Windows Explorer
 TortoiseSVN (nur für Windows)
 Subversion Clients als Plugins für Eclipse
 Subversive  Wir empfehlen „Subversive“ zu benutzen
 Homepage: www.polarion.org
www polarion org
 Plugin Download Seite:
http://www.polarion.org/projects/subversive/download/1.1/update-site/
 Subclipse
 www.eclipse.org
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-48
ROOTS
Vorlesung „Softwaretechnologie“
Kapitel
ap te 2: So
Software
t a e Co
Configuration
gu at o Management
a age e t
Clear Case
ROOTS
ClearCase VOB (Versioned Object Base)
 Sicheres Repository
 aufbauend auf objektorientierter
Datenbank
 Zugriff nur mit ClearCase möglich
 Speichert alle versionierten Daten
0
bugfix
 Source code
0
 Directories
1
 Binaries
 Wer hat was, wann, warum getan?
 Gemeinsamer Datenzugriff
 Beliebig viele VOBs im Netzwerk
2
1
Release 1
2
3
4
develop
0
1
Release 2
4
2
mit beliebig vielen Elementen
 Verteile Datenbank
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-50
ROOTS
Virtual File System bei ClearCase
src
foo.h
foo
foo.c
c
VOB
emacs
make
gcc
grep
eclipse
WIN
DOWS
/
UNIX
M
V
F
S
src
foo c
foo.c
Softwareentwicklungswerkzeuge
foo h
foo.h
Versioned Object Base (VOB)
Regelbasierte Arbeitskopie-Verwaltung
 Prinzip: regeldefinierte Auswahl von Objekten / Versionen
 Sichtdefinition
Si htd fi iti d
durch
hb
benutzerspezifische
t
ifi h Regelmenge
R
l
 Regeln agieren als Filter: Auswahl einer bestimmten Objektversion
verhindert Zugriff auf alle anderen Versionen des selben Objekts
 Projektion der ausgewählten Versionen als normaler Verzeichnisbaum
 Statische Regelauswertung
 Auswertung der Regeln zum Zeitpunkt des Arbeitsbeginns
 ausgewählte
g
Versionen werden in den p
privaten Arbeitsbereich kopiert
p
 der Benutzer muss am Ende explizit die Synchronisation anstoßen
 Dynamische
D
i h R
Regelauswertung
l
t
(Cl
(ClearCase)
C
)
 Auswertung der Regeln zum Zeitpunkt des Objektzugriffs
 Lesevorgänge
g g direkt aus der VOB  längstmöglich
g
g
aktuellster Stand
 Objekte werden erst beim ersten Schreiben in den Arbeitsbereich kopiert
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-52
ROOTS
Regelbasierte Arbeitskopie-Verwaltung:
Regelsyntax und -semantik
semantik
 http://techpubs.sgi.com/library/dynaweb_docs/0620/SGI_EndUser/boo
ks/ClrC UG/sgi html/ch05 html
ks/ClrC_UG/sgi_html/ch05.html
 http://www.philforhumanity.com/ClearCase_Support_17.html
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-53
ROOTS
ClearCase Views
 Transparentes Arbeiten mit
verschiedenen
hi d
R
Releases
l
d
des
gleichen Projekts
View
 “Zeig mir Version 2.20”
 Eine Art Filter
 Arbeiten in Echtzeit
 Sofortiger
g Zugriff
g auf den
gesamten Datenbestand
 Downloads finden nur bei
Zugriff statt
 Kein komplettes Kopieren!
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-54
ROOTS
ClearCase Views: Private Storage
View
 Lokale Kopien ermöglichen das
Arbeiten ohne Netzzugriff
 Synchronisation mit der
Datenbank erfolgt automatisch
 Merging erfolgt automatisch
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-55
ROOTS
Automatisches 3-Wege-Merging
 Mit SVN ist dies ein manueller Prozess: Sie selbst entscheiden

 für jeden Konflikt in der Datei 
...
x=0
...
 für
fü jede
j d D
Datei
t i mit
it Konflikten
K flikt
Version A
...
x=0
...
...
x=1
...
Vorfahre
Version B
...
x=1
...
 Clear-Case führt 3-Wege-Merge automatisch durch!
 Experimentelle Resultate (Ende der 80-er Jahre!)
 In ca. 90% der Fälle konnte das Zusammenführen ohne Rückfragen
durchgeführt werden.
 Ca. 1% der automatischen Zusammenführungen war fehlerhaft
 ... was meist beim Übersetzen entdeckt wurde (Syntaxfehler)
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-56
ROOTS
ClearCase Views
 Alle Objekte im VOB sind schreibgeschützt
 Check-Out
Ch k O t
 Ein Entwickler muß ein check-out-Kommando absetzen, um ein Objekt
verändern zu können
 Dieses wird dann in den privaten Speicherbereich kopiert, ist aber noch
unter dem ursprünglichen Namen und Pfad ansprechbar
 Check-In
 Das check-in-Kommando erzeugt eine neue Objektversion im VOB und
löscht die private Kopie
 Locking: Nur derjenige Entwickler, der das check-out-Kommando
abgesetzt hat, darf die neue Objektversion auch wieder einchecken
 Variante: „unreserved check-out“:
 „first check-in wins“; alle anderen müssen mergen
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-57
ROOTS
Build Management mit herkömmlichen
Werkzeugen (make,
(make ant)
 Keine automatisierte Abhängigkeitsanalyse
 Abhängigkeiten
Abhä i k it werden
d vom B
Benutzer
t
manuellll b
beschrieben
hi b
 Das ist aber in einer sich schnell ändernden Umgebung sehr aufwendig
und fehleranfällig
 Kein „Binary sharing“
 Das "normale"
normale Make weiß nichts darüber
darüber, dass ein Kollege evtl
evtl. ein
aufwendig zu erstellendes abgeleitetes Objekt schon erzeugt hat
 Kein „Bill of materials“
 unklar ob zwei abgeleitete Produkte gleichen Namens (foo.o) wirklich
gleich sind
sind, da nicht klar ist
ist, ob sie auch aus den gleichen „Zutaten
Zutaten“ und
nach der gleichen „Rezeptur“ erstellt wurden
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-58
ROOTS
Build Management mit ClearCase
Verwaltung von Informationen zum reproduzierbaren Erstellen von
abgeleiteten
abge
e tete Obje
Objekten
te
 Technische Grundlage
 Durch das VFS ist es möglich, die I/O-Zugriffe vom Compiler oder anderen
W k
Werkzeugen
auff alle
ll beteiligten
b t ili t Obj
Objekte
kt erfassen
f
und
d protokollieren
t k lli
zu
lassen.
 clearmake erledigt diese Aufgabe
 Protokollierung der benötigte Daten (Auditing)  Zutatenliste (bill-ofmaterials)
 Korrekte Versionen aller Quell-Dateien und anderer beteiligter
g Objekte
j
 Namen und Versionen der verwendeten Werkzeuge
 benutzte Parametereinstellungen
 Resultierende nützliche Eigenschaften
 binary sharing: Abgeleitete Objekte können von verschiedenen Benutzern
genutzt werden
 minimal rebuilding: Nur die notwendigsten Operationen zum Erstellen
eines abgeleiteten Objekts müssen durchgeführt werden
Build Management mit ClearCase
clearmake
audit on
invoke build script
audit off
additional
information
f
/bin/cc -g parse.c
view
Config Record
File System I/O Audit
parse.c@@/main/17
parse.h@@/main/7
lex
h@@/main/93
lex.h@@/main/93
parse.o@@12-Jul
---------------HP/UX 9.0.3
/bin/cc -g parse.c
Bill-of-material = „Stückliste“
der „Zutaten“ für die Herstellung
dieses abgeleiteten Objektes.
VOB repository
Zusammenfassung: SCM de Luxe
 Virtuelles Dateisystem
  Transparenz
T
der
d Datenhaltung
D t h lt
 Regelbasierte Konfiguration des Arbeitsbereiches
  Flexibilität
 Dynamische Regelauswertung
  Aktualität
 Automatisches Merging
  Geringer Integrationsaufwand
 Build Management
  Reproduzierbare „build“-Ergebnisse, Effizienz durch „minimal rebuilding“
g
 ECA-Regeln
  Workflow-Management
 Verteilung, automatische Spielelung, verteiltes Building
  Unterstützung für internationale Unternehmen
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-61
ROOTS
Vorlesung „Softwaretechnologie“
Kapitel
ap te 2: So
Software
t a e Co
Configuration
gu at o Management
a age e t
ROOTS
Von zentraler zu verteilter
Versionskontrolle
Nachteile zentralisierter Ansätze
Prinzip
p der verteilten Versionskontrolle
Vergleich zentrale  dezentrale Versionskontrolle
Werkzeuge
Austausch halbfertiger Zwischenstände
via zentralem SCM
SCM-System
System
 Peter und Lisa haben unabhängig am gleichen Projekt gearbeitet
 Peter will Lisa seine Änderungen
Ä
geben, damit sie sie integriert
 Ohne SCM: Via e-mail, etc.
 Problem: Keine Unterstützung für Abgleich (Synchronize & Merge)
 Mit SCM: Via commit und update
 Problem: Der inkonsistente Zustand erscheint im Repository  betrifft Andere
?
© 2000-2009 Dr. G. Kniesel
checkout / update
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-64
ROOTS
Probleme
 Commit von inkonsistenten Zuständen
 inkonsistenter Zustand betrifft Andere
 Regel: Kein commit von inkonsistenten Zustände! Niemals!
 Commit
C
i iinkonsistenter
k
i
Z
Zustände
ä d verhindern
hi d
 Spezielle „commiter“ Rolle
 Nur sehr erfahrene Entwickler haben das Recht zum „Commit“
„
 Sie müssen jeden Änderungsvorschlag beurteilen und entscheiden
 Folgeproblem: Engpass
 Kein commit inkonsistenter Zustände
 Synchronize & Merge nicht für Abgleich von Zwischenzuständen nutzbar
 Fehleranfälliger manueller Abgleich von Zwischenzuständen (Peter  Lisa)
 Commit & Revert nicht für Zwischenzustände nutzbar
 Es sammlen sich umfangreiche Änderungen an
 Rücksetzen auf Repository-Stand entsprechend verlustreich und aufwendig
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-65
ROOTS
Prinzipien Verteilter Versionskontrolle
(Distributed Version Control)
 Multiple, verteilte Repositories
 Jede(r) hat ein oder mehrere lokale Repositories
 Mehrere  Verschieden Projekte oder verschiedene Aufgaben im Projekt
 Repository kann geklont werden  inkl. der gesamten Versionshistorie!
 Repository Klonen subsummiert Branch
 Man kann trotzdem auch innerhalb eines Repository „branches“ verwalten
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-66
ROOTS
Prinzipien Verteilter Versionskontrolle
(Distributed Version Control)
 Checkout, Commit, Update geschehen lokal
 Unabhängig von Netzverbindung und Server
 Sehr schnell
 Fokus auf Gesamt-Repository statt einzelnen Artefakten
 Jede Gesamt-Änderung hat eine eindeutige ID
 Repository-Zustand ist durch ID der letzten Änderung bestimmt
commit
#e34b
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-67
ROOTS
Prinzipien Verteilter Versionskontrolle
(Distributed Version Control)
 Repositories können miteinander abgeglichen werden
 Pull: Holen von Änderungen (Patches) aus anderem Repository
 Push: Übertragen von Änderungen in ein anderes Repository
 Beinhaltet bei Bedarf automatisches Merge
 Merge wird als eigene Änderung verwaltet (Hat eigene ID)
 In der Abb. nehmen wir an es sei kein Merge nötig gewesen
update
commit
push / pull
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-68
ROOTS
Prinzipien Verteilter Versionskontrolle
(Distributed Version Control)
 Technische Gleichberechtigung
 Jedes Repository kann geklont werden und von jedem kann abgeglichen
werden
 Egal welches die „ursprüngliche Kopie“ war
 Organisatorische
O
i t i h Z
Zentralisierung
t li i
((wenn gewünscht)
ü
ht)
 Vereinbarung, welches Repository als „Master“ benutzt wird
 Evtl. durch Zugriffsrechte
für „push“
/ „pull“
/ „clone“
unterstützt
g
„p
„p
„
push / pull
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-69
ROOTS
SCM-Ansätze und Werkzeuge
Zentral ((z.B. SVN))
Verteilt ((z.B. GIT))
 Operationen
 Operationen
 –––
 Checkout, Checkin
 Update, Commit
 manuelles Merging (SVN)
 Konzepte
 Konzepte
 Es gibt nur ein Repository
 Interaktion nur über zentralen
Server
 Dateiweise Historie
 Tracking von Umbenennungen
 Verwaltungsdaten in jedem
Ordner
© 2000-2009 Dr. G. Kniesel
 Clone, Pull, Push
 Checkout / Create repository
 Update, Commit
 automatischer 3
3-Wege-Merge
Wege Merge
 Gleichberechtigte Repositories
 Zentrale Instanz
organisatorisch möglich
 Repository
Repository-weite
weite Historie
 Änderung hat eindeutige Id
 Verwaltungsdaten nur im
obersten Ordner
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-70
ROOTS
Vorteile Verteilter Versionskontrolle
 Eigene, lokale Versionskontrolle
 Nicht
Ni ht erstt d
dann einchecken,
i h k
wenn wirklich
i kli h alles
ll lä
läuft
ft
 Eigene inkrementelle Historie, Rollbacks auch lokal möglich
 Lokal Arbeiten ist sehr schnell
 Diff, Commit und Revert sind rein lokal  kein Netzwerkverkehr nötig
 Branching und Merging ist leicht
 Branch = Clone
 Merge = Push oder Pull
 Partielle Integration ist leicht
 Entwickler können ihre Änderungen untereinander abgleichen
 Änderung eines „zentralen“ Masters erst nach partieller Integration
 Wenig Management erforderlich
 Schneller Start (einfach „clone“ oder „create repository“)
 Nur der eigene Rechner muss andauernd laufen
 Kein Usermanagement erforderlich
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-71
ROOTS
Nachteile Verteilter Versionskontrolle
 Ein zentrales Backup ist dennoch sinnvoll
 auch
h wenn gerne d
dagegen argumentiert
ti t wird
id
 eventuell hat nicht jeder alle Änderungen mitbekommen, also kann man
sich nicht auf andere Repositories als Backup verlassen
 Es gibt keine wirkliche „neueste Version“
 Kann man durch ein dediziertes Repository emulieren
 Es gibt keine Versionsnummern
 jedes Repository verwaltet seine eigene Änderungshistorie
 aber man kann Releases mit sinnvollen Namen taggen
gg
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-72
ROOTS
Listen weiterer SCM Werkzeuge
 Wikipedia
 http://en.wikipedia.org/wiki/List_of_revision_control_software
htt //
iki di
/ iki/Li t f
i i
t l
ft
 Sehr umfangreiche Liste, mit oft guten Fortsetzungen zu den einzelnen
Werkzeugen
 Wikipedia
 http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
http://en wikipedia org/wiki/Comparison of revision control software
 Versuch eines tabellarischen Vergleichs der Systeme
 Teilweise gut, aber hoffnungslose Sisyphos-Arbeit...
 Andere
 http://www.software-pointers.com/en-configuration-tools.html
h //
f
i
/
fi
i
l h l
 http://www.thefreecountry.com/programming/versioncontrol.shtml
 http://www.dmoz.org/Computers/Software/Configuration
p
g
p
g
_Management/Too
g
ls/
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-73
ROOTS
Vergleiche von SCM Werkzeuge
 Wikipedia (allgemein)
 http://en.wikipedia.org/wiki/Comparison_of_revision_control_software
htt //
iki di
/ iki/C
i
f
i i
t l
ft
 Versuch eines tabellarischen Vergleichs der Systeme
 Teilweise g
gut, aber hoffnungslose
g
Sisyphos-Arbeit...
yp
 Wikipedia (nur open source)
 http://en.wikipedia.org/wiki/Comparison_of_open_source_configuration_ma
nagement software
nagement_software
 Andere neutrale Vergleiche
g
 http://better-scm.berlios.de/comparison/ (Stand 29. Feb. 2008)
 Nicht ganz unparteiische Vergleiche...
 http://www.relisoft.com/co_op/vcs_compare.html
 http://www.accurev.com/scm_comparisons.html
http://www accurev com/scm comparisons html
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-74
ROOTS
Vorlesung „Softwaretechnologie“
Kapitel
ap te 2: So
Software
t a e Co
Configuration
gu at o Management
a age e t
SCM und „Issue Management“
Siehe auch Kapitel zu
„Rationale Management“, „Project Management“,
„Softwareprozessmodelle“ und „Agile Softwareentwicklung“
ROOTS
Issue Management
 Entwicklung konzentriert sich auf einzelne „Issues“
 Probleme,
P bl
di
die zu lö
lösen sind
i d
 Neue Funktionen, Funktionsanpassung, Fehlerbehebung, Portierung, ...
 Siehe auch Vorlesungen über
 „Rationale Management“ und
 „Prozessmodelle““ („Issue-Based
(
Development“)
“)
 Tools für die zentrale Verwaltung aller „issues“
„issues und ihrer
Abhängigkeiten
 ClearQuest (s.o., kommerzielles Produkt von Rational / IBM, sehr teuer)
 Jira
Ji (für
(fü universitäre
i
itä V
Verwendung
d
an d
der U
Unii B
Bonn ffreii verfügbar)
fü b )
 roots.iai.uni-bonn.de/services
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-76
ROOTS
Issue Tracking System „Jira“: Story
Overview
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-77
ROOTS
Issue Tracking System „Jira“: Stories and
Tasks
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-78
ROOTS
Issue Tracking System „Jira“: Tasks
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-79
ROOTS
Vorlesung „Softwaretechnologie“
Kapitel
ap te 2: So
Software
t a e Co
Configuration
gu at o Management
a age e t
„Unified Change Management“
=
Configuration + Issue Management
ROOTS
Unified Change Management (UCM)
Aktivitäten
Tätigkeiten die das
Projekt voranbringen
Activity
A
ti it
Activity
Activity
Aktivitäten
Artefakte
Artefakte
Dateien die im Projekt
bearbeitet werden
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-81
ROOTS
UCM: Verbindung zwischen Aktivitäten
und Artefakten
ClearQuest: Aktivitäten
Verwaltung der
Aktivitäten
Request
Priority
Owner
Special Promo
1
Terry
Bug 527
2
Sandy
Add GUI button
2
Kim
Cl
C
A
t f kt
ClearCase:
Artefakte
Ch
Change S
Sett
Special Promo
Verwaltung
V
lt
der
d
Artefakte
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
a html
a.html
V5
c.xml
V3
b.jpg
V8
Seite 2-82
ROOTS
Unified Change Management
Projekt Manager
Projekt erzeugen
Baseline definieren
Richtlinien
festlegen
E t i kl
Entwickler
Integrator
Anmelden am
Projekt
Integration
Arbeiten an
Aktivitäten
B li erzeugen
Baseline
Arbeitsumgebung
aktualisieren
Baselinegüte
vergeben
Ergebnisse
abliefern
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-83
ROOTS
UCM mit Eclipse: Mylin, Jira und SVN
TODO
siehe Kommentarbereich der Folie
© 2000-2009 Dr. G. Kniesel
Vorlesung „Softwaretechnologie“ (SWT)
Seite 2-84
ROOTS