Metrics for the Analysis of Product Model Complexity
Ulrich Hartmann, Petra von Both · 2010
Today we see several product model standards getting more and more corpulent by absorbing concepts of neighboring domains, but behind the good intentions of getting ‘complete’ the perils of complexity are lurking. Raising computer power gives us the means of handling large digital models, but the overall situation resembles the scenery of the mid-1970s, where the software industry ran into the so-called software crisis. Edsger Dijkstra (Dutch computer scientist 1930- 2002, Turing Award, Dijkstra's Algorithm, Structured Programming) put it quite bluntly: “as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem” (The Humble Programmer, Edsger W. Dijkstra, 1972). Pursuing traditional concepts with growing tool power may lead to structural deficiencies not anticipated before. It is in the nature of complexity to have no single ‘magic’ number, representing the complexity of a general system, at hand. The comparison of system complexity at a universal level is therefore next to impossible by definition. Models -and in our case product models- are an abstraction of the system they represent, reducing concepts of the real world to the necessary minimum. Complexity analysis on this reduced set of conceptual model elements can therefore be conducted down to a numerical level. Metrics for the assessment of software complexity and design quality have been proven in practice within the software industry. The article gives a brief overview on complexity metrics, how to apply them to product models and possible strategies for keeping model complexity at a reasonable level. Different model standards will be analyzed, distinguishing between logical complexity inherent to the problem domain and formal complexity imposed by the model notation. Due to the metrics presented, views on complexity can be structural, behavioral, quantitative and even cognitive. As a conclusion, a line can be drawn between different aspects of model complexity and potential model acceptance.