Characteristics of Good Specifications

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.

Written by

Programming, experimenting, writing | Past: SWE, Researcher, Professor | Present: SWE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store