[comp.doc.techreports] tr-input/sei7

leff@smu.UUCP (Laurence Leff) (08/15/89)

PART IV of V

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

1 January 1986 -- 4 August  1989          Annotated list of available documents.

Technical  reports  that  have  DTIC  numbers  are  available  from the Defense
Technical Information Center (DTIC)  and  the  National  Technical  Information
Service  (NTIS).    (As  an  example,  ADA169705 is the DTIC number for the SEI
report Toward a Reform of the Defense Department Software Acquisition  Policy.)
If  you  wish to request a copy of one of the following reports, please contact
either DTIC or NTIS directly.

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

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


CMU/SEI-88-TR-5, 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.



CMU/SEI-88-TR-6, 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.



CMU/SEI-88-TR-7, 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.



CMU/SEI-88-TR-8, 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.


CMU/SEI-88-TR-9, 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.



CMU/SEI-88-TR-11, 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.

CMU/SEI-88-TR-13
Holibaugh, Perry
Phase I Testbed Description: Requirements and Selection Guidelines

The Application of Reusable Software Components Project has constructed a reuse
testbed  for  conducting   software   engineering   experiments   in   software
reusability.    The  hardware and system software of the testbed will provide a
distributed computing environment with file-server capability for  the  storage
of  reusable  components  and  other artifacts of the development process.  The
testbed will support  a  variety  of  domain-independent  and  domain-dependent
reusable  components.    The testbed will also support tools that foster reuse.
This document contains the requirements and selection criteria for the  testbed
hardware,  software, reusable resources, and an environment.  For each of these
four testbed resources, the requirements are grouped into five  areas:  support
of  experiments,  maximization  of experience and reusability, applicability to
problem domains, acceleration of technology transition, and advancing the state
of the practice in reuse.

CMU/SEI-88-TR-15, 
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.


CMU/SEI-88-TR-16, 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.



CMU/SEI-88-TR-17, 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.


CMU/SEI-88-TR-18, 
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.



CMU/SEI-88-TR-19, 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.

CMU/SEI-88-TR-20, 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.



CMU/SEI-88-TR-21, ADA204634
Downey, Bassman, Dahlke (Computer Sciences Corporation)
Experiment Transcripts for the Evaluation of the Rational Environment

This report supplements the  report  Evaluation  of  the  Rational  Environment
(CMU/SEI-88-TR-15).  It contains the instantiation of the experiments presented
in  the  Evaluation  of  Ada  Environments  by   Nelson   Weiderman,   et   al.
(CMU/SEI-87-TR-1).      Overall   conclusions  and  analysis  of  the  Rational
Environment can be found in Evaluation of the Rational Environment.



CMU/SEI-88-TR-22, ADA204399
Perry
Perspective on Software Reuse

This report presents a perspective on software reuse in the context of  "ideal"
software  development  capabilities.    Software  reuse is viewed as a means of
achievingMor  at  least  approximatingM  the  idea  capabilities.    A  generic
application  and  development  model  is proposed for unifying various types of
software reuse.  The model can be initially  formulated  as  a  project  family
architecture  and  produced  from  a  domain  features  analysis.  The approach
presented in  this  report  is  intended  to  lead  to  a  reuse  strategy  and
methodology for software development.



CMU/SEI-88-TR-23, ADA204850
Meyers, Weiderman
Functional Performance Specification for an Inertial Navigation System

This  document  defines  the  functional  and  performance requirements for the
inertial navigation system simulator that interfaces with the external computer
system (ECS) simulator.  Both the INS simulator and the ECS simulator are being
developed in Ada by the Real-Time  Embedded  Systems  Testbed  Project  at  the
Software  Engineering  Institute  (SEI).    The  INS  simulator is similar to a
real-world  INS,  but  has  reduced  functionality.    This  document  provides
specifications for the major functions of the INS simulator.



CMU/SEI-88-TR-24
Meyers, Weiderman
System Specification Document: Shipboard Inertial Navigation System Simulator
and External Computer

This  document  specifies  high-level  requirements  for  a  shipboard inertial
navigation system (INS) simulator and an external  computer  system  that  will
interface with the inertial navigation system.



