Software Engineering. Konfigurationsmanagement



Ähnliche Dokumente
Grundlagen des Software Engineering

IT-Projekt-Management

2 Einführung in das Konfigurationsmanagement 11

Konfigurationsmanagement

Konfigurationsmanagement mit Subversion, Ant und Maven

Konfigurationsmanagement mit Subversion, Maven und Redmine

Software Engineering. Prozessqualität CMM, CMMI und SPICE

Software-Konfigurationsverwaltung

DOORS Schema IBM Rational DOORS Start-Up Training - Teil 3

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

Service Engineering. Übung 3a Prozessmodellierung mit Hilfe von BPMN. Prof. Dr. Andreas Schmietendorf 1. SoSe 2018 ServEng

*Hierzu wird Microsoft Word benötigt. Mit freien Textverarbeitungen wie Open Office ist dies leider nicht möglich.

Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase)

Konfigurationsmanagement mit Subversion, Ant und Maven

E-Business Architekturen

Einführung in die Wirtschaftsinformatik

Kapitel 9 Konfigurationsverwaltung

Versionskontrolle mit Subversion

ORGANISATORISCHES. So#ware Technik Prof. Dr. Wolfgang Schramm

Übung 4. Werkzeuge zur ER-Modellierung. Prof. Dr. Andreas Schmietendorf 1. Übung 4

Installation und Nutzung des SSH Clients 'PuTTY'

Versionierung und Dateistruktur

Konfigurationsmanagement mit Subversion, Maven und Redmine

Thomas Rau (mit Material von Peter Brichzin) Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

Kapitel 25 Konfigurationsmanagement

5 Grundkonzepte. <Datum> <Organisation> <Veranstaltungsort> <Vortragender> <Organisation>

Inhalt des Elementes Änderungsmanagement. Projektmanagement Abwicklungsstrategie. Inhalt. Änderungsmanagement : 1 Das Element im Projektablauf

Abschlussbericht. Erstellung eines automatisierten Build-Prozesses für Eclipse-RCP- Anwendungen am Fallbeispiel Control System Studio.

Software Engineering. Risikomanagement in der Softwareentwicklung

DIN EN (VDE ): EN 62304: A1:2015

Versionsverwaltung mit Subversion

Universität Karlsruhe (TH)

DOORS Training IBM Rational DOORS StartUp Training - Modul 4

Versionsverwaltung für r Visual Studio.NET mit Subversion

Kapitel 12: Konfigurationsmanagement

Methoden der agilen Softwareentwicklung für eingebettete Systeme

Kann aus einem Pflichtenheft ein Lastenheft abgeleitet werden?

Inhalt. 1 Einführungsveranstaltung. 2 Pflichtenheft ANFORDERUNGSSPEZIFIKATION - GROBPLANUNG ANFORDERUNGSSPEZIFIKATION - SOLLKONZEPT

Software- Konfigurationsmanagement (Software Configuration Management)

Online-Shop UCB CUMULUS-Bon Funktionsbeschreibung

Übung Softwaretechnik II Sommersemester 2015

UNIHOCKEY CLUB WEHNTAL REGENSDORF

Projektmanagement (Modelle, Methoden & Tools)

ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

Service Engineering. Übung 2a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

Dokumenten Management (DMS)

Versionskontrolle mit Subversion

Upgrade G Data AntiVirus Business v6 auf v11

Anti-Patterns. Zuverlässige Software SS2009 Friedrich Gensicke

Vorlesung Softwaretechnik - Vorgehensmodelle, V-Modell XT -

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, , Berlin

Semester: -- Workload: 150 h ECTS Punkte: 5

Technologiepark Paderborn Telefon: / XX XX XX Mobil: 01XX / XX XX XX XX XXXXXXX@mail.upb.de

Produktlinien für die ECU Software- Entwicklung

Seminare Softwaretechnik - Einführungsveranstaltung

Referent: Bianca Werner. ITARICON, Dresden, 2008

Software Engineering - Wartung und Qualitätssicherung

Installationshilfe. DxO Optics Pro v5

BACnet - Compare Intrinsic and Algorithmic Reporting DE doc Page 1 / 17. BACnet

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

TFS 2013 Upgrade. Thomas Trotzki - artiso AG

Software Engineering. Prozessqualität ISO 9000, TQM und CMM/CMMI

Inhaltsverzeichnis. Grundlagen und Begriffsbildung

Brainloop Secure Courier - Kurzanleitung

Software-Engineering

Software- und Systementwicklung

Beschreibung der Manifestation: Grundlage für die Identifizierung einer Ressource

Online-Pflege für Leistungsträger im IRS-Buchungsverbund für Brandenburg. Dokumentation TClient-Light

Software Product Lines

