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