[comp.lang.ada] Technical Reports

rjh@cs.purdue.EDU (Bob Hathaway) (03/09/89)

I've been asked to repost these to comp.lang.ada, they first appeared in 
comp.doc.techreports.


These  reports  are  available from Technical Information Center (DTIC) and the
National Technical Information Service (NTIS).  To obtain a copy of any of  the
reports,  please  contact  DTIC  or  NTIS directly, providing them with the ADA
number for the desired report.  (For example, _ADA169705_ is  the  DTIC  number
for  the  SEI  report  _Toward  a  Reform  of  the  Defense Department Software
Acquisition Policy_.)






Software Engineering Institute                       Carnegie Mellon University
                                                         Information Management
                                                 Pittsburgh, Pennsylvania 15213


1 January 1987 -- 31 December 1987        Annotated list of available documents 
				 			    for public release.


Defense Technical Information Center (DTIC)
ATTN: FDRA
Cameron Station
Alexandria VA 22304-6145

National Technical Information Service (NTIS)
U.S. Department of Commerce
Springfield, VA 22161

-------------------------------------------------------------------------------
1987 Technical Reports
-------------------------------------------------------------------------------

ADA180905
Weiderman, Habermann, Borger, Klein, M., Landherr, Smeaton, Altman,
D'Ippolito, Kochmar, Sun
Evaluation of Ada Environments

The full report provides a detailed description of the methodology and examples
of  its  usage.   Chapter 1 gives an extended cross-environment analysis of the
results of the project.  For each of five experiment groups, it compares  three
APSEs.   The chapter provides an overview of the results of all the experiments
and is written for the technical manager.  Chapter 2 describes  in  detail  the
methodology  used  for  evaluating  the  environments,  along  with some of the
background  information  and  references  to  previous  work   in   environment
evaluation.    Chapters  3  through  8 provide detailed descriptions of the six
experiment groups.  Here one can find the information on  particular  criteria,
questions,  and  life cycle activities that were tested for each experiment, as
well as test scripts, checklists, and resulting data that were collected.
-------------------------------------------------------------------------------

ADA178971
Martin A., Deasy
The Effect of Software Support Needs on DoD Software Acquisition
Policy:  Part 1:  A Framework for Analyzing Legal Issues

This report summarizes the significant technical and managerial  considerations
that  affect the maintenance and enhancement of software.  Prior work suggested
that it is often in the acquisition of intellectual property needed to maintain
and  enhance  software  that  data  rights  disputes  arise between DoD and the
private sector.  For this reason, an understanding  of  DoD's  maintenance  and
enhancement  requirements  is  a  necessary  predicate  toward  shaping  a data
rights/software acquisition policy that achieves the proper balance between the
intellectual  property  needs  of  DoD and the proprietary interests of private
industry.  A survey of software engineering literature revealed no  study  that
addressed  this important subject.  Accordingly, the Software Licensing Project
undertook to  examine  the  issue  itself.    Although  this  report  discusses
technical  and  managerial  issues,  it  is principally intended as a guide for
lawyers and policymakers who deal with, and have regulatory responsibility for,
software and data rights acquisition issues.
-------------------------------------------------------------------------------
ADA178178
Johnson
SEI Software Engineering Education Directory

The  purpose  of  this directory is twofold.  First, it should help people make
rational choices among software engineering courses  and  software  engineering
degree  programs  by presenting a detailed listing of what courses and programs
are available.  The other major purpose is to establish contact between the SEI
and the institutions which offer these courses and programs.
-------------------------------------------------------------------------------

ADA182982
Druffel, Wood, Pethia, Greenberger, Shuba
Software and System Warranty Issues

This  report  addresses technical and administrative issues associated with the
system warranty process, and recommends  a  straightforward,  two-page  generic
system warranty clause that covers software, not in isolation, but as part of a
warranted system.  The report describes one approach to relieving  problems  of
system  failure, and addresses legal, technical, and administrative issues that
support warranty enforcement.  The goal is to ease the government's  burden  of
proving  the  existence  of  a  defect for which the warranty clause provides a
remedy.  The key to satisfying that goal is  to  develop  technical  tests  and
specifications  that provide objective and demonstrable standards against which
a claim for breach of warranty can be measured.
-------------------------------------------------------------------------------

ADA181853
Cooper
Distributed Systems Technology Survey

This report is one of a series of survey  reports.    It  is  not  intended  to
provide an exhaustive discussion of topics pertinent to the area of distributed
systems technology.  Rather, it is intended as an  informative  review  of  the
technology surveyed.  These surveys were conducted in late 1985 and early 1986.

One  of  the  core technology areas in which project members were interested is
distributed systems technology.   This  report  surveys  the  technical  issues
involved  in  designing  distributed systems, with particular emphasis on those
aspects that affect software engineering environments.
-------------------------------------------------------------------------------
ADA181852
Feiler
User Interface Technology Survey

This report is one of a series of survey  reports.    It  is  not  intended  to
provide an exhaustive discussion of topics pertinent to the area of distributed
systems technology.  Rather, it is intended as an  informative  review  of  the
technology surveyed.  These surveys were conducted in late 1985 and early 1986.

One  of  the  core technology areas in which project members conducted a survey
was user interface technology.  This report attempts to do two things:  specify
an  understanding  of user interfaces by presenting a taxonomy that encompasses
the various  aspects  of  user  interfaces,  and  indicate  the  state  of  the
technology today by highlighting some of the major issues.
-------------------------------------------------------------------------------
ADA181156
Newcomer
Tool Interface Technology

