Because most software developers are not familiar with using “formal theories” it is worth explaining what a theory is.
In his book, “Models. Behaving. Badly.”, Emanual Derman explains the differences between metaphors, models, and theories. - A metaphor describes something less understandable by relating it to something more understandable.
- A model is a specimen that exemplifies the ideal qualities of something. Models tend to simplify. There tend to always be gaps between models and reality. Models are analogies; they tend to describe one thing relative to something else. Models need a defense or an explanation.
- A theory describes absolutes. Theories are the real thing. A theory describes the object of its focus. A theory does not simplify. Theories are irreducible, the foundation on which new metaphors can be built. A successful theory can become a fact. A theory describes the world and tries to describe the principles by which the world operates. A theory can be right or wrong, but it is characteristic by its intent: the discovery of essence.
Theories can be expressed logically, mathematically, symbolically, or in common language; but are generally expected to follow well understood principles of logic or rational thought.
Theory can be implemented within a robust model which is understandable by computer software.
|