comp.lang.ada
 help / color / mirror / Atom feed
From: Bertrand Meyer <Bertrand.Meyer@eiffel.com>
Subject: Re: Critique of Ariane 5 paper (finally!)
Date: 1997/08/22
Date: 1997-08-22T00:00:00+00:00	[thread overview]
Message-ID: <33FDCAF1.1CFBAE39@eiffel.com> (raw)
In-Reply-To: 33FCCC68.60B@pseserv3.fw.hac.com


W. Wesley Groleau wrote:
 
> what some people disagree with is the use of two definitions of
> DBC by the same advocates.
> 
> Def'n 1 - Associating specifications with software elements" and
> related practices.
> Def'n 2 - The Eiffel implementation of a subset of these practices.
> 
> Now before anyone denies having used definition 2,  please explain
> what definition of DBC satisfies the claim "only Eiffel directly
> supports DBC"

This has been explained many times. One can to some degree
apply the principles of Design by Contract in any language,
but among commercially commercially available languages Eiffel
is the only one to offer direct support for "associating
specifications with software elements" as part of the software
elements themselves, i.e. using language constructs --
preconditions, postconditions, class invariants, loop invariants,
loop variants.

In other languages you have to resort to purely methodological
guidelines or to comment conventions etc.
It's better than nothing, but does not go as far, because
the presence of the assertion constructs provides Eiffel
users  with major benefits such as: 

	- Documentation tools (in the supporting environments)
	  that extract the specification from the software.
	  Such tools provide a standard form of documentation
	  for reusable components and are essential to the success
	  of reusability efforts.
	  
	- Better reusable libraries (this too is a property
	  of the environments, made possible by the language)
	  thanks to their extensive
	  use of assertions (e.g. EiffelBase). Also,
	  these libraries naturally serve as models and
	  guides for users learning the approach, so they
	  indirectly lead to  more reliable and clearer
	  application software. 

	- Runtime assertion monitoring (again in the
	  environments) providing a particularly effective
	  tool for testing, debugging and quality assurance.

	- Language rules that associate assertions with
	  inheritance: precondition weakening and postcondition
	  strengthening in routine redefinitions, invariant
	  accumulation (a class inherits its parents'
	  integrity constraints). This is essential to
	  control the power of polymorphism and dynamic
	  binding, further decreasing bug sources.

	- Close connection with the exception handling
	  mechanism.

	- Simplification of the software's structure, since
	  supplier classes can avoid redundant checking
	  of special cases in the presence of preconditions.

	- General improvements in software quality: having
	  a construct in the language itself encourages
	  developers to use it -- especially, as noted, thanks to
	  the influence of reusable components --,  more so than
	  a purely methodological injunction to "be good"
	  and specify. In other words, use of Eiffel
	  helps promote a quality-oriented and
	  reliability-conscious mindset. This is a less
	  directly palpable benefit (and please do not
	  construe it as a claim that "Eiffel users make
	  no errors", no one ever said that) but significant
	  all the same.

Most of this is unique to Eiffel among widely used commercial
languages. Again it does not mean that you cannot get any benefit
of Design by Contract in other languages; you can (especially
if you have used Eiffel before: many people have noted that
you can become a better C++ programmer, for example, if you have
been trained in Eiffel; see e.g the educators' testimonials at
http://www.eiffel.com/services/university/). But you will
get much more in Eiffel.


-- 
Bertrand Meyer, President, ISE Inc.
ISE Building, 2nd floor, 270 Storke Road, Goleta CA 93117
805-685-1006, fax 805-685-6869, <Bertrand.Meyer@eiffel.com>
http://www.eiffel.com, with download instructions




  reply	other threads:[~1997-08-22  0:00 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-08-03  0:00 Critique of Ariane 5 paper (finally!) Ken Garlington
     [not found] ` <dewar.870870888@merv>
     [not found]   ` <33E8FC54.41C67EA6@eiffel.com>
1997-08-07  0:00     ` Ken Garlington
1997-08-07  0:00       ` Ken Garlington
     [not found]         ` <33EB4935.167EB0E7@eiffel.com>
1997-08-08  0:00           ` Bertrand Meyer
1997-08-08  0:00             ` Ken Garlington
1997-08-08  0:00               ` Ken Garlington
1997-08-11  0:00               ` Don Harrison
1997-08-11  0:00               ` Bertrand Meyer
1997-08-12  0:00                 ` Robert Dewar
1997-08-13  0:00                   ` Samuel Mize
1997-08-13  0:00                     ` Ken Garlington
     [not found]                     ` <33F22AD8.41C67EA6@eiffel.com>
1997-08-13  0:00                       ` Bertrand Meyer
1997-08-13  0:00                         ` Ken Garlington
     [not found]                           ` <33F28DBF.794BDF32@eiffel.com>
1997-08-13  0:00                             ` Bertrand Meyer
1997-08-15  0:00                               ` Ken Garlington
1997-08-15  0:00                                 ` Jon S Anthony
1997-08-16  0:00                                   ` Ken Garlington
1997-08-14  0:00                       ` Robert S. White
1997-08-15  0:00                         ` Ken Garlington
1997-08-16  0:00                           ` Robert Dewar
1997-08-14  0:00                       ` Samuel Mize
1997-08-15  0:00                         ` Thomas Beale
1997-08-15  0:00                           ` Samuel Mize
1997-08-15  0:00                             ` Bertrand Meyer
1997-08-15  0:00                               ` Jon S Anthony
1997-08-16  0:00                               ` Ken Garlington
1997-08-14  0:00                       ` Jon S Anthony
1997-08-14  0:00                         ` Bertrand Meyer
1997-08-15  0:00                           ` Jon S Anthony
1997-08-14  0:00                         ` Matthew Heaney
1997-08-14  0:00                         ` geldridg
1997-08-13  0:00                   ` Bertrand Meyer
1997-08-13  0:00                     ` Ken Garlington
1997-08-16  0:00                     ` Robert Dewar
1997-08-17  0:00                       ` Bertrand Meyer
1997-08-19  0:00                         ` Ken Garlington
1997-08-20  0:00                           ` Robert Dewar
1997-08-21  0:00                             ` Thomas Beale
1997-08-21  0:00                               ` Robert Dewar
     [not found]                                 ` <33FD8685.AAAE3B4F@stratasys.com>
1997-08-22  0:00                                   ` Robert Dewar
     [not found]                                     ` <3401811D.1700E7BE@stratasys.com>
1997-08-25  0:00                                       ` Jon S Anthony
1997-08-29  0:00                                       ` Ken Garlington
1997-08-29  0:00                                         ` Jeff Kotula
1997-09-02  0:00                                           ` Ken Garlington
     [not found]                                   ` <33FE8732.4FBB@invest.amp.com.au>
1997-08-26  0:00                                     ` Nick Leaton
     [not found]                                     ` <33FFA324.4DB9@flash.net>
     [not found]                                       ` <34013F3E.27D4@invest.amp.com.au>
1997-08-29  0:00                                         ` Ken Garlington
1997-08-23  0:00                                 ` Ken Garlington
1997-08-20  0:00                           ` Robert Dewar
     [not found]                             ` <33FB3B29.41C67EA6@eiffel.com>
1997-08-20  0:00                               ` Bertrand Meyer
     [not found]                                 ` <5tv9cs$85q@nntpa.cb.lucent.com>
     [not found]                                   ` <340341CA.2F1CF0FB@eiffel.com>
1997-08-27  0:00                                     ` Samuel Mize
1997-08-29  0:00                                     ` Ken Garlington
1997-08-21  0:00                       ` W. Wesley Groleau x4923
1997-08-22  0:00                         ` Bertrand Meyer [this message]
1997-08-22  0:00                           ` W. Wesley Groleau x4923
1997-08-16  0:00                     ` Robert Dewar
1997-08-09  0:00             ` Marinos J. Yannikos
1997-08-07  0:00     ` Juergen Schlegelmilch
  -- strict thread matches above, loose matches on Subject: below --
1997-08-21  0:00 aek
     [not found] ` <33FC66AD.9A0799D4@calfp.co.uk>
1997-08-22  0:00   ` Robert S. White
1997-08-22  0:00     ` Samuel Mize
1997-08-22  0:00       ` Samuel Mize
1997-08-23  0:00     ` Ken Garlington
     [not found]   ` <33FFA4B1.3543@flash.net>
1997-08-26  0:00     ` Nick Leaton
     [not found]       ` <3406BEF7.2FC3@flash.net>
     [not found]         ` <3406E0F7.6FF7ED99@calfp.co.uk>
1997-09-02  0:00           ` Ken Garlington
1997-08-22  0:00 Critique of Ariane 5 paper (finally) AdaWorks
1997-08-22  0:00 Critique of Ariane 5 paper (finally!) Marin David Condic, 561.796.8997, M/S 731-96
replies disabled

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