This  report  is  one  of  a  series  of survey reports.  It is not intended to
provide an exhaustive discussion of  topics  pertinent  to  the  area  of  user
interface  technology.   Rather, it is intended as an informative review of the
technology surveyed.  These surveys were conducted in late 1985 and early 1986.
-------------------------------------------------------------------------------

ADA182003
Ford, Gibbs, Tomayko
Software Engineering Education: An Interim Report from the Software
Engineering Institute

The goals and activities of  the  Software  Engineering  Institute's  Education
Program are described.  Two curriculum recommendations are presented, one for a
professional Master of Software Engineering degree program, and the  other  for
an  undergraduate project course in software engineering.  Also presented is an
organizational structure for software engineering curriculum content.
-------------------------------------------------------------------------------

ADA182023
Foreman, Goodenough
Ada Adoption Handbook

The Ada Adoption Handbook provides program managers with information about  how
best  to tap Ada's strengths and manage this new software technology.  Although
the issues are complex, they are not all unique to Ada.  Indeed, many of  these
issues  must  be  addressed  when using any language for building sophisticated
systems.  The handbook addresses the advantages and risks inherent in  adopting
Ada.    Significant  emphasis  has  been  placed  on  providing information and
suggesting methods that will help  program  and  project  managers  succeed  in
adopting Ada across a broad range of application domains.

The  handbook  focuses  on  the  following  topics:   program management issues
including costs and technical and program control; Ada's  goals  and  benefits;
software  tools  with  emphasis  on compiler validation and quality issues; the
state of Ada technology as it relates to system engineering; the application of
special  purpose  languages; issues related to mixing Ada with other languages;
possible productivity benefits resulting from software reuse; and  implications
for education and training.
-------------------------------------------------------------------------------

ADA182895
Firth, Mosley, Pethia, Roberts, Wood, W.
A Guide to the Classification and Assessment of Software Engineering Tools

Software  engineering  tools  are computer programs that assist people in doing
the work of software engineering.  As understanding of the software engineering
process has broadened and the need to solve problems has intensified, there has
been increasing interest in using software engineering  tools.    Understanding
what  a  tool  does and comparing it to similar tools are difficult tasks given
the diversity of functionality that exists.    This  report  describes  a  tool
classification  technique  that  helps those investigating tools decide where a
tool fits in the software engineering process and identify what a tool does  or
doesn't do.  It also provides guidance to the tool evaluation process and lists
specific criteria that should be considered when evaluating tools.
-------------------------------------------------------------------------------

ADA182895
Humphrey
Characterizing the Software Process:  A Maturity Framework

Improvement in the performance of  software  development  organizations  is  an
essential  national need.  The improvement process has five basic elements:  1.
an understanding of the current status of the development process, 2. a  vision
of  the desired process, 3. a prioritized list of required improvement actions,
4. a plan to accomplish these actions, and 5. the resources and  commitment  to
execute  the  plan.   This paper addresses the first three of these elements by
providing a model for software organizational improvement.   The  structure  of
this  model  provides  five  maturity  levels,  identifies the key improvements
required at each level, and establishes a priority  order  for  implementation.
This  model  has  been  tested  with  a  number  of  organizations and found to
reasonably represent the  status  and  needs  of  actual  software  development
groups.
-------------------------------------------------------------------------------

ADA185742
A. Martin, Deasy
Seeking the Balance between Government and Industry Interests
in Software Acquisition.  Volume I.  A Basis for
Reconciling DoD and Industry needs for Rights in Software

The policy under which the Department  of  Defense  (DoD)  acquires  rights  in
software  and technical data has, in the past, been imbalanced in the direction
of obtaining more rights than necessary to meet its needs.   As  noted  by  the
Packard  Commission, a more balanced policy is in the interests of both the DoD
and industry.  The DoD has recently adopted a new policy for  acquiring  rights
in  technical data, and is developing a separate policy for acquiring rights in
software.  This report offers several recommendations for achieving a  balanced
policy  as  to government funded software, privately funded software, and mixed
funding software that will meet the mission needs of  the  DoD  while  enabling
contractors  to  protect  their  proprietary interests, and commercialize their
software products.
-------------------------------------------------------------------------------

ADA200601
Meyers, Cappellini
The Use of Representation Clauses and  Implementation-Dependent Features in
Ada: I.  Overview

This report, the first in a series, presents an overview of the aspects of  the
Ada  language  relating  to representation clauses and implementation-dependent
features.  Particular emphasis is given to the use of Ada  for  application  to
packed  data  structures. This report is in part tutorial, and several examples
from real-time, mission-critical systems are discussed  in  detail.    A  brief
discussion  of  design  guidelines  for  the  use of representation clauses and
implementation-dependent features is included.
-------------------------------------------------------------------------------

ADA188925
Meyers, Cappellini
The Use of Representation Clauses and Implementation-Dependent Features in
Ada:  IIA.  Evaluation Questions

This report is the second in a series on the use of representation clauses  and
implementation-dependent  features  in Ada.  It is the purpose of this document
to specify a set of questions relevant to the  assessment  of  the  support  of
representation clauses and implementation-dependent features provided by an Ada
compiler.  The questions identified are categorized according to  functionality
and address both qualitative and quantitative aspects.
-------------------------------------------------------------------------------

ADA183429
Humphrey, Kitson
Preliminary Report on Conducting SEI-Assisted Assessments of Software 
Engineering

