From: pukite
Newsgroups: comp.lang.ada
Subject: DoD "Competition" and "Reuse"
Date: 17 Dec 92 01:27:00 GMT
Organization: DAINA
News-Software: VAX/VMS VNEWS 1.41


In an earlier posting Gregory Aharonian asks (Questions for STARS 92):

> 4) Reuse Adoption - How to get reuse into practice.  

> Is anyone going to ask if the DoD should be competing with the private 
> sector, or 
> ask if the DoD is ever going to find out why its contractors DONT like to 
> spend money buying reusable components?

Although the above questions are directed to the DoD organizations,
I will attempt to answer them from a DoD contractor's perspective.

We are a small R&D organization involved in developing next-generation
Ada software for fail-safe and fault-tolerant military systems.  In this
capacity we serve as a prime contractor to the various DoD organizations.

We have not seen any examples of where the DoD has attempted to
compete with the private sector.  In fact, the DoD organizations have 
been careful to protect the private sector.  For example, all of our 
contracts have included clauses that required an initial survey of
the available research and software.  New software development was
permitted only in those cases where the required software was not
available from the private sector.

To reduce the project cost (and help the taxpayer) we often use
earlier developed and government furnished software.  Again, there is
ample protection for the private sector.  Thus, quoting from a recent 
"The Statement of Terms and Conditions for Release of Air Force Owned
or Developed Software", we note the following clauses:

.. Further, the software shall not be used in any DoD or Government 
environment which will result in competition with other software
packages offered by commercial firms. ...

.. The requestor agrees that the XXX software and/or modified version
thereof, will not be published for profit or in any manner offered 
for sale to the Government; it will not be sold or given to any other
activity without prior DoD written approval. ...

To help to answer the second part of the question, I will relate our
experience with one of the private sector reusable Ada component packages 
that we investigated last year.  This package came to our attention because 
it was mentioned in the SIMTEL Ada Software Digest and reputedly contained
examples of Ada programs developed with these components.  We downloaded
the compressed file (msdos\ada\ada_met1.zip), unzipped it, and began
our investigation.  

Since we were starting a new project, we decided to look at the first 
program (ADA_COST.EXE).  This program supposedly asks a series of
fifty questions that deal with various cost model variables.  The first
question asked us to enter the maximum, expected, and minimum values for
the new code (in kilo-lines). - After entering 200, 150, and 100,
respectively, we expected the next question.  Instead, we received:

** Unhandled NUMERIC_ERROR
   Arithmetic Overflow Detected
On Line Number 0 in *SYSTEM*

and then a return to the MSDOS prompt.

Next, we attempted a smaller number (0.9).  This time we got only as far
as entering the maximum value.  And the response was:

** Unhandled IO_EXCEPTIONS.DATA_ERROR
On Line Number 0 in *SYSTEM*

followed by a return to the system prompt. 

We tried a few more tests, including reversed values (larger min than
max) and negative values.  Many of these were accepted, others bombed out.
At this point, we had reached our decision.  To save the taxpayer's money
we did not order the library package (priced at $450).  There was no way
we would take chances on using any components from this library in
a critical DoD application.  

Our next step was to ask the SIMTEL manager to remove this package from
the repository.  The answer from SIMTEL was: "the ASR is a REPOSITORY of 
software offered AS-IS.  It is NOT a referred library."  Maybe they meant
refereed, but the offending program was still in the SIMTEL20 MSDOS
collection at the start of this year.

Note that there are well-designed components in the SIMTEL collection 
that provide support for our applications.  These include a portable text 
formatter, file pager, MIL-STD 2167 templates, etc.

Why don't DoD contractors like to spend money buying reusable components?
-- Because they are often unusable and in the end they are paid by the
taxpayer (at least on a COST type contract).

Also, when purchasing reusable components from the private sector, all DoD 
contractors should request certification that these components were not
developed with government funds.  This is because DoD regulations do not 
permit charging the government for software that was originally developed 
with government funding (no double charging).

Yes, it is possible to write really bad Ada software.  But it is also 
possible to write good Ada software that is robust, transportable, reliable, 
and dependable.  

All of our military software is 100% Ada.  A key factor is that all Ada 
components (self-developed or reused) must be reusable within our 
environment, which can then be used on other projects, including using Ada 
in the development of our commercial software.


Paul  Pukite
pukite@vz.acs.umn.edu