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]
1990 Reports
Curriculum Modules and Support Materials
SEI-CM-24,
ADA223897
Concepts of Concurrent Programming
Bustard, D.
April 1990
A concurrent program is one defining actions that may be performed simultaneously. This module discusses the nature of such programs and provides an overview of the means by which they may be constructed and executed. Emphasis is given to the terminology used in this field and the underlying concepts involved.
http://www.sei.cmu.edu/publications/documents/cms/cm.024.html
SEI-CM-25,
ADA223760
Language and System Support for Concurrent Programming
Feldman, M.
April 1990
This curriculum module is concerned with support for concurrent programming provided to the application programmer by operating systems and programming languages. This includes system calls and language constructs for process creation, termination, synchronization, and communication, as well as nondeterministic language constructs such as the selective wait and timed call. Several readily available languages are discussed and compared; concurrent programming using system services of the UNIX operating system is introduced for the sake of comparison and contrast.
http://www.sei.cmu.edu/publications/documents/cms/cm.025.html
SEI-CM-19-1.2,
ADA235642
Software Requirements
Brackett, J.
January 1990
This curriculum module is concerned with the definition of software requirements-the software engineering process
of determining what is to be produced-and the products generated in that definition. The process involves all of the
following: (1) requirements identification (2) requirements analysis (3) requirements representation (4) requirements
communication (5) development of acceptance criteria and procedures. The outcome of requirements definition is a
precursor of software design.
This module supersedes SEI-CM-1.
http://www.sei.cmu.edu/publications/documents/cms/cm.019.html
SEI-CM-11-2.1,
ADA235643
Software Specification: A Framework
Rombach, H.
January 1990
This curriculum module presents a framework for understanding software product and process specifications. An unusual approach has been chosen in order to be able to address all aspects related to specification without confusing the many existing uses of the term. In this module, the term specification refers to any plan (or standard) according to which products of some type are constructed or processes of some type are performed, not to the products or processes themselves. In this sense, a specification is itself a product that describes how products of some type should look or how processes of some type should be performed. The framework includes (1) a reference software life-cycle model and terminology, (2) a characterizing scheme for software product and process specifications, (3) guidelines for using the characterization scheme to identify clearly certain life-cycle phases, and (4) guidelines for using the characterization scheme to select and evaluate specification techniques.
http://www.sei.cmu.edu/publications/documents/cms/cm.011.html
SEI-SM-25, ADA223739
Support Materials for Language and System Support for Concurrent Programming
Ford, G., ed.
April 1990
This support materials package includes materials helpful in teaching concurrent programming.
http://www.sei.cmu.edu/publications/documents/cms/sm.025.html
SEI-CM-23,
ADA223872
Technical Writing for Software Engineers
Levine, L.; Pesante, L.; & Dunkle, S.
May 1990
This module, which is directed specifically to software engineers, discusses the writing process in the context of software engineering. Its focus is on the basic problem-solving activities that underlie effective writing, many of which are similar to those underlying software development. The module draws on related work in a number of disciplines, including rhetorical theory, discourse analysis, linguistics, and document design. It suggests techniques for becoming an effective writer and offers criteria for evaluating writing.
http://www.sei.cmu.edu/publications/documents/cms/cm.023.html
SEI-CM-26,
ADA235700
Understanding Program Dependencies
Wilde, N.
August 1990
A key to program understanding is unravelling the interrelationships of program components. This module discusses the different methods and tools that aid a programmer in answering the questions "How does this system fit together?" and "If I change this component, what other components might be affected?"
http://www.sei.cmu.edu/publications/documents/cms/cm.026.html
Educational Materials
CMU/SEI-90-EM-003,
ADA228026
Reading Computer Programs: Instructor's Guide and Exercises
Deimel, L. & Naveda, J.
The ability to read and understand a computer program is a critical skill for the software developer, yet this skill is seldom developed in any systematic way in the education or training of software professionals. These materials discuss the importance of program reading, and review what is known about reading strategies and other factors affecting comprehension. These materials also include reading exercises for a modest ADA program and discuss how educators can structure additional exercises to enhance program reading skills.
http://www.sei.cmu.edu/publications/documents/ems/90.em.003.html
Special Reports
CMU/SEI-90-SR-006,
ADA226695
DARK Technology Transition Plan
Bamberger, J.
The DARK Transition Project Plan is aimed at the transition of the concepts, models, and prototype implementation developed by the DARK development project over the past two years. This document presents the background, rationale, and conceptual goals of the DARK Project.
- Provides an overview of the phase approach to Technology Transition used within the SEI and its relationship to DARK Project activities.
- Describes the goals and objectives of the DARK Transition Project in the context of the phase approach.
- Defines the tasks constituting the DARK Transition Project.
http://www.sei.cmu.edu/publications/documents/90.reports/90.sr.006.html
CMU/SEI-90-SR-003,
ADA248089
Domain Analysis Bibliography, A
Hess, J.; Cohen, S.; Holibaugh, B.; Kyang, K.; Peterson, A.; Novak, W.; & Carroll,
P.
This document presents a bibliography of references on a comparatively new discipline called domain analysis. This discipline defines a process to identify and represent the relevant information in a domain (a set of systems which share common capabilities). The information is derived from:
- The study of existing systems and their development histories
- Knowledge captured from domain experts
- Underlying theory
- Emerging technology
The bibliography's purpose is to provide an historical perspective on the field as well as a necessary background for further work in the discipline.
http://www.sei.cmu.edu/publications/documents/90.reports/90.sr.003.html
CMU/SEI-90-SR-012,
ADA227564
National Software Capacity: Near-Term Study (Executive Summary)
Siegel, J.; Stewman, S.; Konda, S.; Larkey, P.; & Wagner, W.
This document is a summary of the results of the near-term study. The complete results are published in CMU/SEI- 90-TR-012, ADA226694.
http://www.sei.cmu.edu/publications/documents/90.reports/90.sr.012.html
CMU/SEI-90-SR-010,
ADA226725
Understanding the Adoption of ADA: Results of an Industry Survey
Carlson, M. & Smith, G.
In 1983, the U.S. Department of Defense (DoD) established a policy requiring the use of a new programming language ADA, for the development of all new Mission-Critical Computer Resource (MCCR) software that it purchases. Firms that supply the DoD with these systems have shown considerable variation in their decisions to incorporate this new technology into their products and production processes. This survey is part of a multi-stage research project that sought to understand the variability in firms' adoption and use of new information technologies. The present report is a follow-up and elaboration on a case study of the adoption of ADA which is described in CMU/SEI-89-TR-028, Understanding the Adoption of ADA: A Field Study Report.
Participants in the survey were 123 business and technical people from 69 business units that supply the DoD with MCCR software systems and services. The survey explored factors pertaining to respondents' technical and market environments in an attempt to describe depth of adoption and to describe the differences between the firms with active ADA contracts and those without active contracts. For firms that have adopted ADA the report describes aspects of the language and tools that are considered most useful in different application areas. At present, 85% of the units have proposed to use ADA as a primary implementation language, and 70% have been awarded a contract in which ADA is the primary implementation language. Within the context of this study ADA contract awards have been in the following application areas: aircraft engines, attack radar, display processors, flight control, flight trainers, ground control vehicles, night vision, radar warning receivers, missiles, space command and control, and tactical command and control. Survey participants reported that ADA is being used in 50% of the new development contracts and is being proposed for use in 60% of the contracts in the proposal stage.
http://www.sei.cmu.edu/publications/documents/90.reports/90.sr.010.html
Technical Reports
CMU/SEI-90-TR-019,
ADA226724
Analysis of Input/Output Paradigms for Real-Time Systems, An
Klein, M. & Ralya, T.
The correctness of a real-time system with hard deadline requirements depends both on the logical correctness and on the timing correctness of the system. The principles of rate monotonic scheduling have proven to be very useful in providing a framework for designing, analyzing, and modifying the timing and concurrency aspects of real-time systems. This paper illustrates how to build a mathematical model of the schedulability of a real-time system, taking into consideration such factors as preemption, synchronization, non-preemptibility, interrupts, and process idle time. In particular, this paper illustrates how these principles can be applied to input/output interfaces (e.g., to devices or local area networks) to predict the timing behavior of various design alternatives.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.019.html
CMU/SEI-90-TR-014,
ADA235640
CASE Tool Integration and Standardization
Zarrella, P.
CASE tool users are faced with the task of coordinating tools and data from a variety of sources spanning the entire software development life cycle. Despite much discussion and increased standardization activity, complete, transparent CASE tool integration is still a long way from realization. There are a number of factors which have complicated the tool integration scenario and a number of actions being taken in an attempt to resolve the problems. The implications of these concerns can be examined from the perspectives of single-vendor, multiple-vendor, operating environment, development process, and end-user integration. In addition to specific technical and methodological solutions, standards efforts are viewed as a possible path to tool integration. To date, formal efforts have done little to resolve the integration problems, but de facto standards may well become the cornerstone of future CASE tool evolution.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.014.html
CMU/SEI-90-TR-022,
ADA237049
Design Space and Design Rules for User Interface Software Architecture, A
Lane, T.
The architecture of a user interface software system can be described in terms of a fairly small number of key functional and structural choices. This report presents a "design space" that identifies these key choices and classifies the alternatives available for each choice. The design space is a useful framework for organizing and applying design knowledge. The report presents a set of design rules expressed in the terms of the design space. These rules can help a software designer to make good structural choices based on the functional requirements for a user interface system. Extension of this work might eventually provide automated assistance for structural design.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.022.html
CMU/SEI-90-TR-017,
ADA226693
Experiences Porting the Distributed ADA Real-Time Kernel
Tomayko, J. & Smith, B.
The Distributed ADA Real-Time Kernel (DARK) is a mechanism for supporting the execution of distributed real-time ADA applications in embedded computer systems. It provides a solution to scheduling and distributing tasks without modifying the ADA language or vendor-supplied run time systems. An important test of the utility of the Kernel is whether or not it can be ported to different hardware architectures and still function effectively. As part of an independent research and development project, Boeing Military Airplanes and The Wichita State University became co-acceptors of a copy of DARK for the purpose of demonstrating a port to a 68000-based distributed architecture. This technical report describes the experiences in accomplishing the port.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.017.html
CMU/SEI-90-TR-021,
ADA235785
Feature-Oriented Domain Analysis (FODA) Feasibility Study
Kang, K.; Cohen, S.; Hess, J.; Novak, W.; & Peterson, A.
Successful software reuse requires the systematic discovery and exploitation of commonality across related software systems. By examining related software systems and the underlying theory of the class of systems they represent, domain analysis can provide a generic description of the requirements of that class of systems and a set of approaches for their implementation. This report will establish methods for performing a domain analysis and describe the products of the domain analysis process. To illustrate the application of domain analysis to a representative class of software systems, this report will provide a domain analysis of window management system software.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.021.html
CMU/SEI-90-TR-008,
ADA235752
Generic Avionics Software Specification
Locke, D. & Goodenough, J.
This report informally specifies the general functions, data interactions, and timing constraints for an avionics mission control computer system typical of those found in some existing U.S. Navy/Marine Corps aircraft. Avionics functions and equipment are described only to the extent needed to specify MCC behavior, with primary emphasis being given to timing constraints and data interactions. The specification is intended to allow a wide variety of possible implementation approaches and was developed primarily to exemplify timing requirements and functional interactions in a typical real-time system.
The specification consists of an introductory description of the environment in which the mission computer operates followed by a functional description of the requirements imposed on the mission computer. The functional description is minimal and serves mainly to characterize computer workload and data interactions. An appendix contains a summary of the timing requirements together with an analysis of the expected CPU load for a particular attack scenario.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.008.html
CMU/SEI-90-TR-007,
ADA226817
Hartstone Benchmark Results and Analysis
Donohoe, P.
Hartstone is a series of timing requirements for testing a system's ability to handle hard real-time applications. It is specified as a set of processes with well-defined workloads and timing constraints. The name Hartstone derives from HArd Real Time and the fact that the workloads are based on the well-known Whetstone benchmark. This report describes the results obtained by running Version 1.0 of the Hartstone benchmark, an ADA implementation of one of the requirements, on a number of compiler/target processor combinations. The characteristics and expected behavior of the benchmark are described, actual results are presented and analyzed, and the lessons learned about the compilers and processors, and the benchmark itself, are discussed. Nothing in this report should be taken as an endorsement of or an indictment of a particular product. Users of ADA technology are encouraged to experiment with the Hartstone benchmark relative to their own particular application requirements.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.007.html
CMU/SEI-90-TR-006,
ADA226723
Implementing Sporadic Servers in ADA
Sprunt, B. & Sha, L.
The purpose of this paper is to present the data structures and algorithms for implementing sporadic servers in real- time systems programmed in ADA. The sporadic server algorithm is an extension of the rate monotonic scheduling algorithm. Sporadic servers are tasks created to provide limited and usually high-priority service for other tasks, especially aperiodic tasks. Sporadic servers can be used to guarantee deadlines for hard-deadline aperiodic tasks and provide substantial improvements in average response times for soft-deadline aperiodic tasks over polling techniques. Sporadic servers also provide a mechanism for implementing the Period Transformation technique that can guarantee that a critical set of periodic tasks will always meet their deadlines during a transient overload. Sporadic servers can also aid fault detection and containment in a real-time system by limiting the maximum execution time consumed by a task and detecting attempts to exceed a specified limit. This paper discusses two types of implementations for the sporadic server algorithm: (1) a partial implementation using an ADA task that requires no modifications to the ADA runtime system and (2) a full implementation within the ADA runtime system. The overhead due to the runtime sporadic server implementation and options for reducing this overhead are discussed. The interaction of sporadic servers and the priority ceiling protocol is also defined.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.006.html
CMU/SEI-90-TR-015,
ADA235783
Informatics for a New Century: Computing Education for 1990s and Beyond
Shaw, M.
Information technology and computer science have not only reshaped computation, communication, and commerce; they have expanded the basic models and paradigms of many disciplines. Informatics education has obligations to all the communities that rely on information technology, not just the computing professionals. Serving this extended audience well requires changes in the content and presentation of computing curricula. This paper sketches the coming needs for information processing and analyzes the populations that will require informatics education. It considers curriculum requirements through two examples, one outside the traditional boundary of computer science and one inside.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.015.html
CMU/SEI-90-TR-012,
ADA226694
National Software Capacity: Near-Term Study
Siegel, J.; Stewman, S.; Konda, S.; Larkey, P.; & Wagner, W.
This study provides an initial assessment of the U.S.'s industrial capacity to produce MCCR software. A survey of senior government and industry people showed that 90 percent of them expected a serious problem with the nation's capacity to produce military software over the next 5 years. They ranked acquisition and labor factors as contributing most to the failure of military system development contracts to meet schedule or costs. The study team also analyzed available data about the supply of labor (new graduates and experienced scientists and engineers) and three aspects of demand (ADA systems, PDSS, and related commercial applications) before concluding there is a serious capacity problem. The report describes labor, organizational, and technological issues affecting software production capacity and concludes with some preliminary recommendations for DoD and industry initiatives.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.012.html
CMU/SEI-90-TR-020,
ADA235751
Prospects for an Engineering Discipline of Software
Shaw, M.
Software Engineering is not yet a true engineering discipline, but it has the potential to become one. Older engineering fields offer glimpses of the character software engineering might have. From these hints and an assessment of the current state of software practice, we can project some characteristics software engineering will have and suggest some steps toward an engineering discipline of software.
This paper begins by examining the usual practice of engineering and the way it has evolved in other disciplines. This discussion provides a historical context for assessing the current practice of software production and setting out an agenda for attaining an engineering practice.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.020.html
CMU/SEI-90-TR-003,
ADA223881
SEI Report on Undergraduate Software Engineering Education, 1990
Ford, G.
Fundamental issues of software engineering education are presented and discussed in the context of undergraduate programs. Included are discussions of the definition of software engineering and its differences from computer science, the need for undergraduate software engineering education, possible accreditation of undergraduate programs, and prospects for professional certification and licensing of software engineers. The objectives and content of an undergraduate program are described, as are strategies for the evolution and implementation of such programs. An appendix presents a report on the 1989 SEI Workshop on an Undergraduate Software Engineering Curriculum.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.003.html
CMU/SEI-90-TR-024,
ADA235784
Software Engineering Process Group Guide
Fowler, P. & Rifkin, S.
Improving the of software systems development and maintenance is the most reliable way to improve product quality. This document offers guidance on how to establish a software engineering process group (SEPG) and related software engineering process improvement functions. The process group works with line organizations to improve process quality by helping to assess current status, plan and implement improvements, and transfer technology to facilitate improvement in practice.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.024.html
CMU/SEI-90-TR-011,
ADA235753
Spectrum of Functionality in Configuration Management Systems
Dart, S.
The Software Environments Project at the Software Engineering Institute has found considerable progress concerning support for software configuration management (CM) in environments and tools. This paper's intent is to highlight a spectrum of features provided by existing CM systems. The spectrum shows features as being extensions or generalizations of other features and these extensions represent the progress. As part of presenting the features, the scope of issues concerning users of CM systems is discussed. No single CM system provides all the functionality required by the different kinds of users of CM systems. Rather, each CM system addresses some part of a spectrum of functionality. To complete the report, several configuration management systems are briefly described.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.011.html
CMU/SEI-90-TR-026,
ADA235781
SQL ADA Module Description Language SAMeDL, Version 3.75, The
Graham, M.
This document is a reference manual for the SQL ADA Module Description Language (SAMeDL). The SAMeDL is used to describe database services needed by ADA application programs.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.026.html
CMU/SEI-90-TR-032,
ADA235776
STARS/Users Workshop: Final Report-Issues for Discussion Groups
Bamberger, J., ed.
The STARS (Software Technology for ADAptable, Reliable Systems) Program is focused on providing the DoD software community with a software engineering environment, repository technology, and process models. This STARS Workshop was targeted toward increasing the communication between the STARS Program and the builders of software- dependent systems. This was the first of many public discussion hosted by the STARS Program. This workshop was hosted by the SEI.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.032.html
CMU/SEI-90-TR-018,
ADA235737
Studying Software Architecture Through Design Spaces and Rules
Lane, T.
This report argues that the overall structure of software systems ("software architecture") is usefully studied by constructing design spaces. A design space identifies the key functional and structural choices made in creating a system design, and it classifies the alternatives available for each choice. Rules can be formulated to relate choices within a design space. Sets of such rules are a valuable design aid and offer a promising route to automatic structural design. By codifying design practice, design spaces can also aid software maintenance and training. To support this argument, the report describes a design space and associated rules for user interface software, and it discusses an experiment that validated these design rules by comparing their predictions to real system designs.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.018.html
CMU/SEI-90-TR-005,
ADA223741
Survey of Formal Specification Techniques for Reactive Systems
Place, P. & Wood, W.
Formal methods are being considered for the description of many systems including systems with real-time constraints and multiple concurrently executing processes. This report develops a set of evaluation criteria and evaluates Communicating Sequential Processes (CSP), the Vienna Development Method (VDM), and temporal logic. The evaluation is based on specifications, written with each of the techniques, of an example avionics system.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.005.html
CMU/SEI-90-TR-025,
ADA235639
Tool Version Management Technology: A Case Study
Feiler, P. & Downey, G.
This report describes a portion of the problem of maintaining tools for the purpose of software development. It discusses an innovative solution to tool version management available in the commercially available Network Software Environment from Sun Microsystems, Inc. It applies NSE mechanisms to solve three problems that are common to the use and management of tools for software development.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.025.html
CMU/SEI-90-TR-023,
ADA235510
Transaction-Oriented Configuration Management: A Case Study
Feiler, P. & Downey, G.
Software configuration management (SCM) is a key element of the software development process. A number of new configuration management techniques in commercial SCM tools and environments with SCM capabilities have been observed. This report illustrates some of the advances in SCM concepts by example of a particular commercial system: the Sun Network Software Environment (NSE). NSE embodies a transaction model of configuration management. In order to demonstrate the capabilities and limitations of the transaction model, NSE is applied to three problem areas for configuration management: adaptation for parallel development and team support, development and maintenance in software families and development in a distributed and heterogeneous network.
http://www.sei.cmu.edu/publications/documents/90.reports/90.tr.023.html
[2007] [2006] [2005] [2004] [2003] [2002] [2001] [2000] [1999] [1998] [1997] [1996] [1995] [1994] [1993] [1992] [1991] [1990] [1989] [1988] [1987] [1986] [PDF]