Konzeption einer Komponenten-Kompositionsinfrastruktur

Dokumente

Ausarbeitung

Abschlussvortrag

Hintergrund

Im Rahmen einer Produktentwicklung mit mehreren Komponenten ist es für Produktmanager und Projektleiter nicht einfach, intuitiv neue Produktversionen aus vorhandenen Komponenten zu er-stellen. Wird ein neues Produkt erstellt, so werden aus dem vorhandenen Komponenten-Repository manuell die benötigten Komponenten zusammengestellt. Eine Komponente verwendet dabei in der Praxis meist eine Vielzahl weiterer Komponenten. Ob einzelne Komponenten unterei-nander kompatibel sind oder ob einige Komponenten in verschiedenen Versionen enthalten sind, ist auf den ersten Blick nicht erkennbar. Dies fällt meist erst beim Kompilieren des Produktes oder im schlimmsten Fall erst zur Laufzeit auf. Bei vorhandenen Produkten besteht das Problem, dass bei einer Aktualisierung einer bereits verwendeten Komponente, weitere Aktualisierungen von abhängigen Komponenten erst später bemerkt werden.
Sinnvoll wäre daher, die ausgewählte Konfiguration der Komponenten beim Zusammenstellen des Produktes auf Kompatibilität der Komponenten untereinander zu prüfen.
Die Konfigurationsdatei der Komponenten definiert (technisch bedingt) immer nur die Abhängig-keit zu exakten Versionen der verwendeten Komponenten. Meist kann jedoch auch neuere/ältere Versionen verwendet werden, da sich die verwendeten Schnittstellen der Komponenten nicht ver-ändert haben. Diese Informationen sind zum Auflösen von Konflikten bei der Erstellung von Pro-dukten nötig.

Aufgabe

In dieser Diplomarbeit soll auf Basis der vorhandenen agilen Prozesse in der Softwareentwicklung der SOPTIM AG sowie der Erfahrungen in der Softwareentwicklung an der Forschungsgruppe Softwarekonstruktion der RWTH Aachen untersucht werden, welche Anforderungen es an eine Infrastruktur zur Komponenten-Komposition gibt und wie diese konzeptionell gestaltet werden sollte. Diese soll sinnvoll die Erstellung neuer Produkte bzw. Komponenten unterstützen. Bei der Analyse der Prozesse werden insbesondere die beteiligten Stakeholder und ihre unterschiedlichen Bedürfnisse an eine solche Infrastruktur untersucht. Aus den daraus gesammelten Anforderungen wird ein konzeptionelles Design und ein Prototyp der Infrastruktur zur Komponenten-Komposition erstellt.

Folgende Aspekte sollen besonders berücksichtigt werden:

  • Wie können die Abhängigkeiten der einzelnen Komponenten von Schnittstellen und/oder Implementierungen anderer Komponenten modelliert werden, um diese bei der Erstellung von neuen Versionen zu prüfen?
  • Ist das Zusammenfassen mehrerer kleinerer eng gekoppelter Komponenten zu einem grö-ßeren Komponentenverbund (virtueller Komponenten) und deren Verwendung in anderen Produkten/Komponenten sinnvoll?
  • Sind zusätzliche Meta-Informationen über den Komponenten im Prozess sinnvoll und nötig?
  • Wie muss der Softwareentwicklungsprozess bei der Nutzung eines solchen Infratruktur an-gepasst werden?