Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Configuration Management

Ähnliche Präsentationen


Präsentation zum Thema: "Configuration Management"—  Präsentation transkript:

1 Configuration Management
Einsatz beim Studienprojekt GraMoSET Matthias Wieland

2 Inhalt des Seminars Einführung in das CM
Was ist CM? Was sind SCI´s? Warum ist CM wichtig? Die Vorteile durch CM. Die fünf Tätigkeitsfelder des CM. Die Ziel des CM. Tools die das CM unterstützen. Concurrent Versions System - CVS Matthias Wieland

3 Was ist CM? „Configuration Management is the art of identifying, organizing, and controlling modifications to the software being built by a programming team.“ Roger S. Pressman Matthias Wieland

4 Was sind SCI´s ? (SCI = Software Configuration Item)
Es gibt folgende drei große Kategorien: Computerprogramme Dokumente Daten Matthias Wieland

5 Warum ist CM wichtig ? In einem Softwareprojekt gibt es ständige Änderungen. Änderungen sorgen für Konfusion Wer Änderungen nicht kontrolliert wird von ihnen kontrolliert. Matthias Wieland

6 Die Vorteile durch CM Einige der Vorteile durch den Einsatz von Methoden und Werkzeugen des Configuration Management: Qualitätssteigerung Transparenz des Entwicklungsverlaufs Kostenreduktion und Zeitersparnis Neue Möglichkeiten der Softwareentwicklung Qualitätssteigerung Weil die Abläufe in der Entwicklung standardisiert und fehleranfällige Routineaufgaben automatisiert werden, können erfahrungsgemäß deutliche Qualitätssteigerungen erzielt werden. Konsistenzüberprüfungen auf verschiedenen Ebenen und in unterschiedlichen Phasen helfen zudem, Fehler frühzeitig zu entdecken. Transparenz des Entwicklungsverlaufs Mittels der Versionsverwaltung wird jederzeit nachvollziehbar, wann, wer, was und für welchen Kunden verändert hat. Mehr Unabhängigkeit und Sicherheit für das Unternehmen: Kenntnisse über Strukturen, Organisation, Fehler usw. werden durch CM für alle zugänglich und so besser in der gesamten Organisation verteilt. Kostenreduktion und Zeitersparnis Die Automatisierung von Standardabläufen in der Softwareentwicklung führt zu entsprechender Zeit- und Kostenersparnis. Erhöhte Kundenorientierung und verbesserter Kundenservice Schnelleres Auftreten am Markt und zuverlässigere Releasesplanung. Reproduzierbarkeit jeder ausgelieferten Version und schnelle und problemlose Fehlerbereinigung auch älterer Versionen. Neue Möglichkeiten für die Softwareentwicklung Verteiltes Arbeiten ist nicht nur im lokalen Netz, sondern auch firmenweit, von Home-Offices aus und sogar global möglich. Paralleles Entwickeln ermöglicht die Erstellung verschiedener Varianten, Entwicklungslinien und Prototypen. Durch Configuration Management bleibt die Entwicklung trotzdem transparent und handhabbar. Matthias Wieland

7 Die fünf Tätigkeitsfelder des CM
Identifizierung Versionskontrolle Änderungskontrolle Konfigurationsprüfung Berichterstattung Identifizierung ist basis! Bedeutet eindeutige erkennung eines SCI. Z.b. am name. Aber eine projekt und versions information wichtig. Danach kann versions und änderungskontrolle anfangen zu wirken Versionskontrolle stellt tools zur versionsverwaltung zur verfügung, Immer wenn eine neue version übergeben werden soll wird sie durch die change control überprüft. Um die qualität sicherzustellen wird in der konfigurationsp. Diese noch überprüft, z.b. durch reviews oder sc audits Damit alle beteiligten immer über alles was sie betrifft bescheid wissen werden immer entsprechende berichte generiert. Beantworten der fragen: was ist passiert, wer hat es gemacht, wann, was ist davon betroffen Matthias Wieland

8 Die Ziele des CM Maximieren der Produktivität Minimieren von Fehler
Minimieren von Konfusionen Matthias Wieland

9 Teil 2 des Seminars Einführung in das CM Tools die das CM unterstützen
Kommerzielle Tools Freie Tools Concurrent Versions System Matthias Wieland

10 Freie CM Systeme CVS - http://www.cvshome.org/
Support von Cyclic Weit verbreitet Einfach erweiterbar Aegis - Basiert auf anderen Versionskontrollsystemen WISE - web-orientiert Benutzt mySQL als Datenbank Hat Projektmanagement Ansätze wie Todo-List für Entwickler letzte Pflege ca. 1996 Matthias Wieland

