Die Herausforderung eingebetteter Systeme
Obwohl PCs wahrscheinlich das sichtbarste Artefakt der Mikroprozessor-Revolution sind, gibt es viele weitere Geräte, die nicht so exponiert sind (Mobiltelefone, Herzschrittmacher, Haussteuerungssysteme und sogar Haushaltsgeräte). Und alle diese Echtzeit- und eingebetteten Geräte benötigen zur Durchführung ihrer Aufgaben Software. Allerdings kann Software für Echtzeit- und eingebettete Geräte eine besondere Herausforderung darstellen. Die Programme müssen mit der realen Welt interagieren, die in der Regel laut und unberechenbar ist. Außerdem müssen sie zuverlässig und unter strengen Zeitvorgaben operieren, besonders im Fall lebenswichtiger Systeme. Aus dieser Erfahrung heraus ist der Konsens entstanden, dass der UML-Standard, der für die Entwicklung kritischer Systeme genutzt wird, zwar ein nützliches Werkzeug ist, trotzdem in einigen Schlüsselbereichen Nachteile aufweist. Glücklicherweise, und im Gegensatz zu einer oft geäußerten Meinung, hat das OMEGA-Projekt entdeckt, dass UML alle notwendigen Voraussetzungen erfüllt, die von den Entwicklern für die Beantwortung von Fragen als besonders wichtig erachtet werden. Das Akronym UML steht für "Unified Modeling Language" (vereinheitlichte Modellierungssprache). Diese dritte Generation der Modellierungssprache ist aus erheblichen Bemühungen einer Reihe von Methodikern hervorgegangen, ein gemeinsames Mittel zur Beschreibung komplexer Systeme zu konstruieren. Folglich war es nicht notwendig, neue Modellierungskonzepte zum UML-Standard hinzuzufügen. Die Arbeit der OMEGA-Projektpartner konzentrierte sich auf die Definition einer Standardmethode zur Verwendung seiner Erweiterbarkeit. Zuerst wählten sie eine hinreichend ausdrucksstarke Untersprache, die es ermöglicht, charakteristische Merkmale zeitkritischer Systeme, wie Timer und Zeitplanungsalgorithmen, festzuhalten. Zu den ausgewählten UML-Notationen wurden dann kleine Erweiterungen vorgeschlagen und eine formale Semantik wurde angegeben. Dies war der erste Schritt in Richtung eines gemeinsamen Verständnisses der Semantik, die der Modellierung von Echtzeitsystemen zugrunde liegen. Projektpartner von der Radboud Universität gingen noch weiter. Sie entwickelten eine Methode und einen Werkzeugkasten, um zu überprüfen, dass verschiedene Eigenschaften ihren UML-Modellen standhielten. Tests und weitere Validierungsmethoden können das Vertrauen in das entwickelte System erhöhen und bei der Suche nach Bugs helfen, Korrektheit können sie allerdings nicht garantieren. Daher wurde ein formaler Verifikationsansatz übernommen, mit dem Entwickler den mathematischen Beweis der Korrektheit ableiten können, indem sie den leistungsstarken Theorembeweiser PVS (Prototype verification system) einsetzen. Im Laufe des OMEGA-Projekts wurde die neu entwickelte Verifikationsmethodik an zwei Beispielen getestet: am Sieb-Algoritmus von Eratosthene zur Ermittlung von Primzahlen und an einem Modell des Aufklärungssystems für mittlere Höhen MARS. Das MARS-System wird verwendet, um die Bewegung einer Kamera an einem Flugzeug zu steuern, um dem Bildqualitätsverlust, der durch die Vorwärtsbewegung entsteht, entgegenzuwirken. Durch die Verbesserung der Software-Qualität und die Senkung der Kosten für die Validierungsphase, lassen die Ergebnisse des OMEGA-Projekts auf eine Verbesserung der Effizienz der europäischen Software-Industrie hoffen.