A LinkedIn forum question resonated with a question that has long interested me.

“The UML comprises 13 diagram types, the SysML comprises 9 diagram types. Each of these offers a different view of a planned system and helps to create a common understanding. But how many diagrams are necessary, and how many elements per diagram are useful? I wrote a short article about it (http://www.microtool.de/en/requirementsengineering/ideal-number-diagrams-diagram-elements/), because as a tool vendor we often get this kind of question. I claim that there is no formula or metric available to answer these question, but I wonder if that’s really correct?” Michael Schenkel.

I see two questions here:

- Given a particular design problem, which UML diagram type is most useful?
- Is there a quantitative way to evaluate or compare alternative models?

To the first question, yes, there are many principles to guide how to develop a UML model, but nearly all are qualitative heuristics. There are hundreds of books that offer such guidance.

To the second question, can model aspects be quantified, also yes, but …

Tom DeMarco used the heuristic “partition to minimize interface complexity” for designing with data flow diagrams, but it is just as applicable to abstraction hierarchies that can be represented with UML. The heuristic was in part based on the quantitative modeling presented in Christopher Alexander’s *Notes on the Synthesis of Form*, which presented an information-theoretic model to quantify model dependency, the better to find a well-formed structure. Given a CASE tool that produced the basic metrics for a system model, it wouldn’t be hard to evaluate UML charts in a similar manner.

Although quite interesting, metrics like this are only useful as hints. Alexander noted “The search for causal relations of this sort cannot be mechanically experimental or statistical; it requires interpretation: to practice it we must adopt the same kind of common sense that we have to make use of all the time in the inductive part of science.”

I wrote a research paper long ago about quantitative analysis of system models: An Analysis of Several Models of System Structure. This preceded UML by ten years, but the results are directly transferable. I haven’t kept up with the research on this, and I’d expect that there are new wrinkles on this question.