Characterizing   the   state   of   software  engineering  practice  within  an
organization  is  a  necessary  prerequisite  to   orderly,   meaningful,   and
sustainable  improvement  of  the  organizations  ability to produce or support
cost-effective, high quality  software  products.    The  Software  Engineering
Institute  (SEI)  is  developing  a  methodology  for  conducting  SEI-assisted
assessments of software engineering capability.  The assessment methodology has
five  phases:    1.  selecting the candidate organization, 2. preparing for the
assessment, 3. conducting the assessment, 4.   communicating  final  assessment
findings   and  action  recommendations,  and  5.    post-assessment  follow-up
activities.  This report describes the methodology in detail.
-------------------------------------------------------------------------------

ADA188926
Meyers, Cappellini
The Use of Representation Clauses and Implementation-Dependent Features in
Ada: IIIA.  Qualitative Results for VAX Ada

This report, one in a series, provides a qualitative assessment of the  support
of representation clauses and implementation-dependent features in Ada provided
by the VAX Ada compiler, Version 1.3.    The  evaluation  questions  that  were
presented in a previous report of this series form the basis of the qualitative
assessment.  A subjective evaluation of the support provided for these features
is also presented.
-------------------------------------------------------------------------------

ADA200602
Meyers, Cappellini
The Use of Representation Clauses and Implementation-Dependent Features in
Ada: IIB.  Experimental Procedures

This  report  is one in a series dealing with the use of representation clauses
and implementation-dependent features in Ada.  The purpose of this report is to
discuss  detailed  experimental  procedures  to assess compiler support.  It is
readily acknowledged that the domain of possible experimentation is large.   To
facilitate  the  experimentation,  a  methodology  is  proposed  that relies on
program generators and automated analysis tools.  An example of the methodology
is presented in some detail.
-------------------------------------------------------------------------------

ADA200603
Tomayko
Teaching a Project Intensive Introduction to Software Engineering

This report is meant as a guide to the teacher of the  introductory  course  in
software  engineering.    It contains a case study of a course based on a large
project.  Other models of course organization are also discussed.    Additional
materials   used  in  teaching  the  course  and  samples  of  student-produced
documentation are also available.
-------------------------------------------------------------------------------

ADA185697
Altman, Weiderman
Timing Variation in Dual Loop Benchmarks

Benchmarks that measure time values using a standard system clock often  employ
a  dual  loop  design.  One of the important assumptions of this design is that
textually identical loop statements will  take  the  same  amount  of  time  to
execute.    This  assumption  was  tested  on  two bare computers with Ada test
programs and has been demonstrated to be  inaccurate  in  these  specific  test
cases.
-------------------------------------------------------------------------------

ADA187231
Altman
Factors Causing Unexpected Variations in Ada Benchmarks

Benchmarks  are  often  used  to  describe the performance of computer systems.
This report  considers  factors  that  may  cause  Ada  benchmarks  to  produce
inaccurate  results.    Included  are  examples  from  the ongoing benchmarking
efforts of the Ada Embedded Systems Testbed (AEST) Project  using  bare  target
computers with several Ada compilers.
-------------------------------------------------------------------------------

ADA187230
Humphrey, Sweet
A Method for Assessing the Software Engineering Capability of Contractors

This  document  provides guidelines and procedures for assessing the ability of
potential DoD  contractors  to  develop  software  in  accordance  with  modern
software  engineering methods.  It includes specific questions and a method for
evaluating the results.
-------------------------------------------------------------------------------

ADA200542
Dart, Ellison, Feiler, Habermann
Software Development Environments

"Environment" refers to the collection of hardware and software  tools  that  a
system  developer  uses  to build software systems.  As technology improves and
user expectations grow, an environment's functionality tends  to  change.  Over
the  last  20  years,  the  set  of  software tools available to developers has
expanded considerably.   We  can  illustrate  this  change  by  observing  some
distinctions  in  the  terminology.    "Programming  environment" and "software
development environment" are often  used  synonymously,  but  here  we  make  a
distinction between the two.
-------------------------------------------------------------------------------

ADA200611
Klein, D., Firth
Final Evaluation of MIPS M/500 Final Report for the RISC Insertion Project

In response to a request from the DoD, an analysis of a Reduced Instruction Set
Computer (RISC) processor, the  MIPS  M/500,  was  performed.  All  aspects  of
processor  capabilities  and  support  software  were  evaluated,  tested,  and
compared to familiar Complex Instruction Set Computer (CISC) architectures.  In
all  cases,  the RISC computer and its support software performed better than a
comparable CISC computer. This report provides the general and specific results
of  these  analyses,  along  with  the  recommendation  that  the DoD and other
government agencies seriously consider this or other RISC  architectures  as  a
highly  viable  and  attractive  alternative  to  the  more  familiar  but less
efficient CISC architectures.
-------------------------------------------------------------------------------

ADA191096
Weiderman, Borger, Cappellini, Dart, Klein, M., Landherr
Ada for Embedded Systems:  Issues and Questions

This report addresses issues and questions  related  to  the  use  of  Ada  for
embedded systems applications; it contains some preliminary recommendations for
compilation system implementors, application developers, program managers,  and
Ada  policy  makers.  The  issues  and  questions  provide  the context for the
Real-Time Embedded Systems Testbed (REST)  Project  at  the  SEI,  where  staff
members  are  investigating  software  development  and  performance issues for
real-time embedded systems.
-------------------------------------------------------------------------------

ADA200607
Donohoe
Ada Performance Benchmarks on the MicroVAX II:  Summary and Results

