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]
1991 Reports
Educational Materials
CMU/SEI-91-EM-006,
ADA242547
Materials to Support Teaching a Project-Intensive Introduction to Software Engineering
Tomayko, J.
In a project-intensive introduction to software engineering at Carnegie Mellon University (CMU), students developed an interactive exhibit for the Kansas Cosmosphere and Space Center. In a similar course at The Wichita State University, students modified the original CMU project to fit new customer requirements. This package of educational materials provides the software products and documents developed by the students in these courses, along with lesson plans, exams, and other materials used by the instructors.
http://www.sei.cmu.edu/publications/documents/ems/91.em.006.html
CMU/SEI-91-EM-005,
ADA2406710
Scenes of Software Inspections: Video Dramatizations for the Classroom
Deimel, L.
This report describes the videotape Scenes of Software Inspections, which contains brief dramatizations that demonstrate appropriate and inappropriate conduct of software inspections. The tape also includes scenes that show other kinds of group interactions. Any of these scenes can be incorporated into lectures, self-study materials, or other educational delivery mechanisms, to illustrate how to perform inspections, an important software engineering technique.
http://www.sei.cmu.edu/publications/documents/ems/91.em.005.html
CMU/SEI-91-EM-004,
ADA242548
Software Engineering Project Course with a Real Client, A
Bruegge, B.; Cheng, J.; & Shaw, M
At Carnegie Mellon University, we taught an introductory software engineering course that was organized around a project with a real deliverable for a real client. This case study describes the background and organization of the course and presents the lecture and project materials produced by the faculty and students of the course.
http://www.sei.cmu.edu/publications/documents/ems/91.em.004.html
Special Reports
CMU/SEI-91-SR-004,
ADA2523646
Comparison of ADA 83 and C++, A
Weiderman, N.
The purpose of this report is to provide technical input to the Deputy Assistant Secretary of the Air Force for Communications, Computers, and Logistics to assist that office in preparing a business case for using ADA or C++ to develop Corporate Information Management (CIM) systems. This technical input has been gathered by using the comparison methodology of a 1985 Federal Aviation Administration (FAA) report as a model, as well as by conducting interviews with experts in ADA and C++. The conclusion of this report is that technically neither language is clearly better than the other; for government use, however, there is clear justification and rationale for using ADA rather than C++ for large complex systems with long lifetimes.
http://www.sei.cmu.edu/publications/documents/91.reports/91.sr.004.html
CMU/SEI-91-SR-003,
ADA248117
Context Analysis of the Movement Control Domain for the Army Tactical Command and Control System (ATCCS), A
Peterson, A. & Cohen, S.
This report describes the results of the first phase of a domain analysis performed by the SEI's Domain Analysis Project. The report establishes the context and scope of the movement control domain within command and control (C2) systems and in particular, ATCCS. It discusses the purpose of a domain analysis and presents an overview of the method being used to perform the analysis. The report describes both the Army's use of ATCCS in achieving the Army mission and the ATCCS software development strategy. A brief description of Army C2systems lays a foundation for defining movement control and its context in the ATCCS structure. Within this context, the report identifies the key areas within movement control that will be explored during the remainder of the domain analysis. The report also describes the approach for performing the analysis and includes appendices providing additional information about ATCCS, relevant terms, and acronyms.
http://www.sei.cmu.edu/publications/documents/91.reports/91.sr.003.html
CMU/SEI-91-SR-013,
ADA255376
Fault Tolerant Systems Practitioner's Workshop June 10-11, 1991
Heimerdinger, W. & Weinstock, C.
On June 10-11, 1991, a Fault Tolerant Systems Practitioner's Workshop was held at the Software Engineering Institute. The purpose of the workshop was to attempt to identify how fault tolerance is being applied today, why fault tolerance is under used, and what can be done to bring fault tolerant practices into wider use. Attendance at the workshop was limited to a small number of practitioners who had successfully applied fault tolerance in a systems context. This report summarizes the proceedings of the workshop which included a discussion of barriers to the deployment of fault tolerant systems, a summary of the state of the practice, and a discussion of the technology needs of fault tolerance. The report concludes with a discussion of ways the Software Engineering Institute may be able to help bring fault tolerant practices into wider use.
http://www.sei.cmu.edu/publications/documents/91.reports/91.sr.013.html
Technical Reports
CMU/SEI-91-TR-028,
ADA256590
Application of Feature-Oriented Domain Analysis to the Army Movement Control Domain and Appendices A-I
Cohen, S.; Stanley, J.; Peterson, A.; & Krut, R.
This report documents an analysis of the army movement control domain performed by the Software Engineering Institute (SEI) and a team of movement control experts from the Army. This report includes common terminology and requirements extracted from Army doctrine, experts in the field, and movement control systems. The report also describes the potential for prototyping of systems using domain analysis products and the tool support needed.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.028.html
CMU/SEI-91-TR-026,
ADA242129
Application-Level Implementation of the Sporadic Server, An
González Harbour, M. & Sha, L.
The purpose of this paper is to introduce a sporadic server algorithm that can be implemented as an application-level task, and that can be used when no runtime or operating system level implementation of the sporadic server is available. The sporadic server is a simple mechanism that both limits and guarantees a certain amount of execution power dedicated to servicing aperiodic requests with soft or hard deadlines in a hard real-time system. The sporadic server is event-driven from an application viewpoint, but appears as a periodic task for the purpose of analysis and, consequently, allows the use of analysis methods such as rate monotonic analysis to predict the behavior of the real- time system.
When the sporadic server is implemented at the application-level, without modification to the runtime executive or the operating system, some of its requirements cannot be met strictly and, therefore, some simplifications need to be assumed. We show that even with these simplifications, the application-level sporadic server proposed in this paper has the same worst-case performance as the full-featured runtime sporadic server algorithm, although the average case performance is slightly worse. The implementation requirements are a runtime prioritized preemptive scheduler and system calls to change a task's or thread's priority. Two implementations are introduced in this paper, one ADA and the other for POSIX 1003.4a, Threads Extension to Portable Operating Systems.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.026.html
CMU/SEI-91-TR-022,
ADA244697
Building Distributed ADA Applications from Specifications and Functional Components
Doubleday, D.; Barbacci, M.; Weinstock, C.; Gardner, M.; & Lichota, R.
Durra is a language and support environment for the specification and execution of distributed ADA applications. A Durra programmer describes an application as a collection of processes and data links. More complicated application descriptions may also include a structuring of this collection that varies dynamically according to a set of reconsideration conditions. Each process defined in the application description is associated with an independently compiled ADA subprogram that implements the behavior of that process. The Durra programmer specifies the distribution of application components by assigning them to virtual nodes called clusters. For each cluster, the Durra compiler generates a multithreaded ADA program that imports the code for the processes assigned to that node and manages their execution. Durra also facilitates rapid prototyping through the use of tools that interpret timing specifications associated with processes and generates ADA code to simulate their expected behavior.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.022.html
CMU/SEI-91-TR-013,
ADA248152
CASE Studies in Environment Integration
Morris, E.
Four environment builders and participants at two workshops were queried concerning the environment standards, implementations, and technology that prove useful in the integration of tools into software engineering environments. Specific information was gathered about the software and hardware environments in which tool integration occurred, the goals of integration, the tools integrated, mechanisms used, and the standards applied. Observations concerning the current state of tool and environment integration are provided, and trends in integration are identified.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.013.html
CMU/SEI-91-TR-027,
ADA245051
Comparison of U.S. and Japanese Software Process Maturity, A
Humphrey, W.; Kitson, D.; & Gale, J.
This report characterizes the software processes currently used by software managers and practitioners in the U.S., Japan.
The U.S. data for this comparative study of the state of software practice in the U.S., Japan is drawn from extensive SEI assessments conducted from 1987 through 1989. The Japanese maturity data was gathered during a three-week trip to Japan by the authors. This includes data on 168 U.S. projects and 196 Japanese software projects.
This data is not a statistically valid sample of the software capabilities of either the U.S. or Japanese software industries. However, the data does indicate that the Japanese software industry is, in some respects, both weaker and stronger than that in the U.S. There are also significant differences in the maturity findings between the U.S., Japanese organizations, and these have important implications for software organizations in both countries.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.027.html
CMU/SEI-91-TR-007,
ADA235782
Configuration Management Models in Commercial Environment
Feiler, P.
A number of advances can be observed in recent commercial software development environments in support of configuration management (CM). These advances include: configurations as managed objects; transparent access to repositories; and, in addition to the familiar checkout/checkin model, three CM models based on configurations. These CM models are the composition model, the long transaction model, and the change set model. Typically, one or two of the models can be found in a system.
This report analyzes the models with respect to their potential impact on the software development process, resulting in several observations. Some of the models exist in a number of variations, each impacting the software process differently. CM capabilities can be found not only in CM tools and environment frameworks, but also in development tools. Integration of such tools into environment raises the need for different CM models to interoperate. Therefore, it is desirable to evolve to a unified CM model that encompasses the full range of CM concepts and can be adapted to different process needs.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.007.html
CMU/SEI-91-TR-029,
ADA244294
Critical Review of the Current State of IPSE Technology, A
Brown, A.
In the past ten years there has been a great deal of interest in the concept of an Integrated Project Support Environment (IPSE) as a complete, unifying framework of services supporting most (or all) phases of software development and maintenance. In this paper we evaluate the current state of research work in this area, suggest some reasons for the relative lack of success, and make proposals for ensuring measured progress in the future.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.029.html
CMU/SEI-91-TR-019,
ADA248118
Description of Cluster Code Generated by the Durra Compiler, A
Doubleday, D.; Gardner, M.; & Weinstock, C.
Durra is a language and support environment for the specification and execution of distributed ADA applications. The Durra programmer specifies the distribution of application components by assigning them to virtual nodes called clusters. For each cluster named in an application description, the Durra compiler generates an ADA package body with a standardized format. Within the confines of the format, the content of the package body varies according to the requirements placed upon the cluster by the Durra application description. The cluster-specific package body is compiled and linked with a fixed set of ADA compilation units, common to all clusters, to form a multitasking ADA program. The intended audience for this document is Durra application developers, who will need an understanding of the concepts presented here in order to be effective Durra application debuggers.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.019.html
CMU/SEI-91-TR-020,
ADA245051
Design Specifications for ADAptive Real-Time Systems
Lichota, R.
The design specification method described in this report treats a software architecture as a set of run-time entities, including tasks and external input/output elements, which interact either via messages or shared data structures. Tasks have a single thread of execution and represent program units that may be executed concurrently. External input elements produce input requests which in turn trigger a set of low level activities to be executed by tasks. External output elements consume results which are produced by tasks. The specification method discussed here facilitates the description of the dynamic structure of run-time entities, the synchronization and communication between these entities, and their resource consumption and production properties (which include timing and sizing).
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.020.html
CMU/SEI-91-TR-018,
ADA246405
Durra: A Task-Level Description Language Reference Manual (Version 3)
Barbacci, M.; Doubleday, D.; Gardner, M.; Lichota, R.; & Weinstock, C.
Durra is a language designed to support the development of distributed programming applications consisting of concurrent, large-grained processes devoted to specific pieces of the application. During execution time the application processes run on possibly separate processors, and communicate with each other by sending messages of different types across communication links. The application developer is responsible for prescribing a way to manage all of these resources, called a task-level application description. It describes the processes to be executed, the assignments of processes to processors, and the communication channels required to transmit messages data between processes. Durra is a task-level description language, a notation in which to write these application descriptions.
This document is a revised version of the original reference manual. It describes the syntax and semantics of the language and incorporates all the language changes introduced as a result of our experiences writing application descriptions in Durra.
A companion document, Durra: A Task-Level Description Language User's Manual, describes how to use the compiler and support tools.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.018.html
CMU/SEI-91-TR-021,
ADA242128
Durra: An Integrated Approach to Software Specification, Modeling, and Rapid Prototyping
Barbacci, M.; Doubleday, D.; Weinstock, C.; & Lichota, R.
Software specification, modeling, and prototyping activities are often performed at different stages in a software development project by individuals who use different specialized notations. The need to manually interpret and transform information passed between stages can significantly decrease productivity and can serve as a potential source of error. Durra is a non-procedural language designed to support the development of distributed applications consisting of multiple, concurrent, large-grained tasks executing in a heterogeneous network. Durra provides a framework through which one can specify the structure of an application in conjunction with its behavior, timing, and implementation dependencies. These specifications may be validated by passing behavioral and timing information associated with each Durra task description to a run-time interpreter. Similarly, software prototypes may be constructed by directing this information to a suitable source code generator. We have already developed an interpreter and source code translator for a language based on simple timing expressions. We are presently constructing a source code generator for a more complex language defined by SMARTS (the Specification Methodology for ADAptive Real-Time systems developed by Hughes Aircraft Company).
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.021.html
CMU/SEI-91-TR-005,
ADA244293
Evaluation of Process Modeling Improvements
Krut, R. & Wood, D.
The SEI has been involved with the development and analysis of software process models for several years. As part of the ongoing process of technology evolution, a study has been undertaken to experimentally implement a set of proposed improvements to the process modeling techniques used by the SEI, and to evaluate the results of that experimentation. As a result of that study, a number of modifications to our techniques have been identified. These modifications enhance the support of software engineering concepts in the development and use of process models. This report describes the study and elaborates upon the advantages and disadvantages of the proposed technique improvements.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.005.html
CMU/SEI-91-TR-001,
ADA235698
Formal Development of ADA Programs Using Z and Anna: A Case Study
Place, P. & Wood, W.
This report describes a method for the formal development of ADA programs from a formal specification written in Z. ANNotated ADA (Anna) is used as an intermediate language linking the more abstract Z specifications to the concrete ADA program. The method relies on the notion that successive small transformations of a specification are easier to verify than a few large transformations. Essentially the method uses three notations for the representation of the system: an implementation-independent notation for the specification of the system, an implementation-dependent notation for the representation of a lower level specification of the system, and the implementation language. Z and Anna are outlined briefly and examples of transformations are presented. A simple Z specification has been chosen and the transformations presented in the report are transformations of the Z specification into Anna. Conclusions are drawn about the development method presented.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.001.html
CMU/SEI-91-TR-017,
ADA240712
Issues in Real-Time Data Management
Graham, M.
This report explores issues related to the use of database management technology in support of real-time systems programming. It describes the potential benefits of database support for real-time systems, and it describes the state of the art in database technologies relevant to real-time. The report concludes that more research and development will be needed before the benefits of database management can be applied to real-time system development.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.017.html
CMU/SEI-91-TR-008,
ADA244292
Issues in Tool Acquisition
Zarrella, P.; Smith, D.; & Morris, E.
This technical report identifies issues involved in the acquisition of Computer Aided Software Engineering (CASE) tools. Among the issues identified and discussed are cost, performance, process support, maintenance, data management, tool integration, and standardization. The report concludes with recommendations intended for individuals or groups responsible for acquiring CASE tools.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.008.html
CMU/SEI-91-TR-016,
ADA241781
Measurement in Practice
Rifkin, S. & Cox, C.
A few organizations have reputations for implementing excellent software measurement practices. A sample of these organizations was surveyed in site visits. Clear patterns of practices emerged and they are reported at a consolidated, "lessons learned" level and in more detailed case studies.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.016.html
CMU/SEI-91-TR-010,
ADA241780
Models for Undergraduate Project Courses in Software Engineering
Shaw, M. & Tomayko, J.
The software engineering course provides undergraduates with an opportunity to learn something about real-world software development. Since software engineering is far from being a mature engineering discipline, it is not possible to define a completely satisfactory syllabus. Content with a sound basis is in short supply, and the material most often taught is at high risk of becoming obsolete within a few years.
Undergraduate software engineering courses are now offered in more than a hundred universities. Although three textbooks dominate the market, there is not yet consensus on the scope and form of the course. The two major decisions an instructor faces are the balance between technical and management topics and the relation between the lecture and project components. We discuss these two decisions, with support from sample syllabi and survey data on course offerings in the United States and Canada. We also offer some advice on the management of a project-oriented course.
This report will also appear as Carnegie Mellon University, School of Computer Science Technical Report No. CMU- CS-91-174.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.010.html
CMU/SEI-91-TR-012,
ADA240851
Notes on Applications of the SQL ADA Module Description Language (SAMeDL)
Chastek, G.; Graham, M.; & Zelesnik, G.
The SQL ADA Module Description Language (SAMeDL) is a language for describing information services to be provided to ADA application programs by SQL database management systems. This report shows how the SAMeDL can be adapted and extended to provide services to applications needing advanced features (e.g., dynamic SQL, or using non-ANSI standard data types (decimal, date) or having other unusual requirements. It also contains short descriptions of some implementation details.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.012.html
CMU/SEI-91-TR-014,
ADA253362
Proceedings of the CASE Adoption Workshop
Huff, C.; Smith, D.; Stepien-Oakes, K.; Morris, E.; & Zarrella, P.
The Software Engineering Institute (SEI) CASE Technology Project sponsored a workshop to address a number of key CASE adoption issues. The workshop was held at the SEI in Pittsburgh, Pennsylvania on November 13-14, 1990. At the workshop, a representative group of SEI affiliates from industry, government, and academia discussed among themselves such adoption topics as CASE benefits, realistic CASE budget estimates, CASE tool fit, CASE adoption roles, and factors in the project success of CASE. The results of these discussions are summarized in this report.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.014.html
CMU/SEI-91-TR-006,
ADA235641
Rate Monotonic Analysis for Real-Time Systems
Sha, L.; Klein, M.; & Goodenough, J.
The essential goal of the Rate Monotonic Analysis (RMA) for Real-Time Systems Project at the Software Engineering Institute is to catalyze improvement in the practice of real-time systems engineering, specifically by increasing the use of rate monotonic analysis and scheduling algorithms. In this report, we review important decisions in the development of RMA. Our experience indicates that technology transition considerations should be embedded in the process of technology development from the start, rather than as an afterthought.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.006.html
CMU/SEI-91-TR-004,
ADA235780
Rationale for SQL ADA Module Description Language SAMeDL
Chastek, G.; Graham, M.; & Zelesnik, G.
The SQL ADA Module Description Language, SAMeDL, is a language for the specification of Abstract Interfaces as delineated by the SQL ADA Module Extensions (SAME) methodology. The language is formally defined in the SAMeDL Reference Manual. This document is a companion to the Reference Manual. Whereas the Reference Manual is meant to be precise, the Rationale is meant to be clear.
An explanation of the problem solved by the SAMeDL is given. The creation of a new language is justified and the underlying principles of that language are described. Crucial issues in the language are then explained. These include:
- The form and meaning of identifiers in the SAMeDL.
- The role of and procedures for data definition in the SAMeDL. This includes support for enumerations and constants in the SAMeDL.
- The typing rules of the SAMeDL.
The proposed use of some SAMeDL features is also illustrated. These include Standard Post Processing and User Defined Base Domains.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.004.html
CMU/SEI-91-TR-030,
ADA250415
Requirements Engineering and Analysis Workshop Proceedings
The Software Engineering Institute (SEI) hosted the Requirements Engineering and Analysis Workshop in Pittsburgh, Pennsylvania, on March 12-14, 1991. The intention of the workshop was to focus discussion on issues and activities that could help the Department of Defense (DoD) to deal more effectively with the requirements of mission-critical systems. The SEI workshop built upon work performed previously at the Requirements Engineering and Rapid Prototyping Workshop held by the U.S. Army Communications-Electronics Command (CECOM) Center for Software Engineering in Eatontown, New Jersey, on November 14-16, 1989.
The workshop participants were divided into four working groups: Requirements Engineering Process and Products, Requirements Volatility, Requirements Elicitation, and Requirements Engineering Techniques and Tools. A summary of the findings of each working group follows.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.030.html
CMU/SEI-91-TR-002,
ADA236340
SEI Report on Graduate Software Engineering Education, 1991
Ford, G.
This report on graduate software engineering education presents a variety of information for university educators interested in establishing a software engineering program. This includes a model curriculum, an annotated bibliography of software engineering textbooks, and descriptions of major software engineering research journals. It also includes detailed descriptions of the SEI Academic Series of videotape courses, which constitute an example of an implementation of the model curriculum. Twenty-three university graduate programs in software engineering are surveyed. Software engineering textbooks and research journals are also surveyed.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.002.html
CMU/SEI-91-TR-009,
ADA250039
Software Engineering Education Directory
This directory provides information about software engineering courses and software engineering degree programs offered by colleges and universities, primarily in the United States.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.009.html
CMU/SEI-91-TR-011,
ADA237810
Tool Integration and Environment Architectures
Wallnau, K. & Feiler, P.
The expanding CASE market is having substantial impact on software development environment technology in the area of environment support for tool integration. Sharpened awareness of CASE integration requirements, particularly in the context of the larger number of fully developed CASE tools, has resulted in a technology shift away from monolithic integrated project support environments (IPSE) derived form the Stoneman model in favor of highly distributed environments based upon a federation of environment services. Federated environments promise environment framework support for the reuse of a large number of existing CASE tools and the development of highly interactive, tightly-integrated CASE environments. The evolution of environment framework technology to support CASE federation is predicated on an improved understanding of the techniques and issues of tool integration. One reflection of this improved understanding is recognition of the need to address integration mechanisms, tool semantic integration, and tool process integration as separate but related issues. This paper describes the evolution of environment architectures to support federated CASE integration and outlines the implications of this evolution on the technical issues of CASE tool integration.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.011.html
CMU/SEI-91-TR-031,
ADA248119
Understanding Integration in a Software Development Environment
Brown, A.; Feiler, P.; & Wallnau, K.
In the past ten years there has been a great deal of interest in the concept of a Software Development Environment (SDE) as a complete, unifying framework of services supporting most (or all) phases of software development and maintenance. We identify three levels at which the issue of integration in a SDE arises as a key concept at the mechanism level (interoperability of the hardware and basic software), at the end-user services level (combining the methods and paradigms of the various tools), and at the process (adapting end-user services to the working practices of different users, projects and organizations).
In this paper we examine SDEs from an integration perspective, describing the previous work in this area and analyzing the integration issues that must be addressed in an SDE. For illustrative purposes, a particular focus of the paper is the configuration management aspects of an SDE.
Inadequate, incomplete, erroneous, and ambiguous system and software requirements are a major and ongoing source of problems in systems development. These problems manifest themselves in missed schedules, budget excesses, and systems that are to varying degrees unresponsive to the true needs of the sponsor. These difficulties are often attributed to the poorly defined and ill-understood processes used to elicit, specify, analyze, and validate requirements.
http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.031.html
[2007] [2006] [2005] [2004] [2003] [2002] [2001] [2000] [1999] [1998] [1997] [1996] [1995] [1994] [1993] [1992] [1991] [1990] [1989] [1988] [1987] [1986] [PDF]