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

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

Software Engineering Institute
Information Management
Annotated list of available documents for external distribution.
Part V 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





Special Reports

CMU/SEI-88-SR-2
Hefley, B.
Conference Report:  Overcoming the Disincentives to Modernization 
in the Defense Industry



The Procurement Committee of the National Security Industrial Association 
held its annual winter meeting on 7-10 February 1988. This conference 
report documents the keynote address by Thomas J. Murrin, Distinguished 
Service Professor in Management and Technology, Carnegie Mellon University, 
along with panel sessions on the topic of "Regulatory and Statutory 
Direction of Acquisition" and "Financial Aspects of Disincentives 
to Modernization".



CMU/SEI-88-SR-3, ADA206429
Goodenough, J. and  Locke, D.
A Practical Application of the Ceiling Protocol in a Real-Time System

This paper briefly discusses some of the real-time design issues that 
arise when using the priority ceiling protocol for real-time systems. 
The paper shows a small real-time system and shows how the code in 
the system could be structured to satisfy the requirements of the 
ceiling protocol. 

This paper was presented at the 2nd International Workshop on Real-Time 
Ada Issues in May 1988.



CMU/SEI-88-SR-4
Goodenough, J. and  Sha, L.
The Priority Ceiling Protocol: A Method for Minimizing the Blocking 
of High-Priority Ada Tasks

The priority ceiling protocol is a new technique that addresses the 
priority inversion problem, i.e., the possibility that a high-priority 
task can be delayed by a low-priority task. Under the priority ceiling 
protocol, a high priority task can be blocked at most once by a lower 
priority task. This paper defines how to apply the protocol to Ada. 
In particular, restrictions on the use of task priorities in Ada are 
defined as well as restrictions on the use of Ada tasking constructs. 
An extensive example illustrating the behavior guaranteed by the protocol 
is given.

This paper was presented at the 2nd International Workshop on Real-Time 
Ada Issues in May 1988.



SEI-89-SR-2
Hefley, B.
Continuing Education Workshop, A Special Report on a Needs Analysis 
Workshop



The Software Engineering Institute hosted a Continuing Education Workshop 
for 30 invited industry/government representatives and 13 members 
of the SEI technical staff. The objectives of the 2-day meeting, held 
on October 11-12, 1988, were to begin building an infrastructure of 
software engineering educators from industry and government, to identify 
common unmet needs, and to develop leverage through cooperative efforts. 
Through working groups and discussions, the group focused on the essential 
topics of a software engineering curriculum for practitioners, modes 
of delivery and educational environmental constraints, and desired 
roles for the SEI.



SEI-89-SR-14
Moore
Conformance Criteria for the SAME Approach to Binding Ada Programs 
to SQL



The structured query language (SQL) Ada Module Extensions (SAME) form 
a method for the design and construction of Ada database applications. 
The method is explained in a companion document: 
"Guidelines for the Use of the SAME." In order to enable 
the method to be referenced in requests for proposals (RFPs) and development 
contracts, there must be some method to determine if a given software 
design and implementation conform to the SAME guidelines. Such conformance 
criteria are contained in this report.



CMU/SEI-90-SR-6
Bamberger, J.
DARK Technology Transition Plan



The DARK Transition Project Plan is aimed at the transition of the 
concepts, models, and prototype implementation developed by the DARK 
development project over the past two years.  This document:

1.  Presents the background, rationale, and conceptual goals of 
the DRK Project.

2.  Provides an overview of the phase approach to Technology Transition 
used within the SEI and its relationship to DARK Project 
activities.

3.  Describes the goals and objectives of the DARK Transition Project 
in the context of the phase approach.

4.  Defines the tasks constituting the DARK Transition Project.



CMU/SEI-90-SR-10
Carlson, M. and Smith, G.
Understanding the Adoption of Ada: Results of an Industry Survey

