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