1
Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof. Dr. Wolf-Dieter Groch Dieser Vorgang muss validierbar sein, sodass der Erfolg der Operation von dem Validierungsergebnis abhängt. Manche Inhalte (Assets) können automatisch mithilfe von Konvertern (Überführungstools) aus anderen Inhalten (Ressourcen) erstellt werden. Dieser Prozess soll in AMS direkt eingebunden werden, sodass Konverter und Abhängigkeiten zwischen Assets und Ressourcen im System definiert werden können. Ferner soll eine beliebige Konfiguration (beliebige Auswahl der Versionen der Softwareobjekte eines Projekts) durch ein Label (Etikett) markiert werden können. Die Labels sollen versioniert gelagert werden, sodass Versionen eines Labels unterschiedliche Konfigurationen adressieren können. Ferner soll das Herunterladen der durch ein Label markierten Konfiguration beschleunigt werden, sodass eine solche Konfiguration immer vollständig in AMS gespeichert wird. Ergebnis AMS wird in Modulen aus zwei Schichten aufgebaut (siehe Abbildung). Zum einen gibt es die technische Schicht, welche die Bereiche der Kommunikation, Parallelität und Dateibehandlung abdeckt und eine Schnittstelle zu der Plattform bereitstellt. Zum anderen gibt es die logische Schicht – hier werden die Lagerung und die Extrahierung der von AMS verwalteten Inhalte entworfen. Ferner werden so genannte Features konzipiert, welche AMS komfortabler gestalten sollen. Dazu gehören Module für die Sicherung und Auslagerung der vom System verwalteten Inhalte und die textbasierte oder grafische Benutzerschnittstelle. Schichten und Module von AMS Alle Module werden konzipiert, ferner werden die Module der technischen Schicht prototypisch implementiert. AMS erfüllt alle Voraussetzungen eines SCM Systems wie die Versionierung von Inhalten und das Motivation Ein "Software Configuration Management" System (kurz SCM) ist zuständig für die Lagerung und Verwaltung aller Softwareprodukte und Inhalte, welche im Laufe der Softwareprojekte entstehen. Dabei wird sichergestellt, dass alle Inhalte versioniert gelagert werden, sodass ein älterer Projektstand jederzeit wiederhergestellt werden kann. Die Verwaltung von (beispielsweise) Quellcode ohne den Einsatz eines SCMs ist sehr unübersichtlich und verursacht Unkosten in Form von Zeitaufwand und Fehleranfälligkeit. Ferner wird paralleles Entwickeln von einem SCM direkt unterstützt, sodass ein Entwickler beispielsweise erkennen kann, wer an welchen Inhalten gerade arbeitet. Aufgabenstellung Der Auftraggeber ist die Firma "keen games GmbH & co. KG", welche sich hauptsächlich mit der Entwicklung von Computerspielen für verschiedene Endsysteme beschäftigt. Die Mitarbeiter der Firma arbeiten aktuell mit dem kommerziellen und weitgehend universellen Perforce SCM. Dadurch wird gewährleistet, dass alle Ergebnisse in allen Versionen gesichert werden und allen Mitarbeitern jederzeit zur Verfügung stehen. Im Laufe der Zeit entstanden bei "keen games" aber bestimmte, immer wiederkehrende Workflows, welche vom universellen Perforce nicht oder nicht ausreichend unterstützt werden. Das Ziel der Masterarbeit ist der Entwurf und die teilweise Realisierung eines auf die Anforderungen des Auftraggebers zugeschnittenen SCMs. Ferner soll eine grobe Aufwandsschätzung durchgeführt werden, sodass die Zeit- und Mitarbeiterressourcen für die entsprechende Neuentwicklung eines vollständig funktionsfähigen SCM Systems abgeschätzt werden können. Vorläufiger Name des SCMs ist "Asset Management System", kurz AMS. Anforderungen Folgende Anforderungen werden vom Auftraggeber an AMS gestellt. Versionen der verwalteten Inhalte sollen einen

Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof

Embed Size (px)

Citation preview

Page 1: Konzeption und Realisierung eines Software Configuration Management Systems Autor: Alex Rempel Referent: Prof. Dr. Elke Hergenröther Korreferent: Prof

Konzeption und Realisierung eines Software Configuration Management Systems

Autor: Alex Rempel

Referent: Prof. Dr. Elke Hergenröther

Korreferent: Prof. Dr. Wolf-Dieter Groch