In 1983, the U.S. Department of Defense (DoD) established a policy 
requiring the use of a new programming language, Ada, for the development 
of all new Mission-Critical Computer Resource (MCCR) software that 
it purchases.  Firms that supply the DoD with these systems have shown 
considerable variation in their decisions to incorporate this new 
technology into their products and production processes.  This survey 
is part of a multi-stage research project that sought to understand 
the variability in firms' adoption and use of new information technologies.  
The present report is a follow-up and elaboration on  a case study 
of the adoption of Ada which is described in CMU/SEI-89-TR-28, Understandi
ng the Adoption of Ada:  A Field Study Report.

Participants in the survey were 123 business and technical people 
from 69 business units that supply the DoD with MCCR software systems 
and services. The survey explored factors pertaining to respondents' 
technical and market environments in an attempt to describe depth 
of adoption and to describe the differences between the firms with 
active Ada contracts and those without active contracts.  For firms 
that have adopted Ada the report describes aspects of the language 
and tools that are considered most useful in different application 
areas.   At present, 85% of the units have proposed to use Ada as 
a primary implementation language, and 70% have been awarded a contract 
in which Ada is the primary implementation language.  Within the context 
of this study, Ada contract awards have been in the following application 
areas:  aircraft engines, attack radar, display processors, flight 
control, flight trainers, ground control vehicles, night vision, radar 
warning receivers, missiles, space command and control, and tactical 
command and control.  Survey participants reported that Ada is being 
used in 50% of the new development contracts and is being proposed 
for use in 60% of the contracts in the proposal stage.

CMU/SEI-90-SR-12
Siegel, J. et al
National Software Capacity: Near-Term Study (Executive Summary)



The Ada Language Reference Manual describes (in  Annexes A and 
B) an assortment of compiler pragmas and attributes which a validated 
implementation must support.  In addition to the language-defined 
list, a compilation system is free to offer a supplemental set of 
implementation-defined pragmas and attributes, as long as these extensions 
do not violate the legality of the application text.  Any 
such supplement must also be described within Appendix F of the product 
documentation.  This report examines a large proportion of the pragmas 
and attributes available today to the Ada user community.  Data for 
the analysis is obtained by a survey sample of a substantial number 
of validated Ada implementations.  With the Ada 9X revision process 
in mind, the goal of the study is to identify new pragmas and attributes 
for language definition. Compiler support for the predefined pragmas 
and attributes is first quantified.  The findings show a surprising 
variation between implementations.  This result is apparently due 
to a broad interpretation of the language rules which address the 
requirement for language-defined pragma and attribute support.  
The report recommends a specific change in the text of the LRM to 
remedy the problem, and suggests that improved conformance checking 
be performed during the validation process.  This study also found 
that the language-defined pragma INTERFACE requires substantial changes 
to improve functionality.  The proposed INTERFACE pragma would eliminate 
a plethora of implementation-defined substitutes, thus increasing 
uniformity across compilation systems.  Within the sample, there was 
found a large class of implementation-defined pragmas aimed at improving 
run time performance through Ada usage restrictions.  Under varying 
circumstances, these performance enhancement pragmas can be dangerous 
because their effects are not well understood.  As a minimum precaution, 
this report recommends that a warning be provided to the user during 
program compilation when the possibility of misuse is present. 



CMU/SEI-90-SR-13
Lane, T.
User Interface Software Structures



This thesis codifies the structural choices faced by designers of 
user interface software.  It shows how these choices can be based 
on system requirements.



Miscellaneous

SEI-88-TP-1
Carey, S.
Distributed Ada Real-Time Kernel (DARK) Technology Transition Plan



This plan describes the project objectives and progress of the Distributed 
Ada Real-Time Kernel (DARK) Project in order to effectively plan and 
execute appropriate technology transition activities. The information 
contained within the document was gathered from sources listed in 
the plan history.



CMU/SEI-88-UG-1, ADA204635
Moss, S. and Jackson, P.
An AJPO User's Guide for MH, the Rand Message Handling System



The purpose of this document is to provide an introduction to the 
fundamentals of the Rand Message Handling (MH) system. The document 
is intended to be a tutorial on and a quick reference to the aspects 
of MH that are used most frequently.  This document does not provide 
detailed discussions of the technical aspects of MH, nor does it cover 
all of the topics relevant to advanced use of MH.  For more detailed 
information, see the documents referenced below, or check for Unix 
man pages online or in the Unix Programmer's Manual.

