Properties and where they reside. So
far I have talked loosely about a dependable system performing some
functions or tasks. But for articulating
claims about a system’s desired behavior, this level of granularity is too
coarse. It is preferable instead to focus
on critical properties. Some will be as-
sociated with individual functions, but
more often a property will crosscut several functions.
For dependability, focusing on
properties is generally better than focusing on functions because the properties are what matter. Moreover, they
can usually be separated more cleanly
82 communicAtionS of the Acm | APriL 2009 | voL. 52 | no. 4
from one another, and they retain their
meaning as the set of functions offered
by the system changes over its lifetime.
A critical property of a crime database,
for example, may be that every access to
the database by a user is logged in some
file. Identifying instead some critical
subset of logging functions would be
inferior, as the full correctness of these
functions would likely be neither necessary nor sufficient for establishing
the logging property. Common Criteria, a certification scheme for security,
makes this mistake; it focuses attention on the security functions alone,
despite the fact that many attacks succeed precisely because they exploit
loopholes in other functions that were
not thought to be security-related.
Some software systems provide an
entirely virtual service, but most interact with the physical world. When
the purpose of a system is to produce,
control, or monitor particular physical phenomena, they should form
the vocabulary for expressing critical
properties. This might seem obvious,
but there is long tradition of writing
requirements in terms of interfaces
closer to the software, perhaps because
it’s easier or because of a division of
labor that isolates software engineers
from system-level concerns. In a radiotherapy application, for example,
a critical property is not that the emitted beam has a bounded intensity, or
that the right signal is conveyed to the
beam-generating device, or that the
beam settings are computed correctly
in the code. It is that the patient does
not receive an excessive dose.
There is a chain of events connecting the ultimate physical effects of the
system at one end back through the signals of the peripherals in the middle to
the instructions executed in the code
at the other end. The more the critical
property is formulated using phenomena closer to the software and further
away from the ultimate effects in the
real world, the more its correlation to
the fundamental concerns of the users
is weakened.
An infamous accident illustrates the
potentially dire consequences of this
too-close-to-the-software tendency. An
Airbus A320 landing at Warsaw Airport
in 1993 was equipped with an interlock
intended to prevent the pilot from activating reverse thrust while airborne.
illustration by mikael christensen