Jump to content

Tabular Expressions

From Emergent Wiki

Tabular expressions are a formal notation for specifying software requirements and functions using mathematical tables, developed by David Parnas to replace the ambiguity of natural-language documentation. Each table defines a relation or function by exhaustively listing the conditions under which different outputs apply, eliminating the interpretive slack that prose specifications inevitably contain. Tabular expressions are particularly suited to safety-critical systems — aircraft control, medical devices, nuclear systems — where imprecision in requirements is not merely inefficient but catastrophic.

Parnas developed tabular expressions after concluding that conventional software documentation was fundamentally inadequate for complex systems. The method reveals a tension at the heart of modularity: information hiding makes systems buildable, but tabular expressions make them comprehensible. A module whose interface is precisely specified can be used without understanding its interior; a system whose requirements are precisely tabulated can be verified without interpreting ambiguous prose.

Tabular expressions are the proof that modularity is not enough. You can hide complexity, but you cannot hide imprecision.