Parts of this document are based on MH for Beginners] by 
Mary Hegardt and Tim Morgan and The Rand MH Message Handling 
System: Tutorial by Marshall T. Rose and Jerry N. Sweet.  For 
more detailed information, we recommend The Rand MH Message Handling 
System:  User's Manual by Marshall T. Rose and John L. Romine. 



CMU/SEI-89-UG-1, ADA207414
Bamberger, J. et al
Kernel User's Manual, Version 1



This manual describes the models underlying the Kernel and its concept 
of operations, presents the primitives available to the application 
program, and provides a number of abstractions that may readily be 
built on top of Kernel primitives.



CMU/SEI-89-UG-2 
Serpent, A User Interface Management System Overview Version 1



This document provides an overview of the Serpent system.  It is intended 
for software engineers involved in user interface development and 
assumes no previous knowledge of Serpent.



CMU/SEI-89-UG-3 
SEI Serpent SADDLE User's Guide



This guide describes the Shared Data Definition Language (SADDLE) 
and its relation to Serpent.  It also guides you through the steps 
required for SADDLE execution and describes how you create SADDLE 
files.  The contents of this guide assume that you are familiar with 
general UIMS concepts, and that you have a working knowledge of programming 
languages.  It would also be useful to have read Vol. I in this series: An 
Introduction to Serpent

CMU/SEI-89-UG-5
SEI Serpent SLANG Reference Manual



This manual describes the model, syntax, and semantics of the Slang 
dialogue language.  Slang is the language within Serpent used for 
the specification of user interfaces.  The contents of this manual 
assume that you have read and understood the concepts described in 
the Serpent Overview (CMU/SEI-89-UG-2).



CMU/SEI-89-UG-6
SEI Serpent Application Developer's Guide



This guide describes how to develop applications using Serpent.  The 
contents of this guide assume that you have read and understood the 
concepts described in "An Introduction to Serpent;" it also assumes 
that you are experienced with using C or Ada.



CMU/SEI-89-UG-7
SEI Serpent Technology Integrator's Guide



This guide describes how to add technologies to Serpent.  The contents 
of this guide assume that you have read and undertood the concepts 
described in An Introduction to Serpent and Serpent 
Application Developer's Guide; it is also assumed that you have 
experience programming in C or Ada.



CMU/SEI-90-UG-1
Hartstone Benchmark User's Guide, Version 1.0
Donohoe



The Hartstone benchmark is a set of timing requirements for testing 
a system's ability to handle hard real-time applications.  It is specified 
as a set of processes with well-defined workloads and timing constraints.  
The name Hartstone derives from HArd Real T
ime and the fact that the workloads are presently based on the 
well-known Whetstone benchmark.  This report describes the structure 
and behavior of an implementation in the Ada programming language 
of one category of Hartstone requirements, the Periodic Harmonic (PH) 
Test Series.  The Ada implementation of the PH series is aimed primarily 
at real-time embedded processors where the only executing code is 
the benchmark and the Ada runtime system.  Guidelines for performing 
various Hartstone experiments and interpreting the results are provided.  
Also included are the source code listings of the benchmark, information 
on how to obtain the source code in machine-readable form, and some 
sample results for Version 1.0 of the Systems Designers XD Ada VAX/VMS 
- MC68020 cross-compiler.



CMU/SEI-89-PDO-1
Gary, D.
Announcement of Product Development

Quarterly Update, Jan--Mar 1989

Quarterly Update, Apr--Jun 1989

Quarterly Update, Jul--Sep 1989



Technical Memos



SEI-86-TM-1, ADA175167
Samuelson, P.
Adequate Planning for Acquiring Sufficient Documentation About and 
Rights in Software to Permit Organic or Competitive Maintenance



Both the DoD and industry have significant concerns regarding maintenance 
and enhancement of software. The DoD wants to be certain it will be 
able to maintain and enhance software, and where cost effective, to 
compete maintenance of software. Industry wants to ensure that its 
proprietary interests will be adequately protected. This paper will 
explore possible ways in which both groups' interests might be satisfied.



