Requirements and Safety Analysis using Constraints - CoRSA
- Kevin J. Hollingworth 1
- Centre for Software Reliability
- University of Newcastle upon Tyne
Effective approaches for
the safety analysis of large-scale embedded systems are urgently needed.
Approaches based on safety engineering , software development and formal
notations have been proposed, however these suffer from a number of deficiencies.
Motivation for a constraint-based approach is provided by related work on
confirmation of consistency and verification of modelling notations for
hardware and control systems. CoRSA
provides an approach for safety analysis of requirements specifications
and is amenable to automation. CoRSA establishes a relationship between
the analysis of safety properties of a state transition model [Manna
95] and the resolution of a series of constraint satisfaction problems
(CSPs). CoRSA realises the following benefits:
- Earlier safety analysis. Establishing
safety criteria for, and limiting the propagation of critical errors to,
subsequent development.
- Analysis of heterogeneous systems. Enable
the effects of interaction between components, of different technologies,
to be determined.
- Exploration of failure behaviours. Providing
flexible and simple methods to explore failure behaviours and fault tolerant
strategies.
- Efficient analysis procedures. Partitions
the safety analysis process into several analysis steps, each of which
can be solved automatically.
CoRSA provides a number of views over a state
transition system; a template notation, a textual language and a constraint-based
language (CBL). Extracts of the CoRSA views can be found in figure below.

- Template notation. A CoRSA template
is an abstraction of a state transition system where the state space is
created from a number of variables describing the system. The behaviour
of the system and hazards are represented as a number of constraints over
the current state and or successor states of the variables. Failure behaviours
can be represented in a template, allowing faults to be injected into the
system model. The template notation aids the analyst in modelling and analysis
is supported by translation of a completed template , via mappings defined
in the textual language, into a series of CSPs.
- Textual language. The textual language
consists of a basic language and a macro language. The basic language
maps the templates to a CBL and encodes the analysis checks, in terms of
three basic constraints: initial, invariant and transition. Analysis checks
describe analysis procedures for transition systems as a CSP. The
macro language supports the definition of high level constraints, a call
to a macro is expanded into a set of constraints expressed in terms of
the basic language. Macros have been developed for expression of
timing requirements, in terms of delays and deadlines, and are currently
being explored for an object oriented version of CoRSA.
- Constraint based language. The CBL
is used to implement a number of CSPs , produced by the textual language,
and to solve those problems. The CBL used is OZ [OZ]
. The textual language produces a generic set of CSPs, hence any CBL may
be used. An analysis check succeeds if no solution is found (similar to
proof by contradiction); for each failed check a pair of current and successor
states leading to the violation are identified. These can be used
to reason about the defects in templates, supporting rectification.
The activities of CoRSA start with the external
and elicitation activities and progress through to analysis.
- External Activities. Produce
a set of hazard definitions through a preliminary hazard analysis of the
top-level requirements.
- Elicitation Activities. Modelling
the top-level requirements in terms of a CoRSA template and establishing
validation conjectures. Checks are defined and conducted to confirm consistency
and validate the CoRSA model.
- Expression Activities. Encoding the
hazards and failure behaviours in the template notation. CSPs are then
produced, using the textual language, to define both normal and failure
safety analysis checks.
- Analysis. Analysis is performed
through the resolution of the CSPs produced by the expression activities.
CoRSA has been applied to the gas burner benchmark
example [Ravn 93], this example has been used
by other research to demonstrate software safety analysis techniques, those
based on FTA and HAZOPS. In our work, we extend the gas burner
by including some redundant components, in order to explore safety analysis
for a simple fault tolerant system.
An object-oriented version of CoRSA is under
development, this will be applied to an industrial strength case study based
on a fuel management system. The objective is to model the fuel transfer
function, analyse system properties and establish a role for CoRSA in the
context of current industrial development and assessment practices. This
will be a joint effort between the CSR at Newcastle University and BAe Airbus.
References
[Manna 95] Z.Manna and
A.Pneuli. Temporal Verification of Reactive Systems: Safety. Springer-Verlag,
1995.
[OZ] OZ
Web Site, Programming Systems Lab, Department of Computer Science,
Universität des Saarlandes German Research Centre for Artificial Intelligence,
DFKI GmbH Sonderforschungsbereich 378. URL http://www.ps.uni-sb.de.
[Ravn 93]A.P.Ravn, H.Rischel
and K.M.Hansen. Specifying and verifying requirements of real-time
systems. IEEE Transactions on Software Engineering, SE-19(1):41-55,
January 1993.
|