Automation in software validation
The Unified Modelling Language UML includes notations for the description of structural and different behaviour views of an application, as well as platform dependent information. The OMEGA approach to software quality is to use UML for the description of a unique reference model, from which semantically related models for functional, validation, performance analysis and implementations are derived. For this reason, the OMEGA project identified a reasonable and effective subset of UML, which can be used for the development of reactive and real-time embedded systems. The profile has been defined in phases starting with a so-called Kernel Model, which represents a useful operational subset. In the OMEGA kernel model the static structure of the system is described in terms of class diagrams and state machines with some extensions and restrictions, mainly concerning associations and communication. A class is a description of a set of objects that share the same attributes, operations, signals, relationships and semantics. The state machines of their classes define the behaviour of the objects in a system. The classes are distinguished into active and passive ones, where the active classes have their own thread of control and associated event queue, executing request in a run-to-completion fashion. The kernel model defines formal semantics for the verification of the behavior of a set of related classes and associated state diagrams with existing model-checking tools. The behaviour of the system is described by means of an explicit imperative action language, which is used for the creation and destruction of objects, communication and the description of transition systems extended with data. The communication between objects is performed either via asynchronous signals or via synchronous operations calls, during which the caller is blocked until the call returns. OMEGA kernel model and further results improve current tools and methods promoting the automation in software validation together with consistency and coherence of the verification tools.