comp.lang.ada
 help / color / mirror / Atom feed
From: Ken Garlington <garlingtonke@lmtas.lmco.com>
Subject: Software Safety (was: Need help with PowerPC/Ada and realtime tasking)
Date: 1996/05/30
Date: 1996-05-30T00:00:00+00:00	[thread overview]
Message-ID: <31AD794D.2E62@lmtas.lmco.com> (raw)
In-Reply-To: Ds6M4D.E09@world.std.com


Robert A Duff wrote:
> 
> In article <31AC0712.29DF@lmtas.lmco.com>,
> Ken Garlington  <garlingtonke@lmtas.lmco.com> wrote:
> 
> >It sounds like the point has already been made, but it is also good to
> >remmeber that, technically, correctness and safety don't have to be related.
> >You can have correct software that is unsafe, and incorrect software that
> >is safe.
> 
> I suppose it depends on your definition of "correct".  The
> proof-of-correctness folks define "correct" to mean "correctly obeys the
> formal specification".  To me, that's a bogus definition.  In plain
> English, a "correct" program is one that does what it's supposed to do,
> regardless of whether the specification is wrong.  If you show me a word
> processor that deletes my file when I told it to italicize a word, to
> me, that's incorrect, even if you can show me a (bogus) formal spec that
> says that the "italicize word" function should delete files.  If you
> show me a flight-control program that crashes airplanes, that's
> incorrect IMHO, despite the fact that you might show me a formal spec
> saying it did what the formal spec says.

I have some sympathy for your more general definition, but there's also a
problem. For example, I cannot build a flight-control system that will
prevent aircraft crashes. No matter what I do, there will always be some
chain of events (plausible or otherwise) that will cause the plane to
crash. On an F-16, it's as simple as the pilot pointing the nose to the
ground too long, or flying through a sufficiently strong hurricane. Does
this make flight-control software inherently incorrect, or just inherently
unsafe under certain conditions?

Any requirements specification, formal or otherwise, has to make some
assumptions about the operating environment, and it has to make some
assumptions about "acceptable" chains of events that lead to unsafe
conditions. A requirements specification for a robot control arm may
assume that no humans will be in the vicinity during operation. This
may be a reasonable assumption, given the planned operating environment.
If a human is standing next to the arm during operation, and the arm
starts moving without warning and hits the human, was the software incorrect?
Was it unsafe? In this case, even with a general definition of "correctness",
the software might very well be considered correct, but unsafe (did not have
a warning function).

Note that the reverse is also possible. If the software was supposed to
command the robot arm to move, and it fails to do so, this might very
well be incorrect, but safe.

-- 
LMTAS - "Our Brand Means Quality"




  reply	other threads:[~1996-05-30  0:00 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-05-17  0:00 Need help with PowerPC/Ada and realtime tasking Dave Struble
1996-05-18  0:00 ` JP Thornley
1996-05-20  0:00   ` Robert I. Eachus
1996-05-21  0:00     ` Michael Levasseur
1996-05-21  0:00   ` Richard Riehle
1996-05-25  0:00     ` JP Thornley
1996-05-27  0:00       ` Darren C Davenport
1996-05-30  0:00         ` Ralph E. Crafts
1996-05-31  0:00           ` JP Thornley
1996-06-03  0:00             ` Ken Garlington
1996-05-28  0:00       ` Tasking in safety-critical software (!) (was Re: Need help with PowerPC/Ada and realtime tasking) Kevin F. Quinn
1996-05-25  0:00     ` Need help with PowerPC/Ada and realtime tasking JP Thornley
1996-05-27  0:00       ` Robert Dewar
1996-05-28  0:00         ` JP Thornley
1996-05-29  0:00           ` Ken Garlington
1996-05-29  0:00             ` Robert A Duff
1996-05-30  0:00               ` Ken Garlington [this message]
1996-05-30  0:00                 ` Software Safety (was: Need help with PowerPC/Ada and realtime tasking) Robert Dewar
1996-06-02  0:00                   ` JP Thornley
1996-06-03  0:00                   ` Robert A Duff
1996-06-05  0:00                     ` Norman H. Cohen
1996-06-07  0:00                       ` Ken Garlington
1996-06-12  0:00                         ` Norman H. Cohen
1996-06-12  0:00                           ` Ken Garlington
1996-06-08  0:00                       ` Robert Dewar
1996-06-08  0:00                         ` Robert A Duff
1996-05-31  0:00                 ` Robert A Duff
1996-06-03  0:00                   ` Ken Garlington
1996-05-30  0:00               ` Need help with PowerPC/Ada and realtime tasking JP Thornley
1996-05-31  0:00                 ` Ken Garlington
1996-06-02  0:00                   ` JP Thornley
1996-06-03  0:00                     ` Ken Garlington
1996-05-28  0:00   ` Robert I. Eachus
1996-05-30  0:00     ` JP Thornley
1996-05-28  0:00   ` Robert I. Eachus
1996-05-30  0:00     ` JP Thornley
1996-06-03  0:00       ` Ken Garlington
1996-05-31  0:00   ` Robert I. Eachus
1996-06-03  0:00   ` Ralph Paul
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox