3 Konfigurationsmöglichkeiten von Software
Das Zusammenspiel dieser Methoden und Konzepte zielt auf die Entwicklung von Systemfamilien
ab. Sie können nach folgendem Schema in die einzelnen Phasen des Softwareentwicklungsprozess
eingegliedert werden, da ihre Aufgaben aufeinander aufbauen:71
Abbildung 2: Konfigurationsmöglichkeiten im Laufe des Entwicklungsprozesses72
Die Entwicklung von Systemfamilien beginnt in der Planungsphase73 mit Vorüberlegungen
wie der Commonality Variability Analyse, die sich mit der Untersuchung von gemeinsamen
und veränderlichen Teilen beschäftigt, Use-Cases, die Anwendungsfälle modellhaft darstellen
und Merkmalmodellen, wie z.B. FORE, die Anforderungen erheben. In der Definitionsphase
werden die Entscheidungen und Anforderungen im Pflichtenheft spezifiziert. Die grobe umzusetzende
Architektur wird festgelegt.
Die Ergebnisse beeinflussen jegliches weitere Vorgehen
grundlegend und bestimmen von Anfang an Leistungsmerkmale, die Aufteilung optionaler
und obligatorischer Anforderungen und treffen erste Entscheidungen über nutzbare Hardware.
Schließlich wird in der Entwurfsphase die vollständige Softwarearchitektur festgelegt.
Dazu gehören auch Entscheidungen bezüglich der verwendenden Programmierparadigmen,
wobei sich die Generative Programmierung als ein übergreifender Oberbegriff bei der Entwicklung
von Systemfamilien entwickelt hat, welches alle nachfolgenden Paradigmen wie die
Aspektorientierte Programmierung, Architekturen, Konzepte und Technologien verwendet.
Schichtenarchitekturen wie GenVoca, Plugins und Frameworks orientieren sich an der
Strukturierung durch Ausblenden bestimmter Schichten, Funktionsbereiche oder variabler
Programmteile.
Dabei kann der Bindungszeitpunkt, also das Festlegen der variablen Teile von
Familienmitgliedern frühestens zur Compilerzeit, spätestes zum Programmstart, wie z.B. bei
der Demo-CD in Kapitel 4 oder speziell bei Plugins auch noch während der Laufzeit geschehen.
Bei der VDR-Software können z.B. per OSD während der Programmausführung Plugins
aufgerufen und in das Programm eingebunden werden. Zum Entwurf und der anschließenden
Implementierung gehören dazu Programmablaufsentscheidungen, die über Konzepte wie Polymorphismus,
Entwurfsmuster, einfache ifdef-Anweisungen oder der grundlegenden
Denkweise des Separation of Concerns erfolgen, variable Programmabschnitte werden bei
diesen Konzepten zur Compilerzeit realisiert. Entwurf und Implementierung des Programms
können dabei von Komponentenarchitekturen wie COM, CORBA und JavaBeans vereinfacht
werden, da sie bereits fertige Komponenten bieten, die in ein Programm eingebunden
werden können. Die Bindung variabler Teile erfolgt hier beim Programmstart oder auch dynamisch
während der Laufzeit, wenn z.B. ActiveX Elemente in einem Browser installiert
werden. Zur Implementierungszeit wird die Realisierung der Softwarearchitektur von Tools
wie HyperJ von IBM oder AspectJ des Eclipse-Projektes74 unterstützt. Hier entwickelte,
spezifische Anteile eines Familienmitglieds werden zur Compilerzeit festgelegt. Nach Einführung
der Software können über Konfigurationsdatenbanken und -dateien einzelne spezifische
Einstellungen zur Installation wie Pfadangaben, zum Programmstart wie Servereinstellungen
wie z.B. beim Apache-Server und während der Laufzeit wie z.B. Farb- und Bildgrößeneinstellungen
des Bildschirms vorgenommen werden. Stellvertretende Themen der einzelnen
Bereiche werden im Folgenden näher untersucht. Die Bewertung erfolgt in Anlehnung an
die geforderten Merkmale der DIN ISO 9126, in der Softwarequalität nach den Kriterien75
Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit und Übertragbarkeit
bewertet wird.
Die genannten Punkte in der jeweiligen Bewertung wurden der referenzierten Literatur der
Unterkapitel entnommen, und können nicht als allgemeingültig angesehen werden, da die
Entscheidung zu bestimmten Werkzeugen76, Paradigmen oder Architekturen projektspezifisch
getroffen werden muss und hier Abhängigkeiten und erfahrungsgemäß üblich angewendete
Kombinationen von komplexen und weniger komplexen Mechanismen bestehen, die sich für
spezifische Probleme besonders gut eignen,77 denn „Während früher davon ausgegangen wurde,
dass Vorgehensmodelle zur Softwareentwicklung weitestgehend neutral in Bezug auf die
Art der mit ihnen zu realisierenden Softwaresysteme sind, kann bei neueren Methoden ganz
klar der Zusammenhang zwischen der Wahl der Methoden und der damit verbundenen Vorstellung
über die Art des zu erstellenden Systems gesehen werden.“78
Für die Unterstützung der Auswahl von Implementierungshilfen gibt es z.B. von der FH
Mannheim Bestrebungen, mittels eines Kataloges aus Kiviat-Diagrammen79 und Beschreibungskarten
geeignete Vorschläge zu liefern.80
Top|
Home|
<< Zurück |
Nächste >>
" TARGET="_blank"> >> Home Page << |