Zeitschriftenartikel
Multidimensionale Separierung der Belange in der Softwareentwicklung durch Feature-Komponenten — Ein Ansatz zur dynamischen Komposition von Anwendungen
Lade...
Volltext URI
Dokumententyp
Text/Journal Article
Dateien
Zusatzinformation
Datum
2008
Autor:innen
Zeitschriftentitel
ISSN der Zeitschrift
Bandtitel
Verlag
Geselllschaft für Informatik e.V.
Zusammenfassung
Seit den frühen Siebzigerjahren hat sich das Prinzip der Trennung der Belange als treibende Kraft bei der Entwicklung neuer Methoden und Techniken in der Software-Technik durchgesetzt. Es handelt sich um eine allgemeine Problemlösungsstrategie, die auch unter dem “Teile und Herrsche”-Prinzip bekannt ist: Ein komplexes Ganzes muss durch sinnvolle Teilung in handhabbare Einzelprobleme separiert werden, um sie zunächst gesondert zu lösen und schließlich zu einer Gesamtlösung zusammenzufügen. Im Rahmen der Software-Technik liegt das Problem dabei in der Erstellung von Softwaresystemen. Unterschiedliche Ansätze wenden das Prinzip der Trennung der Belange an, um technische Mittel zur Verfügung zu stellen, mit denen eine Separierung eines Softwaresystems in einzelne “Module” möglich wird. In diesem Zusammenhang bezeichnet man diese Separierung auch als die “Dekomposition eines Softwaresystems”. Die objektorientierte sowie die komponentenbasierte Programmierung gehören heute zu den wichtigsten Dekompositionstechniken. Mit ihren Abstraktionen des Objektes und der Klasse haben sie es ermöglicht, Software wesentlich einfacher und verständlicher, als auch besser wiederverwendbar und wartbar zu implementieren. Die Herstellung heutiger graphischer Benutzungsoberflächen, moderner Betriebssysteme oder verteilter Anwendungen wäre um ein Vielfaches aufwendiger, wenn diese Techniken nicht zur Verfügung stünden. Nichtsdestotrotz besitzt auch die Objektorientierung eine signifikante Unzulänglichkeit. Diese zeigt sich insbesondere bei Anforderungen, die sich nicht im objektorientierten Sinne innerhalb einer Klasse lokalisieren lassen, sondern das Verhalten und die Struktur unterschiedlicher Klassen beeinflussen. Die Konsequenz daraus ist, dass die Bausteine nicht trivialer Softwaresysteme eine hohe Kopplung zueinander und eine hohe Abhängigkeit voneinander besitzen und somit schwer verständlich, schlecht erweiterbar und dadurch auch schwierig zu warten sind. Diese “querschneidenden Belange” sind die Ursache, weshalb die aspektorientierte Programmierung die etablierten Techniken in jüngster Zeit als zusätzliche Dekompositionstechnik ergänzt. Die Software-Technik sucht also auch dreißig Jahre nach der Einführung des Modularitätsprinzips nach geeigneteren Methoden zur Trennung der Belange — insbesondere der querschneidenden Belange. Eine genaue Definition für querschneidende Belange zu geben, erweist sich an dieser Stelle als schwierig. Oft werden beispielsweise nicht-funktionale Anforderungen als querschneidend bezeichnet. Vor dem Hintergrund eines Softwaresystems zur Verwaltung von Personen und Abteilungen kann jedoch auch die Funktionalität einer Lohnbuchhaltung querschneidend sein, falls sie einen verändernden Einfluss auf das vorhandene Softwaresystem ausübt. Dieser Einfluss kann beispielsweise darin bestehen, dass vorhandene Klassen um zusätzliche Attribute oder Operationen erweitert oder bestehende modifiziert werden müssen. Da die Objektorientierung keine Mittel zur Verfügung stellt, Modifikationen und Erweiterungen an bestehenden Klassen zentral zu beschreiben, leidet die Nachvollziehbarkeit solcher Belange darunter. Denn betrachtet man die Lohnbuchhaltung als ein konfigurierbares Feature eines Softwaresystems, dann sollte sie nach Möglichkeit automatisch bei Bedarf ein- und ausschaltbar sein. Um dieser Forderung gerecht zu werden, ist es notwendig, dass die Abbildung einer fachlichen Ursache, wie beispielsweise der Lohnbuchhaltung, auf technische Gebilde lückenlos nachvollzogen und formalisiert werden kann. Hierfür ist ein neues Kompositionsmodell notwendig, das in dieser Arbeit in Form des Feature-Komponenten-Ansatzes entwickelt wird. Der Ansatz basiert auf dem Grundgedanken, die Vorteile des aspektorientierten mit denen des komponentenbasierten Dekompositionsmodells zu kombinieren. Querschneidende Belange können dadurch in einer semantischen Einheit lokalisiert werden, wobei diese Einheiten als FeatureKomponenten bezeichnet werden. Indem die Feature-Komponentenplattform das aspektorientierte Dekompositions- und Kompositionsmodell in Form eines analytischen Metamodells zur Laufzeit zur Verfügung stellt, können diese Feature-Komponenten dynamisch in eine Anwendung integriert werden. Da dadurch die Reaktionszeit auf Anderungswünsche des Kunden reduziert und Modifikationen konfigurierbar gehalten werden, ergeben sich hieraus auch Synergieeffekte zum Konfigurationsmanagement. Wie im Verlauf dieser Arbeit gezeigt wird, bietet dieser Ansatz in diesem Zusammenhang somit auch ein Modell für das Domain- und Application-Engineering. Die theoretische Grundlage dieses FeatureKomponentenmodells stellt die so genannte “multidimensionale Separierung” der Belange im Lösungsraum dar, welche im Rahmen des Hyperspace-Ansatzes aufgestellt wurde. Diese Theorie besagt, dass die unterschiedlichen Belange, die auf ein Softwaresystem einwirken, einen multidimensionalen Problemraum aufspannen und nur dann sauber voneinander getrennt werden können, falls sie im Lösungsraum auf dieselbe Anzahl von Dimensionen abgebildet werden. Die FeatureKomponenten können daher im Lösungsraum voneinander unabhängig innerhalb der Granularität des Kompositionsmodells zu einem Gesamtsystem integriert werden. In diesem Sinne spannt jede Feature-Komponente eine separate Dimension im Lösungsraum auf.