Decision Model and Notation (DMN) - Die Qualität von Entscheidungen verbessern
Anhand eines Beispiels erläutert der Beitrag, warum auch für das Formulieren von Anforderungen für Entscheidungen eine eigene Sprache, die Decision Model and Notation (DMN), entwickelt wurde.
Anforderungen in der Software-Entwicklung
Bevor eine Software programmiert werden kann, müssen die Anforderungen an die neue Anwendung festgelegt werden. Üblicherweise legt nicht das spätere Entwicklungsteam die Anforderungen fest, sondern beispielsweise die Fachabteilung. Wichtig ist, dass Anforderungen eindeutig und unmissverständlich formuliert sind, damit alle Projektbeteiligten ein einheitliches inhaltliches Verständnis haben. Insbesondere die Ersteller der Anforderungen und die Software-Entwickler brauchen ein identisches fachliches Verständnis der Anforderungen. Andernfalls können Fehlinterpretationen dazu führen, dass Funktionen entwickelt werden, die so nie gefordert wurden. Solche Missverständnisse nachträglich zu beheben, ist teuer und zeitaufwendig.
Anforderungen in der Software-Entwicklung werden oftmals noch als natürlichsprachliche Texte erfasst. Die natürliche Sprache bietet den Vorteil, dass sie sehr ausdrucksstark ist und ohne weiteren Spracherwerb sofort gelesen und geschrieben werden kann.
Wie verständlich ist natürliche Sprache?
Natürliche Sprachen sind ein echter Tausendsassa. Ihre Vielfalt ist Vorteil und Nachteil zugleich. Möglichst vieles mit einer Sprache ausdrücken zu können, bedeutet nämlich auch, dass gerade in Spezialfällen die Tiefe fehlt. Sollen komplexe logische oder mathematische Anforderungen beschrieben werden, stoßen natürlichsprachliche Texte an ihre Grenzen.
Zur Verdeutlichung nutzen wir ein Textbeispiel aus der Straßenverkehrs-Zulassungs-Ordnung der 60er-Jahre (leicht modifizierter Auszug).
„Die Anzeige der Geschwindigkeitsmesser darf vom Sollwert abweichen ab der 30 km/h-Anzeige – jedoch mindestens von der 50 km/h-Anzeige ab, wenn die letzten beiden Drittel des Anzeigenbereiches oberhalb der 50 km/h-Grenze liegen – 0 bis +7 vom Hundert des Skalenstandwertes; bei Geschwindigkeiten von 20 km/h und darüber darf die Anzeige den Sollwert nicht unterschreiten.“
Der Text beschreibt, inwiefern die Abweichung einer Tachometeranzeige zulässig ist – und zwar wenig verständlich und mit viel Interpretationsspielraum. Genau das darf in der Software-Entwicklung nicht passieren.
Die Komplexität logischer und mathematischer Anforderungen lässt sich oft nur mit hohem Aufwand oder gar nicht in natürlicher Sprache präzise, aber gleichzeitig verständlich beschreiben. Daher sind Kunstsprachen entstanden, die diese Aufgabe beispielsweise in der Mathematik und der Programmierung übernehmen. Auch bei der Beschreibung von Daten und Geschäftsprozessen ist es mittlerweile Standard, graphische Notationen ergänzt um natürlichsprachliche Texte einzusetzen. Getreu dem Motto: Ein Bild sagt mehr als tausend Worte. Der Leser erfasst auf den ersten Blick den groben Sachverhalt und kann sich von dem groben Überblick in die Details des Bildes hineinzoomen. Das Risiko für Fehlinterpretationen sinkt.
Eine Sprache für Entscheidungen: Decision Model and Notation
Auch bei der Erstellung von Anforderungen für Entscheidungen spricht vieles für grafische Notationen. Aber ausgerechnet hier basieren die Anforderungen zumeist nur auf natürlicher Sprache. Benötigt wird jedoch eine Sprache, die mathematische und logische Anforderungen einfach, leicht verständlich und eindeutig beschreibt. Auch nicht Mathematik-affine Leser sollten mithilfe der Sprache die Anforderungen ausreichend verstehen. Die Sprache sollte weltweit normiert, unabhängig von natürlichen Sprachen und leicht zu erlernen sein und schnell einen groben Überblick geben.
Zu diesen Erkenntnissen sind auch einige Entwickler einer der populärsten Sprachen für die Geschäftsprozessmodellierung gekommen: die Business Process Model and Notation (BPMN) von der Object Management Group (OMG).
Sie haben eine eigene Sprache für Entscheidungen entwickelt und zwar die Decision Model and Notation (DMN). In dieser Notation lassen sich Mathematik- und Logik-lastige Anforderungen leicht lesbar und eindeutig formulieren. Dieser Standard wird zum Beschreiben und Modellieren von sich wiederholenden Entscheidungen in Organisationen genutzt. DMN ermöglicht Nutzern aus den verschiedensten Abteilungen, effektiv bei der Entscheidungsmodellierung zusammenzuarbeiten und diese zu dokumentieren.
In der Dokumentation der DMN heißt es: „Das Hauptziel von DMN ist es, eine gemeinsame Notation bereitzustellen, die für alle Geschäftsanwender leicht verständlich ist, von den Business Analysten, die erste Entscheidungsanforderungen erstellen müssen, über detailliertere Entscheidungsmodelle bis hin zu den technischen Entwicklern, die für die Automatisierung der Entscheidungen in Prozessen verantwortlich sind, und schließlich von den Geschäftsleuten, die diese Entscheidungen verwalten und überwachen.“
Neben der reinen Beschreibung von Anforderungen hilft DMN auch dabei, sehr komplexe Anforderungen strukturiert darzustellen.
DMN unterteilt die Anforderungsbeschreibung in zwei Ebenen (Level). Die Ebene „Requirements Level“ gibt dem Leser eine grobe graphische Übersicht der Entscheidung. Die zweite Ebene „Logic Level“ beschreibt die konkrete Entscheidungslogik. Dies kann per Entscheidungstabelle oder in der DMN-eigenen Logik-Sprache namens Friendly Enough Expression Language (FEEL) grafisch strukturiert erfolgen.
Business-Nutzen von DMN
Im Vergleich zu dem einfachen Beispiel zur Tachometerabweichung hat Materna in Zusammenarbeit mit Kunden bereits deutlich komplexere Entscheidungen in DMN formuliert. Der Einsatz von DMN führt zu zwei Effekten: Projektbeteiligte können auf der einen Seite erstmals Anforderungen an Entscheidungen wirklich detailliert und präzise genug beschreiben. Auf der anderen Seite fördert die sehr präzise Beschreibung fachliche Fragen ans Licht, die bislang gar nicht berücksichtigt wurden. Insgesamt verbessert sich dadurch ganz erheblich die Transparenz bzgl. Umfang und Ausmaß von Entscheidungen.
Die Möglichkeit, die in DMN modellierte Entscheidung 1:1 direkt auszuführen, ist ein weiterer großer Vorteil. Besonders interessant wird dies bei der Nutzung als integrierter Testschritt bei der DMN-Modellierung. Anhand von fachlichen Testfällen kann während der Erstellung der Anforderungen in DMN schon geprüft werden, ob sie zu dem erwarteten Ergebnis führen. Dies ist ein großer Fortschritt und Geschwindigkeitsgewinn bei der Erstellung.
Materna hat mit dem „DMN-Tester“ eine Open Source Software entwickelt, die unter GitHub frei zugänglich ist. So lassen sich fachlich korrekte Entscheidungen schnell entwickeln.
Fazit
Entscheidungen lassen sich in natürlichsprachlichen Texten schwer erfassen. Mit wachsender Komplexität werden Beschreibungen immer weniger verständlich und unpräziser. DMN erleichtert maßgeblich, Entscheidungen leicht verständlich und eindeutig zu formulieren. Die Nutzung von DMN hilft zu einer neuen Sicht auf die Gesamtanforderungen und führt zu einem besseren fachlichen Verständnis. Da sich die in DMN formulierten Entscheidungen direkt ausführen lassen, beschleunigt sich das Entscheidungsmanagement und die Qualität wird verbessert.