CMU/SEI-88-TR-25, ADA200611
Meyers, Mumm Functional Performance Specification for an 
External Computer System Simulator

This  document  defines  the  functional  and  performance requirements for the
external computer system (ECS) simulator  that  interfaces  with  the  inertial
navigation  system simulator.  Both the ECS simulator and the INS simulator are
being developed in Ada by the Real-Time Embedded Systems Testbed Project at the
Software  Engineering  Institute  (SEI).    The  ECS  simulator is similar to a
real-world  ECS,  but  has  reduced  functionality.    This  document  provides
specifications for the major functions of the ECS simulator.



CMU/SEI-88-TR-26, ADA204757
Pedersen, Klein, M.
Using the Vienna Development Method (VDM to Formalize
a Communication Protocol)

The Vienna Development Method (VDM is based upon iterative refinement of formal
specifications written in the model-oriented specification  language,  Meta-IV.
VDM  is  also  an  informal  collection  of experiences in formal specification
within several application domains.  This paper provides an example of how  VDM
might be used in the area of communications, a new domain for VDM.



CMU/SEI-88-TR-30, ADA204849
Lee, Rissman, D'Ippolito, Plinta, Van Scoy
An OOD Paradigm for Flight Simulators, 2nd Edition

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



CMU/SEI-88-TR-33, ADA205048
Sha, Goodenough
Real-Time Scheduling Theory and Ada

The  Ada tasking model was intended to facilitate the management of concurrency
in a priority-driven scheduling environment.  In this  paper,  we  will  review
some  important  results of a prioritty-based scheduling theory, illustrate its
applications with examples, discuss its implications for the Ada tasking model,
and  suggest  workarounds  that  permit  us  to implement analytical scheduling
algorithms within the existing framework of Ada.


CMU/SEI-88-TR-34, ADA207544
Sha, Rajkumar, Lehoczky, Ramamritham,
Mode Change Protocols for Priority-Driven Preemptive Scheduling

In many real-time applications, the set of tasks in the system as well  as  the
characteristics of the tasks change during system execution.  Specifically, the
system moves from one mode of execution to another as its  mission  progresses.
A  mode  change is characterized by the deletion of some tasks, addition of new
tasks, or changes in the parameters of  certain  tasks,  e.g.,  increasing  the
sampling  rate  to  obtain  a  more  accurate  result.   This paper discusses a
protocol for systematically accomplishing mode  change  in  the  context  of  a
priority-driven preemptive scheduling environment.


CMU/SEI-89-TR-1, ADA206573
Humphrey, Kitson, Kasse
The State of Software Engineering Practice:  A Preliminary Report

This is the first in a series of SEI reports to provide periodic updates on the
state of software engineering practice in the DoD software community.  The  SEI
has  developed, and is refining, a process framework and assessment methodology
for characterizing the processes used by software organizations to develop  and
evolve software products.  This report provides a brief overview of the process
framework and assessment approach, describes  assessment  results  obtained  to
date,  and discusses implications of the current state of the practice for both
customerrs and suppliers of DoD software.


CMU/SEI-89-TR-1
Humphrey, Kitson, Kasse
The State of Software Engineering Practice:  A Preliminary Report

This is the first in a series of SEI reports to provide periodic updates on the
state  of software engineering practice in the DoD software community.  The SEI
has developed, and is refining, a process framework and assessment  methodology
for  characterizing the processes used by software organizations to develop and
evolve software products.  This report provides a brief overview of the process
framework  and  assessment  approach,  describes assessment results obtained to
date, and discusses implications of the current state of the practice for  both
customers and suppliers of DoD software.


CMU/SEI-89-TR-2
Humphrey, Kellner
Software Process Modeling: Principles of Entity Process Models

A defined software process is needed to provide organizations with a consistent
framework for performing their work and improving the  way  they  do  it.    An
overall framework for modeling simplifies the task of producing process models,
permits them to be  tailored  to  individual  needs,  and  facilitates  process
evolution.    This  paper  outlines the principles of entity process models and
suggests ways in which they can help to address some of the problems with  more
conventional approaches to modeling software processes.



CMU/SEI-89-TR-4, ADA206574
Bass, Coutaz
Human-Machine Interaction Considerations

This document introduces current concepts and techniques relevant to the design
and implementation of user interfaces.    A  user  interface  refers  to  those
aspects of a system that the user refers to, perceives, knows, and understands.
A user interface is implemented by code that mediates  between  a  user  and  a
system.  This document covers both aspects.



CMU/SEI-89-TR-5, ESD-TR-89-5
Lee, K., Rissman, M.
An Object-Oriented Solution Example:  A Flight Simulator Electrical System

This  report  describes  an  implementation  of  a subset of an aircraft flight
simulator electrical system.  It is a result  of  work  on  the  Ada  Simulator
Validation  Program  (ASVP) carried out by members of the technical staff (MTS)
at the SEI.  The MTS developed  a  paradigm  for  describing  and  implementing
flight  simulator systems in general.  The paradigm is a model for implementing
systems  of  objects.    The  objects  are  described  in  a  form  of   design
specification  called  an  object  diagram.    This report has been prepared to
demonstrate a full implementation of a  system:    package  specifications  and
bodies.  The intent is to provide an example; the code is functional, but there
is no assurance of robustness.



CMU/SEI-89-TR-6, ADA206779
Editors:  Martin, D., Carey, Coticchia, Fowler, Maher
Proceedings of the Workshop on Executive Software Issues
August 2-3 and November 18, 1988

These proceedings document the results of  two  sessions  of  the  Workshop  on
Executive  Software Issues held at the Software Engineering Institute on August
2-3 and November 18, 1988.  The purpose of  the  workshop  was  to  define  the
issues  that  should  be  brought to the attention of executives in the defense
industry, government, and academia and to propose resolutions to those  issues.
The  issues  discussed  were  divided  into  three  broad categories:  national
strategy, acquisition, and building large complex systems.   Described  in  the
proceedings are the major issues and recommended actions.



CMU/SEI-89-TR-7
Olson, Humphrey, Kitson
Conducting SEI-Assisted Software Process Assessments

This  report  describes  software  process  assessment  as  it  is performed in
organizations with the assistance of the Software Engineering Institute  (SEI).
A  software  process  assessment is an appraisal or review of an organization's
software process (e.g., software development process).  The main objectives  of
such  an assessment are to understand the state of practice in an organization,
to identify key areas  for  improvement,  and  to  initiate  the  actions  that
facilitate  those  improvements.   This report is specifically addressed to the
organizations  and  assessment  team  members  that  may  be  involved  in   an
SEI-assisted software process assessment.



CMU/SEI-89-TR-8, ADA207445
Weinstock
Performance and Reliability Enhancement of 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.

A runtime environment for Durra has been operational for some time.  There  are
two  major  problems  with this initial implementation: it makes no significant
attempt to tune the performance of the system, and  reliability  has  not  been
designed  into  the  system.   This report describes a new design for the Durra
runtime  environment  that  addresses  these  two  issues.    The  new  runtime
environment  consists  of two major components: a local executive which runs on
every processor and is responsible for process  and  queue  management,  and  a
global executive which runs replicated on several processors and is responsible
for configuration management and reliability services.

CMU/SEI-89-TR-9, ADA206575
Barbacci, Doubleday, Weinstock, Baur, Bixler, Heins
Command, Control, Communications, and Intelligence Node:  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 implementing a command, control, communications  and
intelligence  (C3I)  node  using  reusable components.  The experiment involves
writing task descriptions and  type  declarations  for  a  subset  of  the  TRW
                           3
testbed,  a collection of C I software modules developed by TRW Defense Systems
Group.    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  testbed  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.



CMU/SEI-89-TR-10, ADA207545
McSteen, Schmick, Editors
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.


-------listing continued in next post-------
-- 

But who were they all in your sleep last night, first one then the next,
with their menace, wild sempahore, and lusts?  I hardly know where you find
the strength come morning.		August Kleinzahler