comp.lang.ada
 help / color / mirror / Atom feed
From: "Ken Garlington" <Ken.Garlington@computer.org>
Subject: Re: Interresting thread in comp.lang.eiffel
Date: 2000/07/12
Date: 2000-07-12T00:00:00+00:00	[thread overview]
Message-ID: <yq7b5.13179$7%3.915706@news.flash.net> (raw)
In-Reply-To: qe_a5.259$6E.64803@ptah.visi.com

"David K Allen" <dkallen@visi.com> wrote in message
news:qe_a5.259$6E.64803@ptah.visi.com...
> I think, as Bertrand said earlier, that you two were talking on different
> wavelengths.
> He was talking "Design By Contract (DBC)" a formal method for designing
> reliability into software to faciliate reuse.  It is a method which he
knows
> very well.
> Based on the comments you made above, you were talking business contracts,
> which you apparently know very well.

Actually, I was talking about the use of code constructs (DbC contracts) as
part of a binding relationship between parties (business contracts). The
words you elided mention this. A previous poster said that DbC contracts
represented a committment between the developer and the reuser. My question
had to do with the seriousness and dependability of that "committment."

> I certainly welcome your criticism of DBC. You are obviously a clear and
> critical thinker with considerable experience in software development.
But
> it will be more productive if you base your criticisms on what DBC really
is
> about rather than what you think it might be.
> Instead of reacting to our attempts to explain DBC to you, one piece at a
> time, perhaps it will be more useful for you if you read a clear
> introduction to DBC which explains what it is really about.
> http://www.eiffel.com/doc/manuals/technology/contract/page.html.

Actually, I have read this. I am also familiar with, and/or have used, other
examples of similar/related approaches: Ada (and GNAT assertions), SPARK,
T-VEC -- and, today, OBLOG (where the contracts are called "quarks").

> Others have tried to explain it, but you counter with examples like those
> above which tell me you are criticizing DBC based on the mistaken notion
> that it is supposed to perfectly model a business contract.

Not at all - I am responding to the suggestion that it is useful to use
constructs written at the level of detail inherent in source code as part of
the process of specifying the requirements of a system between customer and
vendor. These issues are discussed further at

http://www.flash.net/~kennieg/ariane.html

along with a more comprehensive set of issues related to DbC -- specifically
with respect to Ariane 5, by the way.

> Applying business principles to the software engineering "Design By
> Contract" will not really help much.
> Conversely, trying to apply Dr. Meyer's software engineering principles to
> the socio-political issues will not help either.
> They are two different domains with different principles and techniques.

Couldn't agree more.

> But the point is that if DBC were a component of the software development
> method used to build Ariane, then any attempts to reuse software from a
> previous project would force the issue that the new project teams MUST
HAVE
> the specifications of any modules they intend to reuse.

Couldn't *disagree* more (with respect to Ariane 5). The reason, in part, is
because of another homonym you mention - "specification". That term, used in
the sense of traditional acquisitions, means something very different than
it does in DbC. You need both types of specifications to do the required
analysis/test correctly. A "hole" in the procurement specification is not
necessarily revealed by the DbC specification, particularly if the implicit
assumption is that the procurement specification identifies what has changed
from the previous procurement. Information at the source code level of
detail is rarely seen by those who write the procurement specification, so
it will not address their issues. Those who write the source code --
particularly in the context of an element like an IRS -- rarely have
sufficient experience and insight to detect potential system-level
subtleties like the one that was missed in the Ariane 5 program.

I note that this "force the issue" aspect of the DbC argument -- despite the
arguments I provide to rebut it -- tends to be accepted as an article of
faith, accompanied by various personal testamonials (rarely in the context
of an Ariane 5-style environment). Frankly, I almost feel like shouting
"Amen!" I would be much more accepting of this "leap of faith" if it were
accompanied by examples relevant to Ariane 5.