11 Kommerzielle CM Systeme
Perforce kommandozeilenorientiert + GUI Vergleich mit CVS: Schneller als CVS Teuer ($600/User, aber Support) Ein commit kann bei Perforce nur komplett geschehen Perforce hat bequemeres branch merging. Perforce hat Ansätze für Bug tracking/todo Lists. alle modified Files oder keine Matthias Wieland

12 Teil 3 des Seminars Einführung in das CM Tools die das CM unterstützen
Concurrent Versions System Grundlagen Die CVS Befehle Vereinfachungen durch WinCVS Matthias Wieland

13 Die Grundlagen von CVS CVS ist ein Tool zur Versionsverwaltung.
Es hat ein zentrales Repository. Zentrale Themen der Versionsverwaltung mit CVS: Das Repository Versionsnummern Keywords Tags (Kennzeichnung, Namensschild... ) Mehrbenutzerunterstützung Rekursives Verhalten Branches (Zweige) Was ist CVS CVS ist ein Versionsverwaltungssystem. Es lassen sich damit Projekt jeglicher Art und Größe, nicht nur Softwareprojekte, verwalten und kontrollieren. Jeder Schritt des Projektes, bzw. jede Projektversion kann wiederhergestellt werden, wenn sie im CVS gespeichert wurde. Außerdem ist es theoretisch möglich mit einer fast unbegrenzten Anzahl von Entwicklern zu arbeiten, die über den gesamten Globus verteiltsind. Geschichtliches Am Anfang eines (Software-)Projektes standen häfig einige Probleme:     -> viele Mitarbeiter an einem Projekt arbeiten zu lassen, (im OpenSource-Bereich häufig wechselnde Entwickler)     -> viele Änderungen an einem Projekt verwalten diff und patch waren eine gute Lösung beim Zusammenfügen von einzelnen Dateien. Das RCS - Revision Control System war ein erster Ansatz zum Verwalten von Projekten. Das RCS war aber sehr noch eingeschränkt:     -> Dateien werden einzeln behandelt     -> Dateien müssen gesperrt und wieder freigegeben werden     -> nicht netzwerkfähig Hier kommt CVS ins Spiel von Dick Grune entwickelt und veröffentlicht, war CVS nur als eine Sammlung von Skripten zum Ergäzen und Vereinfachen des RCS-Systems gedacht nahm sich Brian Berliner der Sache an und schrieb CVS in C neu. Nur wenig später fügte Jeff Polk weitere Schlüsselfunktionen hinzu. Die Beziehung zum RCS-System ist noch daran zu erkennen, daß das CVS zur Speicherung der History auf das RCS-Format zurückgreift, und am Anfang sogar das RCS brauchte, um die Dateien einzulesen. Neu war nun zum Beispiel, daß ganze Verzeichnisse als Projekt verwaltet werden konnten und nicht Dateien als einzelne Einheiten betrachtet wurden. Außerdem war es nun möglich frei, sogar mehrere Personen gleichzeitig, an den Projekten zu arbeiten. Das Sperren und wieder Freigeben eines Projektes, wie es beim RCS noch üblich war, fiel weg. Das CVS verwaltet dabei die Zugriffe, spürt Konflikte auf und meldet diese dem Benutzer, der diesen Konflikt ausgelöst hat. Anfang der 90er machte Jim Kingdon das CVS netzwerkfähig. Nun konnten Entwickler direkt über das Internet auf die Archive zugreifen. Im Laufe der Zeit ist CVS zur Nummer eins der Verwaltungssysteme im OpenSource-Bereich geworden, aber auch in der kommerziell eingestellten Software-Industrie besitzt das CVS einen hohen Stellenwert. Features: Concurrent access by multiple developers Multiple development lines in a single repository Grouping sources into modules Symbolic source tagging Diffs between versions Configurable logging support Binary files support Repository event triggers Matthias Wieland

14 Das Repository Zentraler Server für die Daten.
Möglichkeiten des Zugriffs auf den Server über: Lokales Verzeichnis Secure Shell Passwort Server Matthias Wieland

15 Die Versionsnummern werden nach folgendem Schema vergeben:
1.1 1.2 1.3 Tips: Bei einem checkout bekomme man immer die neueste Version Um alte Änderungen zu entfernen kann man cvs update -j 1.4 -j 1.2 aufrufen 1. Revision 2. Release Default version 1.1 3.2.1 3.2.2 3.2.3 Matthias Wieland

16 Keywords $Author$ Name der Person, die das Dokument eingecheckt hat.
$Date$ Tag, an dem das Dokument eingecheckt wurde. $Name$ Projektname $Log$ Die Log-Message beim einchecken wird hier eingesetzt. $Revision$ Version des Dokuments Matthias Wieland

