We seek to distinguish Strategic design decisions (e.g., to adopt a programming paradigm, architectural style, CBSE standard or application framework) from tactical design decisions (e.g. to use a design pattern, refactoring or programming idiom). This distinction is important since strategic statements carry far-reaching implications over the implementation and therefore must be made early in the development process, whereas tactical statements have localized effect and must be deferred to a latter stage in the process.
We formulate the Locality criterion, a well-defined and language-independent criterion which divides all design statements in two abstraction classes. We apply our criterion to a broad range of statements and demonstrate that strategic statements are non-local and that tactical design statements are local. We also demonstrate that assumptions leading to architectural mismatch are non-local.