|
|
|
|
|
by Denzel
3233 days ago
|
|
Software is not the spec, it's an implementation... of which there are many implementations that satisfy one spec. Spec writing is not like programming, and if it becomes like programming, then you're doing it wrong. Specs are meant to constrain the visible solution space by defining the problem sufficiently. To put it in programming language terms: a spec is declarative not imperative. |
|
Though imperative programming looks at the problem from another angle which is closer to execution details, it's not fundamentally different. A smart compiler/interpreter may completely ignore those details as long as it produces the right output, as specified by the spec. That spec being the code.
This is obvious when you see that one style of program can be converted to another style without losing the semantics.