This report documents the results  obtained  from  running  the  University  of
Michigan  and  the  ACM  SIGAda  Performance  Issues  Working  Group (PIWG) Ada
performance benchmarks on a DEC VAXELN MicroVAX II using  the  DEC  VAXELN  Ada
compiler.  A  brief  description  of the benchmarks and the test environment is
followed by a discussion of some problems encountered and lessons learned.  The
output of each benchmark program is also included.
-------------------------------------------------------------------------------
ADA200608
Donohoe
A Survey of Real-Time Performance Benchmarks for the Ada Programming
Language

This  survey provides a summary description of some of the major Ada benchmarks
currently available and an evaluation of their applicability to  the  Real-Time
Embedded  Systems  Testbed Project at the SEI. The benchmarks discussed are the
University of Michigan benchmarks, the ACM  Performance  Issues  Working  Group
(PIWG)  benchmarks, and the prototype Ada Compiler Evaluation Capability (ACEC)
of the Institute for Defense Analyses (IDA).
-------------------------------------------------------------------------------
ADA188100
Mark Borger
VAXELN Experimentation:  Programming a Real-Time Clock and Interrupt Handling
Using VAXELN Ada 1.1

This report describes the results of implementing an interrupt handler  totally
in Ada for a MicroVAX II/VAXELN 2.3 target system, the VAXELN 1.1 Ada compiler,
and a KWV11-C programmable real-time clock.  It provides an overview of  VAXELN
interrupt  handlers  and  the  operation  of the real-time clock; discusses and
demonstrates the use of VAXELN kernel services to establish a link between  the
clock's  interrupt  and  the  starting address of an interrupt service routine;
presents an Ada package of interfaces  to  the  KWV11-C  device;  provides  Ada
source  code  examples  demonstrating  the  use  of  this package; and presents
relevant observations, recommendations, and measurement results.
-------------------------------------------------------------------------------
ADA188932
Weiderman
Criteria for Constructing and Using an Ada Embedded System Testbed

The purpose of this report is to list some of the criteria used in five aspects
of  the  project:   the hardware configuration, the software configuration, the
real-time application, the Ada real-time experiments, and the benchmarking  and
instrumentation  techniques.  Each criterion will include a rationale.  Each of
the criteria listed in this report will be  categorized  as  either  essential,
highly desirable, or desirable.
-------------------------------------------------------------------------------

ADA200609
Weiderman, et al.
Annual Technical Report for Ada Embedded Systems Testbed Project

The  purpose  of  the  Ada  Embedded  Systems  Testbed  Project (now called the
Real-Time Embedded Systems Project) is to  investigate  some  of  the  critical
issues  in  using  Ada  for  real-time  embedded applications, particularly the
extent  and  quality  of  the  runtime  support  facility   provided   by   Ada
implementations.   The project's objective has been to generate new information
about using Ada in real-time embedded systems. This information is in the  form
of benchmark test results, higher level experiment results, and lessons learned
in designing and implementing real-time applications in Ada.    This  technical
report  provides  an  overview of the results produced in the first year of the
project (through September 30, 1987). Details of these results are contained in
other referenced technical reports.
-------------------------------------------------------------------------------

ADA200612
Borger
VAXELN Experimentation: Programming a Real-Time Periodic Task Dispatcher
Using VAXELN Ada 1.1

The  purpose  of  this  paper  is  to  provide  the  reader with some technical
information and observations, Ada source code, and measurement results based on
experimentation with respect to developing a real-time periodic task dispatcher
in Ada.  In this context, a periodically scheduled task set implies  that  each
task  in  the  set  is  executed  at  its  own fixed frequency; a periodic task
dispatcher is a software component that schedules the individual tasks at their
implied  runtime  frequency.    The  results  presented  here are specific to a
MicroVAX-II/VAXELN 2.3 target system,  the  VAXELN  1.1  Ada  compiler,  and  a
KWV11-C  programmable  real-time  clock.    Specifically, these results provide
answers to the question: How can one achieve the effect of scheduling a set  of
periodic  Ada  tasks when the runtime frequency of some of the individual tasks
is  less  than  the  clock-cycle  frequency  supported  by   an   Ada   runtime
implementation?
-------------------------------------------------------------------------------

ADA200604
Landherr, Klein, M.,
Inertial Navigation System Simulator: Behavioral Specification

The  Real-Time  Embedded  Systems  Testbed Project at the SEI is specifying and
developing a representative real-time application. This  document  augments  an
original set of specifications written by a Navy affiliate. The purpose of this
behavioral specification is to clarify and augment the original.
-------------------------------------------------------------------------------

ADA200605
M. Klein, Landherr
Inertial Navigation System Simulator Program: Top-Level Design

A real-time Ada application, an Inertial Navigation System (INS) simulator,  is
being  developed by the Real-Time Embedded Systems Testbed Project as a vehicle
to analyze issues regarding the use of Ada in the real-time embedded domain and
to  provide  a  context  for  future experimentation.  The technical philosophy
behind developing a real-time Ada artifact is to:  (1) select a  representative
(e.g.,  strict  timing  demands, multiple concurrent activities, low-level I/O,
error handling, interrupts, and periodic activities) real-time application; (2)
use  Ada  tasks  as  the  unit of concurrency for the real-time design; and (3)
apply any relevant practical results being produced by the real-time scheduling
research  community.  In  particular,  the  INS simulator must satisfy a set of
timing requirements that are similar to an INS with respect to  data  updating,
message  transmission,  and  message  reception.    This document discusses the
top-level design of this application from  three  points  of  view:  data  flow
perspective,   concurrency   and   control  perspective,  and  the  Ada  module
perspective.
-------------------------------------------------------------------------------

