Characteristics of Good Specifications

Venkatesh-Prasad Ranganath
1 min readMay 20, 2016

Given the set of desired behaviours/functionalities/requirements B and the set of specifications S of an entity E,

Consistent: Every pair of specifications p and q in S should be mutually consistent, i.e., p does not contradict q and q does not contradict p. This ensures E can indeed be realized/implemented.

Sufficient (Maximal Behaviour): S should allow all behaviours B of E. This ensures against under-engineering of E.

Necessary (Minimal Specification): Every specification p in S should be necessary to allow at least one behaviour of E from B. This ensures against over-engineering of E.

Checkable: We should be able to check if a realization/implementation of E satisfies S. This ensures that the realization/implementation is indeed E.

--

--

Venkatesh-Prasad Ranganath

Engineer / Ex-Academic / Ex-Researcher curious about software and computing.