[comp.lang.ada] DoD Small Business Innovation Research Program

karl@grebyn.com (Karl Nyberg) (09/23/89)

This is the list the DoD SBIR FY90 topics that explicitly call out Ada in
the titles.  Phase I efforts are typically on half-person year effort over a
period not to exceed six months.  Phase I proposals are limited to 25 pages,
and may receive awards up to $50,000 each.  It is estimated that as many as
1200 Phase I awards will be made during FY 90.  Phase II awards are up to
$500,000 and 450 such awards are anticipated during FY 90.

Copies of the solicitation are available from the SBIR Program Office,
Washington, DC.

Closing date on proposals is 5 January 1990.

-- Karl --

==================================================================

Army A90-030: Distributed Ada Real-Time Software: Development and Execution
Support

OBJECTIVE: The objective of this project is to provide support for the
development of distributed Ada real-time software for loosely coupled
homogeneous microprocessors.  This will include addressing the issues of an
Ada compilation system and a distributed runtime environment that will
effect the distribution of a program through an integrated process without
manual modification of code.

CATEGORY: Basic Research.

DESCRIPTION:

GENERAL: In order to obtain the performance needed for Ada hard real-time
embedded software systems it is often necessary to distribute a program so
it runs on an network of loosely coupled microprocessors.  The Ada language
provides a tasking model that can be used as a single mode of concurrency if
distributed rendezvous can be supported across multiple processors.  There
is currently no simple method defined to accomplish the development,
testing, and execution of distributed Ada programs.  Software developed for
distributed systems often involves manual preprocessing of source code or
postprocessing of object code in order to effect the distribution.  There
are no provisions for, among other things, dynamic task migration between
processors, transparent network debugging support with synchronous halting
of all processors and system clocks, analysis of behavior that could predict
overload conditions, analysis of tradeoffs involved when network interface
standards are imposed that affect real-time response requirements, allowing
for standard fault tolerance techniques, and testing that time requirements
are being met by the software running on multiple processors.  Distributed
support is needed from an integrated compiler/linker/tester environment with
a distributed runtime in order to realize the benefits of using the Ada
tasking model of concurrency as a uniform model among multiple processors.

The results of Phase I will include an analysis of the current
state-of-the-art in the development of distributed real-time Ada
systems, specifically in the tools to support distributed development
and execution.  It will propose a solution that will answer as a minimum
the issues described in this solicitation.  This solution will be
embodied in proposed development, testing, and execution tools and a
proposed distributed Ada runtime environment concept that will
demonstrate the viability of the approach to accomplish the distribution
of an Ada program.

Phase II will implement the proposed prototypes that will support the
implementation, testing, and execution of distributed Ada software.

PHASE I: Research will be completed exploring issues and concepts and
prototype solutions will be proposed.

PHASE II: Proposed prototypes will be developed.

PHASE III: Proposed product will be developed.

==================================================================

Army A90-159.  Ada Programming Support Environment (APSE) Definition

OBJECTIVE: The objective of this task is to develop and implement and [sic]
APSE for the command based on the command's development, enhancement, and
maintenance characteristics.  APSE's should be formed for these three major
domains, with emphasis on large, medium and small systems.

CATEGORY: Exploratory Development.

GENERAL: Numerous CASE tools have been introduced into the marketplace over
the last few years.  Coupled with the fact there are multifaceted functions
and level of efforts within the development, enhancement and maintenance
arenas for Management Information Systems (MIS), a detailed study is needed
to professionally infuse tools, environments, and methodologies for each of
the MIS life cycle phases into a productively [sic] matrix.  Phase I would
be to perform the research to identify tools, environments and
methodologies, and produce a "how they all fit together" matrix.  Therefore,
in choosing an environment and a method, the appropriate tools from the
matrix should dictate an appropriate APSE for an MIS/"business data
processing" domain.  Phase II would be to demonstrate APSEs.

PHASE I: Phase I would be to perform the research to identify tools,
environments and methodologies, and produce a "how they all fit together"
matrix.  Therefore, in choosing an environment and a method, the appropriate
tools from the matrix should dictate an appropriate APSE for an
MIS/"business data processing" domain.

