Modellgetriebene Validierung von System-Architekturen

31.03.2011 15:00 Uhr

Von: M. Sc. Andre Pflüger

Bei softwareintensiven, eingebetteten Systemen ist eine Projektlaufzeit über mehrere Jahre eher die Regel als eine Ausnahme. Die Entwicklung wird mit sich häufig ändernden Bedingungen konfrontiert, die eine kontinuierliche Planung und Entwicklung auf Basis vereinbarter Anforderungen fast unmöglich machen. Der Kunde verlangt vom Hersteller größtmögliche Flexibilität bei der Systementwicklung. Gleichzeitig steigt die Komplexität der zu entwickelnden Systeme kontinuierlich und damit auch die Anzahl und Beziehungen der Anforderungen untereinander. Mittlere bis hohe vierstellige Werte sind nicht ungewöhnlich.

Das Fundament eingebetteter Systeme bildet die System-Architektur. Sie wird beispielsweise durch die Faktoren

  • funktionale und nicht-funktionale Anforderungen,
  • eingesetzte Technik und Technologien,
  • Verständnis des aktuellen Systems,
  • Erfahrungen aus früheren Entwicklungen sowie
  • dem Faktor Mensch

beeinflusst und ist für die Abschätzung der Entwicklungskosten und -zeit von Bedeutung. Es sind die Aufgaben des Architekten sie unter Berücksichtigung aller Einflussfaktoren zu entwerfen und deren Validität gegenüber den architekturrelevanten Anforderungen sicherzustellen. Diese Validierung ist ein arbeitsintensiver und zeitaufwendiger Vorgang, der bei jeder Änderung eines Einflussfaktors, z.B. einer Anforderung, wiederholt werden muss. Dabei sieht das Vorgehen des Architekten in vielen Fällen folgendermaßen aus: Der Architekt erstellt einen ersten Architekturentwurf und verfeinert diesen iterativ. Für die Validierung wird die Methode des scharfen Hinsehens verwendet. Damit ist ein manueller Abgleich der Architektur mit den Anforderungen ohne ein definiertes Vorgehen gemeint, was zum unabsichtlichen Auslassen einiger Aspekte führen kann. Die Validierung beruht auf Abschätzungen, die auf Erfahrungen des Architekten basieren, und nur selten, meist bei kritischen Anforderungen, auf belegbaren Zahlen. Aufgrund des Zeit- und Arbeitsaufwands wird die Dokumentation und Validierung nur für bestimmte, beispielsweise Review-Termine vollständig durchgeführt.

Der vorgestellte Ansatz definiert einen teilautomatisierbaren Validierungsprozess, der in das iterative Vorgehen zum Entwurf der System-Architektur eingebaut wird. Sogenannte Validierungsziele fassen architekturrelevante Anforderungen auf einem für den Architekturentwurf passenden Abstraktionsniveau zusammen, was den Überblick vereinfacht und die komplexen Anforderungsbeziehungen untereinander sichtbar werden lässt. Zu jedem Validierungsziel legt der Architekt ein Verfahren zur Feststellung der Validität eines Validierungsziels fest, das sogenannte Validierungsverfahren. Die Validierung der System-Architektur ist erfolgreich, falls alle Validierungsziele erfolgreich validiert werden. Der Ansatz setzt eine modellbasierte Dokumentation des Systems mit UML voraus. Für jedes Validierungsziel wird eine validierungszielspezifische Notation erstellt, mit der die für das zugehörige Validierungsverfahren benötigten Informationen im sogenannten Validierungsmodell modelliert werden. Die Modelldaten werden zum einen für die Validierung und zum anderen für eine lückenlose Dokumentation des Architektur-Entwurfs, dessen Entstehung und Anpassung genutzt. Änderungen zum Finden einer passenden System-Architektur werden direkt am Modell vorgenommen. Der Ansatz reduziert den Arbeits- und Zeitaufwand für die Validierung, indem möglichst viele Validierungsverfahren automatisiert durchgeführt und die dazugehörigen Werte direkt aus dem Validierungsmodell ausgelesen werden. Der Architekt wird beim Entwurf und der Impact-Analyse nach Anforderungsänderungen unterstützt und Änderungen an der Architektur können aufgrund der lückenlosen modellbasierten Dokumentation nachvollzogen werden.

Kategorie: Informatik forscht