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

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

PART V 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-89-TR-11, ESD-TR-89-19
Sprunt, B., Sha, L.,
Scheduling Sporadic and Periodic 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-13, ADA207717
Weiderman
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
Sha, Goodenough
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, ESD-TR-89-23
Borger, M., Rajkumar, R.
Implementing Priority Inheritance Algorithms in
an Ada Runtime System

This  paper  presents  a  high-level  design@y(M)in  the form of necessary data
structures, mechanisms, and algorithms@y(M)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-17, ESD-TR-89-25
Bayer, J., 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 vartious 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  relationshp  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
Sha, Rajkumar, Son, Chang
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-21, ESD-TR-89-29
Ardis, M., Ford, G.
1989 SEI Report on Graduate Software Engineering Education

This annual report on graduate software engineering education describes
recent SEI educational activities, including the 1988 SEI Curriculum Design
Workshop.  A model curriculum for a professional Master of Software
Engineering degree is presented, including detailed descriptions of six core
corrrrses.  Fifteen university graduate programs in software engineering are
surveyed.



CMU/SEI-89-TR-23, ESD-TR-89-31
Weiderman
Hartstone:  Synthetic Benchmark Requirements for a Hard Real-Time System

The purpose of this paper is to define the operational concept for a series
of benchmark requirements to be used to test the ability of a system to
handle hard real-time applications.  Implementations of such benchmarks
would be useful in evaluating scheduling algorithms, protocols, and design
paradigms, as well as processors, languages, compilers, and operating
systems.  Several Ada programs are under development to test standard
versions of the benchmark requirements and will be released into the public
domain.


CMU/SEI-89-TR-26, ESD-TR-89-34
Humphrey
CASE Planning and the Software Process

Automating a software process both magnifies its strengths and accentuates
its weaknesses.  Automation can make an effective process more effective,
but it can make a chaotic process even worseMand at considerable
expense.  Anyone who buys expensive tools to solve an ill-defined problem
is likely to be disappointed.  Unless procuring such tools is part of a
thoughtful software process improvement plan, the purchase could be an expensiv
mistake.

This report discusses software process maturity and its relationship to
planning and installing computer-aided software engineering (CASE) systems.
While process is not a magic answer (there isn't one), the key issues are
discussed from a process perspective, and guidelines are given for avoiding
the most common pitfalls.  Since CASE systems can involve significant
investment, an economic justification may be necessary.  The relevant
financial considerations are therefore discussed, and some basic steps for
producing such justifications are outlined.  Finally, some key
considerations for introducing and using CASE systems are discussed.



-------------------------------------------------------------------------------
Special Reports
-------------------------------------------------------------------------------

CMU/SEI-88-SR-2
Hefley
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,  Locke
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, Sha
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-priroity 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-88-TP-1
Carey
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, Jackson
An AJPO User's Guide for MH, the Rand Message Handling System



CMU/SEI-89-UG-1, ADA207414
Bamberger, Coddington, T., Firth, Klein, D., Stinchcomb, Van Scoy
Kernel User's Manual, Version 1



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


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


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


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

-------------------------------------------------------------------------------
Technical Memos
-------------------------------------------------------------------------------

SEI-86-TM-1, ADA175167
Samuelson
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
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
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
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
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
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, Ford
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
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
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
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, Kaiser
Granularity Issues in a Knowledge-Based Programming Environment

We are in the process of developing MARVEL, a knowledge-based programming
environment that assists multi-programmer software development teams in
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, Feiler
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
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, Feiler
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.
-- 

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