PHASE II: Phase II would be to demonstrate MIS related APSEs.

==================================================================

Navy N90-274: Tools to Assist in Modification and Reuse of Ada Software

CATEGORY: Exploratory Development

OBJECTIVE: To develop software tools that will assist the Ada programmer in
understanding existing Ada software so that it ma be more easily modified or
reused.

DESCRIPTION: An acute need exists today for tools that will improve the
productivity of the programmer who must, or wishes to, make use of Ada code
written by someone else.  These tools are intended to help the programmer do
the following: 1) install a large existing system that is written in Ada and
make modifications to it.  (The programmer, who is told to install a 50000
source lines of code Ada software system and to make enhancements to it,
needs help.) 2) Reuse one component of a larger system.  (An example of this
is rusing the user interface from the Inertial navigation system.) 3) Reuse
or modify Ada code in some other manner.  A great deal of public domain Ada
software exists in the SIMTEL20 and other repositories.  Usually before
software can be reused it must be modified to fit a particular application.
Tools that will facilitate the rapid understanding of potentially reusable
Ada software are needed.  These tools should encourage reuse as well of the
use of Ada repositories.

Some examples of such tools are listed below.  Certainly there are others.

1) A graphics tool that reads in Ada source code and creates Buhr Diagrams,
Boochagrams, or other meaningful graphical representations of the source
code. 2) A file that summarizes the contents of Ada files.  The input is the
list of Ada files that contain the software.  The output is the list of
files and the Ada program units contained within, with indentation to
indicate nesting.  3) A tool that automatically expands "is separate" Ada
statements to include the code contained in the separate files.  Such a tool
would eliminate the need for the programmer to examine multiple listings
when "is separate" statements are used.

PHASE I: Determine capability to develop the tools.

PHASE II: Develop specific tools for immediate use in naval systems as
specified by DON/SPAWAR/NOSC.

==================================================================

Navy N90-291 A Prototype Ada Repository for Command and Control Software
		Components

CATEGORY: Advanced Development

OBJECTIVE: Software for Navy Command and Control systems is a major product
of the Naval Ocean Systems Center.  Ada, the programming language mandated
for use by the Department of Defense, is now being used in the development
of Navy Command and Control systems.  Due to a limited number of software
engineers, an increase in software being developed, and a shrinking
Department of Defense budget, it is critical to gain maximum utilization of
our limited resources.  One such gain may be in the area of reusable
software components.  While the information to be processed by the myriad
systems currently under development may be unique, many of the capabilities
provided by these systems are similar.  Being able to design, develop, store
and retrieve reusable software components which satisfy the functionality of
command and control system will aid the software engineering in curtailing
software costs while contributing to software development productivity.  The
elements of this effort will include hardware, software tools, a repository
of existing reusable components and software engineers assigned to a command
and control software development program.  The objective is to provide a
prototype system that can be easily accessed by software engineers to
provide software components for possible reuse in the development of new
Command and Control systems.

DESCRIPTION: Phase I: Through domain analysis, specific operations of
Command and Control software will be identified and grouped.  An example of
such functionality may include message origination, message parsing and
database updating.  A design of a database for Ada software components, a
design for the retrieval of the information and tools to assist the software
engineer would be specified and made available.  The format and method for
acquiring software component descriptions, techniquest to identify a
taxonomy and to locate relevant components and identification of naming
conventions will be developed.

PHASE II: Ada software components will be acquired to fill and test the
prototype.  The system will be made available to software engineers and
metrics associated with the use of the prototype will be gathered.  An
evaluation of these metrics as well as an evaluation of the repository
itself will be used to enhance the prototype.  Analysis of this information
will improve understanding of the policies, methods and tools needed to
encourage reuse of Ada software.

PHASE III: A follow-on phase will identify methods to improve the
organization and expert system tools to aid in the retrieval of information.
Additional software components will be identified and added to the software
repository; selected components may also be deleted.

==================================================================