Softwaretechnik-Trends 28(2) - 2008

Autor*innen mit den meisten Dokumenten  

Auflistung nach:

Neueste Veröffentlichungen

1 - 8 von 8
  • Zeitschriftenartikel
    Multidimensionale Separierung der Belange in der Softwareentwicklung durch Feature-Komponenten — Ein Ansatz zur dynamischen Komposition von Anwendungen
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Arinir, Doga
    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.
  • Zeitschriftenartikel
    Struktur- und verhaltensbasierte Entwurfsmustererkennung
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Wendehals, Lothar
    Die Wartung von Softwaresystemen ist heute eine zeitund damit kostenintensive Aufgabe. Die Systeme sind ständigen Anderungen unterworfen und über Jahre hinweg gewachsen. Die Dokumentation solcher Systeme wird kaum oder gar nicht gepflegt. Bei einer Größe von hunderttausenden oder sogar mehreren Millionen Zeilen Quelltext ist die schwerste Aufgabe des Softwareentwicklers, die bestehende Software zu verstehen, bevor Anderungen daran vorgenommen werden können. Die einzige verlässliche Grundlage für das Verstehen der Software bildet aber nur der Quelltext. In der Softwareentwicklung werden weit verbreitete Lösungen für immer wiederkehrende Probleme als Entwurfsmuster bezeichnet. Sie sind vielfach dokumentiert und bilden ein gemeinsames Vokabular unter Entwicklern. Angewendete Entwurfsmuster, so genannte Entwurfsmusterimplementierungen, im Quelltext existierender Software zu identifizieren, hilft, das inhärente Design der Software explizit zu dokumentieren und so die Entwickler beim Verstehen der Software zu unterstützen. In den letzten Jahren wurde eine Reihe von Werkzeugen entwickelt, die Entwurfsmusterimplementierungen (semi-)automatisch im Quelltext erkennen. Bis auf einige wenige Ausnahmen basieren alle Werkzeuge auf einer rein statischen Analyse des Quelltextes, ohne Eigenschaften der Software zur Laufzeit zu untersuchen. Diese Analysen sind gut dazu geeignet, strukturelle Eigenschaften der Entwurfsmuster zu erkennen. Allerdings werden Entwurfsmuster nicht nur durch ihre Struktur, sondern auch durch ihr Verhalten definiert. Verhalten kann jedoch durch statische Analysen nur sehr eingeschränkt untersucht werden. Die bisher entwickelten Werkzeuge erzeugen daher sehr unpräzise Ergebnisse. Dynamische Analysen bieten eine Lösung für dieses Problem. Sie analysieren Software zur Laufzeit, indem sie ihr Verhalten beobachten. Ausschließlich dynamische Analysen sind jedoch kaum praktisch durchführbar, da zur Laufzeit riesige Datenmengen anfallen, die nur sehr schwer handhabbar sind. Diese Arbeit stellt eine struktur- und verhaltensbasierte Entwurfsmustererkennung vor, die eine existierende, statische Entwurfsmustererkennung mit einer neu entwickelten, dynamischen Entwurfsmustererkennung kombiniert. Die statische Analyse identifiziert Kandidaten von Entwurfsmusterimplementierungen auf Basis struktureller Informationen. Der Anteil der dynamisch zu untersuchenden Software wird auf diese Kandidaten eingeschränkt, die anfallende Datenmenge wird reduziert und somit problemlos handhabbar. Zur Laufzeit wird dann das Verhalten der Kandidaten mit vorgegebenem Verhalten verglichen. Die durch die statische Analyse identifizierten und durch die dynamische Analyse bestätigten Entwurfsmusterimplementierungen stellen schließlich ein fundiertes und präzises Ergebnis dar.
  • Zeitschriftenartikel
    Bericht zum Grid Workflow Workshop - Oldenburg 2008
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Gudenkauf, Stefan
    Am 03./04. März 2008 fand der erste Grid Workflow Workshop im OFFIS in Oldenburg statt. Über 30 Teilnehmer aus Wissenschaft und Wirtschaft tauschten sich im Rahmen der D-Grid-Initiative des BMBF (www.d-grid.de) über das Thema Workflows in Grid-Umgebungen aus, in denen verteilte Ressourcen standardisiert gemeinschaftlich genutzt werden. Workflows in Grid-Umgebungen können dabei als Arbeitsabläufe verstanden werden, die eine vordefinierte Abfolge von einzelnen Aktivitaten innerhalb eines Grids ausführen. Im Mittelpunkt des Workshops standen die Vorstellung und die Bündelung der Aktivitäten der einzelnen Projekte des D-Grid. Für einen Abgleich mit internationalen Initiativen sorgten die Vortrage der Keynote-Sprecher Prof. Dr. Wolfgang Gentzsch (D-Grid) und Dr.-Ing. habil. Thilo Kielmann (VU Amsterdam). Die Veranstaltung wurde durch Sun Microsystems unterstützt. Der vorliegende Bericht fasst die Inhalte und wichtigsten Ergebnisse des Grid Workflow Workshop vom 03./04. Marz 2008 in Oldenburg zusammen. Die Präsentationen der Vortragenden und weitere Informationen sind auf der Internetseite https://bi.offis.de/bisgrid/tiki-index.php?page_ref_id=15 verfügbar.
  • Zeitschriftenartikel
    Kurzbericht 2007/8 vom Arbeitskreistreffen Terminologie der Softwaretechnik
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Hesse, W.
  • Zeitschriftenartikel
    Eine Untersuchung über Korrekturkosten von Software-Fehlern
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Hampp, Tilmann; Knauß, Markus
  • Zeitschriftenartikel
    Aufruf zur Teilnahme am Arbeitskreis Software Engineering für parallele Systeme (SEPAS)
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Pankratius, Victor
  • Zeitschriftenartikel
    GI-Arbeitskreis Software-Wartung
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Opferkuch, Stefan
  • Zeitschriftenartikel
    FG ST: K. Pohl: Protokoll der Fachgruppensitzung Softwaretechnik vom 20. Februar 2008 in München
    (Softwaretechnik-Trends Band 28, Heft 2, 2008) Pohl, Klaus