NASA-GB-001-94, SOFTWARE ENGINEERING PROGRAM: SOFTWARE MEASUREMENT GUIDEBOOK (AUG 1995)
NASA-GB-001-94, SOFTWARE ENGINEERING PROGRAM: SOFTWARE MEASUREMENT GUIDEBOOK (AUG 1995)., his Software Measurement Guidebook is based on the extensive experience of several
organizations that have each developed and applied significant measurement1 programs
over a period of at least 10 years. One of these organizations, the Software Engineering
Laboratory (SEL) at the National Aeronautics and Space Administration (NASA) Goddard Space
Flight Center (GSFC), has been studying and applying various techniques for measuring software
since 1976. During that period, the SEL has collected measurement data from more than 100
flight dynamics projects ranging in size from 10,000 to over 1,000,000 source lines of code
(SLOC). These measurement activities have generated over 200,000 data collection forms, are
reflected in an online database, and have resulted in more than 200 reports and papers. More
significantly, they have been used to generate software engineering models and relationships that
have been the basis for the software engineering policies, standards, and procedures used in the
development of flight dynamics software.
Many other organizations in both Government and industry have documented their significant
measurement experiences. (See, for example, References 1 through 7.) The lessons derived from
those experiences reflect not only successes but also failures. By applying those lessons, an
organization can minimize, or at least reduce, the time, effort, and frustration of introducing a
software measurement program.
The Software Measurement Guidebook is aimed at helping organizations to begin or improve a
measurement program. It does not provide guidance for the extensive application of specific
measures (such as how to estimate software cost or analyze software complexity) other than by
providing examples to clarify points. It does contain advice for establishing and using an
effective software measurement program and for understanding some of the key lessons that
other organizations have learned. Some of that advice will appear counterintuitive, but it is all
based on actual experience.
Although all of the information presented in this guidebook is derived from specific experiences
of mature measurement programs, the reader must keep in mind that the characteristics of every
organization are unique. Some degree of measurement is critical for all software development
and maintenance organizations, and most of the key rules captured in this report will be generally
applicable. Nevertheless, each organization must strive to understand its own environment so that
the measurement program can be tailored to suit its characteristics and needs.