VALID Tool Set: Validation of Software Applications
Dr. B. Brandin
Siemens Corporate Research
Otto-Hahn Ring 6
81730 Munich, Germany

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.