comp.lang.ada
 help / color / mirror / Atom feed
From: Gautier <gautier.demontmollin@maths.unine.ch>
Subject: Re: Win2000 has 63,000 'defects'
Date: 2000/02/16
Date: 2000-02-16T00:00:00+00:00	[thread overview]
Message-ID: <38AA8210.B42E623D@maths.unine.ch> (raw)
In-Reply-To: t7u2ja5lpx.fsf@calumny.jyacc.com

Hyman Rosen:

> > Someone to sell or install them poor an Ada compiler ? ;o) G.

> Why do you think the defects have anything to do with the language
> used to develop Windows 2000? Do you know that the defects are
> coding errors, as opposed to being design errors or unimplemented
> features?

That's not so simple... Some coding errors may be catched at compile time
in one language and appear as an bad crash on an user's screen months
later when coded in another one. As complexity grows, uncatched (coding
or design) bugs tend to combine with other. In some way the "shape"
of a bug disappears rapidly with the complexity and the time elapsed
after the coding.

Some concrete examples. In the code I'm developing (a comparison of
finite element methods for multiple partial differential equations)
there are *lots* of coding issues that have been catched by the compiler
because I'm using Ada's rich typing: simple things like exchanging
the equation and node index, and so on.

You forget that design features help avoiding other *bigger lots* of coding bugs.
Back to the example (a tiny excerpt)...

...
procedure FT_elem(gelem: t_element) is

  nsd:      constant positive:= spatial_dimension(gelem);
  iel:      constant positive:= nodes_per_element(gelem);
  nb_faces: constant positive:= faces_per_element(gelem);

  subtype sp_vector  is vector(1..nsd);         -- vecteur spatial
  subtype sp_matrix  is matrix(1..nsd,1..nsd);  -- matrice spatiale (codecond)
  subtype el_array   is vector(1..iel);         -- tableau sur un element
  subtype el_iarray  is ivector(1..iel);        -- idem, composantes entieres
  subtype el_matrix  is matrix(1..iel,1..iel);  -- matrice elementaire
  subtype el_grad    is matrix(1..iel,1..nsd);  -- gradients sur l'element
...

Needless to comment!

An extreme but true example: a program (some environmental predictor) had
a strange crash recently. There was a line in the 15-year old Fortran code that
"almost" never occured, where a variable name had 2 letters exchanged!...

2 things I'm sure of:
 - every mean is good to track a bug, and I prefer to have a compile-time error
   than a day of Sherlock-Homesque bug tracking with a debugger, after a week of
   disfunctionment
 - the bugfest tends to grow exponentially or factorially or something like that
   (specialists know that better) with code length (and its ratio of bugs...).

BTW you can make a naive probabilistic calculation. Say you have 1000-line
modules. Each of them has a probability of 0.00001 of crashing per hour because of 
an uncatched bug. Now you have a 30,000 module program (say Windows 2000) that
uses all of them during an hour. Each module can crash or not during the hour
independently of each other (a generous hypothesis since bugs normally help
each other). Then, the probability of a crash for the whole program during an hour
is 1.0 - (1.0-0.00001) ** 30_000 = 0.259 (26%).  8-|

Gautier

_____\\________________\_______\_________
http://members.xoom.com/gdemont/gsoft.htm




  parent reply	other threads:[~2000-02-16  0:00 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-02-15  0:00 Win2000 has 63,000 'defects' Gautier
2000-02-15  0:00 ` Florian Weimer
2000-02-15  0:00   ` Larry Kilgallen
     [not found]     ` <38A9C619.790950B0@quadruscorp.com>
2000-02-15  0:00       ` Keith Thompson
2000-02-15  0:00   ` Marin D. Condic
2000-02-17  0:00   ` Ted Dennison
2000-02-17  0:00     ` Gautier
2000-02-15  0:00 ` Hyman Rosen
2000-02-15  0:00   ` Larry Kilgallen
2000-02-15  0:00     ` Hyman Rosen
2000-02-15  0:00       ` Larry Kilgallen
2000-02-15  0:00         ` Hyman Rosen
2000-02-15  0:00           ` Brian Rogoff
2000-02-15  0:00           ` Ed Falis
2000-02-15  0:00             ` Hyman Rosen
     [not found]             ` <RUkq4.1243$dw3.69085@news.wenet.net>
2000-02-15  0:00               ` Dang! (was Re: Win2000 has 63,000 'defects') Mike Silva
2000-02-17  0:00                 ` Preben Randhol
2000-02-17  0:00                   ` Larry Kilgallen
     [not found]           ` <150220001931201946%emery@grebyn.com>
2000-02-17  0:00             ` Win2000 has 63,000 'defects' Dale Pontius
     [not found]               ` <1e66z6d.1a9fzdvtbw6t2N%herwin@gmu.edu>
2000-02-19  0:00                 ` Nick Roberts
2000-02-19  0:00               ` Joe Wisniewski
2000-02-21  0:00                 ` Larry Kilgallen
2000-03-04  0:00                   ` Robert I. Eachus
2000-03-06  0:00                     ` Charles Hixson
2000-03-06  0:00                       ` Robert Dewar
2000-03-07  0:00                         ` Ted Dennison
2000-03-07  0:00                       ` Marin D. Condic
2000-03-07  0:00                         ` Jean-Pierre Rosen
2000-03-08  0:00                           ` Marin D. Condic
2000-02-15  0:00       ` Brian Rogoff
2000-02-17  0:00       ` Preben Randhol
2000-02-16  0:00   ` Gautier [this message]
2000-02-17  0:00   ` Charles Hixson
2000-03-07  0:00     ` Mike Dimmick
2000-03-07  0:00       ` Brian Rogoff
2000-03-08  0:00       ` Dale Pontius
2000-03-08  0:00         ` David Starner
2000-03-08  0:00           ` Ted Dennison
2000-03-08  0:00             ` Laurent Guerby
2000-03-10  0:00             ` Tarjei T. Jensen
2000-02-16  0:00 ` Windows TP (Re: Win2000 has 63,000 'defects') Vladimir Olensky
     [not found] ` <38A9C4ED.C75316F9@raytheon.com>
2000-02-16  0:00   ` Win2000 has 63,000 'defects' Samuel T. Harris
replies disabled

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