Model Taxonomy
At the excellent SPA conference (www.spa2005.org) John Daniels led a workshop session "A Taxonomy of Models".
Defining “model” as including any kind of language, he made a table of how models are used; or rather, he wrote the outer headings and we (working in an interesting process) filled in the content:
|
|
Conceptual |
S/W Specification |
S/W Implementation |
|
Sketch (= informal) |
[1] Understanding the business domain |
[2]
Discussing S/W requirements |
[3]
Block diagrams, architectural sketches |
|
Blueprint (= precise but abstract/incomplete) |
[4]
Formal models of the business – plans, constraints, rules, … |
[5]
Test suites;
Formal S/W specification models |
[6]
Pseudo-code; class and sequence diagrams etc |
|
Program (= precise+complete enough to execute) |
[7]
Domain simulations |
[8]
DSL stuff – high-level but executable |
[9]
Ordinary programs |
He suggested that different methodological approaches can be characterised by the sequence you follow through the table. For example:
* Tedious waterfall: 1-2-3-4-5-6-9
* MDA: 5-6-9
* Agile modeling: 1-{5-9}*
* XP: 9-9-9
* DSLs: 1-8-9