ADA188928
Van Scoy
Prototype Real-Time Monitor: Executive Summary

This report summarizes the history, goals, and  conclusions  of  the  prototype
real-time monitor development effort. This effort was undertaken to address two
specific technical questions: 1) How can user tools find, access,  and  display
data hidden in the bodies of Ada applications? 2) How can user tools be layered
on top of Ada  applications?    The  effort  resulted  in  a  generally  usable
prototype,  which  is  documented  by  four other SEI reports (CMU/SEI-87-TR-36
through CMU/SEI-87-TR-39).
-------------------------------------------------------------------------------

ADA188929
D'Ippolito, Lee, K., Plinta, Rissman, Van Scoy
Prototype Real-Time Monitor: Requirements

The requirements imposed by flight simulators  and  good  software  engineering
practice  on  Ada systems force software engineers to seek new solutions to the
problem of monitoring executing software. This report examines  some  of  these
requirements   and,   based   on  these  requirements,  defines  a  subset  for
implementation as a prototype real-time monitor (RTM).
-------------------------------------------------------------------------------

ADA188930
Van Scoy, Plinta, Coddington, T., D'Ippolito, Lee, K.
Prototype Real-Time Monitor: User's Manual

This report defines the user  interface  to  the  prototype  real-time  monitor
(RTM).  It  defines  the concepts and commands needed by a software engineer to
use the RTM.  In addition to defining the user interface, the  report  explains
the steps needed to tailor the RTM to work with the user's application.
-------------------------------------------------------------------------------
ADA188931
Van Scoy, Plinta, D'Ippolito, Lee, K., Rissman
Prototype Real-Time Monitor: Design

This  report  describes  the  software  design  used to implement the prototype
real-time monitor requirements.  The  design  is  presented  at  three  levels:
system  level,  object  level,  and  package  architecture  level.   The report
concludes with a discussion of the key implementation obstacles that had to  be
overcome  to  develop  a  working  prototype:    determining  system addresses,
communicating with an  executing  application,  accessing  application  memory,
converting data into human-readable form, and distributed CPU architectures.
-------------------------------------------------------------------------------

ADA191095
Van Scoy
Prototype Real-Time Monitor: Ada Code

This report documents the Ada code of the prototype real-time monitor.
-------------------------------------------------------------------------------

ADA200610
Donohoe
Ada Performance Benchmarks on the Motorola MC68020: Summary and Results

This  report  documents  the  results  obtained  from  running  the  ACM SIGAda
Performance Issues Working Group (PIWG) and  the  University  of  Michigan  Ada
performance  benchmarks on a Motorola MC68020 microprocessor (MVME133 VMEmodule
Monoboard Microcomputer), using the Systems Designers  Ada-Plus,  the  TeleSoft
TeleGen2, and the Verdix VAX/VMS hosted cross-compilers. A brief description of
the benchmarks and the test environment is followed by  a  discussion  of  some
problems encountered and lessons learned. Wherever possible, the output of each
benchmark program is also included.
-------------------------------------------------------------------------------
ADA200606
Firth, Wood, Pethia, Roberts, Mosley, Dolce
A Classification Scheme for Software Development Methods 

Software development methods are used to assist with the process  of  designing
software  for real-time systems. Many such methods have come into practice over
the last decade, and new methods are emerging.   These  new  methods  are  more
powerful  than the old ones, especially with regard to real-time aspects of the
software.    This  report  describes  a  classification  scheme  for   software
development methods, includes descriptions of the major characteristics of such
methods, and contains some words  of  advice  on  choosing  and  applying  such
methods.
-------------------------------------------------------------------------------
ADA199877
Hefley
Issues in Software:  A Blue Two Visit Feasibility Assessment

The  SEI participated in a series of fact-finding meetings sponsored by the Air
Force  Coordinating  Office  for  Logistics  Research  to  gather   information
necessary  to set the scope for and to implement one or more Blue Two Visits on
software. The purpose of a Blue Two Visit (BTV) is to introduce  to  industry's
top  design engineers and program managers the day-to-day constraints Air Force
maintainers face on front-line operations bases.  The  participants  experience
first-hand  the  effects  of  design  on  maintenance.   This exposure has been
significant in bridging the gap between  DoD  and  industry  in  understanding,
documenting,  and  supporting  Air Force weapon system requirements to increase
combat supportability.  This  report  documents  discussions  that  attempt  to
address  the  following  questions  for a software-oriented BTV: 1) Do software
maintainers and users have messages for software designers and programmers?  2)
What are these messages? 3) How can these messages be best communicated?  4) To
whom should these messages be targeted? 5) What should the BTV be called?
-------------------------------------------------------------------------------
ADA191097
Lee, Rissman, D'Ippolito, Plinta, Van Scoy
An OOD Paradigm for Flight Simulators

This report presents a paradigm for object-oriented implementations  of  flight
simulators.    It  is  a result of work on the Ada Simulator Validation Program
(ASVP) carried out by members of the technical staff at the SEI.
-------------------------------------------------------------------------------

ADA188927
Ford, editor
Report on the SEI Workshop on Ada in Freshman Courses

