Entspricht meine Software der gewählten Architektur?

Wie plant man die Softwarearchitektur?

So wie der Architekt ein Bauwerk plant, so erstellt auch der Softwareentwickler die Softwarearchitektur. Dennoch, viele Softwareprojekte leiden unter fehlenden, unvollständigen und ungenauen Architekturbeschreibungen. Im Rahmen des strategischen Projekts Software Architecture Engineering (SAE) entwickeln die Wissenschaftler des SCCH ein Metamodel für die Definition und Analyse von statischen und dynamischen Aspekten von Sofware-Architekturen.

Überblick
 

Die Qualität eines Softwaresystems, d.h. der Grad in dem die Eigenschaften eines Softwaresystems den Anforderungen entsprechen, wird maßgeblich durch die gewählte Softwarearchitektur bestimmt. Als Abstraktion wesentlicher Systemstrukturen ist Architektur nicht nur die Vorgabe für die Implementierung, sondern auch Mittel zur Analyse wichtiger Systemeigenschaften. Sie ist damit zentrales Element und Basis von Entscheidungsprozessen in allen Phasen des Softwareentwicklungsprozesses, von der Analyse bis zum Betrieb. Durch die zunehmende Verbreitung komponentenbasierter, verteilter und service-orientierter Softwaresysteme und die damit verbundenen Änderungen der Systemarchitektur auch in späten Phasen des Software-Lebenszyklus gewinnen Architektur, Architekturvalidierung und architekturbasierte Analysen an Bedeutung.   

 

/Images/380x120/Architektur_1.jpg

Herausforderung 

Allerdings fehlen explizite Architekturbeschreibungen in vielen Softwaresystemen oder sie sind nicht mehr aktuell, inkorrekt und unvollständig. Dazu fehlen die notwendigen formalen und semantischen Grundlagen für automatische technologieunabhängige Architekturanalysen. Im Projekt Software Architecture Engineering (SAE) wird diese Herausforderung in Angriff genommen und ein Metamodell für Modelle zur Definition und Analyse von Architekturen entwickelt, das die Beschreibung und Analyse sowohl von statischen als auch von dynamischen Aspekten einer Architektur erlaubt. Neben einfachen objektorientierten sollen speziell auch verteilte, komponentenbasierte und serviceorientierte Softwaresysteme unterstützt werden. Basierend auf diesem Metamodell entwickeln die Softwareexperten Werkzeuge zur laufenden Definition, Visualisierung und Validierung von Software Architekturen während des gesamten Softwareentwicklungsprozesses.


Lösung

In den unterschiedlichen Projektphasen sind abgeleitete Architekturmodelle die Basis für verschiedene Aktivitäten. So dienen sie in frühen Projektphasen zur Modellierung der geplanten Systemarchitektur unter Berücksichtigung der gestellten Anforderungen sowie zur vorzeitigen Analyse wichtiger Systemeigenschaften. Während der Entwicklungsphase wird ein definiertes Architekturmodell für die Überprüfung der Übereinstimmung zwischen Architektur und Implementierung verwendet. In späten Phasen kann das Modell zur Analyse der Auswirkungen von Änderungen einer Systemarchitektur verwendet werden. Informationen zur Softwarearchitektur sind oft nur unvollständig oder ungenau verfügbar. In diesem Projekt soll eine architekturzentrierte Arbeitsweise während des gesamten Lebenszyklus unterstützt werden. Ein Architekturmodell steht als Abstraktion wesentlicher struktureller und semantischer Eigenschaften eines Softwaresystems im Zentrum. Durch kontinuierliche Prüfung der Architektur anhand dieses Modells werden Fehler, Inkonsistenzen und Abweichungen von der Architektur früh erkannt und damit das Risiko für Fehlentscheidungen und Folgekosten vermindert.

   

Kontakt

Beer_Wolfgang

Wolfgang Beer

Area Manager Software Engineering and Technology

Phone: +43 7236 3343 858
Fax: +43 7236 3343 888
wolfgang.beer@scch.at

Weitere Informationen