SEI Documents List
[2007] [2006] [2005] [2004] [2003] [2002] [2001] [2000] [1999] [1998] [1997] [1996] [1995] [1994] [1993] [1992] [1991] [1990] [1989] [1988] [1987] [1986] [PDF]
1988 Reports
Curriculum Modules and Support Materials
SEI-CM-020-1.0,
ADA235775
Formal Verification of Programs
Berztiss, A. & Ardis, M.
December 1988
This module introduces formal verification of programs. It deals primarily with proofs of sequential programs, but also with consistency proofs for data types and deduction of particular behaviors of programs from their specifications. Two approaches are considered: verification after implementation that a program is consistent with its specification, and parallel development of a program and its specification. An assessment of formal verification is provided.
http://www.sei.cmu.edu/publications/documents/cms/cm.020.html
SEI-CM-013-1.1,
ADA236117
Introduction to Software Verification and Validation
Collofello, J.
December 1988
Software verification and validation techniques are introduced and their applicability discussed. Approaches to integrating these techniques into comprehensive verification and validation plans are also addressed. This curriculum module provides an overview needed to understand in-depth curriculum modules in the verification and validation area.
http://www.sei.cmu.edu/publications/documents/cms/cm.013.html
SEI-CM-012-1.1,
ADA236140
Software Metrics
Mills, E.
December 1988
Effective management of any process requires quantification, measurement, and modeling. Software metrics provide a quantitative basis for the development and validation of models of the software development process. Metrics can be used to improve software productivity and quality. This module introduces the most commonly used software metrics and reviews their use in constructing models of the software development process. Although current metrics and models are certainly inadequate, a number of organizations are achieving promising results through their use. Results should improve further as we gain additional experience with various metrics and models.
http://www.sei.cmu.edu/publications/documents/cms/cm.012.html
SEI-CM-003-1.5,
ADA236139
Software Technical Review Process, The
Collofello, J.
June 1988
This curriculum module consists of a comprehensive examination of the technical review process in the software development and maintenance life cycle. Formal review methodologies are analyzed in detail from the perspective of the review participants, project management and software quality assurance. Sample review agendas are also presented for common types of reviews. The objective of the module is to provide the student with the information necessary to plan and execute highly efficient and cost effective technical reviews.
http://www.sei.cmu.edu/publications/documents/cms/cm.003.html
SEI-SM-017-1.0,
ADA235835
Support Materials for User Interface Development
Deimel, L., ed.
April 1988
This support materials package includes materials helpful in teaching a course on user interface development.
http://www.sei.cmu.edu/publications/documents/sms/cm.017.html
Special Reports
CMU/SEI-88-SR-002,
ADA206391
Conference Report: Overcoming the Disincentives to Modernization in the Defense Industry
Hefley, W.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.sr.002.html
CMU/SEI-88-SR-004,
ADA206572
Priority Ceiling Protocol: A Method for Minimizing the Blocking of High-Priority ADA Tasks, The
Goodenough, J. & Sha, L.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.sr.004.html
CMU/SEI-88-SR-003,
ADA206429
Protocol in a Real-Time System, A
Goodenough, J. & Locke, D.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.sr.003.html
Technical Reports
CMU/SEI-88-TR-017,
ADA199482
Distributed ADA Real-Time Kernel
Bamberger, J.; Coddington, T.; Firth, R.; Klein, D.; Stinchcomb, D.; Van Scoy, R.; &
Colket, C.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.017.html
CMU/SEI-88-TR-018,
ADA199480
Durra Runtime Environment, The
Barbacci, M.; Doubleday, D.; & Weinstock, C.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.018.html
CMU/SEI-88-TR-004,
ADA197136
Evaluation and Recommendations for Technology Insertion into Technical Order Maintenance
Hansen, G. & Over, J.
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 representatives 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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.004.html
CMU/SEI-88-TR-015,
ADA198934
Evaluation of the Rational Environment
Feiler, P.; Dart, S.; & Downey, G.
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-021) 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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.015.html
CMU/SEI-88-TR-035,
ADA336226
Experiment Planning for Software Development: Redevelopment Experiment
Perry, J.; Kang, K.; Cohen, S.; Holibaugh, R.; & Peterson, A.
The Application of Reusable Software Components Project (ARSC) formulated an experiment design, data collection plan, and procedures in preparation for a reuse experiment. The reuse experiment is currently in progress and the experiment planning and the results to date are presented. While the design, plan, and procedures were developed to support the investigation of software reuse, they, as well as the process by which they were formulated, are applicable to any software development effort. They can be adapted to other technology investigations or to project-specific goals for improvement.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.035.html
CMU/SEI-88-TR-021,
ADA204634
Experiment Transcripts for the Evaluation of the Rational Environment
Downey, G.; Bassman, M.; & Dahlke, C.
This report supplements the report Evaluation of the Rational Environment. It contains the instantiation of the experiments presented in Evaluation of ADA Environments (CMU/SEI-87-TR-001, by Nelson Weiderman, N., et al.). Overall conclusions and analysis of the Rational Environment can be found in Evaluation of the Rational Environment.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.021.html
CMU/SEI-88-TR-025,
ADA200611
Functional Performance Specification for an External Computer System Simulator
Meyers, C. & Mumm, H.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.025.html
CMU/SEI-88-TR-023,
ADA204850
Functional Performance Specification for an Inertial Navigation System
Meyers, C. & Weiderman, N.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.023.html
CMU/SEI-88-TR-019,
ADA199481
Generalized Image Library: A Durra Application Example
Barbacci, M. & Doubleday, D.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.019.html
CMU/SEI-88-TR-008,
ADA197416
Guide to the Assessment of Software Development Methods, A
Wood, W.; Pethia, R.; Roberts Gold, L.; & Firth, R.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.008.html
CMU/SEI-88-TR-005,
ADA200085
Introduction to the Serpent User Interface Management System
Bass, L.; Hardy, E.; Hoyt, K.; Little, R.; & Seacord, R.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.005.html
CMU/SEI-88-TR-003,
ADA201345
ISTAR Evaluation
Graham, M. & Miller, D.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.003.html
CMU/SEI-88-TR-016,
ADA198933
Kernel Facilities Definition
Bamberger, J.; Coddington, T.; Firth, R.; Klein, D.; Stinchcomb, D.; Van Scoy, R.; &
Colket, C.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.016.html
CMU/SEI-88-TR-011,
ADA197671
Managing Development of Very Large Systems: Implications for Integrated Environment Architectures
Feiler, P. & Smeaton, R.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.011.html
CMU/SEI-88-TR-034,
ADA20754
Mode Change Protocols for Priority-Driven Preemptive Scheduling
Sha, L. & Goodenough, J.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.034.html
CMU/SEI-88-TR-030,
ADA204849
OOD Paradigm for Flight Simulators, 2nd Edition, An
Lee, K.; Rissman, M.; D'Ippolito, R.; Plinta, C.; & Van Scoy, R.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.030.html
CMU/SEI-88-TR-022,
ADA204399
Perspective on Software Reuse
Perry, J.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.022.html
CMU/SEI-88-TR-013,
ADA223895
Phase I Testbed Description: Requirements and Selection Guidelines
Holibaugh, R. & Perry, J.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.013.html
CMU/SEI-88-TR-007,
ADA197490
Project Management Experiment, The
Feiler, P. & Smeaton, R.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.007.html
CMU/SEI-88-TR-033,
ADA205048
Real-Time Scheduling Theory and ADA
Sha, L. & Goodenough, J.
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 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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.033.html
CMU/SEI-88-TR-006,
ADA196664
Serpent Runtime Architecture and Dialogue Model
Bass, L.; Hardy, E.; Hoyt, K.; Little, R.; & Seacord, R.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.006.html
CMU/SEI-88-TR-009,
ADA197137
Software Process Modeling
Kellner, M. & Hansen, G.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.009.html
CMU/SEI-88-TR-024,
ADA223958
System Specification Document: Shipboard Inertial Navigation System Simulator and External Computer
Meyers, C. & Weiderman, N.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.024.html
CMU/SEI-88-TR-026,
ADA204757
Using the Vienna Development Method (VDM) to Formalize a Communication Protocol
Pedersen, J. & Klein, M.
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.
http://www.sei.cmu.edu/publications/documents/88.reports/88.tr.026.html
[2007] [2006] [2005] [2004] [2003] [2002] [2001] [2000] [1999] [1998] [1997] [1996] [1995] [1994] [1993] [1992] [1991] [1990] [1989] [1988] [1987] [1986] [PDF]