Organisatorisches. Software Engineering 1 WS 2012/13. Prof. Dr.-Ing. Ina Schaefer. Institut für Softwaretechnik und Fahrzeuginformatik TU Braunschweig

1 Kalender gemeinsam verwenden

Software Engineering in der Praxis

Anlage A. Projektphasen und Aufgabenbeschreibung. zum Rahmenvertrag. über die Bereitstellung von NGA-Wholesale Produkten

Die 3 Kernbereiche der Sitzungsmanagementlösung

-Abwesenheitsnachricht einrichten

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Softwareentwicklung und Testprozess

IT-Projekt-Management

Service Engineering. Übung 1 Analyse und Bewertung von Serviceangeboten (über das Internet integrierbare Service APIs)

MBT RAT Risk Assessment Tool Maschinenrichtlinie 2006/42/EG kostenlose Risi

ITIL Prozese in APEX am Beispiel des Vodafone FCH

Software(technik)praktikum: SVN-Tutorial

HP Easy Tools. Administratorhandbuch

ELBA 5 - SEPA Einzug Sepa Direct Debit Core in ELBA 5

Inhaltsverzeichnis.

Datensatzänderungstracker für combit CRM

Software Engineering

DKTIG. Kurzanleitung Erfassung von C1 in QB IPQ 2012

Transkript:

Software Engineering Konfigurationsmanagement Die Inhalte der Vorlesung wurden primär auf Basis der jeweils angegebenen Literatur erstellt. Darüber wird auf branchenspezifische Beispiele zur Softwareentwicklung Bezug genommen, die ggf. einer Anonymisierung unterzogen wurden. 23.08.2013 Prof. Dr. Andreas Schmietendorf 1

Inhaltsübersicht Einführung zum Konfigurationsmanagement Ermitteln der Konfigurationselemente Dokumentation von Konfigurationen Versionen und Varianten Werkzeuge zum Konfigurationsmanagement 23.08.2013 Prof. Dr. Andreas Schmietendorf 2

Einführung zum Konfigurationsmanagement 23.08.2013 Prof. Dr. Andreas Schmietendorf 3

Typische Probleme der Softwareentwicklung Häufige Änderungen an Software-Elementen - Warum wurde geändert? - Von wem wurde die Änderung durchgeführt? - Was wurde geändert? Umgang mit aufgetretenen Fehlern Gegenseitige Behinderung bei mehreren Entwicklern Erfassung aller zu einer Lieferung gehörenden Elemente Kenntnis der beim Kunden eingesetzten Versionen Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 234, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 4

Historie des Konfigurationsmanagements In den fünfziger Jahren von der amerikanischen Raumfahrtindustrie eingeführt. Entwicklung von Raumfahrzeugen unterlag zahlreichen undokumentierten Veränderungen. In den Tests wurden die Raumfahrzeuge zerstört und es war nicht oder nur schwer möglich, den Prototyp nachzubauen. Konfigurationsmanagement sollte diesen Informationsverlust verhindern, d.h. sämtliche Veränderungen dokumentieren. Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 234, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 5

Entstehung von Systemfamilien In Anlehnung an: Sommerville, I.: Software Engineering (8. Auflage), S. 739, Pearson Studium, München, 2007 23.08.2013 Prof. Dr. Andreas Schmietendorf 6

Grundfunktionen des Konfigurationsmanagements Änderungssteuerung (configuration control) Konfigurationsidentifizierung (configuration identification) Konfigurationsüberwachung (configuration tracking) Konfigurationsbuchführung (configuration protocolling) Konfigurationsaudit (configuration auditing) Unter Verwendung von: Dumke, R.: Software Engineering (4. Auflage), S. 236, Vieweg Verlag, Wiesbaden, 2003 23.08.2013 Prof. Dr. Andreas Schmietendorf 7

Ermitteln der Konfigurationselemente 23.08.2013 Prof. Dr. Andreas Schmietendorf 8

Planung des Konfigurationsmanagements Definition zu verwaltender Objekte und deren formelle Bezeichnung Festlegung von Verantwortlichen (inkl. Rollen & Berechtigungen): - Im Kontext von Konfigurationsmanagementverfahren. - Abgabe der Objekte beim Konfigurationsmanagementteam. Richtlinien für Änderungskontrolle und Versionsmanagement - Bilden von Releases - Beschreibung einzelner Builds Einsetzbare Werkzeuge und deren Verwendung z.b. Maven Struktur der Konfigurationsdatenbank festlegen In Anlehnung an: Sommerville, I.: Software Engineering (8. Auflage), S. 741, Pearson Studium, München, 2007 23.08.2013 Prof. Dr. Andreas Schmietendorf 9