17 Beispiel für Keywords Matthias Wieland

18 Tags hallo.txt Word.doc cm.ppt 1.1 1.1 1.1 Tag: Abgabe 1.2 1.2 1.2 1.3
Der Umgang mit den Versionsnummern in den Dateien kann (und wird) mit der Zeit sehr unpraktisch werden, da die Nummern für jede Datei einzeln vergeben werden. Darum gibt es bei CVS symbolische Tags. Auf diese Weise lassen sich Dateien unterschiedlicher Versionsnummer zusammenfassen, so daß sie später auch zusammen wieder aus dem Repository gewonnen werden können. cvs tag rel-0-4 backend.c 1.4 1.4 1.4 Matthias Wieland

19 Mehrbenutzerunterstützung
Arbeiten mehrere Benutzer gleichzeitig an einem Dokument kann es zu Konflikten kommen. Methoden mit diesem Problem umzugehen: Exklusive Locks Kombination aus „watch“ und „edit“ advisory locks: implemented via cvs edit and cvs watch. Get notification when someone edits or checks in the file. all-o-nothing advisory locks: cvs edit does not succeed if files are already edited by someone else. Implemented using a patch to cvs edit exclusive locks (RCS style): implemented via cvs admin. You cannot commit unless you’ve locked the file. One lock per file per branch. Matthias Wieland

20 Rekursives Verhalten Fast jeder CVS Befehl wird rekursiv ausgeführt, wenn er auf ein Verzeichnis angewendet wird. Das default Ziel eines Befehls ist „ . “ z.B. cvs update cvs update . Das rekursive Verhalten kann natürlich auch abgeschaltet werden. z.B. cvs update –l . Matthias Wieland

21 Branches Branch 1.2.2.3.2 Branch 1.2.2 Hauptzweig Branch 1.2.4
Branch 1.2.2 1.1 1.2 1.3 Hauptzweig Arbeiten zwei Benutzer gleichzeitig an demselben Modul , so müßten sie entweder auf den Komfort verzichten, regelmäßig Versionen ihrer Arbeit im Repository abzulegen oder regelmäßig einen Abgleich der Arbeiten durchführen, was gerade in der Entwicklungsphase lästig und zeitaufwendig sein kann. CVS bietet hierfür die Möglichkeit, vom Hauptzweig der Entwicklung einen Zweig (Branch) abzuspalten und unabhängig von anderen daran zu arbeiten. Irgendwann wird ein Entwicklungszweig wieder in den Hauptzweig integriert werden. Das Vorgehen ist ähnlich wie beim Ein- und Ausfügen von Änderungen: Im Hauptzweig gibt man lediglich cvs update -j branch-1 und in bekannter Weise werden alle Änderungen in branch-1 in den Hauptzweig integriert. Wenn alle Konflikte beseitigt wurden, müssen die Änderungen wieder mit cvs commit ins Repository übertragen werden. Branch if: to create sustaining (patch) releases to have multiple development lines from a single repository to do experimental development to merge later or forget about it to keep temporary state of development without affecting builds Branch 1.2.4 Matthias Wieland

22 Die CVS Befehle 1 checkout
Dokumente zum bearbeiten in das lokale Arbeitsverzeichnis kopieren. update Dokumente im Arbeitsverzeichnis auf den neuesten Stand bringen commit Änderungen an das CVS übergeben. ( –m ) add Neue Datei in das CVS aufnehmen remove Datei aus CVS löschen Matthias Wieland

23 Die CVS Befehle 2 status Status der lokalen Kopie anzeigen. tag
Dateien mit einem Tag versehen, oder eine Branch erzeugen. watch Ein File überwachen (watchers) edit/unedit Eine Datei zum arbeiten markieren. release Dokumente aus dem Arbeitsverzeichnis entfernen. ( -d ) diff Unterschiede zwischen verschiedenen Versionen anzeigen Matthias Wieland

24 Update Output U, P Update ausgeführt. A
Neue Datei die noch nicht eingecheckt wurde. R Datei gelöscht, wird bei nächsten commit ausgeführt. M Die Datei im Arbeitsverzeichnis wurde verändert, oder sie wurde mit einer neuen Version aus dem Repository gemerged. C Es traten Konflikte beim mergen auf. ? Unbekannte Datei. Matthias Wieland

25 Vereinfachungen durch WinCVS
Alle Befehle mit der Maus ausführbar. Funktioniert nun auch im GS-Pool richtig. Matthias Wieland

26 Vielen Dank für Ihre Aufmerksamkeit.
Ende des Seminars Vielen Dank für Ihre Aufmerksamkeit. Matthias Wieland


Herunterladen ppt "Configuration Management"

Ähnliche Präsentationen


Google-Anzeigen