IEEE 982.1 Standard

What Is the IEEE 982.1 Standard?

The IEEE 982.1 standard is an IEEE Standards Association document that defines a catalog of measures for the dependability of software, covering reliability, maintainability, and availability. It was first published in 1988 as IEEE Std 982.1, the Standard Dictionary of Measures to Produce Reliable Software, and revised in 2005 as the Standard Dictionary of Measures of the Software Aspects of Dependability. Its purpose is definitional rather than prescriptive: it fixes the meaning, the inputs, and the computation of each measure so that organizations reporting the same quantity are reporting the same thing. The standard explicitly does not require any particular measure to be used, and it does not set threshold values that software must meet.

The document belongs to the family of IEEE software engineering standards developed by what is now the IEEE Computer Society's software and systems engineering standards committee, alongside standards for verification and validation, software quality assurance, and life cycle processes. IEEE SA has since moved the 2005 edition to inactive-withdrawn status, so the document is no longer maintained, although its measure definitions continue to be cited in software reliability work.

Scope and Structure of the Dictionary

Each entry in the dictionary follows a fixed template that names the measure, states its application, gives the primitives it is computed from, and specifies the calculation and the interpretation of the result. The measures span the full development life cycle rather than sitting only at the end of it, so requirements-phase measures such as requirements traceability and requirements compliance appear beside code-phase measures such as fault density and defect density, and beside operational measures such as mean time to failure, failure rate, and cumulative failure profile. Product measures, which characterize the delivered software, are kept distinct from process measures, which characterize the activities that produced it. This separation lets an assessor argue about whether a given product outcome is attributable to the development process or to the operating environment.

From Reliable Software to Dependability

The 1988 edition framed the problem as producing reliable software and drew its vocabulary from the hardware reliability tradition. The 2005 revision reframed it around dependability, a broader property that encompasses reliability, availability, and maintainability together, and aimed the resulting measure set at assessing and predicting the behavior of any software system, with particular attention to mission-critical systems where failure carries safety or financial consequences. The revision also reflected two decades of experience with software reliability growth models, which fit observed failure data to a statistical model in order to estimate remaining faults and to decide when testing has reached the point of diminishing returns.

Applying the Measures

The 1988 dictionary was issued with a companion guide, IEEE Std 982.2, which supplied the underlying concepts and motivation for establishing a measurement process together with guidance on selecting measures, and which has also been withdrawn. Practical use begins with choosing a small set of measures tied to a specific question, such as whether a release is ready to ship or whether defect discovery is converging, then defining the primitive counts precisely enough that different teams collect them consistently. The measurement process itself is treated in the wider standards framework, notably in the ISO/IEC/IEEE systems and software measurement process standard, while the vocabulary is anchored in the systems and software engineering vocabulary standard. The recurring difficulty in practice is primitive definition: counts of faults, failures, and lines of code vary widely between organizations, and a measure is only comparable across projects when those counting rules are held fixed.

Applications

The IEEE 982.1 standard has applications in a range of fields, including:

  • Safety-critical software development in aerospace, rail, and nuclear systems
  • Defense and government software acquisition and contract reporting
  • Medical device software assurance
  • Telecommunications network software reliability engineering
  • Software process improvement and quality management programs
  • Academic research on software reliability models and defect prediction
Loading…