It keeps getting ignored (I suspect because the question can't be answered),
but I'll post this example again. The DbC specification for a module is
given below. I feel fairly confident that this is considered a good quality
example by at least one acknowledged Eiffel/DbC expert.

   convert (horizontal_bias: INTEGER): INTEGER is
      require
         horizontal_bias <= Maximum_bias

If, as you say, this would cause the project team to go get information they
did not already have, then explain what information it would require and
why.

(My analysis of this DbC specification is in the link noted above).


>  If that had been
> part of the software develoment culture, then the subcontractor would have
> required the additional information and the contractor would have gladly
> complied and provided it.

Again, couldn't disagree more.

> This would have reduced, though not eliminated
> the "art of guessing how much a contractor must provide to a
subcontractor"
> which you described earlier.

Not in the context of Ariane 5.  As people on both sides of the issue agree,
Eiffel/DbC is neither necessary nor sufficient to address an Ariane 5-class
failure.






  reply	other threads:[~2000-07-12  0:00 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <8ipvnj$inc$1@wanadoo.fr>
     [not found] ` <8j67p8$afd$1@nnrp1.deja.com>
     [not found]   ` <slrn8leffq.ebq.gisle@spurv.ii.uib.no>
     [not found]     ` <395886DA.CCE008D2@deepthought.com.au>
     [not found]       ` <3958B07B.18A5BB8C@acm.com>
     [not found]         ` <y1d65.620$7%3.33446@news.flash.net>
     [not found]           ` <395A0ECA.940560D1@acm.com>
     [not found]             ` <8jd4bb$na7$1@toralf.uib.no>
     [not found]               ` <8jfabb$1d8$1@nnrp1.deja.com>
     [not found]                 ` <SVH65.1596$7%3.129344@news.flash.net>
     [not found]                   ` <8jt4i0$18ec7$1@ID-9852.news.cis.dfn.de>
     [not found]                     ` <nSt85.5388$7%3.424540@news.flash.net>
     [not found]                       ` <8k5a31$1p61t$1@ID-9852.news.cis.dfn.de>
     [not found]                         ` <qlt95.7824$7%3.596314@news.flash.net>
     [not found]                           ` <3966D7B0.5D6475E4@earthlink.net>
     [not found]                             ` <A5J95.9237$7%3.638838@news.flash.net>
2000-07-12  0:00                               ` Interresting thread in comp.lang.eiffel Robert I. Eachus
2000-07-13  0:00                                 ` Ken Garlington
2000-07-23  0:00                                   ` Robert I. Eachus
2000-07-23  0:00                                     ` Ken Garlington
2000-07-24  0:00                                       ` David Gillon
2000-07-24  0:00                                         ` Ken Garlington
2000-07-24  0:00                                       ` swhalen
2000-07-24  0:00                                     ` David Gillon
     [not found]                             ` <39688CA2.31B2A7EF@acm.com>
2000-07-13  0:00                               ` Joachim Durchholz
2000-07-13  0:00                                 ` Marin D. Condic
     [not found]                           ` <8k8p8m$1upjk$1@ID-9852.news.cis.dfn.de>
     [not found]                             ` <0cS95.9944$7%3.667682@news.flash.net>
2000-07-13  0:00                               ` Joachim Durchholz
2000-07-14  0:00                                 ` Ken Garlington
     [not found]                 ` <8jhq0m$30u5$1@toralf.uib.no>
     [not found]                   ` <8jt4j7$19hpk$1@ID-9852.news.cis.dfn.de>
     [not found]                     ` <3963CDDE.3E8FB644@earthlink.net>
     [not found]                       ` <8k5alv$1oogm$1@ID-9852.news.cis.dfn.de>
     [not found]                         ` <Rmt95.7825$7%3.595826@news.flash.net>
2000-07-13  0:00                           ` Joachim Durchholz
2000-07-13  0:00                             ` Marin D. Condic
2000-07-14  0:00                             ` Ken Garlington
2000-07-16  0:00                               ` Joachim Durchholz
2000-07-16  0:00                                 ` Ken Garlington
2000-07-19  0:00                                   ` Joachim Durchholz
2000-07-19  0:00                                     ` Ken Garlington
2000-07-14  0:00                             ` Ken Garlington
2000-07-14  0:00                               ` Marin D. Condic
2000-07-14  0:00                                 ` Ken Garlington
     [not found]                       ` <3963DEBF.79C40BF1@eiffel.com>
     [not found]                         ` <2LS85.6100$7%3.493920@news.flash.net>
     [not found]                           ` <8k5aru$1odtq$1@ID-9852.news.cis.dfn.de>
     [not found]                             ` <Rnt95.7826$7%3.596208@news.flash.net>
     [not found]                               ` <8k8pk2$20cab$1@ID-9852.news.cis.dfn.de>
     [not found]                                 ` <_dS95.9945$7%3.666180@news.flash.net>
2000-07-12  0:00                                   ` David K Allen
2000-07-12  0:00                                     ` Ken Garlington [this message]
2000-07-12  0:00                                       ` David K Allen
2000-07-13  0:00                                         ` Howard W. LUDWIG
2000-07-13  0:00                                           ` Joachim Durchholz
2000-07-14  0:00                                           ` Ken Garlington
2000-07-14  0:00                                         ` Ken Garlington
2000-07-18  0:00                                           ` Veli-Pekka Nousiainen
2000-07-19  0:00                                             ` Ken Garlington
2000-07-19  0:00                                               ` Bob Allen
2000-07-12  0:00                                       ` David K Allen
2000-07-12  0:00                                     ` Bob Allen
2000-07-12  0:00                                       ` Ken Garlington
2000-07-13  0:00                                         ` Bob Allen
2000-07-14  0:00                                           ` Ken Garlington
2000-07-14  0:00                                             ` carr_tom
2000-07-18  0:00                                               ` Veli-Pekka Nousiainen
2000-07-14  0:00                                             ` Marin D. Condic
2000-07-12  0:00                                     ` David Gillon
2000-07-13  0:00                                       ` Joachim Durchholz
2000-07-13  0:00                                       ` David Gillon
2000-07-13  0:00                                         ` David K Allen
2000-07-13  0:00                                           ` Bob Allen
2000-07-13  0:00                                             ` Joachim Durchholz
2000-07-18  0:00                                               ` Veli-Pekka Nousiainen
2000-07-19  0:00                                                 ` Joachim Durchholz
2000-07-14  0:00                                         ` Ken Garlington
2000-07-18  0:00                                       ` Veli-Pekka Nousiainen
2000-07-19  0:00                                         ` David Gillon
     [not found]                             ` <Rnt95.78 <L6vb5.16117$7%3.988701@news.flash.net>
2000-07-14  0:00                               ` Nick Williams
     [not found]                         ` <396502D2.BD8A42E7@earthlink.net>
     [not found]                           ` <RSsa5.11075$7%3.784507@news.flash.net>
     [not found]                             ` <6aHa5.113$6E.23141@ptah.visi.com>
     [not found]                               ` <396B4A68.458FA3BC@maths.unine.ch>
     [not found]                                 ` <u6hp4i16$GA.283@cpmsnbbsa07>
2000-07-11  0:00                                   ` Ken Garlington
2000-07-12  0:00                                     ` Bob Allen
2000-07-12  0:00                                       ` David Starner
2000-07-12  0:00                                       ` Ken Garlington
2000-07-12  0:00                                     ` Peter Amey
2000-07-12  0:00                                       ` Peter Amey
2000-07-13  0:00                                       ` Joachim Durchholz
2000-07-11  0:00                                   ` cropt
     [not found]                           ` <39654639.B3760EF2@eiffel.com>
     [not found]                             ` <i4k95.7512$7%3.571616@news.flash.net>
     [not found]                               ` <oqog45g1j0.fsf@premise.demon.co.uk>
     [not found]                                 ` <85Fa5.11419$7%3.818927@news.flash.net>
2000-07-11  0:00                                   ` Aspects (Re: Interesting thread in comp.lang.eiffel) tom
2000-07-12  0:00                                     ` Veli-Pekka Nousiainen
2000-07-12  0:00                                       ` tom
2000-07-12  0:00                                     ` Steve Merrick
2000-07-12  0:00                                       ` Frank Mitchell
2000-07-14  0:00                                         ` Jubilation
2000-07-14  0:00                                           ` Frank Mitchell
2000-07-15  0:00                                             ` Jubilation
2000-07-12  0:00                                   ` Design by Contract (was " David Kristola
2000-07-12  0:00                                     ` Greg
2000-07-12  0:00                                       ` Matthew J Heaney
2000-07-13  0:00                                         ` Eirik Mangseth
2000-07-12  0:00                                     ` Howard W. LUDWIG
2000-07-12  0:00                                       ` Greg
2000-07-12  0:00                                         ` Eirik Mangseth
2000-07-13  0:00                                       ` Joachim Durchholz
2000-07-14  0:00                                         ` David Kristola
2000-07-14  0:00                                           ` Matthew J Heaney
2000-07-16  0:00                                           ` Joachim Durchholz
2000-07-17  0:00                                             ` David Kristola
2000-07-19  0:00                                               ` Joachim Durchholz
2000-07-25  0:00                                                 ` Richard Riehle
2000-07-18  0:00                               ` Interesting thread in comp.lang.eiffel Veli-Pekka Nousiainen
2000-07-19  0:00                                 ` Ken Garlington
     [not found]                             ` <i4k95.7512$7%3.571616@n <397D8CC3.BB0C9001@ix.netcom.com>
2000-07-29  0:00                               ` Writing better software was: Design by Contract (was Re: Interesting thread in comp.lang.eiffel) Kent Paul Dolan
2000-07-29  0:00                                 ` Ken Garlington
2000-07-31  0:00                                   ` Stefan Skoglund
2000-08-01  0:00                                     ` Ken Garlington
2000-08-01  0:00                                   ` Kent Paul Dolan
2000-08-01  0:00                                     ` Ken Garlington
2000-07-31  0:00                                 ` Simon Brady
2000-07-30  0:00                                   ` John Magness
2000-08-01  0:00                                     ` Simon Brady
2000-08-01  0:00                                       ` Simon Brady
2000-08-04  0:00                                         ` Robert I. Eachus
2000-08-04  0:00                                           ` Simon Brady
2000-08-01  0:00                                       ` Ken Garlington
     [not found]   ` <39573CAB.BB90DF92@gecm.com>
     [not found]     ` <8j8ek0$24la$3@ID-9852.news.cis.dfn.de>
     [not found]       ` <3957ED3E.E64E7390@lmco.com>
     [not found]         ` <8k8orn$1tlh9$1@ID-9852.news.cis.dfn.de>
     [not found]           ` <94S95.9936$7%3.667320@news.flash.net>
2000-07-13  0:00             ` Interresting thread in comp.lang.eiffel Joachim Durchholz
2000-07-14  0:00               ` Ken Garlington
2000-07-16  0:00                 ` Joachim Durchholz
2000-07-16  0:00                   ` Ken Garlington
     [not found]   ` <8j7i54$j7d5@news.kvaerner.com>
     [not found]     ` <395887EB.8D612FC7@deepthought.com.au>
     [not found]       ` <395A190E.FD4D8978@easystreet.com>
     [not found]         ` <6Yt65.3417$MS3.72586@news1.online.no>
     [not found]           ` <395A7E7E.FE57E036@easystreet.com>
     [not found]             ` <8jermi$5cb2@news.kvaerner.com>
     [not found]               ` <395BCE66.2BE8EE0A@eiffel.com>
     [not found]                 ` <wccaeg3gj61.fsf@world.std.com>
     [not found]                   ` <395D113D.1F654A68@eiffel.com>
     [not found]                     ` <dus75.5086$MS3.105182@news1.online.no>
     [not found]                       ` <395E5D16.C4D109F1@eiffel.com>
2000-07-18  0:00                         ` Interesting " Veli-Pekka Nousiainen
replies disabled

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