The embedded system design challenge
Although personal computers are perhaps the most visible artefact of the microprocessor revolution, there are many more devices behind the scenes (cellular phones, pacemakers, home automation systems and even appliances). And all these real-time and embedded devices require software to carry out their functions. However, software for real-time and embedded devices can be particularly challenging. They must interact with the real world, which is typically noisy and unpredictable. Moreover, they must do so reliably and under stringent time constraints, especially in the case of life-critical systems. Based on this experience, a consensus had emerged that, while a useful tool, the UML standard used for the development of critical systems is lacking in some key areas. Fortunately, and contrary to an often expressed opinion, the OMEGA project discovered that UML has all the necessary prerequisites for addressing issues that are of particular concern to developers. The acronym UML stands for 'Unified modelling language'. This third-generation modelling language represents a substantial effort from a large number of methodologists to construct a common means for describing complex systems. Consequently, it was unnecessary to add new modelling concepts to UML. The work of the OMEGA project partners focused on defining a standard way of using its extensibility facilities. First, they selected a sufficiently expressive sublanguage that allows the capture of characteristic features of time-critical systems, like timers and scheduling algorithms. Small extensions to the chosen UML notations were then proposed and formal semantics specified. This was the first step towards building up a common understanding of semantics underpinning the modelling of real-time systems. Project partners at the Radboud University went further. They developed a methodology along with a tool set to verify that various properties hold on their UML models. Testing and other validation methods can raise the confidence in the developed system and help in finding bugs, but cannot guarantee correctness. A formal verification approach was therefore adopted which enables designers to derive mathematical proof of correctness using the 'Prototype verification system' (PVS), a powerful theorem prover. During the course of the OMEGA project, the newly developed verification methodology was tested on two examples. Eratosthene's sieve algorithm for identifying prime numbers, and a model of the 'Medium altitude reconnaissance system' (MARS). The MARS system is used to control the movement of a camera on an aeroplane to counteract image quality degradation caused by forward motion. By improving software quality and reducing costs of the validation phase, the fruits of the OMEGA project promises to increase the efficiency of the European software industry.