comp.lang.ada
 help / color / mirror / Atom feed
From: demer@cdfsun03 (David Emery)
Subject: Re: Gov't, non-DoD use of Ada (C-based COTS no excuse...)
Date: 1996/09/17
Date: 1996-09-17T00:00:00+00:00	[thread overview]
Message-ID: <DEMER.96Sep16212222@cdfsun03> (raw)
In-Reply-To: JSA.96Sep10141151@alexandria


>COTS, modified or not, pretty much pushes you into use of C, as the vast
>bulk of existing NDI/COTS code available and suitable for ATC is written
>in C.  I think many systems will end up with mixtures of C and Ada, as
>it's almost never cost effective to rewrite working fielded code just
>because it isn't in the language of choice, whatever that might be. 
>Adding support for an additional language is orders of magnitude cheaper
>and less risky than rewriting a few hundred thousand lines of code.

I agree with the second point, but I think that the excuse that "the
COTS is written in C, so we have to write the application in C" is a
technical and managerial red herring.  

In 12 years of implementing Ada bindings to COTS written in C (I
started doing this with Vads/Ultrix 4.0.6 in 1984...), I've found that
there were very few situations where I couldn't construct an effective
Ada binding to the C-based COTS.  And, more importantly, the Ada
binding development costs more than paid for itself in reducing
debugging time.  

In one example, the MITRE prototype binding to XVT, the team estimated
that the Ada binding prevented or trapped most of the interface bugs
with XVT.  For instance, where the C implementation used a union, we
used a variant record.  We caught several 'type mismatches' via a
constraint_error on the use of a discriminant value that did not match
the expected discriminant (e.g. trying to pass a field when a button
was expected.)  In C, these would have been much harder to discover.
And, we found several bugs in the COTS product by trying capture and
'project' the COTS C-based semantics into Ada.

My guesstimate was that we recovered the 4 staff-weeks it took us to
do the Ada binding in 2 months of using the binding, and this on a
5-person project producing only 20ksloc of code as a subset/prototype.
For 'real development' (the system we subsetted was about 150ksloc
with full functionality), the Ada binding probably had at least a 5-1
return on investment, mostly in reduced debugging time, but also in
increased understanding of the underlying COTS product.

Where I'm working now, we have developed (or had the vendor develop)
several Ada bindings to COTS products for GUI, digital mapping, etc.  
Although some of the bindings were not done the way I would have done
them, in all cases they have been "in the noise" with respect to the
overall product costs.  And I've been the benificiary of a lot of bugs
that were prevented via strong-typing/compiler errors, or that were
caught early with an appropriate error message, by our Ada bindings.  

And I -am- working in the ATC domain!

				dave
--
<.sig is away on vacation>





  parent reply	other threads:[~1996-09-17  0:00 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-08-24  0:00 Gov't, non-DoD use of Ada Robert B. Love 
1996-08-26  0:00 ` John Woodruff
1996-09-05  0:00 ` Joe Gwinn
1996-09-05  0:00   ` Robert B. Love 
1996-09-06  0:00     ` Chris Brand
1996-09-06  0:00       ` Larry Kilgallen
1996-09-08  0:00       ` Michael Feldman
1996-09-18  0:00         ` Joe Gwinn
1996-09-20  0:00           ` Michael Feldman
1996-09-09  0:00       ` Alex P. Madarasz, Jr.
1996-09-08  0:00     ` Richard Riehle
1996-09-06  0:00   ` Ron Thompson
1996-09-09  0:00     ` Joe Gwinn
1996-09-10  0:00       ` Ron Thompson
1996-09-11  0:00     ` Kevin D. Heatwole
1996-09-06  0:00 ` Jon S Anthony
1996-09-10  0:00 ` Jon S Anthony
1996-09-10  0:00   ` Bob Noel
1996-09-16  0:00     ` Joe Gwinn
1996-09-17  0:00   ` David Emery [this message]
1996-09-12  0:00 ` Sandy McPherson
replies disabled

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