The Undergraduate Software Engineering Education Project of the  SEI  Education
Program  sponsored  a  workshop  on  Ada  in Freshman Courses in June 1987. The
workshop brought  together  several  educators  to  discuss  how  the  software
engineering  content of beginning programming and data structures courses might
be improved. This report describes the workshop and summarizes the  discussions
and  conclusions,  and  it  also  includes  the position papers prepared by the
participants.
-------------------------------------------------------------------------------

ADA188923
Nestor
Views for Evolution in Programming Environments

Programming environments have become  a  focal  point  for  much  of  the  work
directed   toward  improving  the  practice  of  software  engineering.    Such
environments must provide mechanisms for recording and organizing  the  complex
set  of  persistent  technical and management data associated with all parts of
the life cycle of large software systems. This paper focuses on  one  important
aspect  of  such  persistent  data:    how to allow evolution when the existing
information must be preserved without change to maintain history.   First,  the
role  of history in programming environments is discussed. Next, the additional
demands of evolution are considered and shown to lead to  a  set  of  problems.
View  mechanisms  are suggested as a solution to the problems. A simple example
involving file system directory structure  is  presented  to  illustrate  these
problems.   A simple view mechanism, called multidirectories, is introduced and
shown to solve the illustrated problems.
-------------------------------------------------------------------------------

ADA188924
Nestor
Evolving Persistent Objects in a Distributed Environment

This paper considers a class of objects, called incrementally mutable  objects,
that  are intermediate between mutable and immutable objects.  Intuitively, the
only permitted modifications to an incrementally mutable object are those  that
add  new  information  to  the  object  while  preserving existing information.
Changes   to   incrementally   mutable   objects   do   not   require   central
synchronization.    When  a network becomes partitioned, the same incrementally
mutable object can be safely modified in each subnetwork.  A mutable object can
be  modeled  by  a  set  of  immutable objects that represent each value of the
object over  time  and  an  incrementally  mutable  object  that  relates  each
immutable  object  to  its  successor.    Multiple  successors are permitted to
represent parallel changes.
-------------------------------------------------------------------------------
ADA188922
Stone, Nestor
IDL:  Background and Status

This paper presents an overview of the Interface  Description  Language  (IDL).
We describe the language and its history. We also discuss the status of the IDL
community.
-------------------------------------------------------------------------------

ADA199634
Engle, Firth, Graham, Wood, B.
Interfacing Ada and SQL

The SEI was asked by the Ada Joint Program Office to investigate the problem of
interfacing   programs   written   in  Ada  with  database  management  systems
implementing the SQL database language. The authors decided to concentrate on a
description  of  the  problems involved in producing an interface that would be
worthy of becoming a standard. This document is meant to assist the  reader  in
answering the question "What constitutes a good interface between Ada and SQL?"
The document should be useful both in the production of a standard and  in  the
analysis of any proposed standard.
-------------------------------------------------------------------------------
-- 
Carnegie Mellon University
Software Engineering Institute
(412) 268-6378

rjh@cs.purdue.EDU (Bob Hathaway) (03/09/89)

I've been asked to post these to comp.lang.ada, they first appeared in 
comp.doc.techreports (part 2 of 2).

Software Engineering Institute                       Carnegie Mellon University
                                                         Information Management
                                                 Pittsburgh, Pennsylvania 15213


1 January 1988 -- 31 December 1988        Annotated list of available documents 
				 		       for public release, 1988.



These  reports  are  available  from  the  Defense Technical Information Center
(DTIC) and the National Technical Information Service (NTIS).  To obtain copies
of  the  reports, please contact DTIC or NTIS directly, providing them with the
ADA number for the desired report(s).  (For example, _ADA200631_  is  the  DTIC
number for the SEI report _Summary of SEI Technical Operations: 1987_.)

Defense Technical Information Center (DTIC)
ATTN: FDRA
Cameron Station
Alexandria VA 22304-6145

National Technical Information Service (NTIS)
U.S. Department of Commerce
Springfield, VA 22161




-------------------------------------------------------------------------------
1988 Technical Reports
-------------------------------------------------------------------------------

ADA200631
Summary of SEI Technical Operations:  1987

During 1987, the SEI had five programs in place: Ada-Based Software Engineering
Program, Education Program, Software Process Program, Pilot  Projects  Program,
and  Technology Transition Program. These programs, their 1987 accomplishments,
and their planned work are described in this document.  In  addition,  the  SEI
affiliate   functions,  computing  facilities,  building,  staff,  and  service
accomplishments are also described.
-------------------------------------------------------------------------------
ADA200630
Johnson
The Software Engineering Education Directory

This directory provides information  about  software  engineering  courses  and
software  engineering  degree  programs that are available in the United States
and Canada.
-------------------------------------------------------------------------------
ADA201345
Graham, Miller, D.
ISTAR Evaluation

ISTAR is  an  integrated  project  support  environment  produced  by  Imperial
Software  Technology,  Ltd.   This evaluation of ISTAR is intended for software
technologists  considering  the  adoption  of  an  integrated  project  support
environment.   Researchers and others interested in environments and evaluation
methods will also benefit from this report.
-------------------------------------------------------------------------------

ADA197136
Hansen, Over
Evaluation and Recommendations for Technology Insertion into Technical Order 
Maintenance

As the need for mission-critical software systems  increases,  Post  Deployment
Software Support (PDSS) activities will require increased priority in planning.
PDSS is "the sum  of  all  activities  required  to  ensure  that,  during  the
production/deployment  phase  of a mission-critical computer system's life, the
implemented and fielded  software/system  continues  to  support  its  original
missions, and subsequent mission modifications and product improvements.  PDSS,
therefore, includes not only software "maintenance"  but  also  the  activities
required for overall system support.

