23.09.2016

Modelowanie decyzji za pomocą notacji DMN – część druga

Tablice decyzyjne

Diagramy DMN tworzone na poziomie Wymagań Decyzyjnych mają charakter analityczny i definiując logikę decyzyjną można posługiwać się językiem naturalnym. Nie jest to bowiem poziom wykonywalny. Na poziomie drugim (Logiki Decyzyjnej) nie ma już żartów, to już jest poziom wykonywalny, a więc wymaga nie tylko zgodności z poziomem pierwszym, ale przede wszystkim precyzyjnej semantyki.

Wyobraźmy sobie sytuację, że jakiś sklep internetowy chce wprowadzić nową politykę sprzedaży, która sprowadza się do zastosowania następujących trzech zasad:

  1. Osoby dorosłe, które są stanu wolnego otrzymują upust w wysokości 10%
  2. Osoby w związku małżeńskim otrzymują upust w wysokości 20%
  3. Osoby posiadające dzieci otrzymują upust w wysokości 30%

Według powyższego opisu decyzja o przyznaniu upustu zależy od trzech czynników wejściowych:

  1. Wiek (dziecko/osoba pełnoletnia)
  2. Stan cywilny (wolny/zajęty)
  3. Status rodzicielski(brak potomstwa/potomstwo)

Spróbujmy zatem na podstawie powyższych reguł stworzyć tablicę decyzyjną.

Rys 1. Tablica decyzyjna zawierająca błędy

Rys 1. Tablica decyzyjna zawierająca błędy

Tak zdefiniowana tablica decyzyjna jest niestety niekompletna, a niektóre reguły nakładają się na siebie powodując ich wieloznaczność. Można przykładowo zidentyfikować takie problemy, jak:

  • Kombinacja {(Wiek = dziecko), (Stan cywilny = wolny), (Status rodzicielski = brak potomstwa)} jest niepokryta żadną regułą decyzyjną, a więc tablica jest niekompletna
  • Przypuśćmy, że z naszego sklepu skorzystać będzie chciała osoba pełnoletnia stanu wolnego i posiadająca dzieci {(Wiek = osoba pełnoletnia), (Stan cywilny = wolny), (Status rodzicielski = potomstwo)}. Taka osoba spełnia regułę 1 i 3. Mamy więc na wyjściu wieloznaczność i nie wiemy czy przyznać 10% upustu, czy 30%.
  • Podobnie mamy problem dla dorosłego klienta pozostającego w związku i posiadającego potomstwo {(Wiek = osoba pełnoletnia), (Stan cywilny = zajęty), (Status rodzicielski = potomstwo)}. Dać takiemu 20% upustu (wg reguły 2), czy może 30% (wg reguły 3)?

Od drzewa decyzyjnego do tablicy decyzyjnej

Tablica decyzyjna jest odpowiednikiem grafu decyzyjnego (i odwrotnie). Spróbujmy w notacji BPMN narysować drzewo decyzyjne będące odzwierciedleniem reguł decyzyjnych.

Rys 2. Diagram BPMN użyty jako drzewo decyzyjne

Rys 2. Diagram BPMN użyty jako drzewo decyzyjne

Drzewa decyzyjne można z łatwością przekształcić w tablice decyzyjne. Każda gałąź drzewa decyzyjnego jest zamieniana na odnośny wiersz w tablicy decyzyjnej jak to przedstawiono poniżej:

Rys 3. Tablica decyzyjna kompletna i jednoznaczna otrzymana z transformacji drzewa decyzyjnego

Rys 3. Tablica decyzyjna kompletna i jednoznaczna otrzymana z transformacji drzewa decyzyjnego

Taka tablica jest kompletna i nie posiada nakładających się na siebie reguł.

Model decyzyjny w praktyce

Wszystkie diagramy zamieszczone w niniejszym artykule powstały z wykorzystaniem narzędzi „Signavio Process Editor” i „Signavio Decision Manager”. Platforma Signavio jest to webowe rozwiązanie klasy „Business Process Analysis-as-a-Service”. Poprzez przeglądarkę internetową możemy modelować procesy biznesowe i tworzyć transparentny model decyzji zgodny ze standardami BPMN 2.0 i DMN 1.1. I najważniejsza rzecz. To działa! I to jak!

Dlaczego zachwycam się, że coś działa? Przy jednym z projektów musiałem pracować z narzędziem ARIS Cloud. Mówiąc bardzo dyplomatycznie nie było to przeżycie zbyt budujące i można się po pracy z ARIS Cloud zrazić do produktów pracujących w oparciu o technologię chmury. W porównaniu do „zwykłego” ARISa nie jest to niestety krok naprzód. Oczywiście nie chcę tu przekreślać tego narzędzia, bo intensywnie się ono rozwija, ale praca z Signavio jest o wiele bardziej komfortowa, niż z ARIS Cloud, co każdy może sprawdzić, bo oba rozwiązania posiadają 30 dniowe wersje typu „trial”.

