Verbesserungen in der Softwarevalidierung
Die modellbasierte Entwicklung ist eine attraktive Idee zum Aufbau integrierter Echtzeit-Softwaresysteme. Bei diesem Ansatz werden Modelle, die Spezifikationen funktionaler Aspekte repräsentieren, in einem Code für bestimmte Plattformen vereint. Die notwendigen Versuche werden nicht auf den eigentlichen Systemen durchgeführt, sondern anhand virtueller Prototypen (Modelle). Die Unified Modeling Language (UML) liefert ein Mittel zur Beschreibung von Betriebsmodellen eines Systems auf verschiedenen Abstraktionsebenen entsprechend den unterschiedlichen Entwicklungsphasen, das Architektur- und Verhaltensbeschreibungen umfasst. Einfacher Aufbau, Allgemeingültigkeit, erhöhte Beobachtbarkeit und Kontrollierbarkeit, Analysemöglichkeiten und Vorhersagbarkeit sind nur einige der Vorteile eines modellbasierten Ansatzes. Es ist jedoch nur von Nutzen, wenn es mit einem Toolsupport zur Validierung von Designmöglichkeiten kombiniert wird. Das OMEGA-Projekt konzentrierte sich auf Tools und eine Methodologie zur Entwicklung von Echtzeit- und integrierten Systemen unter Nutzung von UML. Die Heterogenität von Komponenten mit unterschiedlichen Ausführungsgeschwindigkeiten und die Interaktionsmodi, die häufig im modellbasierten Ansatz vorkommen, sind zwei der angesprochenen Hauptprobleme. Das IF/IFx-Toolset ermöglicht dem Nutzer die Ausführung von Operationen, die denen moderner Testhilfeprogramme ähneln. Dazu zählen schrittweise Ausführung, Untersuchung des Systemstatus, konditionale Messpunkte, Zurückspulen/Wiederholen des Szenarios und Verifizierung einfacher Übereinstimmungsbedingungen wie Blockierungen oder zeitliche Begrenzungen. Die anhand von Modellen zu validierenden Anforderungen werden durch "Observer", einer speziellen Klasse von Modellen, dargestellt. Diese sind mit Primitiven zur Beobachtung und Prüfung der Abweichung vom normalen Verhalten ausgestattet. Auf ähnliche Weise werden Timing-Constraints angewandt, um die Beschränkungen der Dauer zwischen Systemereignissen auszudrücken und zeitabhängiges Design zu handhaben oder eine Umgebung anhand bestimmter Zeitmerkmale zu beschreiben. Den Hauptbestandteil von IFx bildet der UML-in-IF-Umwandler, der Beschreibungen im Zwischenformat (IF - Intermediate Format) erzeugt. IF-Beschreibungen sind Zwischenrepräsentationen, die Spezifizierung, Testziele und Erfassungskriterien auf angemessene Art und Weise zur Testerzeugung auf Modellbasis hervorbringen. Der Umwandler nutzt ein in XMI gespeichertes UML-Modell, dem standardmäßigen XML-Format, als Eingabe und erzeugt anhand der OMEGA-Semantik eine IF-Spezifizierung, die dem UML-Modell entspricht. Darüber hinaus bietet eine UML-Datenstation eine speziell an UML-Modellierer für die IF-Validierungstools angepasste Schnittstelle, die IF und die Einzelheiten der Umwandlung ausblendet. Das Tool wurde bereits auf drei der OMEGA-Fallstudien angewandt und kommt außerdem bei verschiedenen anderen Projekten zum Einsatz. Seine Kombination mit anderen Tools für Validierung und Codeerzeugung wird als Gegenstand weiterer Formen der Zusammenarbeit angesehen.