The objectives of the model are clearly stated and visible.
The model is at an appropriate level of detail given the model objectives.
The model's use of modeling constructs is appropriate to the problem at hand.
The model is as simple as possible while still achieving the goals of the model.
The model appears to be able to accommodate reasonably expected future changes.
The design is appropriate to the task at hand (neither too complex nor too advanced).
The design appears to be understandable and maintainable.
The design appears to be implementable.
Layers
There are no more than seven (plus or minus two) layers.
The rationale for layer definition is clearly presented and consistently applied.
Layer boundaries are respected within the design.
Layers are used to encapsulate conceptual boundaries between different kinds of services and provide useful
abstractions which makes the design easier to understand.