[comp.doc.techreports] tr-input/sei90.6B

leff@CSVAX.SEAS.SMU.EDU (Laurence Leff) (07/10/90)

Software Engineering Institute
Information Management
Annotated list of available documents for external distribution.
Part II of VI

1 January 1986 - 29 June 1990



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-1, 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.



CMU/SEI-88-TR-3, ADA201345
Graham, M. and 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.



CMU/SEI-88-TR-4, ADA197136
Hansen, G. and Over, J.
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 representative
s 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.



CMU/SEI-88-TR-5, ADA200085
Bass, L. et al
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, L. et al
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, P. and Smeaton, R.
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, W. et al
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, M. and Hansen, G.
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, P. and Smeaton, R.
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, R. and Perry, J.
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, ADA198934
Feiler, P. et al
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 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, J. et al
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, J. et al
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, ADA199480
Barbacci, M. et al
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, M. and Doubleday, D.
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, M.
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, G. et al
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, N., 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, J.
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 achieving--or at least approximating--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, C. and Weiderman, N.
Functional Performance Specificationfor 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. 
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, C. and Weiderman, N.
System Specification Document:Shipboard Inertial Navigation 
System Simulatorand 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, C. and Mumm, H.
Functional Performance Specificationfor 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. 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, J. and 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, K. et al
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, L. and Goodenough, J.
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, L. et al
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
Humphrey, W. et al
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, ADA211636
Humphrey, W. and Kellner, M.
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, L. and Coutaz, J.
Human-Machine Interaction Considerations for Interactive Software



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, ADA219190
Lee, K.,
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. et al
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, ADA219065
Olson, T. et al
Conducting SEI-Assisted Software ProcessAssessments



