3 Konfigurationsmöglichkeiten von Software
Grundlegend wird durch die Konfiguration der Softwarearchitektur auch die Beschaffenheit
und Erweiterbarkeit der Software nach der Implementierung bestimmt.
Deswegen folgen nach
der Einleitung zur Entwicklung von Systemfamilien die genaue Analyse der bereits im vorhergehenden
Kapitel erwähnten Paradigmen, Architekturen und Hilfswerkzeuge, die bei der
Erstellung von Familien in den ersten Phasen verwendet werden.
Softwareentwicklung stellt Ansprüche im Bereich neuer Anwendungsgebiete, komplexen
Aufgaben und wachsenden Anforderungen, im Bereich Qualität mit schwerwiegenden Konsequenzen
von Software-Fehlern, Akzeptanzkriterien, unterschiedlich definierter Softwarequalität
und steigendem Bedarf an neuen Systemen und Varianten, wachsender Nachfrage
und der ungenügenden Funktionsabdeckung von Standardsoftware. Dazu kommt die Belastung
durch die hohe Lebensdauer von Altsystemen und deren Bindung von Entwicklerkapazitäten,
was bei neuen Systemen berücksichtigt werden muss. Hier greifen bekannte Systeme
der Wiederverwendung von Software mittels komponentenbasierter Softwareentwicklung ein.
Ziel ist die kostengünstige, anforderungsspezifische Generierung einer großen Zahl qualitativ
hochwertiger Systemvarianten, die weitgehend automatisiert werden kann.81
Im Rahmen dieser Diplomarbeit werden Komponenten wie folgt definiert:
Definition: Komponenten82
Eine Komponente ist ein „Bestandteil eines Ganzen“, in der Informatik ein abgeschlossener
Teil eines Softwareprogramms bestehend aus einer Folge von Verarbeitungsschritten
und Datenstrukturen. Der stark kohäsive Inhalt enthält anwendungsorientierte, semantisch
zusammengehörende Funktionalitäten wie wiederverwendbare Berechnungen oder Bearbeitungsschritte
von Daten, wobei Schnittstellen diese nach außen zur Verfügung stellen. Über
die Schnittstellen werden ausschließlich Daten übernommen oder abgegeben, der Inhalt der
Komponente bleibt gekapselt. Sie müssen weitgehend redundanzarm, wieder verwendbar,
frei kombinierbar und offen konzipiert sein, um Änderungen vornehmen zu können.
Module können ein oder mehrere Komponenten enthalten.
Plugins sind den Komponenten ähnlich, stellen aber oft autonomere Teile dar.
Tabelle 12: Definition einer Komponente
Ulrich W. Eisenecker et al benennen die Vorteile der Systemfamilien wie folgt83: „Die Softwareentwicklung
ist überwiegend auf die Erstellung einzelner Systeme ausgerichtet, obwohl
überall auf die Notwendigkeit von Wiederverwendung hingewiesen wird. Doch wie soll die
Entwicklung von Einzelstücken etwas Wiederverwendbares hervorbringen? Zwar bringen
Frameworks, Entwurfsmuster und Softwarekomponenten in dieser Hinsicht Besserung, aber
keinen Durchbruch. Einen wesentlichen Fortschritt verspricht hingegen die Einwicklung von
Systemfamilien. Sie ermöglicht die anforderungsspezifische Fertigung einer großen Zahl von
Systemvarianten, und die kann weitgehend automatisiert werden. Dies erlaubt die drastische
Senkung von Entwicklungszeiten und -kosten sowie wesentliche Verbesserungen der Qualität.“
In dieser Diplomarbeit wird eine Systemfamilie wie folgt definiert:
Definition: Systemfamilien84
Eine Systemfamilie ist ein Softwaresystem, welches aus einer Referenzarchitektur, der
Dokumentation und verschiedenen optionalen und obligatorischen Komponenten besteht,
die eine automatisierbare Ableitung eines Familienmitgliedes erlauben. Die planbare und
umfassende Verwendung von Komponenten in einer Anwendungsdomäne steht im Vordergrund
als großer zeitlicher und wirtschaftlicher Faktor.
Auch der Begriff „Produktlinie“ wird in der Literatur gleichbedeutend verwendet
Tabelle 13: Definition von Systemfamilien
Die technische Seite einer Systemfamilie und die Ableitung der Familienmitglieder sind der
Abbildung 3 zu entnehmen. Die Konfiguration einer Applikation wird dabei automatisch anhand
der bestehenden Komponenten und der Referenzstruktur mittels eines Generators hergestellt.
Die grafische Darstellung kann der folgenden Abbildung entnommen werden:
Abbildung 3: Das Entwurfsprinzip der Systemfamilie85
Top|
Home|
<< Zurück |
Nächste >>
" TARGET="_blank"> >> Home Page << |