UML Modellbasiertes Vorgehen bei Echtzeitanforderungen
Beim Embedded Software Engineering gehören Zeitanforderungen zu den wichtigsten nicht-funktionalen Anforderungen. Deshalb gibt es spezialisierte Werkzeuge, die das Zeitverhalten eines realisierten Embedded Software Systems analysieren und validieren können.
Anbieter zum Thema

Etabliert haben sich als Modellierungssprachen u.a. die Unified Modeling Language (UML) und Matlab/Simulink. Es ist auch möglich, Zeitverhalten für Modell-Elemente zu definieren. Darüber hinaus ist es immer noch von Vorteil, Anforderungen in spezialisierten Werkzeugen für Anforderungsmanagement zu verwalten. Es wird ein Workflow zur Integration von Zeitanforderungen von der Spezifikation bis zur Validierung präsentiert. Dieser schließt die Lücken zwischen den unterschiedlichen Entwurfsdomänen.
Eingebettete Systeme werden zunehmend für unterschiedliche Einsatzzwecke verwendet. Dabei müssen diese immer mehr Funktionen übernehmen, die oft auch voneinander abhängen. Dies resultiert in einer steigenden Komplexität für die Softwareentwicklung für solche Systeme. Eine häufig verwendete Herangehensweise zur Beherrschung der Komplexität ist der Einsatz von modellbasierter Softwareentwicklung. Neben anderen Sprachen hat sich hier die Unified Modeling Language (UML) [1] als Standard etabliert. Das Spezifizieren von Anforderungen ist dennoch essenziell.
Für das Anforderungsmanagement werden zumeist spezielle Werkzeuge wie DOORS [2] und Polarion [3] eingesetzt. Anforderungen an das Zeitverhalten können hier ebenfalls bereits textuell und/oder durch selbst definierte Attribute erfasst werden. Um entlang des gesamten Softwareentwicklungsprozesses sicherstellen zu können, dass die Anforderungen berücksichtigt werden, ist die Verfolgbarkeit von Anforderungen essenziell. Nur so kann sichergestellt werden, dass sämtliche Anforderungen umgesetzt werden und bei deren Änderungen analysiert werden, welche zugehörigen Modellelemente angepasst werden müssen (Impact Analyse).
Über das textuelle Erfassen von Zeitanforderungen hinaus können diese jedoch auch in Modellen weiter spezifiziert werden, indem bspw. direkt für eine modellierte Operation hinterlegt wird, wie lang ihre maximale Ausführungszeit sein darf. Darüber hinaus lassen sich über Modelle weitere Aspekte wie Tasks mit ihrer Periode, Priorität und Ausführungszeiten modellieren sowie Operationen den Tasks zuordnen. Zur Modellierung solcher Eigenschaften kommen hier spezialisierte Werkzeuge zur Analyse von Zeitverhalten wie SymTA/S [4] zum Einsatz, mit denen sich das Zeitverhalten einer Software analysieren und validieren lässt. Zeiteigenschaften können jedoch auch in anderen Modellierungssprachen wie der UML erfasst werden. Damit solche Modelle konsistent mit denen in Analysewerkzeugen sind, ist auch hier die Verfolgbarkeit von Elementen von großer Bedeutung. Auch die Synchronisierung von Daten spielt hier eine wichtige Rolle.
Im Folgenden wird anhand eines Beispiels ein Einsatz vorgestellt, wie Anforderungen an das Zeitverhalten mit UML-Modellen synchronisiert werden, die Zeiteigenschaften in UML weiter beschrieben werden und anschließend mit einem Analysewerkzeug validiert werden.
Verfolgen von Zeitanforderungen
In Bild 1 (vgl. Bildergalerie) sind Anforderungen an ein Teilsystem für einen Akkuschrauber in einem Anforderungsmanagementwerkzeug dargestellt. Dabei wurden Zeitanforderungen nicht nur textuell erfasst, sondern in dem zusätzlich definierten Attribut Boundary konkrete Werte für Zeitschranken beschrieben.
Die Software, die die Anforderungen realisiert, wurde modellbasiert mit einem UML-Werkzeug entwickelt. Um Anforderungen in Anforderungsmanagement-werkzeugen mit UML-Elementen zwecks Verfolgbarkeit in Beziehung zu setzen, gibt es verschiedene Ansätze, wie bspw. das Gateway für Rational Rhapsody [5].
Da vorhandene Lösungen oft proprietär für bestimmte Werkzeuge sind, wurden im Projekt die Anforderungen mit dem standardisierten Requirements Interchange Format (ReqIF) [6] zwischen dem Anforderungsmanagement- und dem UML-Werkzeug synchronisiert. Der Ablauf zum Austausch der Anforderungen wird in Bild 2 (vgl. Bildergalerie) visualisiert.
Im Anforderungsmanagementwerkzeug wurden sowohl ein Lastenheft als auch ein Pflichtenheft erfasst. Das Pflichtenheft wurde anschließend nach ReqIF exportiert und daraufhin mittels eines dafür eigens entwickelten Mechanismus in das UML-Format konvertiert und importiert. Beim Import in UML wird für jedes Anforderungsdokument aus ReqIF jeweils ein UML-Package erstellt, welches die im Dokument enthaltenen Anforderungen enthält.
Die verschiedenen Arten dieser Anforderungen werden über UML-Stereotypen dargestellt, die Inhalte/Eigenschaften über Tagged Values erfasst (siehe Bild 3 in der Bildergalerie). Diese Repräsentation der Anforderungen aus ReqIF in UML ermöglicht nun, dass Beziehungen zwischen UML-Elementen und Anforderungen erstellt werden können. Zum Erstellen von Beziehungen werden im UML-Werkzeug UML-Dependencys verwendet.
Bild 4 (vgl. Bildergalerie) zeigt diese Beziehungen zwischen UML-Elementen und Anforderungen. Darüber hinaus sind hier schon Zeiteigenschaften weiter spezifiziert worden, was durch verschiedene Stereotypen und Tagged Values zu sehen ist.
Um die Beziehungen auch in Anforderungsmanagementwerkzeugen sichtbar zu machen, wurde ein Verfahren entwickelt, dass diese Beziehungen im UML-Modell analysiert die zu einer Anforderung in Beziehung gesetzten UML-Elemente zurück ins ReqIF überführt. Die ReqIF-Datei kann anschließend zurück ins Anforderungsmanagementwerkzeug importiert werden. Bild 5 (vgl. Bildergalerie) zeigt, wie Repräsentationen für UML-Elemente und deren Beziehungen im Anforderungsmanagementwerkzeug dargestellt werden. Dieser Prozess ermöglicht eine vollständige Verfolgbarkeit zwischen Anforderungen und UML-Elementen in beiden Richtungen.
(ID:44191937)