Konfigurationsdatenbank An welche Kunden wurde eine bestimmte Systemversion geliefert? Erforderliche Rahmenbedingungen für bestimmte Systemversion - Hard- und Netzwerkkonfigurationen - Betriebssystemkonfiguration - Benötigte Services und deren exakte Version Unerledigte Änderungsanträge für eine bestimmte Version Anzahl der gemeldeten Fehler zu einer bestimmten Version In Anlehnung an: Sommerville, I.: Software Engineering (8. Auflage), S. 743, Pearson Studium, München, 2007 23.08.2013 Prof. Dr. Andreas Schmietendorf 10

Konfigurationen Software-Konfiguration: Benannte und formal freigegebene Menge von SW-Elementen, inklusive gültiger Versionsangaben. Elemente sind aufeinander abgestimmt und erfüllen vorgesehene Aufgabe. Software-Element: Jeder identifizierbare und maschinenlesbare Bestandteil des entstehenden Produkts oder der entstehenden Produktlinie. - Jedes SW-Element hat eindeutigen Bezeichner; - Jede Änderungen erzeugt neues Element mit neuem Bezeichner. Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 234, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 11

Beispiele für Konfigurationselemente Klassifikation entsprechend der Entstehung: Quellelemente Durch manuelle Eingaben erzeugte Softwareelemente (z.b. Quelltext) Abgeleitete Elemente Vollautomatisch erzeugte Elemente (z.b. Objektcode) Klassifikation entsprechend der Struktur: Atome Softwareelemente als unteilbare Einheit im Kontext eines Produktes Konfigurationen Softwareelement ist aus mehren Softwareelement zusammengesetzt Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 235, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 12

Übung 2-1 Geben Sie für das von Ihnen im dritten Semester durchgeführte Programmierprojekt konkrete Beispiele für Quellelemente, abgeleitete Elemente, Atome und Konfigurationen an! Wie ist das Verhältnis zwischen den verschiedenen Objekttypen? Kann es beispielsweise abgeleitete Atome geben? Welche Typen von SW-Elementen schließen sich gegenseitig aus? Haben Sie bei den oben angegebenen Beispielen alle Möglichkeiten abgedeckt? 23.08.2013 Prof. Dr. Andreas Schmietendorf 13

Dokumentation von Konfigurationen 23.08.2013 Prof. Dr. Andreas Schmietendorf 14

Konfigurations- Identifikationsdokument Das Konfigurations-Identifikationsdokument (KID) führt auf, welche SW-Elemente zu einer Konfiguration gehören. Dieses Dokument wird auch als Konfigurationshierarchie oder Elementstrukturplan bezeichnet. Es werden in der Regel auch Hilfsmittel oder Werkzeuge (z.b. Compilerversion) aufgeführt, die zur Erstellung beigetragen haben, aber nicht an den Kunden ausgeliefert werden. Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 235, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 15

Beispiel eines KID Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 237, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 (überarbeitet durch Faustmann, G.: Vorlesung Software Engineering, FHW Berlin) 23.08.2013 Prof. Dr. Andreas Schmietendorf 16

Referenzkonfigurationen Neue Konfigurationen ergeben sich durch: - Pflege und Wartung - Entwicklung im Prozess (baselines) Eine Referenzkonfiguration (baseline) ist zu einem Zeitpunkt im Entwicklungsprozess ausgewähltes, gesichertes und freigegebenes Zwischenergebnis. Dieses kann sich z.b. beziehen auf die - Anforderungskonfiguration - Entwurfskonfiguration - Implementierungskonfiguration - Testkonfiguration Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 237, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 17

Versionen und Varianten 23.08.2013 Prof. Dr. Andreas Schmietendorf 18

Version eines Softwareelements Eine Version ist die Ausprägung eines SW-Elements zu einem bestimmten Zeitpunkt. Sie erhält eine Nummer. Die Versionsnummer besteht im allgemeinen aus zwei Teilen: - Release-Nummer steht getrennt durch einen Punkt vor der Level Nummer und bezeichnet kleinere formale oder inhaltliche Änderungen - Level-Nummer beschreibt größere oder gravierende Änderungen Beispiel einer Versionszählung: Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 239, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 19

Modell zur Versionsverwaltung Checkin/Checkout-Modell - Checkout holt Kopie aus dem Archiv und reserviert es für den Ausbucher. Die Kopie darf jetzt geändert werden. Wird erneut ausgebucht, wird dies verhindert oder ein paralleler Entwicklungsast wird abgespalten. - Checkin Geändertes SW-Element wird in das Archiv befördert und die Reservierung wird aufgehoben. Änderungen werden formal erfasst (Autor, Buchungszeitpunkt, Grund der Bearbeitung, etc.). Eingebuchte Elemente können nicht mehr geändert werden; es kann nur durch erneutes Checkout/Checkin ein weiteres Element erzeugt werden. Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 238, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 20

