3 Konfigurationsmöglichkeiten von Software

3.1.3 Integration der Konzepte in den Softwareentwicklungsprozess



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 <<