Barry Boehm, "Verifying and Validating Software Requirements and Design Specifications," IEEE Software, Volume 1, Number 1, January 1984, pp. 75-88 (pdf)
"Don't worry about that specification paperwork. We'd better hurry up and start coding, because we're going to have a whole lot of deo-bugging to do."
How many projects start out this way and end up with either a total failure or a tremendously expensive self-fulfilling prophecy? There are still far too many, but more and more projects are turning the self-fulfilling prophecy around. By investing more up-front effort in verifying and validating their software requirements and design specifications, these projects are reaping the benefits of reduced integration and test costs, higher software reliability and maintainability, and more user-responsive software. To help increase their number, this article presents the following guideline information on verification and validation, or V&V, of software requirements and design specifications:
* definitions of the terms "verification" and "validation," an explanation of their context in the software life cycle, and a description of the basic sequence of V&V functions;
* an explanation, with examples, of the major software requirements and design V&V criteria: completeness, consistency, feasibility, and testability;
* an evaluation of the relative cost and effectiveness of the major software requirements and design V&V techniques with respect to the major criteria; and
* an example V&V checklist for software system reliability and availability.
Based on the above, we recommend combinations of software requirements and design V&V techniques that are most suitable for small, medium, and large software specifications.
Added February 13th, 2010
Barry Boehm, Maria H. Penedo, E. Don Stuckle, Robert D. Williams, Arthur B. Pyster, "A Software Development Environment for Improving Productivity," Computer, Volume 17, Number 6, June 1984, pp. 30-44 (pdf)
A major effort at improving productivity at TRW led to the creation of the software productivity project, or SPP, in 1981. The major thrust of this project is the establishment of a software development environment to support project activities; this environment is called the software productivity system, or SPS. It involves a set of strategies, induding the work environment; the evaluation and procurement of hardware equipment; the provision for immediate access to computing resources through loca1 area networks; the building of an integrated set of tools to support the software development life cycle and all project personnel: and a user support function to transfer new technology. All of these strategies are being accomplished incrementally. The current architecture is Vax-based and uses the Unix operating system, a wideband local network,
and a set of software tools.
This article describes the steps that led to the creation of the SPP, summarizes the requirements analyses on which the SPS is based, describes the components which
make up the SPS, and presents our conclusions.
Added June 6th, 2008
Barry Boehm, "Software Engineering Economics," IEEE Transactions on Software Engineering , Volume SE-10, Number 1, January 1984, pp. 4-21 (pdf)
This paper summarizes the current state of the art and recent trends in software engineering economics. It provides an overview of economic analysis techniques and their applicability to software engineering and management. It surveys the field of software cost estimation, including the major estimation techniques available, the state of the art in algorithmic cost models, and the outstanding research issues in software cost estimation.
Added July 25th, 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.