Variantenbegriff Zeitgleich nebeneinander liegende Ausprägungen von SW- Elementen, Darstellung paralleler Entwicklungslinien, Verschiedene Implementierungen derselben Schnittstelle, Unterschiede durch bedingte Übersetzung, Unterschiede für verschiedene HW-/SW-Konstellationen, Ab einem bestimmten Abstraktionsniveau nicht mehr zu unterscheidende Implementierungen. Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 239, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 21

Beispiel - Variante mit einem Zweig Die Versionen 1.0 und 1.1 befinden sich bei Kunden im Einsatz. Die Entwicklung findet an Version 1.2 statt. In Version 1.0 wird ein Fehler entdeckt, der Kunde kann jedoch nicht auf 1.1 übergehen. Somit wird eine abgespaltene Version entwickelt (1.0.1.0) Variantennummer = release.level.branch.sequence Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 239, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 22

Beispiel - Variante mit zwei Zweigen Der Kunde mit V 1.0.1.0 benötigt eine spezielle Funktion; er erhält die Variante V 1.0.2.0 und nach Fehlerbehebung die Variante V 1.0.2.1. Version 2.0 ist so fehlerhaft, dass Version 2.1 aus Version 1.1 abgeleitet wird. Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 240, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 23

Übung 2-2 Das Produkt Merkur (Katalogsystem) liegt in der Version 2.5 vor. Aus welchen Teilen setzt sich die Versionsnummer zusammen? Seit der letzten Version wurden nur geringe Änderungen vorgenommen. Wie lautet die Versionsnummer des Vorgängers? In der nächsten Version wird der Funktionsumfang des Produkts Merkur erheblich erhöht. Welche Versionsnummer sollte das Produkt dann tragen? Für einen Kunden müssen spezifische Anpassungen an die Version 2.5 gemacht werden. Wie behandelt man diesen Fall im Konfigurationsmanagement? 23.08.2013 Prof. Dr. Andreas Schmietendorf 24

Änderungsmanagement Änderungen an einem SW-Element müssen einen formalen Änderungsprozess durchlaufen, da sich somit die gesamte Konfiguration ändert. Änderungen eines Softwareelements führen: - Zustand in Bearbeitung - Versionsnummer wird um 1 erhöht (gravierende Änderungen führen zu einem neuen Release) - Vorlage zur Qualitätssicherung - Nach Freigabe erhält das Softwareelement den Status akzeptiert - Bereit zu Einbettung in eine neue Softwareversion Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 240, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 23.08.2013 Prof. Dr. Andreas Schmietendorf 25

Beispiel - Änderungsmanagement Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 240, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998 (überarbeitet durch Faustmann, G.: Vorlesung Software Engineering, FHW Berlin) 23.08.2013 Prof. Dr. Andreas Schmietendorf 26

Werkzeuge zum Konfigurationsmanagement 23.08.2013 Prof. Dr. Andreas Schmietendorf 27

Werkzeugbeispiele Kommerzielle Produkte - Rational ClearCase (Fa. IBM) - Visual SourceSafe (Fa. Microsoft) Open Source Produkte - Subversion (http://subversion.tigris.org) - Concurrent Versions System (http://www.nongnu.org/cvs/) - Apache Ant (http://ant.apache.org/) - Apache Maven (http://maven.apache.org/) 23.08.2013 Prof. Dr. Andreas Schmietendorf 28

TortoiseSVN Subversion-Client Ausschecken (Checkout) Änderungen ins Projektarchiv übertragen (Checkin) Quelle: Küng, S.; Onken, L.; Large, S.: TortoiseSVN -Ein Subversion-Client für Windows - Version 1.5.0, URL: http://tortoisesvn.net/docs/release/tortoisesvn_de/index.html 23.08.2013 Prof. Dr. Andreas Schmietendorf 29

Übung 2-3 Analysieren Sie mit Hilfe des Internets die Funktionalitäten eines selbst gewähltes KM-Systems (Abstimmung mit dem Dozenten ist erforderlich). Gehen Sie dabei auf die folgenden Aspekte ein: - Vorraussetzungen zur Installation - Architektur des verwendeten Projektarchivs - Schritte zum Aufsetzen eines Projektarchivs - Integration in Software-Produktionsumgebungen (verfügbare Clients) - Vorgehen zum checkin bzw. checkout - Verwaltungsfunktionen des Projektarchivs Gehen Sie auf die Visualisierungsmöglichkeiten des ausgewählten KM-Systems ein (z.b. project-, trunk- und branchbezogen) 23.08.2013 Prof. Dr. Andreas Schmietendorf 30