The  SEI  recognizes  the  importance  of  PDSS activities in the life cycle of
mission-critical  systems.    In   March   1986,   SEI   personnel   met   with
representatives  of  the  Air  Force  Logistics  Command  (AFLC)  at  Ogden Air
Logistics Center (OO-ALC), Hill Air Force Base, Utah,  to  determine  if  there
were  areas  in  PDSS  that  the  SEI  could address.  The AFLC representatives
described the activities  performed  at  Air  Logistics  Centers  and  problems
encountered  in  those  activities.    As  a  result  of  this meeting, the SEI
authorized a feasibility study to determine how it might best interact with the
PDSS  community.  This report, written in August 1987, describes the evaluation
process and the ensuing recommendations for technology insertion into technical
order maintenance.
-------------------------------------------------------------------------------
ADA200085
Bass, Hardy, Hoyt, Little, Seacord
Introduction to the Serpent User Interface Management System

Serpent  is  an  example  of  the  class  of  systems known as a User Interface
Management System.  It uses the X Window System to interact with the end  user,
and  is  useful  both  as  a  portion  of a production system and as a separate
prototyping tool.  Serpent supports the development and execution of  the  user
interface  of  a  system.  It provides an editor with which to specify the user
interface and a runtime system that communicates with the  application  to  get
the  data  to display. The system then uses the specification previously output
from the editor to decide how to display that  data.  This  report  provides  a
technical  overview  of  Serpent, its components, the module used in specifying
the user interface, and the editor used in constructing the user interface.
-------------------------------------------------------------------------------

ADA196664
Bass, Hardy, Hoyt, Little, Seacord
Serpent Runtime Architecture and Dialogue Model

This paper describes the runtime architecture and dialogue model of the Serpent
User Interface Management System (UIMS). Serpent uses existing software systems
to create a UIMS  based  on  a  structured  production  model  to  specify  the
dialogue,  and  uses a database approach for communication between its internal
layers.  The model  for  the  dialogue  in  Serpent  supports  simultaneity  of
subdialogues  and  presents the dialogue specifier with a model that views data
as mapping from the application to the presentation.  The database approach for
communication  between the layers provides a model that application programmers
understand well and find easy to use. The  approach  also  provides  the  power
necessary  to  decouple the application structures from the structures implicit
in the user interface.
-------------------------------------------------------------------------------

ADA197490
Feiler, Smeaton
The Project Management Experiment

This report covers a project management (PM) experiment, one of six experiments
that examine different functional areas of Ada programming environments. The PM
experiment was designed as part of the Evaluation of Ada Environments  Project.
This  report describes the environment-independent part of the experiment:  the
activities covering the  functional  area,  the  evaluation  criteria,  and  an
experiment  scenario to be performed on different environments.  The experiment
as it stands has been  validated  through  internal  and  external  review  and
through application to several environments that support project management.
-------------------------------------------------------------------------------

ADA197416
Wood, Pethia, Roberts, Firth
A Guide to the Assessment of Software Development Methods

Over  the past decade, the term "software engineering methods has been attached
to a variety of procedures and techniques that attempt to provide  an  orderly,
systematic  way  of  developing software. Existing methods approach the task of
software engineering in different ways. Deciding which methods to use to reduce
development costs and improve the quality of products is a difficult task. This
report outlines a five- step process and an organized  set  of  questions  that
provide  method  assessors with a systematic way to improve their understanding
of and form opinions about the  ability  of  existing  methods  to  meet  their
organization's needs.
-------------------------------------------------------------------------------

ADA197137
Kellner, Hansen
Software Process Modeling

An  SEI  objective  is to provide leadership in software engineering and in the
transition of new software engineering technology  into  practice.  This  paper
discusses a software process modeling case study conducted at the SEI.
-------------------------------------------------------------------------------

ADA197671
Feiler, Smeaton
Managing Development of Very Large Systems:  Implications for Integrated 
Environment Architectures

Version  and  configuration control are mechanisms for managing source code and
system builds.  In the development of very large systems, built by large teams,
development  management  is  the  dominant  factor.    In this paper we examine
management  support  for  development  through  integrated   environments   and
investigate  the  implications  for  environment  architectures.    We do so by
defining a project scenario that is to be  performed  with  integrated  project
support  environments.    The  scenario has been carefully designed to not only
determine the scope  of  management  functionality  provided  by  a  particular
environment,   but   also   to  probe  implications  for  the  architecture  of
environments.  The implications discussed in this  paper  are:  focus  on  user
activities;  the  integration  of  project  management  and development support
concepts;  the  ability  to  reinforce  and  avoid  conflict  with   particular
organizational  models;  the  ability  to  support  evolution and change of the
product, environment, and organization; and the capability for  adaptation  and
insertion  into  a work environment.  The scenario is part of a methodology for
evaluation  of  environments  currently  used  at  the   Software   Engineering
Institute.
-------------------------------------------------------------------------------

ADA198934
Feiler, Dart, Downey
Evaluation of the Rational Environment