SEI-86-TM-2, ADA175165
Samuelson, P.
Comments on the Proposed Defense and Federal Acquisition Regulations



This paper compares and contrasts the software/data rights sections 
(Subpart 27.4) of the DoD procurement regulations (DoD FAR SUPP) and 
the Federal Acquisition Regulations (FAR). The regulations currently 
in force, as well as recently proposed revisions to those regulations, 
are examined. Criticisms are made of the DoD regulations, as well 
as suggestions as to how those regulations could be brought more in 
line with procurement related legislation, intellectual property law 
and general commercial practice within the software industry. Inconsistencies 
and ambiguities found in Subpart 27.4 of the DoD acquisition regulations 
are discussed at some length. A recommendation is made that the DoD 
adopt a regulatory policy more like that found in the FAR.



SEI-86-TM-3, ADA175166
Samuelson, P.
Understanding the Implications of Selling Rights in Software to the 
Defense Department:  A Journey Through the Regulatory Maze



This article of the Software Licensing project of the SEI examines 
problems related to DoD procurement policy as reflected in the DoD 
acquisition regulations (DoD FAR SUPP). It discusses ambiguities and 
inconsistencies found in the acquisition regulations and ways in which 
these problem areas might result in unexpected disadvantages to both 
the government and industry. Issues related to funding of software 
development, treatment of technical data and documentation, the concept 
of unlimited rights, the making of derivative works and other modifications 
of software, and the interface between the DoD acquisition policy 
and intellectual property laws (such as copyright and trade secret 
law) are discussed. The article serves to catalogue potential problems 
that might arise under the DoD acquisition regulations.



SEI-86-TM-4, ADA175237
Barbacci, M.
Software Support for Heterogeneous Machines



This paper describes a new research effort carried out jointly between 
the Software Engineering Institute and the Department of Computer 
Science at Carnegie Mellon University. The objective of the project 
is to investigate languages, methodologies, and tools for programming 
computer systems consisting of networks of heterogeneous processors. 
Typical users of these notations (and associated support software) 
will be the developers of real-time, computation-intensive applications 
such as those contemplated under the Strategic Computing Initiative. 
In particular, this research is being conducted in the context of 
the Autonomous Land Vehicle application, running on the Heterogeneous 
Machine being developed in the Computer Science Department. 
This paper provides some background on the nature of the problem posed 
by these applications, the opportunities presented by the emergence 
of heterogeneous machines, and the goals of this project.



SEI-86-TM-5, ADA175227
Shaw, M.
Education for the Future of Software Engineering



The discipline of software engineering is developing rapidly. Its 
practitioners must deal with an evolving collection of problems and 
with new technologies for dealing with those problems. Software engineering 
education must anticipate new problems and technologies, providing 
education in the enduring principles of the field in the context of 
the best current practice. Since changes in the discipline cannot 
be completely anticipated, software engineers must be able to assume 
responsibility for their own continuing professional development. 
This paper describes significant changes now taking place in the field 
of software engineering and proposes some goals and objectives for 
the professional education of software engineers.



SEI-86-TM-6, ADA181294
Shaw, M.
Beyond Programming-in-the-Large:  The Next Challenges for Software 
Engineering



As society's dependence on computing broadens, software engineering 
is being called upon to address new problems that raise new technical 
and non-technical concerns. Aspirations and expectations for the application 
of computers appear to be unbounded, but present software development 
and support techniques will not be adequate to build computational 
systems that satisfy our expectations, even at very high cost. Each 
order of magnitude increase in the scale of the problems being solved 
leads to a new set of critical problems that require essentially new 
solutions. The next challenges for software engineering will deal 
with software as one of many elements in complex systems, which we 
call program-as-component and with the role of software 
as an active participant in the software development process, which 
we call program-as-deputy.



SEI-86-TM-7, ADA181293
Gibbs, N. and Ford, G.
The Challenges of Educating the Next Generation of Software Engineers



The continuing growth in the number, size, and complexity of software 
systems has created an enormous demand for high quality software engineers. 
A strategy for educating new software engineers is presented, and 
the projects of the Education Division of the Software Engineering 
Institute that support this strategy are described.



