Aktuell
Auf dieser Seite finden Sie Artikel zu aktuellen Themen aus meiner Arbeit.
Die Entscheidungstabelle - unterschätzt und vergessen? Juni 2008
Die Entscheidungstabelle fiel mir bereits vor dem Studium auf, ich fand diese in einem Buch über Software-Engineering kurz und knackig erläutert.
Ein altes Buch, mit einer alten Methode? Taugt die denn noch was, in einer objektorientierten Softwareewelt, könnte man sich fragen.
Sie taugt auch jetzt noch, aber...
Die Entscheidungstabelle wurde Ende der 50er (!) Jahre von General Electric entworfen und 1979 unter der Nr. 66241 als DI-Norm (DIN)aufgenommen.
Für diejenigen, die die Entscheidungstabelle nicht kennen, mache ich es mir einfach und verweise auf Wikipedia: Entscheidungstabelle.
Zugegeben, wenn man die Methode nicht kennt, lässt sich dieses Hilfsmittel in Zeiten von UML & Co. nicht so recht einordnen.
Es gibt kaum etwas leistungsfähigeres als die Entscheidungstabelle, um komplexe, konkrete Logik abzubilden. Aus meiner eigenen Praxis habe ich es erlebt, wie Programmierer "von Hand" z.B. komplexe Preis- und Rabattmodelle in Software giessen wollten - und gleich mehrfach gescheitert sind. Ihr Nachteil ist ihr Vorteil: die Entscheidungstabelle zwingt hier zur vollständigen Analyse und erfordert einen scheinbar höheren Aufwand zu ihrer Erstellung.
Doch hier trügt der Schein, wie so oft in der IT sind die Ersterstellungskosten einer Software nur ein Bruchteil der TCO, sprich die Wartung kostet letzlich ein Mehrfaches.
Die Methode scheint schnell gelernt, da sie mit wenigen Elementen auskommt. Doch so einfach ist es leider nicht. Oftmals ist nicht klar, wie Spezifikationen (oder Teile hieraus) in eine Entscheidungstabelle überführt werden können. Dies erfordet Übung und Erfahrung.
Noch eines hat die Praxis gezeigt: ohne maschinelle Umsetzung ist der Aufwand für die Entscheidungstabelle auf Dauer tatsächlich zu groß. Mit entsprechender Unterstützung durch Software sieht die Sache jedoch anders aus. Es existieren auf dem Markt inzwischen einige Software-Tools, die aus Entscheidungstabellen ablauffähigen Code generieren können, z.B. in Java, Visual Basic oder C#.
Die Entscheidungstabelle hilft dabei, komplexe Businessregeln zu beherrschen und wartbar zu halten, sie gibt Antwort auf Fragen wie: was fehlt, was ist redundant, etc.
Die Entscheidungstabelle eignet sich auch sehr gut, um den Ansatz des Test-Driven Developments zu leben: aus den Bedingnungen und den einzelnen Wertebereichen lassen sich alle Testfälle ableiten. Dabei kann jedoch eine sehr grosse Anzahl von Testfällen entstehen, in der Praxis wird daraus eine relevante Untermenge ausgesucht.
Doch im Titel steckt eine Frage, die Antwort lautet aus meiner Sicht: unterschätzt ja, vergessen nein!