comp.lang.ada
 help / color / mirror / Atom feed
From: dewar@cs.nyu.edu (Robert Dewar)
Subject: Re: Software Safety (was: Need help with PowerPC/Ada and realtime tasking)
Date: 1996/06/08
Date: 1996-06-08T00:00:00+00:00	[thread overview]
Message-ID: <dewar.834237518@schonberg> (raw)
In-Reply-To: 4p4trk$tc5@watnews1.watson.ibm.com


"I agree.  About a decade ago, at workshop on formal verification of Ada
programs, I got into a heated argument with David Gries about a useful
definition of correctness.  I argued that it was useless to prove a
program conformant to formal specifications unless one had a high degree
of confidence that the specifications expressed the customer's intent.
Gries seemed to have in mind a model whereby the customer presents the
software developer with a contract expressed in the form of formal
specifications; if the software developer conforms to the specifications,
he has fulfilled the contract, even if the customer doesn't get what he
really wanted.
"

I certainly agree that it is unfortunate that the term correct has been
hijacked, however, it is tilting at windmills to try to change this now
(sort of like my efforts to prevent the misuse of moot and oxymoron :-)

Your "heated argument" reminds me of a conference I was at where Niklaus
Wirth was talking about programming being a process of refinement whre
the one and only issue was that refinement should be correctness preserving.

At the end of the panel session, I commented that the whole notion of 
correctness is misguided, because the issue is building reliable software,
not correct software. I used as an anology car manufacture, car companies
are interested in building reliable cars, almost no one would talk about
a correct car. And indeed almost any car does NOT meet its specifications,
but the issue is whether the defect are minor. A small area of miscolered
paint under the rear bumper renders a car incorrect, but not unreliable!

In the case of softare, correct and reliable are of course NOT the same.
Reliability includes the specificatoin being correct, and of course
we have no way of proving a specification correct, at most we could
prove it consistent, but that might simply mean it is consistently wrong!
Actually as specifications get more formal, it often gets harder and harder
to determine if it is correct. Try looking at the formal definition done
by the EEC for Ada 83, it is two fat telephone books of mathematical
formula -- and there is no way of ensuring it is correct [in fact, as
would be expected for what is essentially a huge program that has never
been run, it is not correct].

On the other hand, a program that trivially departs from its spec (background
of the GUI is slightly different shade of green than specified for example)
may still be completely reliable even though it is not correct.

So I prefer to leave the term correctness to (mis)mean what David Gries and
Niklaus Wirth (and many others) insist on, and simply to recognize that it is
not the most important property, and if I am a customer I want a program
that works, a correct (in this sense) program that does not work is of
no interest to me, and I will not sign a contract that says that all the
program has to do is to implement correctly some formal specification!

P.S. At that panel session, when I made the comment about cars not having
to be correct, the audience, quite frustrated I think with the panel
presentation, applauded the comment loudly :-)





  parent reply	other threads:[~1996-06-08  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               ` Software Safety (was: Need help with PowerPC/Ada and realtime tasking) Ken Garlington
1996-05-30  0:00                 ` 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 [this message]
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