The use of an object oriented (OO) approach brings potentially large savings in terms of time and cost for developers of safety critical systems. OO systems have improved maintainability due to encapsulation, high cohesion and low coupling, and the facility for reuse through inheritance and design patterns. This raises specific challenges for developers of OO safety critical systems who wish to take full advantage of these features. To realise the benefits requires an ability to reason about the safety of individual classes or components in the system. This is quite difficult to achieve with most existing safety analysis techniques, as hazards tend to be decomposed down in a functional way. In this paper we initially explore how existing techniques may be adapted to provide the required results. We then go on to examine how these safety properties and requirements may be represented in a useful and meaningful way. We propose to use safety contracts for classes as a way of capturing safety requirements in an OO system. These contracts are constructed through analysis of functional, timing and value aspects of interactions within the system. We look at how these contracts can be incorporated into the system design and then used to verify that a system is safe. We go on to explore how the use of safety contracts facilitates maintainability and reuse.

BibTex Entry

@inproceedings{Bate2003f,
 author = {I. Bate and R. Hawkins and J. McDermid},
 booktitle = {21st International System Safety Conference},
 pages = {636-645},
 publisher = {System Safety Society},
 title = {Developing Safety Contracts for {OO} Systems},
 year = {2003}
}