Re: Design by Contract or Design by Test?
universe_at_covad.net
Date: 01/16/04
- Next message: universe_at_covad.net: "Re: OOA?"
- Previous message: Donald Roby: "Re: OOA?"
- In reply to: John Roth: "Re: Design by Contract or Design by Test?"
- Next in thread: Rod Chapman: "Re: Design by Contract or Design by Test?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Thu, 15 Jan 2004 23:00:45 -0500
"John Roth" <newsgroups@jhrothjr.com> wrote in message
news:100ejcegk8jl05@news.supernews.com...
>
> "Vladimir Levin" <vladimir_levin@yahoo.ca> wrote in message
> news:88f5a83.0401141945.1f964d8@posting.google.com...
> > This group has brought something that's new to me to my attention:
The
> > SPARK language and its capability to do various forms of static
analysis
> > on code. Now I am curious whether these two programming techniques
are
> > complementary or not. Is it worthwhile to precede writing any code
with
> > an automated test /and/ to construct code with annotations that
permit
> > compile-time analysis as described in SPARK? Does one technique
clearly
> > supercede the other? Or are these techniques possibly both
valuable yet
> > entirely mutually exclusive. Also, would SPARK be relevant to
> > development of common business/internet applications? e.g. an
accounting
> > application or a database-driven discussion group or an inventory
> > management system?
> >
> > Here is a link to the Web page about the recently released book
about
> SPARK
> > culled from an earlier discussion:
> >
> > http://www.sparkada.com/book.html#sampler
>
> Interesting pointer. One thing that has impressed me about
> TDD that is not often mentioned in that it continues some of
> the ideas that were advocated in the '70s by Hoare, Wirth,
> Djikstra and others about writing the proof first and then
> writing the code from the proof.
>
> XP writes the test first, for the simple reason that we have
> tools that can do tests. We do not have tools that can do
> proof analysis for most languages of interest, let along tools
> that can do it fast enough to maintain the flow of a TDD
> session.
>
> The thing to understand is that the latter facility is critical:
> to do TDD, the language system (including the prover)
> needs to be able to cycle within a few seconds. I don't
> know of a language system that can do this, let alone do
> it in an industrial setting in a wide range of environments.
What is it about the "rapidity" that enables/disables being to employ
TDD?
While I think programmers should test their code, I think analysis
covering at least minimal study of at least all key use cases should
*drive* an at least minmally overall system design plan - key
subsystems, key interfaces, key layers, key distribution facets, key
storage strategy, key HW, key OSes, etc.
Coding should be subordinate to, and implement the system design plan,
just as for example the cabling people will follow overall system
design. There is always leeway and the coders have their say on the
plan. It's IID (iterative and incremental development) and the plan
may be changed or even tossed and redone overall based upon overall
project evaluation that occurs at minimum for every release cycle.
Among unmentioned management issues, cyclic evaluation considers
programmer feedback, dadabase admin feedback, network people feedback,
other developer's feedback, client release test feedback, on-going
client analysis feedback, other on-going analysis feedback and
on-going minor system design adjustment feedback. Major mods or even
the "toss/redo" may result from cyclic review.
Elliott
-- It has heavily contributed to my subsequent opinion that creating confidence in the correctness of his design was the most important but hardest aspect of the programmer's task. In a world obsessed with speed, this was not a universally popular notion." ~EW Dijkstra
- Next message: universe_at_covad.net: "Re: OOA?"
- Previous message: Donald Roby: "Re: OOA?"
- In reply to: John Roth: "Re: Design by Contract or Design by Test?"
- Next in thread: Rod Chapman: "Re: Design by Contract or Design by Test?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|