SEI-86-TM-8, ADA182983
Nestor, J.
Toward a Persistent Object Base



To better understand the needs of future programming environments, 
two current technologies that support persistent data in programming 
environments are considered: file systems and data base systems. This 
presents a set of weaknesses present in those current technologies. 
These weaknesses can be viewed as a checklist of issues to be considered 
when evaluating or designing programming environments.

SEI-86-TM-9, ADA182022
Newcomer, J.
IDL: Past Experiences and New Ideas



This paper is based on the author's experience in constructing an 
implementation of the Interface Description Language (IDL). The result 
of this experience was some insights into language design, human interfaces, 
and system structuring, as well as methodologies for the composition 
of complex tools. Certain complexities of the IDL implementation are 
discussed in this paper, showing that quite efficient implementations 
are possible. Finally, a set of interesting directions for IDL and 
IDL derived systems are suggested, including programming environment 
and database related work.



SEI-86-TM-10, ADA181742
Ellison, B.
Software Development Environments



The growing demand for reliable large scale software systems cannot 
be met without advances in software development environments. Although 
promising technologies are emerging, a number of issues must be addressed 
to ensure the timely transition of those technologies and projects 
to be undertaken by the Software Engineering Institute to address 
those issues.



SEI-86-TM-11, ADA182981
Feiler, P. and Kaiser, G.
Granularity Issues in a Knowledge-Based Programming Environment



We are in the process of developing MARVEL, a knowledge-based 
programming performing and coordinating their activities. During the 
design of MARVEL, we discovered that the granularity to 
which logical entities are refined in its software database and the 
granularity with which its software tools process the entities and 
report their results to the human users have a strong impact on the 
degree of intelligence that can be exhibited, as well as on the friendliness 
and performance of the environment. In this paper, we describe the 
many choices among alternative granularities and explain the decisions 
we made during the design of MARVEL.



SEI-86-TM-12, ADA181743
Kaiser, G. and Feiler, P.
An Architecture for Intelligent Assistance in Software Development



We define an architecture for a software engineering environment that 
behaves as an intelligent assistant. Our architecture consists of 
two key aspects: an objectbase and a model of the software development 
process. Our objectbase is adapted from other research, but our model 
is unique in that it consists primarily of rules that define the preconditions 
and multiple postconditions of software development tools. Metarules 
define forward and backward chaining among the rules. Our most significant 
contribution is opportunistic processing, whereby the environment 
automatically performs software development activities at some time 
between when their preconditions are satisfied and when their postconditions 
are required. Further, our model defines strategies that guide the 
assistant in choosing an appropriate point for carrying out each activity.



SEI-86-TM-13, ADA181937
Feiler, P.
Relationship Between IDL and Structure Editor Generation Technology



This paper discusses observed commonalities and differences between 
IDL and structure editor generation technologies. IDL (Interface Description 
Language) is technology for generation of tool 
intercommunication support with roots in compiler generation. 
Structure editor generation technology has its roots in syntax-directed 
editors. It produces environments for interactive viewing and manipulation 
of formally specified structures. Both technologies use a formal notation 
for structural and constraint descriptions. From these descriptions 
both generation tools automatically produce software for reading, 
writing, and manipulating instances of the described structures, as 
well as for checking specified constraints on information contained 
in the structures. The IDL technology emphasizes generation of batch-oriented 
applications while the structure editor generation technology is tailored 
to supporting interactive applications. Structure editor generation 
technology has been applied to itself, i.e., to building an interactive 
structure editor generation environment.



SEI-86-TM-14, ADA182094
Kaiser, G., and Feiler, P.
Intelligent Assistance Without Artificial Intelligence



SMILE is a distributed, multi-user software engineering 
environment that behaves as an intelligent assistant. SMILE 
presents a `fileless environment,' derives and transforms data to 
shelter users from entering redundant information, automatically invokes 
programming tools, and actively participates in the software development 
and maintenance process. Unlike other intelligent assistants, SMILE 
is not a rule-based environment: its knowledge of software objects 
and the programming process is hardcoded into the environment. We 
describe SMILE's functionality and explain how we achieved 
this functionality without reliance on artificial intelligence technology.



--