The correct behavior of interacting software components and more importantly their correct coordination has become essential in software applications. Incorrect behaviors typically lead to failures with possibly very serious consequences such as injuries to humans and material losses, and affect a wide number of applications, from household appliances (e.g. washing machines), automotive applications (e.g. air-bag systems), medical applications (e.g. x-ray machines) to nuclear power stations. Business processes found in banking, insurance and e-business may also be affected, for example during a customer application or during the processing of an order. Round-the-clock accessibility and reliable functionality are preconditions for a large number of these applications.
The scope and complexity of software applications has grown enormously in recent years, especially in applications for which component coordination is critical. As a consequence of this growth in scope and complexity, and due to possible legal consequences and image losses linked with faulty products, software development requirements have become more stringent and software validation increasingly important. However, when comparing software development methods and development requirements for coordination applications, we realize that a productivity crisis is about to happen, which cannot be managed alone with traditional validation techniques (i.e. reviews, simulation and testing), but urgently requires validation technology innovation.
Coordination applications are typically component-based, event-driven, and characterized by a clear separation between the tasks to be coordinated and their coordination. These particular characteristics, not encountered in general software applications, can be effectively exploited for validation purposes, and constitute - together with expressive, clear and verifiable application descriptions, and powerful verification algorithms - the basis of the validation technology innovation proposed by the VALID tool set.
The presentation will first focus on current trends and issues in the
development of validated coordination applications and the related
customer
requirements. Subsequently, the VALID tool set will be introduced. The
latter supports the design of software applications through a
well-defined
methodology and guidelines, can be used stand-alone or in conjunction
with
other standard development environments and frameworks, and integrates
modeling, verification, simulation, as well as the generation of
executable
code, test-cases and documentation. The main benefits to software
developers
can be summarized as:
* improved software quality with provably correct coordination of
software components,
* shorter development times through faster incremental design and
reduced integration and testing times (lead customers have reported
8-time
speedups for successive design refinements, and 20% reductions in
overall
development times)
Formal verification theory and systems control theory constitute the
basis
of the automated verification algorithms used in the VALID tool set.
They
allow users to prove whether given behavioral properties of interest are
satisfied, or otherwise provide counter-examples illustrating why such
properties are not satisfied. These algorithms remain transparent to the
user who is able to readily access them at the push of a button via very
user-friendly interfaces.
Finally, application examples from medical engineering, robotics,
automotive
body electronics and GUI applications will be presented.