Dieser Vorgang muss validierbar sein, sodass der Erfolg der Operation von dem Validierungsergebnis abhängt. Manche Inhalte (Assets) können automatisch mithilfe von Konvertern (Überführungstools) aus anderen Inhalten (Ressourcen) erstellt werden. Dieser Prozess soll in AMS direkt eingebunden werden, sodass Konverter und Abhängigkeiten zwischen Assets und Ressourcen im System definiert werden können. Ferner soll eine beliebige Konfiguration (beliebige Auswahl der Versionen der Softwareobjekte eines Projekts) durch ein Label (Etikett) markiert werden können. Die Labels sollen versioniert gelagert werden, sodass Versionen eines Labels unterschiedliche Konfigurationen adressieren können. Ferner soll das Herunterladen der durch ein Label markierten Konfiguration beschleunigt werden, sodass eine solche Konfiguration immer vollständig in AMS gespeichert wird.

Ergebnis

AMS wird in Modulen aus zwei Schichten aufgebaut (siehe Abbildung). Zum einen gibt es die technische Schicht, welche die Bereiche der Kommunikation, Parallelität und Dateibehandlung abdeckt und eine Schnittstelle zu der Plattform bereitstellt. Zum anderen gibt es die logische Schicht – hier werden die Lagerung und die Extrahierung der von AMS verwalteten Inhalte entworfen. Ferner werden so genannte Features konzipiert, welche AMS komfortabler gestalten sollen. Dazu gehören Module für die Sicherung und Auslagerung der vom System verwalteten Inhalte und die textbasierte oder grafische Benutzerschnittstelle.

Schichten und Module von AMS

Alle Module werden konzipiert, ferner werden die Module der technischen Schicht prototypisch implementiert. AMS erfüllt alle Voraussetzungen eines SCM Systems wie die Versionierung von Inhalten und das Erstellen konsistenter Konfigurationen und integriert die projektbezogenen Anforderungen nach stärkeren Gruppenattributen, Konvertern und versionierten Labels.

Motivation

Ein "Software Configuration Management" System (kurz SCM) ist zuständig für die Lagerung und Verwaltung aller Softwareprodukte und Inhalte, welche im Laufe der Softwareprojekte entstehen. Dabei wird sichergestellt, dass alle Inhalte versioniert gelagert werden, sodass ein älterer Projektstand jederzeit wiederhergestellt werden kann. Die Verwaltung von (beispielsweise) Quellcode ohne den Einsatz eines SCMs ist sehr unübersichtlich und verursacht Unkosten in Form von Zeitaufwand und Fehleranfälligkeit. Ferner wird paralleles Entwickeln von einem SCM direkt unterstützt, sodass ein Entwickler beispielsweise erkennen kann, wer an welchen Inhalten gerade arbeitet.

Aufgabenstellung

Der Auftraggeber ist die Firma "keen games GmbH & co. KG", welche sich hauptsächlich mit der Entwicklung von Computerspielen für verschiedene Endsysteme beschäftigt. Die Mitarbeiter der Firma arbeiten aktuell mit dem kommerziellen und weitgehend universellen Perforce SCM. Dadurch wird gewährleistet, dass alle Ergebnisse in allen Versionen gesichert werden und allen Mitarbeitern jederzeit zur Verfügung stehen. Im Laufe der Zeit entstanden bei "keen games" aber bestimmte, immer wiederkehrende Workflows, welche vom universellen Perforce nicht oder nicht ausreichend unterstützt werden. Das Ziel der Masterarbeit ist der Entwurf und die teilweise Realisierung eines auf die Anforderungen des Auftraggebers zugeschnittenen SCMs. Ferner soll eine grobe Aufwandsschätzung durchgeführt werden, sodass die Zeit- und Mitarbeiterressourcen für die entsprechende Neuentwicklung eines vollständig funktionsfähigen SCM Systems abgeschätzt werden können. Vorläufiger Name des SCMs ist "Asset Management System", kurz AMS.

Anforderungen

Folgende Anforderungen werden vom Auftraggeber an AMS gestellt. Versionen der verwalteten Inhalte sollen einen Gruppenattribut erhalten, sodass ein Benutzer nicht die neuesten Versionen, sondern die neuesten für seine Gruppe als geeignet markierten Versionen aus AMS herunterladen kann. Ferner soll eine beliebige Gruppe (bzw. die Benutzer aus dieser Gruppe) bestimmte Inhalte für eine andere Gruppe markieren bzw. freischalten können.