This report describes software process assessment as it is performed 
in organizations with the assistance of the Software Engineering Institute. 
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, C.
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, M.,  et al
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 (C#I) node using reusable 
components. The experiment involves writing task descriptions and 
type declarations for a subset of the TRW 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
Editors: McSteen, W., and Schmick, M. 
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.



CMU/SEI-89-TR-11, ADA211344
Sprunt, B. and Sha, L.
Scheduling Sporadic and Aperiodic Events in a Hard Real-Time System



A real-time system consists of both aperiodic and periodic tasks. 
Periodic tasks have regular arrival times and hard deadlines. Aperiodic 
tasks have irregular arrival times and either soft or hard deadlines. 
In this paper, we present a new algorithm, the Sporadic Server algorithm, 
that greatly improves response times for soft-deadline aperiodic tasks 
and can guarantee hard deadlines for both periodic and aperiodic tasks. 
The operation of the Sporadic Server algorithm, its performance, and 
schedulability analysis are discussed and compared with previous, 
published aperiodic service algorithms.



CMU/SEI-89-TR-12, ADA219189
Plinta, C. et al
A Model Solution for C3I Message Translation and Validation



This document describes an artifact, the Message Translation and Validation 
(MTV) model solution. The MTV model solution is a general solution, 
written in Ada, that can be used in a system required to convert between 
different message representations. These message representations can 
be character-based, bit-based, and internal (i.e., Ada values).This 
document provides designers with enough information to determine whether 
this solution is applicable to their particular problem. It gives 
detailed designers the information needed to specify solutions to 
their particular problem using the MTV model solution. Finally, it 
describes the MTV model solution in enough detail to enable a maintainer 
or adapter to understand the solution.

CMU/SEI-89-TR-13, ADA207717
Weiderman, N.
Ada Adoption Handbook:  Compiler Evaluation and Selection Version 
1.0



The evaluation and selection of an Ada compilation system for a project 
is a complex and costly process. Failure to thoroughly evaluate an 
Ada compilation system for a particular user application will increase 
project risk and may result in cost and schedule overruns. The purpose 
of this handbook is to convince the reader of the difficulty and importance 
of evaluating an Ada compilation system (even when there is no freedom 
of choice). The handbook describes the dimensions along which a compilation 
system should be evaluated, enumerates some of the criteria that should 
be considered along each dimension, and provides guidance with respect 
to a strategy for evaluation. The handbook does not provide 
a cookbook for evaluation and selection. Nor does it provide information 
on specific compilation systems or compare different compilation systems. 
Rather it serves as a reference document to inform users of the options 
available when evaluating and selecting an Ada compilation system.



CMU/SEI-89-TR-14, ADA211397
Sha, L. and Goodenough, J.
Real-Time Scheduling Theory and Ada



The Ada tasking model was intended to support the management of concurrency 
in a priority-driven scheduling environment. In this paper, we review 
some important results of a priority-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. This paper is a revision of CMU/SEI-88-TR-33. The most important 
revisions affect our discussion of aperiodic tasks and our analysis 
of how to support the priority ceiling protocol. A shortened version 
is also being presented at the 1989 Ada-Europe Conference.



CMU/SEI-89-TR-15, ADA209607
Borger, M. et al
Implementing Priority Inheritance Algorithms in an Ada Runtime System



This paper presents a high-level design--in the form of necessary 
data structures, mechanisms, and algorithms--for implementing the 
basic priority inheritance and priority ceiling protocols in an Ada 
runtime system. Both of these protocols solve the unbounded priority 
inversion problem, where a high-priority task can be forced to wait 
for a lower priority task for an arbitrary duration of time. The protocols 
and their implementation also address the issues of non-deterministic 
selection of open alternatives and FIFO entry call queues. These protocols 
allow the timing analysis of a given set of Ada tasks in order to 
guarantee their deadlines in real-time systems. Importantly, it is 
possible to implement the protocols within the current semantics of 
the Ada language given the interpretations of Ada rules described 
by Goodenough and Sha in the Software Engineering Institute Technical 
Report 33 (1988). Strategies and possible alternatives are discussed 
for implementing these protocols in an Ada runtime system targeted 
to a uniprocessor execution environment. 



CMU/SEI-89-TR-16
Graham, M.
Guidelines for the Use of the SAME



These guidelines describe the Structured Query Language (SQL) Ada 
Module Extensions, or SAME, a method for the construction of Ada applications 
that access database management systems whose data manipulation language 
is SQL. As its name implies, the SAME extends the module language 
defined in the ANSI SQL standard to fit the needs of Ada. The defining 
characteristic of the use of the module language is that the SQL statements 
appear together, physically separated from the Ada 
application, in an object called the module. The Ada application 
accesses the module through procedure calls.

The primary audience for this document consists of application developers 
and technicians creating Ada applications for SQL database management 
systems. The document contains a complete description of the SAME, 
including its motivation.



CMU/SEI-89-TR-17, ADA211573
Bayer, J. and Melone, N.
Adoption of Software Engineering Innovations in Organizations



Designing effective strategies to facilitate the adoption of new software 
engineering technologies is a complex endeavor. This document describes 
the experiences of organizations in the defense industry that have 
considered and in many cases adopted any one of five software engineering 
technologies: structured programming, program design languages, software 
cost models, complexity metrics, and Ada. In all, 296 respondents 
participated in the entire study. These respondents represented approximately 
120 business units within approximately 75 defense contractor organizations. 
Data were collected using a structured survey instrument administered 
over the telephone.

This report examines the motivations behind technology acquisition 
and adoption decisions, the use of various technology transfer mechanisms 
during the stages of the adoption process, and the relationship between 
technology transfer mechanisms and the timing, pass through, and smoothness 
of adoption process stages. Adoption is assumed to be a multi-stage 
process that may proceed in a linear or non-linear fashion. Also explored 
is the relationship between managerial level of the advocate (i.e., 
top management, middle management, technical management, and broad-based 
support) and the speed and smoothness of technology acquisition and 
adoption.

Analysis of data supports the notion that organizations and change 
agents (e.g., the Department of Defense (DoD)) should carefully tailor 
transition mechanisms and the choice of technology advocate to the 
specific stage of the adoption process, rather than adopt a single 
strategy for the entire process. Moreover, a single adoption strategy 
is not applicable to all technologies. These strategies must also 
be tailored depending on the subtleties of the particular technology.



CMU/SEI-89-TR-18, ADA211514
Sha, L. et al
A Real-Time Locking Protocol



When a database system is used in a real-time application, the concurrency 
control protocol must satisfy not only the consistency of shared data 
but also the timing constraints of the application. In this paper, 
we examine a priority-driven two-phase lock protocol called the read- 
or write-priority ceiling protocol. We show that this protocol is 
free of deadlock, and in addition a high-priority transaction can 
be blocked by lower priority transactions for at most the duration 
of a single embedded transaction. We then evaluate system performance 
experimentally.



CMU/SEI-89-TR-19, ADA219295
Bamberger, J.
Kernel Architecture Manual



This document contains the detailed design description of the Kernel. 
he overall system architecture and the rationale for it are presented 
as relevant to both the application (i.e., the external view of the 
Kernel) and the Kernel maintainer (i.e., the internal view of 
the Kernel). This document presents the algorithms and data structures 
needed to implement the functionality defined in the Kernel Facilities 
Definition. This document also contains an in-depth description of 
the communication protocol used by the Kernel, both the network software 
and hardware that compose the DARK testbed at the SEI, and a detailed 
enumeration of all compiler dependencies exploited by Kernel software. 
his document is geared toward engineers responsible for porting and 
maintaining the Kernel and engineers requiring detailed information 
about the internals of the Kernel.


--