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]
1996 Reports
Handbooks
CMU/SEI-96-HB-004,
ADA293345
Description of the Systems Engineering Capability Maturity Model® Appraisal Method Version 1.1, A
Kuhn, D.; Wells, C.; Armitage, J.; Cusick, K.; Garcia, S.; Hanna, M.; Malpass, P.; &
Pierson, H.
The purpose of this document is to summarize the major elements of the Systems Engineering Capability Maturity Model® (SE-CMM®) appraisal method (SAM). SAM is a method for using the SE-CMM to benchmark, or otherwise appraise, the process capability of an organization's or enterprise's systems engineering function. The SE-CMM itself is described in CMU/SEI-96-HB-004 [SECMM]. This document describes each step of an SE-CMM appraisal and provides guidance for the preparation and conduct of an appraisal. It also contains background and context information about the appraisal method.
http://www.sei.cmu.edu/publications/documents/96.reports/96.hb.001.html
CMU/SEI-96-HB-002,
ADA313946
Goal-Driven Software Measurement-A Guidebook
Park, R.
The materials in this guidebook are designed to help you identify, select, define, and implement software measures to support your business goals. The measures that result are traceable back to your business goals, so that data collection efforts are better able to stay focused on their intended objectives.
http://www.sei.cmu.edu/publications/documents/96.reports/96.hb.002.html
CMU/SEI-96-HB-001,
ADA305472
IDEAL: A User's Guide for Software Process Improvement
McFeeley, B.
This document describes a software process improvement (SPI) program model, IDEAL, which can be used to guide development of a long-range, integrated plan for initiating and managing an SPI program. The purpose of this document is to provide process improvement managers with a generic description of a sequence of recommended steps for SPI.
http://www.sei.cmu.edu/publications/documents/96.reports/96.hb.001.html
Special Reports
CMU/SEI-96-SR-011,
ADA308240
Directory of Industry and University Collaborations with a Focus on Software Engineering Education
Beckman, K.
This directory describes collaborative efforts to promote software engineering education among businesses and universities in the United States and Canada. The groups vary in their maturity and the services they provide. The reader can use this directory to find collaborations that match their needs and are located within their geographic area.
http://www.sei.cmu.edu/publications/documents/96.reports/96.sr.011.html
CMU/SEI-96-SR-001,
ADA311456
Domain Analysis Workshop Report for the Automated Prompt and Response System Domain
Krut, R. & Zalman, N.
This report captures the results of the domain analysis tutorial and workshop at Research Triangle Park for Bell Northern Research/Northern Telecom (BNR/NT). Included in this report are brief descriptions of the components of the domain analysis methodology employed and the products developed during the workshop. The information captured within this report will serve as a supplement to the Feature-Oriented Domain Analysis (FODA) tutorial and workshop for the ultimate pilot study domain. The importance of this report is that it provides the future workshop participants with an understanding of the types of products created at a workshop and gives examples of FODA products in a domain familiar to the participants.
http://www.sei.cmu.edu/publications/documents/96.reports/96.sr.001.html
CMU/SEI-96-SR-006,
ADA314007
SEI Strategic Plan: 1997-2001
This document presents the strategic plan of the Software Engineering Institute (SEI) for the next five years (1997- 2001). The SEI technical program is organized into three broad areas: technical engineering practices, enhanced software management capabilities, and transition readiness. Because technical engineering practices potentially cover a very wide set of issues, we intend to use information survivability as a unifying application problem for this aspect of our work. This document was written in early 1996 and delivered to our sponsor (the Defense Advanced Research Projects Agency [DARPA]) as a contract deliverable in July 1996. As such, it was a draft plan; its execution depends primarily on approved resource allocations. The planning starts long before the Congress completes its budget authorization and appropriation. Historically, circumstances such as changing customer needs and shifting resource allocations have made it necessary to change our plans.
http://www.sei.cmu.edu/publications/documents/96.reports/96.sr.006.html
CMU/SEI-96-SR-004,
ADA319072
Software Acquisition Capability Maturity Model® Pilot Appraisal Report, Version 1.0
Ferguson, J.; Jones, L.; & Philpot, J.
This document summarizes five pilot appraisals performed from the third quarter of 1995 through the first quarter of 1996 using the Software Acquisition Capability Maturity Model® (SA-CMM®). The pilot appraisals used Version 0.01 of the SA-CMM, published in June 1995; Version 0.02 of the SA-CMM, published in February 1996; and the CMM- based appraisal methodology for internal process improvement (CBA IPI), tailored for use with the SA-CMM.
http://www.sei.cmu.edu/publications/documents/96.reports/96.sr.004.html
Technical Reports
CMU/SEI-96-TR-006,
ADA307890
Architectural Description of the Simplex Architecture, An
Rivera, J.; Danylyszyn, A.; Weinstock, C.; Sha, L.; & Gagliardi, M.
Simplex is a software architecture for dependable and evolvable process-control systems developed by the Software Engineering Institute. Our project consisted of creating a formal specification of this architecture, and analyzing its safety and liveness properties. We developed a Communicating Sequential Processes (CSP) model to describe the overall dynamic behavior of the Simplex architecture, which we verified using the Failure-Divergence Refinement (FDR) model checker. As a result, we discovered interesting things about the use of FDR that revealed subtle points in the Simplex architecture. We also developed a WRIGHT specification of this architecture to characterize precisely the connections between its components at the architectural level. The specification was based on the latest version of the CSP model.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.006.html
CMU/SEI-96-TR-034,
ADA324517
Best Training Practices Within the Software Engineering Industry
Mead, N.; Tobin, L.; & Couturiaux, S.
This report provides the results of a benchmarking study to identify the best training practices within the software engineering community. We surveyed 24 organizations to create a broad picture of training as it currently exists in industry. We then chose three of these organizations for an in-depth study to identify the best training practices and enablers to those practices. This report summarizes the results of the survey and the in-depth study, and discusses the best practices and enablers that were identified.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.034.html
CMU/SEI-96-TR-035,
ADA320528
Case Study in Structural Modeling, A
Chastek, G. & Brownsword, L.
This report is one in a series of Software Engineering case studies in software architecture. It describes structural modeling, a technique for creating software architectures based on a small set of design elements called structural types. Structural modeling resulted from the efforts of the Air Force Aeronautical Systems Command (ASC/YW) and has been used by Air Force contractors since the late 1980s to design large-scale, high-fidelity aircrew trainer simulation software. This report examines the changes, resulting from the use of structural modeling, to the trainer's software architecture and to the development methods used.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.035.html
CMU/SEI-96-TR-016,
ADA315802
Case Study in Successful Product Line Development, A
Brownsword, L. & Clements, P.
A product line is a set of related systems that address a market segment. Building a product line out of a common set of core assets, as opposed to building each member system separately, epitomizes reuse. Although software technology is key to achieving a product line capability, organizational and process considerations are just as crucial. This report describes the experience of one company, CelsiusTech Systems AB of Sweden, that builds large, complex, embedded, real-time shipboard command-and-control systems as a product line, developed in common from a base set of core software and organizational assets. The report describes the changes that CelsiusTech had to make to its software, organizational, and process structures to redirect the company toward a product line approach that yielded substantial economic and marketplace benefits to the company.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.016.html
CMU/SEI-96-TR-023,
ADA320485
Cleanroom Software Engineering Implementation of the Capability Maturity Model® (CMM®) for Software
Linger, R.; Paulk, M.; & Trammel, C.
The Capability Maturity Model® for Software (CMM®) developed by the Software Engineering Institute, and Cleanroom Software Engineering developed by Dr. Harlan Mills and his associates in IBM and other organizations, share a common concern with software quality and the effectiveness of software development. The principal focus of the CMM is on process management maturity; the principal focus of Cleanroom is on rigorous engineering processes. The CMM management processes and the Cleanroom engineering processes are complementary and mutually reinforcing.
The Capability Maturity Model for Software describes the principles and practices underlying software process maturity. It is intended to help software organizations improve the maturity of their software processes through an evolutionary path from ad hoc, chaotic processes to mature, disciplined software processes. The CMM is organized into five maturity levels. The maturity levels are defined in terms of 18 key process areas (KPAs) that characterize project performance at each level.
Cleanroom software engineering is a theory-based engineering process for development and certification of high- reliability software systems under statistical quality control. Cleanroom is intended to help software organizations improve their ability to apply engineering discipline to software development. Cleanroom is defined in terms of 14 processes that implement the technology and operations involved in Cleanroom software development.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.023.html
CMU/SEI-96-TR-022,
ADA319071
Cleanroom Software Engineering Reference
Linger, R. & Trammell, C.
Cleanroom software engineering is a theory-based team-oriented process for development and certification of high- reliability software systems under statistical quality control. A principal objective of the Cleanroom process is development of software that exhibits zero failures in use. The Cleanroom name is borrowed from hardware Cleanrooms, with their emphasis on rigorous engineering discipline and focus on defect prevention rather than defect removal. Cleanroom combines mathematically based methods of software specification, design, and correctness verification with statistical, usage-based testing to certify software fitness for use. Cleanroom projects have reported substantial gains in quality and productivity.
This report defines the Cleanroom Software Engineering Reference Model, or CRM. The CRM is expressed in terms of a set of 14 Cleanroom processes and 20 work products. It is intended as a guide for Cleanroom project management and performance, process assessment and improvement, and technology transfer and adoption.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.022.html
CMU/SEI-96-TR-007,
ADA307934
CMM-Based Appraisal for Internal Process Improvement (CBA IPI): Method Description
Dunaway, D. & Masters, S.
This document is a high-level overview of the CMM®-Based Appraisal for Internal Process Improvement (CBA IPI) V1.1 assessment method. It provides a brief history of SEI appraisal methods, as well as establishing appraisals in the context of the IDEAL approach to software process improvement. CBA IPI is a diagnostics, enables, and encourages an organization's commitment to process improvement. The method helps an organization gain insight into its software development capability by identifying strengths and weaknesses of its current processes related tot he Capability Maturity Model® for Software V1.1. The method focuses on identifying software improvements that are organization's business goals and current maturity level. Brief descriptions of the method activities, roles, and responsibilities are provided. In addition, guidelines are provided for establishing resource requirements for conducting a CBA IPI. The SEI Appraiser Program is discussed, detailing the requirements for persons qualified to lead CBA IPIs.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.007.html
CMU/SEI-96-TR-019,
ADA320731
Coming Attractions in Program Understanding
Tilley, S. & Smith, D.
Program understanding is the (ill-defined) deductive process of acquiring knowledge about a software artifact through analysis, abstraction, and generalization. This report identifies some of the emerging technologies in program understanding. We present technical capabilities currently under development that may be of significant benefit to practitioners within five years. Three areas of work are explored: investigating cognitive aspects, developing support mechanisms, and maturing the practice.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.019.html
CMU/SEI-96-TR-008,
ADA309156
Coming Attractions in Software Architecture
Clements, P.
Software architecture is a field of study enjoying unprecedented growth and interest. This report identifies a set of promising lines of research related to software architecture and architecture-based system development that are expected to lead to advances available soon to practitioners. Some of the goals of software architecture are enumerated, and the investigatory efforts are structured according to work in the design or selection and creation, representation, evaluation and analysis, utilization, or legacy recovery of software architectures. Promising research is described in each area. These opinions are correlated with those of other experts in the field. Finally, a timeline for achieving some of the predicted results is offered.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.008.html
CMU/SEI-96-TR-018,
ADA313952
Concept of Operations for ESC's Product Line Approach
Cohen, S.; Friedman, S.; Martin, L.; Royer, T.; Solderitsch, N.; & Webster, R.
This document describes the Concept of Operations (ConOps) and transition strategy for the product line approach to software systems development at the Air Force Electronic Systems Center (ESC), Hanscom Air Force Base, Massachusetts. This document defines the organizations implementing the product line approach and the processes used by the organizations. It describes the roles and responsibilities, and the relationships among the organizations. The processes needed to implement software system development using the product line approach are described at a high level and will be further detailed and refined as the product line approach is implemented at ESC.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.018.html
CMU/SEI-96-TR-014,
ADA310912
Controlled Experiment Measuring the Effect of Procedure Argument Type Checking on Programmer Productivity, A
Prechelt, L. & Tichy, W
Type checking is considered an important mechanism for detecting programming errors, especially interface errors. This report describes an experiment to assess the error-detection capabilities of static intermodule type checking.
The experiment uses ANSI C and Kernighan&Ritchie (K&R) C. The relevant difference is that the ANSI C compiler checks module interfaces (i.e., the parameter lists of calls to external functions), whereas K&R C does not. The experiment employs a counterbalanced design in which each subject writes two non-trivial programs that interface with a complex library (Motif). Each subject writes one program in ANSI C and one in K&R C. The input to each compiler run is saved and manually analyzed for errors.
Results indicate that delivered ANSI C programs contain significantly fewer interface errors than delivered K&R C programs. Furthermore, after subjects have gained some familiarity with the interface they are using, ANSI C programmers remove errors faster and are more productive (measured in both time to completion and functionality implemented).
This report describes the design, setup, and results of the experiment including complete source code and error lists.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.014.html
CMU/SEI-96-TR-010,
ADA315653
Investment Analysis of Software Assets for Product Lines
Withey, J.
Group, product line, and program managers are faced with of allocating resources to projects. Should all resources be dedicated to meet near-term deliverables? Or should some be siphoned off to build software assets that may improve quality, flexibility, and reduce cost and time-to-market of future products in the product line? These managers also have to determine which assets to buy or build. The choices are many, ranging from reusable code components to design models to application generators, and each has a different risk and cash flow profile.
This report introduces an approach that will help managers make these allocation decisions. The report outlines a planning and communication tool for analyzing investments in software assets for product lines.
Although the report is not a guidebook, the concepts, criteria, and investment modeling techniques will be useful in making and justifying proposals for funding. The concepts are drawn from the fields of microeconomics, corporate finance, marketing, R&D technology management, and software reuse.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.010.html
CMU/SEI-96-TR-004,
ADA307889
Mature Profession of Software Engineering, A
Ford, G. & Gibbs, N.
A model is presented that allows the characterization of the maturity of a profession in terms of eight infrastructure components: initial professional education, accreditation, skills development, certification, licensing, professional development, a code of ethics, and a professional society. Several mature professions are examined to provide examples of the nature of these components. The current states of the components of software engineering are described, and predictions are made for the evolution of those components as the profession matures.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.004.html
CMU/SEI-96-TR-036,
ADA324233
Principles for Evaluating the Quality Attributes of a Software Architecture
Barbacci, M.; Klein, M.; & Weinstock, C.
Software quality is the degree to which software possesses a desired combination of attributes (e.g., reliability, interoperability). In this paper we describe a few principles for analyzing a software architecture to determine if it exhibits certain quality attributes. We show how analysis techniques indigenous to the various quality attribute communities can provide a foundation for performing software architecture evaluation. We also show how the principles provide a context for existing evaluation approaches such as scenarios, questionnaires, checklists, and measurements. Our immediate goal in identifying these principles for attribute-based architecture evaluation is to better integrate existing techniques and metrics into software architecture practice, not necessarily to invent new attribute-specific techniques and metrics. A longer-term goal is to codify these principles into systematic procedures or methods for architecture evaluation. This paper is an initial step towards identifying the ingredients of such methods.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.036.html
CMU/SEI-96-TR-024,
ADA327609
Radical Improvements Require Radical Actions: Simulating a High-Maturity Software Organization
Burke, S.
This report describes the methodology used to create a simulation of a high-maturity software organization and the results of that simulation. The goal of this research was to find the quantitative value of improving from the Capability Maturity Model® (CMM®) Level 3 to Level 5. The method was to simulate a high-maturity organization using its actual empirical data and then "cut out" the high-maturity elements of the simulation. The resulting change in software size, effort, schedule, and quality would be a more accurate measure of the value of high maturity than working forward with a low- or medium-maturity organization and merely hypothesizing the activities and values of high maturity. The author used computer simulations based on systems thinking and systems dynamics, which reasonably modeled the "soft variables" of the people aspects of an organization (personnel attitudes, learning curve, participation in software process improvement, etc.). The simulation also related the soft variables to the hard variables of a software organization's life-cycle process (software size, effort, schedule, quality, etc.).
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.024.html
CMU/SEI-96-TR-025,
ADA320786
Recommended Best Industrial Practice for Software Architecture Evaluation
Abowd, G.; Bass, L.; Clements, P.; Kazman, R.; Northrop, L.; & Zaremski, A.
Architectural decisions have a great impact on the consequent quality of software systems. As a result, it is important to evaluate how a software architecture meets it quality demands. Though much focus has been placed on modeling and describing the software architecture as a design artifact, we found that relatively little is known about the current experience with software architecture.
This report details the results of two workshops on software architecture evaluation, held at the Software Engineering Institute (SEI) on November 9-10, 1995 and May 9-10, 1996. The purpose of the workshops was to determine the state of industrial practice in the evaluation of software architectures with respect to a set of desired quality attributes, and to uncover recommendations for best practices. In this report, we summarize the findings of the two workshops, define a set of dimensions to characterize various software architecture evaluation techniques, and make concrete recommendations for implementing architecture evaluation practices.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.025.html
CMU/SEI-96-TR-020,
ADA320606
Software Acquisition Capability Maturity Model®
Ferguson, J.; Cooper, J.; Falat, M.; Fisher, M.; Guido, A.; Marciniak, J.; & Webster,
R.
The SA-CMM is a model for benchmarking and improving the software acquisition process. The model follows the same architecture as the Capability Maturity Model® for Software (SW-CMM®), but with a unique emphasis on acquisition issues and the needs of individuals and groups who are planning and managing software acquisition efforts.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.020.html
CMU/SEI-96-TR-013,
ADA310916
Software Process Automation: Experiences from the Trenches
Christie, A.; Levine, L.; Morris, E.; Zubrow, D.; Belton, T.; Proctor, L.; Cordelle, D.;
Ferotin, J.; Solvay, J.; & Segoti, G.
Software process automation is a new technology with significant promise. However, practical experience in the field is still limited and there appears to be a variety of potential barriers to its use. The objective of this empirical study is to document current practical experience and to identify what works and what does not. Lessons learned from the study will be disseminated to help others who wish to implement the technology. This report documents results from the first phase of the study in which 14 in-depth interviews were conducted. Personnel interviewed were involved in projects in which process-centered environments were developed and adopted.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.013.html
CMU/SEI-96-TR-012,
ADA315789
Software Risk Management
Higuera, R. & Haimes, Y.
This paper presents a holistic vision of the risk-based methodologies for Software Risk Management (SRM) developed at the Software Engineering Institute (SEI). SRM methodologies address the entire life cycle of software acquisition, development, and maintenance. This paper is driven by the premise that the ultimate efficacy of the developed methodologies and tools for software engineering is to buy smarter, manager more effectively, identify opportunities for compatible information and databases more efficiently, improve industry raise the community's playing field, and review and evaluate progress. The methodologies are based on seven management principles: shared product vision, teamwork, global perspective, forward-looking view, open communication, integrated management, and continuous process.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.012.html
CMU/SEI-96-TR-017,
ADA317090
Transitioning a Model-Based Software Engineering Architectural Style to Ada 95
Gargaro, A. & Peterson, A.
This report describes the transition of an existing model-based software engineering architectural style to Ada 95. The report presents an overview of software architecture for developing product families of domain-specific applications comprising reusable components, explains recognized deficiencies in the existing Ada mapping to this software architecture, and proposes solutions for correcting these deficiencies using a mapping to Ada 95. The report concludes with observations gained during the transition exercise and recommendations for future activities aimed towards deploying and enhancing the proposed mapping.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.017.html
CMU/SEI-96-TR-009,
ADA310918
Transitioning Domain Analysis: An Industry Experience
Schnell, K. & Zalman, N.
This report provides an industry experience in the planning and execution of a research project to pilot the use of the Software Engineering Institute (SEI) (domain analysis methodology known as feature-oriented domain analysis (FODA). Supported by examples, experiences, and lessons learned from the industry pilot study conducted by Nortel in collaboration with the SEI, this report addresses seven key areas: (1) Nortel's motivation for change; (2) defining the problem area and the search for a range of solution possibilities and/or approaches; (3) obtaining sponsorship, participants, and funding; (4) development of the project plan and contract; (5) implementation of the project plan for the pilot study; (6) completion and closure of the pilot study; and (7) the transition and deployment of FODA.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.009.html
CMU/SEI-96-TR-003,
ADA305470
Software Architecture: An Executive Overview
Clements, P. & Northrop, L.
Software architecture is an area of growing importance to practitioners and researchers in government, industry, and academia. Journals and international workshops are devoted to it. Working groups are formed to study it. Textbooks are emerging about it. The government is investing in the development of software architectures as core products in their own right. Industry is marketing architectural frameworks such as CORBA. Why all the interest and investment? What is software architecture, and why is it perceived as providing a solution to the inherent difficulty in designing and developing large, complex systems? This report will attempt to summarize the concept of software architecture for an intended audience of mid to senior level management. The reader is presumed to have some familiarity with common software engineering terms and concepts, but not to have a deep background in the field. This report is not intended to be overly-scholarly, nor is it intended to provide the technical depth necessary for practitioners and technologists. The intent is to distill some of the technical detail and provide a high level overview.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.003.html
CMU/SEI-96-TR-002,
ADA309160
Software Capability Evaluation Version 3.0 Method Description
Byrnes, P. & Phillips, M.
This report describes Version 3.0 of the Software Capability Evaluation (SCE) Method. SCE is a method for evaluating the software process of an organization to gain insight into its process capability. This version of the SCE Method is based on the Capability Maturity Model® (CMM®) defined in Capability Maturity Model for Software, Version 1.1. It is compliant with the CMM Appraisal Framework (CAF). This document is an update to SCE Version 2.0.
http://www.sei.cmu.edu/publications/documents/96.reports/96.tr.002.html
[2007] [2006] [2005] [2004] [2003] [2002] [2001] [2000] [1999] [1998] [1997] [1996] [1995] [1994] [1993] [1992] [1991] [1990] [1989] [1988] [1987] [1986] [PDF]