University of Southern California
Home   Contact Us    
Center for Systems and Software Engineering

About us
Tech. Report
TR by Author
List of Affiliates
Private Area
Other Resources

Technical Reports


Barry Boehm, "Software Project Predictability and Control," AF/SA8, 1983 (pdf)

Software project predictability and control is critical to the Air- Force for two main reasons:
1. Software projects are inherently difficult to predict and control.
2. Software is necessarily on the critical path in many Air Force system acquisitions. Thus, any software project slippages are directly translated into slippages in operational readiness for many Air Force weapon systems and C3I systems.

The second section of this chapter discusses the nature of the software predictability and control problem: what is it about software projects which makes them difficult to predict and control? The third section discusses a number of techniques for improving software predictability and control which the Study Group found being applied successfully in some parts of the Air Force, including the use of prototyping, incremental development, design-to-cost, competitive analysis and design contracts, and software development capability /capacity reviews.

However, the Study Group found that these and other proven software risk management techniques are not being used in many Air Force system acquisitions. The Study Group concluded that a significant improvement in software project predictability and control would be effected by thorough application of these techniques, and that the most effective ways to get them used would be to establish and ensure the application of two further Air Force policies:
1. A policy on software risk management;
2. A policy on software oversight management.

Section 4 of this chapter presents and discusses the proposed policy on software risk management, presented as an additional chapter in the relevant Air Force regulation: AFR 800-14, Vol. II, "Acquisition and Support Procedures for Computer Resources in Systems." Section 5 presents the corresponding recommended policy on software oversight management.

Added June 6th, 2008


Barry Boehm, "The Economics of Software Maintenance," Proceedings of the Software Maintenance Workshop, Washington, D.C., 1983, pp. 9-37 (pdf)

Economic models and principles can help us:
Improve software maintenance productivity
Understand the software maintenance process

In this talk I will address two theses:

1. Economic models and principles can help us improve software maintenance productivity. I will illustrate this thesis with some insights based on the COCOMO model for estimating software maintenance costs.

2. Economic models and principles can help us understand the software maintenance process. I will illustrate this thesis by presenting a rationale showing how economic decisions made by software maintenance managers drive the software maintenance process into a dynamic equilibrium. The evolution dynamics of this equilibrium reflect and extend such current laws as the five Belady-Lehman laws of evolution dynamics.

Added June 6th, 2008


Herbert D. Benington, "Production of Large Computer Programs," IEEE Annals of the History of Computing, Volume 5, Number 4, October-December 1983, pp. 350-361 (pdf)

The paper is adapted from a presentation at a symposium on advanced programming methods for digital computers sponsored by the Navy Mathematical Computing Advisory Panel and the Office of Naval Research in June 1956. The author describes the techniques used to produce the programs for the Semi-Automatic Ground Environment (SAGE) system.

Added June 6th, 2008


Barry Boehm, "Seven Basic Principles of Software Engineering," The Journal of Systems and Software, Volume 3, Issue 1, March 1983, pp. 3-24 (pdf)

This paper attempts to distill the large number of individual aphorisms on good software engineering into a small set of basic principles. Seven principles have been determined which form a reasonably independent and complete set. These are: (1) manage using a phased life-cycle plan; (2) perform continuous validation; (3) maintain disciplined product control; (4) use modern programming practices; (5) maintain clear accountability for results: (6) use better and fewer people; and (7) maintain a commitment to improve the process. The overall rationale behind this set of principles is discussed, followed by a more detailed discussion of each of the principles.

Added June 6th, 2008

Copyright 2008 The University of Southern California

The written material, text, graphics, and software available on this page and all related pages may be copied, used, and distributed freely as long as the University of Southern California as the source of the material, text, graphics or software is always clearly indicated and such acknowledgement always accompanies any reuse or redistribution of the material, text, graphics or software; also permission to use the material, text, graphics or software on these pages does not include the right to repackage the material, text, graphics or software in any form or manner and then claim exclusive proprietary ownership of it as part of a commercial offering of services or as part of a commercially offered product.