1 / 47

Entscheidungstabellen als Kommunikationsmittel

Raimond Reichert. Entscheidungstabellen als Kommunikationsmittel. Inhalt. Motivation Anwendungsbereich Modellierung Beispiele. 1958 Vier Analysten, vier Wochen, eine Entscheidungstabelle erfolgreich. 1950er Sechs Mannjahre klassische Spezifikation ohne Erfolg.

aulii
Télécharger la présentation

Entscheidungstabellen als Kommunikationsmittel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RaimondReichert Entscheidungstabellen als Kommunikationsmittel

  2. Inhalt Motivation Anwendungsbereich Modellierung Beispiele

  3. 1958 Vier Analysten, vier Wochen, eine Entscheidungstabelle erfolgreich 1950er Sechs Mannjahre klassische Spezifikation ohne Erfolg General ElectricSutherland CorporationUnited States Air Force

  4. Ein Weg zu EntscheidungstabellenTabellen plus diverse Erklärungen… Nur ein Auszug der Spezifikation

  5. Ein Weg zu Entscheidungstabellen… führen zu unwartbarem Code publicRoutingDecisiongetTrioBundleActivationRoutingDecision(finalUserTypeuserType, final String brokerId, finalbooleancheckAndIncrementCounter, final String customerLanguage) { if (userType.isShop()) { // Important: EnsurethatincrementAllIpCounteriscalledasthe last argumentasthiscallincrementsthe // counteratthe same time asreturningwhethertheincrement was successfulor not. if (configHelper.isLanguageSupported(customerLanguage) && isShopOnWhitelist(brokerId) && (!checkAndIncrementCounter || checkAndIncrementAllIpCounter())) { returnRoutingDecision.ACTIVATION_ALL_IP; } else { returnRoutingDecision.ACTIVATION_TDM_SHOP_AGENT; } } elseif (userType.isCustomer()) { // Important: EnsurethatincrementAllIpCounteriscalledasthe last argumentasthiscallincrementsthe // counteratthe same time asreturningwhethertheincrement was successfulor not. if (configHelper.isLanguageSupported(customerLanguage) && (!checkAndIncrementCounter || checkAndIncrementAllIpCounter())) { returnRoutingDecision.ACTIVATION_ALL_IP; } else { returnRoutingDecision.ACTIVATION_TDM_CUSTOMER; } } else { returnRoutingDecision.ACTIVATION_TDM_CUSTOMER; } } @Override publicbooleanisAllIpAdoptionPossible(final String mainPhoneNumber, finalUserTypeuserType, final String brokerId, booleancheckAndIncrementCounter, final String customerLanguage) { if (configHelper.isUseAllIp()) { if (!configHelper.isLanguageSupported(customerLanguage)) { returnfalse; } if (userType.isShop()) { // Important: EnsurethatincrementAllIpCounteriscalledasthe last argumentasthiscallincrements // thecounteratthe same time asreturningwhethertheincrement was successfulor not. returnisShopOnWhitelist(brokerId) && isAllIpAdoptionTechnicallyPossible(mainPhoneNumber) && (!checkAndIncrementCounter || checkAndIncrementAllIpCounter()); } else { if (configHelper.isUseAllIpWhitelist()) { returnuserType.isUserWhitelistedForAllIp(); } else { // Important: EnsurethatincrementAllIpCounteriscalledasthe last argumentasthiscall // incrementsthecounteratthe same time asreturningwhethertheincrement was successfulor not. returnuserType.isUserAllowedToOrderAllIp() && isAllIpAdoptionTechnicallyPossible(mainPhoneNumber) && (!checkAndIncrementCounter || checkAndIncrementAllIpCounter()); } } } returnfalse; } Nur ein Auszug der Implementation

  6. Beispiel SpitalbesuchDie Regeln in Textform Bereichsleiter Schmid möchte eine Mitarbeiterin im Krankenhaus besuchen. Er informiert sich telefonisch an der Information über die Besuchsmöglichkeiten und erhält folgende Antwort: Die Patientin kann ohne Einschränkungen besucht werden, sofern keine ansteckende Krankheit vorliegt. Sonst werden Besuche ganz abgelehnt. Beispiel adaptiert von www.informit.de

  7. Beispiel SpitalbesuchImplementation der Regeln in Code /* Die Patientin kann ohne Einschränkungen besucht werden, sofern keine ansteckende Krankheit vorliegt. Sonst werden Besuche ganz abgelehnt. */ if (patientin.hatAnsteckendeKrankheit() { besuch.ablehnen(); } else { besuch.erlauben(); } Beispiel adaptiert von www.informit.de

  8. Beispiel SpitalbesuchDie Regeln in Textform Bereichsleiter Schmid möchte eine Mitarbeiterin im Krankenhaus besuchen. Er informiert sich telefonisch an der Information über die Besuchsmöglichkeiten und erhält folgende Antwort: Die Patientin kann ohne Einschränkungen innerhalb der Besuchszeit besucht werden, sofern keine ansteckende Krankheit vorliegt. Außerhalb der Besuchszeit ist eine Schwester als Begleitung erforderlich. Falls die Patientin eine ansteckende Krankheit hat, werden Besuche ganz abgelehnt. Beispiel adaptiert von www.informit.de

  9. Beispiel SpitalbesuchImplementation der Regeln in Code /* Besuchszeit besucht werden, sofern keine ansteckende Krankheit vorliegt. Außerhalb der Besuchszeit ist eine Schwester als Begleitung erforderlich. Falls die Patientin eine ansteckende Krankheit hat, werden Besuche ganz abgelehnt. */ if (patientin.hatAnsteckendeKrankheit() { besuch.ablehnen(); } else { if (besuch.innerhalbBesuchszeit()) { besuch.erlauben(); } else { besuch.erlaubenInBegleitungSchwester(); } } Beispiel adaptiert von www.informit.de

  10. Beispiel SpitalbesuchDie Regeln in Textform Bereichsleiter Schmid möchte eine Mitarbeiterin im Krankenhaus besuchen. Er informiert sich telefonisch an der Information über die Besuchsmöglichkeiten und erhält folgende Antwort: Die Patientin kann ohne Einschränkungen innerhalb der Besuchszeit besucht werden, sofern keine ansteckende Krankheit vorliegt und sie kein Fieber hat. Außerhalb der Besuchszeit ist in diesem Fall eine Schwester als Begleitung erforderlich. Falls die Patientin eine ansteckende Krankheit hat, werden Besuche ganz abgelehnt. Wenn die Krankheit nicht ansteckend ist, die Patientin aber Fieber hat, darf der Besuch innerhalb der Besuchszeit maximal 30 Minuten betragen, außerhalb der Besuchszeit dürfen Patienten mit Fieber nicht besucht werden. Beispiel adaptiert von www.informit.de

  11. Beispiel SpitalbesuchImplementation der Regeln in Code ? if (patientin.hatAnsteckendeKrankheit() { besuch.ablehnen(); } else/* Patientin hat keine ansteckende Krankheit */ { if (patientin.hatFieber()) { if (besuch.innerhalbBesuchszeit()) { besuch.erlaubenMaximal30Minuten(); } else { besuch.ablehnen(); } } else/* Patientin hat kein Fieber */ { if (besuch.innerhalbBesuchszeit()) { besuch.erlaubenNormal(); } else { besuch.erlaubenInBegleitungSchwester(); } } } Beispiel adaptiert von www.informit.de

  12. Klassische Strukturierung einer Entscheidungstabelle itwissen.info/definition/lexikon/Entscheidungstabelle-decision-table.html

  13. Beispiel SpitalbesuchRegeln als Entscheidungstabelle Beispiel adaptiert von www.informit.de

  14. Beispiel SpitalbesuchAuswertung Entscheidungstabelle 1. Inputneinjanein Beispiel adaptiert von www.informit.de

  15. Beispiel SpitalbesuchAuswertung Entscheidungstabelle 2. 1. Suche nach Übereinstimmung Inputneinjanein Beispiel adaptiert von www.informit.de

  16. Beispiel SpitalbesuchAuswertung Entscheidungstabelle 2. 1. Suche nach Übereinstimmung Inputneinjanein Output: Aktion „Normalbesuch“ 3. Beispiel adaptiert von www.informit.de

  17. Beispiel Spitalbesuch: Auswertung in Java mit Rule Engine Drools /* Excel einlesen */ StatelessKnowledgeSessionsession = factory.getStatelessKnowledgeSession(); /* Vorbereitung Output */ SpitalBesuchResultatbesuch = newSpitalBesuchResultat(); session.setGlobal("SpitalBesuchResultat", session); /* 1. Aufbereitung Input */ InputParametersinputParameters = inputParametersCreator.create("nein", "ja", "nein"); /* 2. Auswertung */ session.execute(Arrays.asList(inputParameters)); /* 3. Output: Aktion in besuch gespeichert */

  18. Beispiel Spitalbesuch: Die Regeln als Entscheidungstabelle Beispiel adaptiert von www.informit.de

  19. Beispiel SpitalbesuchKonsolidierte Entscheidungstabelle Tabelle wächst horizontal mit Anzahl Regeln Beispiel adaptiert von www.informit.de

  20. Beispiel SpitalbesuchTransponierte Entscheidungstabelle Tabelle wächst vertikal mit Anzahl Regeln Diese Entscheidungstabelle ist vollständig: Alle 8 möglichen Fälle sind abgedeckt. Diese Entscheidungstabelle ist eindeutig: Die Bedingungen schliessen sich gegenseitig aus.

  21. Beispiel SpitalbesuchTransponierte Entscheidungstabelle Tabelle wächst vertikal mit Anzahl Regeln Diese Entscheidungstabelle ist mehrdeutig: Die Bedingungen der Regeln 5 und 6 schliessen sich nicht gegenseitig aus. Die Bedingungswerte n/j/j werden durch beide Regeln abgedeckt, führen aber zu unterschiedlichen Aktionen.

  22. Beispiel Spitalbesuch: Darstellung als Entscheidungsbaum Besuch ablehnen ja 30 Minuten Ansteckende Krankheit? Patientin hat Fieber? nein In Begleitung InnerhalbBesuchszeit? Besuch ablehnen Patientin hat Fieber? Normalbesuch Bedingungen Aktionen

  23. Beispiel Spitalbesuch: Darstellung als Entscheidungsgraph Besuch ablehnen ja 30 Minuten Ansteckende Krankheit? Patientin hat Fieber? nein In Begleitung InnerhalbBesuchszeit? Patientin hat Fieber? Normalbesuch Bedingungen Aktionen

  24. Darstellungsform: Entscheidungs-baum oder Entscheidungstabelle? Da die Bedingungs-werte eine „Dreiecks-struktur“ haben, lassen sich die Regeln sehr übersichtlich als Entscheidungsbaum darstellen. de.wikipedia.org/wiki/Entscheidungsbaum

  25. Beispiel von Wikipedia: Darstellung als Entscheidungsbaum de.wikipedia.org/wiki/Entscheidungsbaum

  26. Beispiel von Wikipedia: Darstellung als Entscheidungstabelle Nicht mehr sehr übersichtlich. Idee hinter den Regeln schwer ersichtlich.

  27. Beispiel von Wikipedia: Als Entscheidungstabelle mit „else“ Auflistung aller positiven Fälle. Idee hinter den Regeln besser ersichtlich. Kann nicht mehr auf Vollständigkeit geprüft werden!

  28. Beispiel von Wikipedia: Als Regeln/ Formeln formulieren 6 Regeln der folgenden Art (für jeden Fall „hochladen“ eine Regel): (Bild selber erstellt) UND (Unter freier Lizenz veröffentlichen) UND (Bildrechte Dritter ausgeschlossen) ODER (Bild selber erstellt) UND (Unter freier Lizenz veröffentlichen) UND NICHT (Bildrechte Dritter ausgeschlossen) UND (Schriftl. Einverständnis aller) ODER … Gut geeignet, wenn es nur wenige positive (oder negative) Fälle gibt

  29. Inhalt Motivation Anwendungsbereich Modellierung Beispiele

  30. Anwendungsbereich: Wann Entscheidungstabellen einsetzen? nein Daten und Beziehungen? ja Daten und Verhalten? Abläufe und Zustände? EntityRelationship-Diagramme Abläufe und Interaktionen? Klassen-Diagramme Logik: Regeln, Entscheide Zustands-Diagramme Sequenz-Diagramme Entscheidungs-tabellen

  31. Anwendungsbereich: Wann Entscheidungstabellen einsetzen? nein Logik: Regeln, Entscheide ja Daten und Beziehungen? Daten und Verhalten? Entscheidungs-tabellen Abläufe und Zustände? Entity Relationship-Diagramme Abläufe und Interaktionen? Klassen-Diagramme Zustands-Diagramme Sequenz-Diagramme

  32. Inhalt Motivation Anwendungsbereich Modellierung Beispiele

  33. Beispiel Spitalbesuchvollständig und eindeutig DieseEntscheidungstabelleistvollständig:Alle 8 möglichenFällesindabgedeckt. DieseEntscheidungstabelleisteindeutig: Die Bedingungenschliessensichgegenseitigaus.

  34. Beispiel SpitalbesuchMehrfach definiert DieseEntscheidungstabelleistmehrfachdefiniert: Die BedingungenderRegeln 5 und 6 schliessensichnichtgegenseitigaus. Die Bedingungswerte n/j/j werdendurchbeideRegelnabgedeckt und führenzurgleichenAktion.

  35. Beispiel SpitalbesuchMehrdeutig und widersprüchlich DieseEntscheidungstabelleistmehrdeutigund widersprüchlich:Die BedingungenderRegeln 5 und 6 schliessensichnichtgegenseitigaus. Die Bedingungswerte n/j/j werdendurchbeideRegelnabgedeckt, führenaberzuunterschiedlichenAktionen.

  36. Regeln für die Definition des Inputs Reduce to the max: • Keine unnötigen Variablenwerte • Keine unnötigen Variablen • Nur unabhängige Variablen • Kombinierung von Subvariablen

  37. Minimaler Werteraum • DerWerteraumderVariablensollte minimal sein. DadurchkannsichergestelltwerdendassnichtRegelnentstehenwelche redundant sind.

  38. Keine unnötigen Variablen • UnnötigeVariablenmüssennichtimmeroffensichtlichsein. Falls füreine Variable nur Sterne stehen, dannistsieoffensichtlichnichtnotwendig. Es kannaberauchsein, dass die Entscheidungstabellenichtminimiertist und esdeshalbnichtoffensichtlichist, dassesunnötigeVariablengibt.

  39. Unabhängige Variablen • Die Variable „Patient darf in die Cafeteria gehen“ istabhängigdavon, ob der Patient Fieberhat und ob ereineansteckendeKrankheit hat. Es kannaberdurchaussinnvollargumentiertwerden, dassBesuchdavonabhängigist, ob der Patient in die Cafeteria darf. GenauereAnalysederRegelnzeigtaber, dassin diesenRegeln die eigentlichentscheidendenFaktorenFieber und die ansteckendeKrankheitist.

  40. Kombinierung von Subvariablen • Für die Entscheidung, ob der Patient Besucherempfangendarfodernicht, spieltnicht die Art derInfektionsübertragungeineRolle, sonderneinzig, ob der Patient die KrankheitbeieinemBesuch auf den Besucherübertragenkann. D.h. die konkreteÜbertragunsartspieltbeiderEntscheidungkeineRolle.

  41. Inhalt Motivation Anwendungsbereich Modellierung Beispiele

  42. Beispielhttp://swt.cs.tu-berlin.de/lehre/mwsp/ws0607/ausarbeitungen/Ausarbeitung-10.pdfBeispielhttp://swt.cs.tu-berlin.de/lehre/mwsp/ws0607/ausarbeitungen/Ausarbeitung-10.pdf

  43. Beispielhttps://files.ifi.uzh.ch/rerg/amadeus/teaching/courses/infII_ss06/inf_II_kapitel_05.pdfBeispielhttps://files.ifi.uzh.ch/rerg/amadeus/teaching/courses/infII_ss06/inf_II_kapitel_05.pdf

  44. Beispielhttps://files.ifi.uzh.ch/rerg/amadeus/teaching/courses/infII_ss06/inf_II_kapitel_05.pdfBeispielhttps://files.ifi.uzh.ch/rerg/amadeus/teaching/courses/infII_ss06/inf_II_kapitel_05.pdf

  45. Beispielhttp://www.trautwein.fh-aachen.de/Download/SWE/SWE_Ausarbeitungen_WS2010/A_Entscheidungstabellen_2010.pdfBeispielhttp://www.trautwein.fh-aachen.de/Download/SWE/SWE_Ausarbeitungen_WS2010/A_Entscheidungstabellen_2010.pdf

  46. Beispielhttp://ti.uni-due.de/ti/de/education/teaching/ss10/pet/download/Vorlesung%202.pdfBeispielhttp://ti.uni-due.de/ti/de/education/teaching/ss10/pet/download/Vorlesung%202.pdf

  47. Beispielhttp://en.wikipedia.org/wiki/Decision_table

More Related