Amnon H. Eden, Yoram Hirshfeld, Rick Kazman
IEE Software, Vol. 153, No. 4, pp. 163–182. London, UK: The Institution of Engineering and Technology
Publication year: 2006

We distinguish between three abstraction strata in software design statements: strategic statements (“architectural design”) determine global design constraints; tactical statements (“detailed design”) determine local design constraints, such as design patterns; and implementation statements determine specific properties of the implementation, such as class diagrams and program documentation. Seeking to ground this intuition in a well-defined vocabulary, we define two criteria of distinction in mathematical logic. We present the Intension/Locality Hypothesis, postulating that the spectrum of software design statements is divided into three well-defined “abstraction classes”:

  1. Class NL (“non-local”) contains strategic statements
  2. class LI (“local and intensional”) contains tactical statements; and
  3. class LE (“local and extensional”) contains implementation statements.

We demonstrate a broad range of software design statements that corroborate our hypothesis and prove the architectural mismatch theorem, according to which architectural mismatch arises from attempting to combine components that assume conflicting non-local statements.