I ARIS i Signavio w wersji trial nie tylko umożliwiają zapoznanie się z narzędziami, ale także dostarczają szereg przykładowych diagramów pozwalających na szybsze poznanie tajników modelowania procesów i decyzji. W celu pokazania jak w praktyce działają tablice decyzyjne, posłużę się procesem „Receipt of Application” z projektu demonstracyjnego Signavio. Proces biznesowy zilustrowany poniższym diagramem przebiega w przybliżeniu tak:

Po otrzymaniu od kandydata na pracownika podania o pracę (Application) jest ono analizowane na przykład pod kątem:

  • Wiedzy technicznej (Technical knowledge)
  • Umiejętności „miękkich” (Soft Skills)
  • Znajomości języków obcych (Foreign language)
  • Doświadczenia w pracy za granicą (Abroad experience)

W zależności od wyników oceny kandydata albo jest on dopuszczony do dalszego procesu rekrutacji, albo podanie o pracę jest odrzucone.

Rys 4. Proces „Receipt of Application”

Rys 4. Proces „Receipt of Application”

Zadanie „Applicant verified” jest typu „Reguła biznesowa”. Po kliknięciu na ikonę reguły biznesowej (zaznaczona czerwonym kółkiem na poniższej ilustracji) rozwija nam się model podejmowania decyzji, w tym wypadku Diagram Wymagań Decyzyjnych (DRD – Decision Requirements Diagram).

Rys 5. Diagram DRD powiązany z zadaniem „Applicant verified”

Rys 5. Diagram DRD powiązany z zadaniem „Applicant verified”

Przyjrzyjmy się bliżej diagramowi DRD.

Rys 6. Diagram DRD będący analitycznym opisem procesu podejmowania decyzji

Rys 6. Diagram DRD będący analitycznym opisem procesu podejmowania decyzji

Jak widzimy zgodnie z regułą „dziel i rządź” decyzja o zaproszeniu na rozmowę kwalifikacyjną została zdekomponowana na szereg decyzji podrzędnych. Sprawdzane są umiejętności techniczne kandydata i za tę część procesu decyzyjnego odpowiedzialny jest Kierownik Rozwoju. Kierownik Kadr zaś jest odpowiedzialny za ocenienie umiejętności kandydata z obszaru marketingu. Następnie dokonywana jest ocena łączna umiejętności kandydata i na tej podstawie podejmowana decyzja o jego dalszych losach. Wygląda to tak jak na poniższych ekranach:

Rys 7. Wywołanie tablicy decyzyjnej opisującej logikę związaną z przyznaniem punktów za umiejętności techniczne

Rys 7. Wywołanie tablicy decyzyjnej opisującej logikę związaną z przyznaniem punktów za umiejętności techniczne

Do decyzji “Evaluate technical skills” podczepiona jest odnośna tablica decyzyjna.

Rys 8. Tablica decyzyjna pozwalająca określić liczbę punktów za umiejętności techniczne

Rys 8. Tablica decyzyjna pozwalająca określić liczbę punktów za umiejętności techniczne

W zależności od umiejętności kandydat dostaje ustaloną liczbę punktów. Jak z powyższej tabeli wynika, za nieznajomość języka angielskiego otrzymuje minus 15 punktów. Warto o tym pamiętać podejmując decyzję jakich języków obcych chcemy się uczyć ;-)

W kolejnym kroku sprawdzane są umiejętność kandydata powiązane z szeroko rozumianym marketingiem.

Rys 9. Tablica decyzyjna pozwalająca określić liczbę punktów za umiejętności marketingowe

Rys 9. Tablica decyzyjna pozwalająca określić liczbę punktów za umiejętności marketingowe

I tu niespodzianka. Znajomość języka niemieckiego jest obowiązkowa! Jeżeli kandydat nie włada językiem Goethego i Schillera, dostaje minus 100 punktów!

Teraz robione jest podsumowanie umiejętności kandydata.

Rys 10. Tablica decyzyjna określająca czy kandydat na pracownika spełnia minimalne kryteria

Rys 10. Tablica decyzyjna określająca czy kandydat na pracownika spełnia minimalne kryteria

Żeby zostać zaakceptowanym, kandydat musi uzyskać przynajmniej 80 punktów z obszaru marketingu i 20 z obszaru umiejętności technicznych.

Rys 11. Tablica determinująca podjęcie decyzji o zaproszeniu kandydata na rozmowę kwalifikacyjną

Rys 11. Tablica determinująca podjęcie decyzji o zaproszeniu kandydata na rozmowę kwalifikacyjną

I wreszcie wypracowywana jest decyzja końcowa. Jeżeli kandydat osiągnął akceptowalną liczbę punktów, a jego podanie o pracę jest kompletne, jest godzien, aby zaprosić go na rozmowę kwalifikacyjną. Czego wszystkim starającym się o pracę życzę!