Guidelines for Modeling
In Enterprise Architecture at Work, the authors include a chapter on guidelines for modeling. I'm capturing them here as these concepts may be very valuable to reference and keep top of mind in the architecture process.
Conceptual Integrity - "the degree to which a model can be understood by a single human mind, despite it's complexity. The core idea of conceptual integrity is that any good design exhibits a single, coherent vision, which is easy to understand by others."
- Do not link what is independent (orthogonality)
- Do not introduce multiple functions that are slightly divergent (generality)
- Do not introduce what is irrelevant (economy/parsimony)
- Do not restrict what is inherent (propriety)
Krogtstie, Lindland, Sindre, Defining Quality Aspects for Conceptual Models. 1995
Lindland, Sindre, Solvberg Understanding Quality in Conceptual Modeling, IEEE Software 11(2):42-49 1994
Teeuw, Berg On the Quality of Conceptual Models 1997
- A model has to provide answers to questions - modeling in itself is not an objective: a model serves a purpose to answer some particular questions. Make these questions explicit to find appropriate scope and focus.
- Make a clear distinction between a model and its visualisations - architects have a tendency to consider a visualisation of a model as the model itself.
- Grice's Maxims (Logic and Conversation, Syntax and Semantics III: Speech Acts. pp 41-58. 1975)
- Maxim of Quantity
- Make your model as informative as necessary
- Do not make your model more informative than necessary
- Maxim of Quality
- Do not model what you believe to be false
- Do not model that for which you lack adequate evidence
- Maxim of Relevance
- Be relevant (i.e. model things related to the modelling goal)
- Maxim of Manner
- Avoid obscurity of expression
- Avoid ambiguity
- Be brief (avoid unnecessary concepts and relations)
- Be orderly
- Model Iteratively - discuss intermediate (stable) versions, use feedback to improve and determine parts that need more detail
- Model for dynamics - describe forseen changes that can occur
- Be economical in models - Model only concepts and relationships that are relevant for the given purpose and type of stakeholder
- Be economical in views - When communicating with a stakeholder, use a view that only includes concepts and relations relevant for that stakeholder
- Make concepts recognisable - Use the same names stakeholders use
- Make a model consistent - Apply same concepts as the real world. Use same terms to denote same concepts
- Keep related models consistent - Coherence between models is important: avoid conflictss and use uniform terminology
- Make models as correct and complete as needed - a model should be a correct representation of something from the real world, focusing on specific aspects. Models do not have to be 100% complete because people can fill in the gaps. Main structures must be clear, but details and exceptions are left for implementation phase.
- Treat different concerns orthogonally - different concerns should be addressed in different parts of the model, or related models