Konfigurationsmanagement Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Dr. Manfred Thaller Referent: Jannes Ganzel SS 11
Was ist Konfigurationsmanagement? Ergebnisse der Softwareentwicklung im Projektalltag verwalten Mitarbeitern kontrollierten Zugriff auf Projektdaten gewähren Fundament für eine effiziente Zusammenarbeit
Was ist Konfigurationsmanagement? Ziele des KM: Änderungen unter Kontrolle bringen Qualität gewährleisten Produktivität im Team steigern Teammanagement durch erhöhte Transparenz unterstützen
Was ist Konfigurationsmanagement? Argumente für den Einsatz: Kampf um Zeit und Geld Automatisierte Fehleranalyse Projekt-Homepage Normen und Standards KM umfasst alle Elemente des Softwareproduktes
Kernprozesse Auswahl der Konfigurationselemente Konzept der Klassen aus OOP Instanzen der Elemente ergeben Projekt Eindeutige Konfigurationselemente: Quelltext Build-Skripte Meta- und Konfigurationsdaten u.a
Kernprozesse Mögliche Konfigurationselemente: Tools, wie z.b. Entwicklungsumgebungen, Compiler, Build-Tools Bibliotheken, Frameworks
Kernprozesse Keine Konfigurationselemente: Protokolle von Meetings Binäre Auslieferungsdateien Projektpläne
Verwaltung von KM-Elementen Unterstützt kontrollierte Durchführung von Änderungen Garantiert die Nachvollziehbarkeit aller Änderungen
Konzepte der KME-Verwaltung Repository (Softwarebibliothek): Datensicherheit aller Instanzen Sicherstellung der Verfügbarkeit Gewährleistung der Integrität Verhinderung unberechtigter Zugriffe Nachvollziehbarkeit
Konzepte der KME-Verwaltung Versionen und Deltas: Nach Änderung wird neue Version im Repository abgelegt Wiederherstellen eines alten Standes Versionshistorie Vergleich zweier Versionen Versionen unterscheiden sich in ihren Deltas (kleine Teile einer Datei) Nur diese Unterschiede werden gespeichert Platzsparend
Projektautomatisierung Wiederholbarkeit und Reproduzierbarkeit des Projektes Ziele der Automatisierung durch Build-Prozess realisiert: Stark projektspezifisch
Build-Prozess 1. Quelltextmodule, Bibliotheken und Ressourcen 2. Aufruf von Compiler, Linker 3. Automatisierte Modultests
Erweiterter Prozess Änderungs- und Fehlermanagement: Kontrollierter Umgang mit Änderungen und Fehlerkorrekturen im Projekt Änderungen erst nach Prüfung und Bewertung Änderungen werden priorisiert und deren Durchführung koordiniert und kontrolliert
Erweiterter Prozess Audits: Prüft, ob die KME's ihre Anforderungen erfüllen Verifiziert vereinbarte Standards Verwendung von Dokumentvorlagen Istzustand = Sollzustand Liefert boolsches Ergebnis
Erweiterter Prozess Metriken: Produktmetriken: Beschreiben Eigenschaften des Produktes (Größe, Komplexität, Antwortzeiten) Prozessmetriken: Auskunft über Güte des Entwicklungsprozesses (benötigter Aufwand zur Behebung eines Fehlers) Projektmetriken: beschreibt das Softwareprodukt an sich (Auftragsvolumen, Teamgröße, Dauer)
KM Werkzeuge: Subversion Freeware Versionskontrollsystem Funktionsumfang: Versionierung Atomare Check Ins Unterstützt Metadaten (Properties) Flexible Client-Server-Struktur Algorithmus zur Deltabildung
KM Werkzeuge: Subversion
KM Werkzeuge: Ant Freeware Java-basiert Umsetzung eines Build-Prozesses Passt Build-Skript automatisch dem OS an Eigene Befehle implementieren
KM Werkzeuge: Ant
KM Werkzeuge: Maven Modellbasierter, deklarativer Ansatz Projektmodell Setzt Annahmen über Build-Prozess voraus Standardisierter Build-Prozess Verwaltung von Abhängigkeiten Erstellung der Projekt - Homepage
KM Werkzeuge: Maven Maven Repository: Ungleich dem Subversion Repository Strukturierte Verzeichnisstruktur Verwaltungsinformationen in XML Keine Versionierung Bibliotheken automatisch geladen
KM Werkzeuge: Maven
Vielen Dank für die Aufmerksamkeit und eine schöne vorlesungsfreie Zeit.