Artefakte in der Software-Entwicklung
Programmcode, testcode - Quellcode, Bytecode, Binärcode
UI-Grafiken
ANforderungen, Spezifikation, Modelle
genutzte Bibliotheken
Dokumentation
Verwaltung von Artefakten
Artefakte sollten systematisch verwaltet werden (mindestens alle Dokumente, besser alle Artefakte)
Artefakte treten in mehreren Versionen auf:
Revisionen (neu ersetzt alt)
Variante (zeitlich gleichzeitig)
Konfiguration
Menge von Software-Einheiten (Artefakte in bestimmten Versionen) die zusammen ein funktionierendes (Teil-)System bilden
Konfigurationsmanagement
Menge der Verfahren um Konfigurationen eines Softwaresystems
zu identifizieren
zu verwalten
bereitzustellen
bzgl. Änderungen zu überwachen
zu dokumentiern
bei Bedarf zu rekonstruieren
Konfigurationsmanagement: Wesentliche Schritte
Konfigurationskontrolle: Artefakte, Versionen & Konfigurationen
Versionskontrolle: Änderungen, Konflikte & Historie
Systemerstellung: Bauen, Prüfen & Bereitstellen
Änderungskontrolle: Fehler, Änderungen & Tracking
Konfigurationskontrolle
▪ Artefakte identifizieren
▪ Versionen benennen
▪ Konfigurationen dokumentieren
Versionskontrolle
Änderungsgeschichte aufzeichnen
Zusammenführen & Konflikte
historische Versionen wiederherstellen
Versionskontrollsysteme: Grundprizip
Systemerstellung
Build Management
Auflösen von Abhängigkeiten
Auswahl der korrekten Versionen
Kompilieren
Management der erstellten Artefakte
Release Management
Release: Veröffentlichen/ an Kunden ausgelieferte Konfiguration
Release umfasst Code und weitere Artefakte
ggf. nach einem festen Release-Zyklus
oft verwoben mit Verträgen, Marketing,.. -> zentrale Entscheidung
Continuous Integration
Nach Code Änderung automatisch
Build: Auflösen von Abhängigkeoten, Kompilieren
Test: Ausführen von Regressionstests
-> schnelles Feedback zur Qualität einer Änderung
Continuous Delivery
Deliver: Bereitstellen einer release-fähigen Konfiguration
->Automatisierung aller Schritte, nur noch manuelle Freigabe für Release
Continuous Deployment
Deploy/Release: Veröffentlichung/Installation der Konfiguration
-> vollständige Automatisierung der Systemerstellung
Änderungskontrolle
systematische fehlermeldungen ermöglichen (Bug Report)
Prozess für Änderungswünsche (Change Request, Feature Request,..)
Tracking solcher Aufgaben (Issue Tracking, Bug Tracking)
Last changed18 days ago