Formalismus, Exaktheit und Vollständigkeit kontra Einfachheit
Ein Modell ist eine vereinfachte Darstellung. Es ist nicht die Realität. Es ist aus diesem Grund auch niemals wirklich "richtig". Es stellt eine komplexe Sache dar, aber es entspricht ihr nicht. Die Einfachheit wird mit mehr oder weniger großen Abweichungen erkauft.
Es gibt im Softwareengineering eine Tendenz, die Abweichungen zu minimieren und zwar durch Formalismus, Exaktheit und Vollständigkeit von Modellen. Diese Tendenz geht natürlich insbesondere mit der Nutzung von Analyse- und Designtools einher.
- Als Formalismus wird hier eine festgelegte Notation für eine Modellform bezeichnet (Man stelle sich eine Modell-Beschreibungssprache vor).
- Vollständigkeit eines Modells bedeutet, dass das ganze System erfasst wird (anstatt nur Ausschnitte des Systems oder bestimmte Komponenten).
- Exaktheit ist die Stimmigkeit im Detail.
Zwischen Exaktheit und Formalismus gibt es einen direkten Zusammenhang. Je mehr Exaktheit erzielt werden soll, um so komplizierter die Beschreibungssprache.
Formalismus, Exaktheit und Vollständigkeit wirken dem eigentlichen Ziel von Modellierung – der Einfachheit – direkt entgegen. Die Modelle nehmen dadurch eine Komplexität an, welche der Komplexität des späteren Systems kaum nachsteht.
Es gibt zwei Hintergründe für diese Entwicklung:
- Einerseits hofft man, aus den Modellen den Quellcode immer automatisierter erzeugen zu können.
- Andererseits geben Softwaremethoden bestimmte Modellformen vor und man glaubt, mit der formalen Ausarbeitung eines Modells, die zu klärenden Fragen schon alle irgendwie zu erwischen. Mit anderen Worten: Habe ich das Modell komplett und exakt erstellt, muss wohl auch alles geklärt worden sein, was zu klären war.
Kennzeichnend für diesen Umgang mit Modellen ist, dass irgendwann das Gefühl aufkommt, man arbeitet hier nur noch etwas formal ab – eine leere Fleißarbeit. Und: Es kann geistig ganz schön anstrengend werden.
Im Grunde wird bei dieser Art Modellierung bereits implementiert, nur mit einer abstrakteren Sprache. Aber wo ist dann die Modellierung abgeblieben?