This  report  presents an analysis of the Rational R1000 Development System for
Ada, also called the Rational Environment.  The evaluation combined the use  of
the  Software  Engineering  Institute  (SEI)  methodology for evaluation of Ada
environments, an analysis of functionality not covered by that methodology, and
an   assessment   of   the  novel  environment  architecture  of  the  Rational
Environment.  In addition  to  this  report,  Experiment  Transcripts  for  the
Evaluation  of the Rational Environment, by Grace Downey, Mitchell Bassman, and
Carl Dahlke (CMU/SEI-88-TR-21) contains support material for  the  experimental
results.  The support material is the result of performing experiments based on
the SEI's environment evaluation methodology.  It consists  of  transcripts  of
the  experiments,  the  detailed  answers  to the evaluative questions, and the
detailed performance results.
-------------------------------------------------------------------------------

ADA198933
Bamberger, Colket, Firth, Klein, D., Van Scoy
Kernel Facilities Definition

This document defines the conceptual design of the Kernel by specifying 1)  the
underlying  models, assumptions, and 2) restrictions that govern the design and
implementation of the Kernel; and the behavioral and  performance  requirements
to  which the Kernel is built.  This document is the requirements and top level
design document for the Kernel.
-------------------------------------------------------------------------------

ADA199482
Bamberger, Colket, Firth, Klein, D., Van Scoy
Distributed Ada Real-Time Kernel

This  paper  addresses  two   distinct   needs   of   real-time   applications:
distribution  and  hard  real-time  scheduling  mechanisms.  Specifically, this
paper rejects both the notion of modifying the Ada language to  achieve  needed
real-time  solutions  and  the  current  fad  of  extensively modifying the Ada
compiler and/or vendor-supplied runtime system.  Instead,  this  paper  defines
the  functionality  of a Distributed Ada Real-time kernel (hereafter called the
Kernel).  The goal of the Kernel is to support  effectively  the  execution  of
distributed,  real-time Ada applications in an embedded computer environment by
returning control to the user, where it belongs
-------------------------------------------------------------------------------

ADA199480
Barbacci, Doubleday, Weinstock
The Durra Runtime Environment

Durra is a language designed to support PMS-level programming.  PMS stands  for
Processor-Memory-Switch,  the  name  of  the  highest level in the hierarchy of
digital systems.  An application or PMS-level program is written in Durra as  a
set  of task descriptions and type declarations that prescribes a way to manage
the resources of a heterogeneous machine network.   The  application  describes
the tasks to be instantiated and executed as concurrent processes, the types of
data to be exchanged by the processes, and the intermediate queues required  to
store the data as they move from producer to consumer processes.

This  report describes the Durra Runtime Environment.  The environment consists
of three active components: the application tasks, the Durra  server,  and  the
Durra  scheduler.    After  compiling the type declarations, the component task
descriptions, and the application description, the application can be  executed
by  starting  an instance of the server on each processor, starting an instance
of the scheduler on one of the processors, and downloading the  component  task
implementations (i.e., the programs) to the processors.  The scheduler receives
as an argument the name of the file containing the scheduler program  generated
by  the  compilation  of  the application description.  This step initiates the
execution of the application.
-------------------------------------------------------------------------------
ADA199481
Barbacci, Doubleday
Generalized Image Library: A Durra Application Example

Durra is a  language  designed  to  support  the  construction  of  distributed
applications  using  concurrent,  coarse-grain  tasks  running  on  networks of
heterogeneous processors.  An application written in Durra describes the  tasks
to  be  instantiated and executed as concurrent processes, the types of data to
be exchanged by the processes, and the intermediate queues  required  to  store
the data as they move from producer to consumer processes.

This  report  describes  an  experiment  in  writing task descriptions and type
declarations for a subset of the Generalized Image  Library,  a  collection  of
utilities  developed  at  the Department of Computer Science at Carnegie Mellon
University.  The experiment illustrates the  development  of  a  typical  Durra
application.    This  is  a  three  step  process: first, a collection of tasks
(programs) is designed and implemented (these are the GIL programs); second,  a
collection  of  task  descriptions corresponding to the task implementations is
written  in  Durra,  compiled,  and  stored  in  a  library;  and  finally,  an
application description is written in Durra and compiled, resulting in a set of
resource allocation and scheduling commands to be interpreted at  runtime.    A
few  sample  application  descriptions were developed as part of the experiment
and are also reported in this document.
-------------------------------------------------------------------------------

ADA199429
Barbacci
MasterTask:  The Durra Task Emulator

Durra is a  language  designed  to  support  the  construction  of  distributed
applications  using  concurrent,  coarse-grain  tasks  running  on  networks of
heterogeneous processors.  An application written in Durra describes the  tasks
to  be  instantiated and executed as concurrent processes, the types of data to
be exchanged by the processes, and the intermediate queues  required  to  store
the data as they move from producer to consumer processes.

The  tasks  and  types available to an application developer are described by a
collection of Durra  task  descriptions  and  type  declarations  stored  in  a
library.  One of the components of a task description is a specification of the
external timing behavior of the task.  It describes the sequence of  input  and
output  port  operations  and  the amount of processing time spent between port
operations.

This report describes MasterTask, a program that can emulate  any  task  in  an
application  by  interpreting  the timing expression describing the behavior of
the task, performing the  input  and  output  port  operations  in  the  proper
sequence and at the proper time.

MasterTask  is  useful  to  both  application  developers  and task developers.
Application developers can build early prototypes of an  application  by  using
MasterTask  as  a  substitute  for  task  implementations  that  have yet to be
written.  Task developers can experiment with and evaluate proposed changes  in
task  behavior or performance by rewriting and reinterpreting the corresponding
timing expression.
-------------------------------------------------------------------------------
-- 
Carnegie Mellon University
Software Engineering Institute
(412) 268-6378