Proces określania korzystnych wyników

Wielu kibiców polskiej ligi zastanawia się kto zostanie mistrzem. Jedni ze 100% pewnością mówią, że to drużyna, której kibicują. Inny patrzą z niedowierzaniem na tabelę, na 2 kolejki przed końcem. Bo prawda jest taka, że 4 drużyny – oznaczmy je jako LP, LG, LW, JB – walczą o mistrzostwo oraz miejsce w pucharach. Jedna z drużyn pozostanie z niczym. Kolejna drużyna w kolejności ma taką stratę, że nie trzeba jej brać pod uwagę. Wskazane drużyny są obecnie ułożone w kolejności:  LW, JB, LB, LG z dorobkiem punktowym odpowiednio: 40, 38, 38, 38. Jest to punkt wyjściowy do próby określenia szans wybranej drużyny na zwycięstwo. Kroki są opisane na poniższym diagramie.

wyniki428px

Po określeniu punktu startowego, trzeba wygenerować wszystkie możliwe układy wyników w 2 kolejkach, z uwzględnieniem tego, że w pierwszej kolejce każda z drużyn walczy z drużyną spoza pierwszej czwórki, a w drugiej kolejce, walczą między sobą. Opieramy się tutaj tylko na wszystkich możliwych wynikach. Można to wygenerować następująco:

lp = 38
lw = 40
lg = 38
jb = 38
Określenie puntku startowego, poprzez określenie liczby punktów dla każdej z drużyn, przed kolejką.
for lp1 in [3,1,0]:
for lw1 in [3,1,0]:
for lg1 in [3,1,0]:
for jb1 in [3,1,0]: (…)
Generowanie wszystkich możliwych rozstrzygnięć dla pierwszej kolejki, wybierając odpowiedni wynik dla każdej z drużyn.
for lp2 in [3,1,0]:
for lw2 in [3,1,0]:
jb2 = wynikiodwr[lp2]
lg2 = wynikiodwr[lw2]
Generowanie dla każdego zestawu wyników z pierwszej kolejki, wszystkich możliwych rozstrzygnięć dla drugiej kolejki, wybierając odpowiedni wynik dla każdej z drużyn, z uwzględnieniem tego, że JB gra z LP oraz LG gra z LW.
(lp1,lw1,lg1,jb1,
lp2,lw2,lg2,jb2,
lpk = lp+lp1+lp2,
lwk =lw+lw1+lw2,
lgk =lg+lg1+lg2,
jbk = jb+jb1+jb2)
Zebranie możliwe zestawu wyników dla 1 I 2 kolejki wraz z osiągniętą liczbą punktów na koniec. Taki rekord jest dodawany do określonej struktury danych – określmy ją jako Wyniki.

Tym sposobem mamy 729 różnych rozstrzygnięć.

Teraz na bazie utworzonej struktury danych Wyniki możemy sprawdzić jakie rozstrzygnięcia powodują mistrzostwo określonej drużyny. Założmy, ze interesuje nas drużyna LP to wtedy możemy wyszukać wygenerowane pozycje, które spełniają na przykład warunek:

(Wyniki.lpk > Wyniki.lwk) & (Wyniki.lpk >= Wyniki.lgk) & (Wyniki.lpk > Wyniki.jbk)

Dla tego warunku mamy 91 rozstrzygnięć, co stanowi około 12,5% biorąc pod uwagę wszystkie wyniki bez uwzględnienia dotychczasowych rozstrzygnięć między drużynami grającymi w danej kolejce, statystyk, problemów drużyn, zmęczenia, kartek itp. Powyższy warunek nie uwzględnia tez innych relacji z ta samą liczbą punktów, które mogą powodować mistrzostwo określonej drużyny.

Powyższy przykład pokazuje, że pod określonymi krokami w procesie, kryją się określone działania w systemie lub wykonywane przez użytkownika. Wraz z diagramem mógłby być opis, który mniej lub bardziej technicznie pokazuje, na czym polega dany krok. Takie elementy jak powyżej można byłoby potraktować jako warstwę implementacyjną procesu.

Już w niedzielę okaże się, które z wygenerowanych wierszy można pominąć, skupiając się tylko na wynikach drugiej kolejki.

Reklama

Warstwa implementacyjna – podproces

W ramach warstwy implementacyjnej, niektóre zadania/kroki procesu są bardziej rozbudowane a niektóre mniej. Jednym z zadań/kroków, które ma charakter podprocesu (ang. sub proces) jest „Realizacja zamówienia” (diagram obok).

Warunki wejścia dla tego podprocesu są następujące:

  • zebrano dane o kliencie (zostały określone DaneKlienta)
  • złożono zamówienie (został określony komplet danych składających się na DaneZamówienia),
  • określono szczegóły i warunki dostawy (zostały określone DaneDostawy),
  • zrealizowano płatność (potwierdzenie realizacji płatności – PotwierdzPlatnosci)
  • produkt jest nadal w ofercie i produkt jest dostępny (ProduktDostepny)
  • klient nie zrezygnował z zamówienia (BrakRezygnacji)

Wyjście z procesu może być następujące:

  • zamówienie zostało zrealizowane (produkt został dostarczony do Klienta – ProduktDostarczony) lub
  • pojawił się problem w trakcie realizacji (produkt nie został dostarczony do Klienta – ProduktNiedostarczony)

Rozszerzenia – warstwa implementacyjna

Do diagramu przedstawionego jako warstwa reinżynierii dla procesu biznesowego, można dodać wiele elementów uszczegóławiających. Dodawanie tych elementów przybliża reprezentację procesu do tzw. warstwy implementacyjnej.
Elementy, które można dodać, są następujące:

  • elementy odpowiadające źródłom danych, systemom wewnętrznym przedsiębiorstwa,
  • punkty inicjujące inne procesy,
  • wskazanie, które kroki składają się z podprocesów,
  • informacja o wykorzystywanych narzędziach, aplikacjach, formularzach, zestawach danych,
  • aktorzy wykonujący poszczególne czynności (w szczególności po stronie dostawcy),
  • wymagania odnośnie bezpieczeństwa danych (logowanie, autoryzacja, sposób połączenia).

Przedstawiony proces można rozbudowywać w różnych kierunkach i na różne potrzeby.

Przykładowo, proces został rozbudowany o następujące elementy (diagram powyżej):

  1. formularza/zestaw danych
  2. aktor wykonujący zadanie

W tym celu, zostaną wykorzystane 2 kolejne obiekty notacji BPMN – odpowiednio:

  1. element rozszerzający informacje zawarte na diagramie wraz z ich powiązaniem z innym elementem (ang. annotation, ang. association, ang. data object),
  2. element grupujący czynności wykonywane przez danego aktora (ang. group).

Założenia procesu – warstwa reinżynierii

Załóżmy, że:

  • mamy wdrożyć rozwiązanie informatyczne do obsługi dla procesu sprzedaży produktu przez internet;
  • w przedsiębiorstwie istnieją systemy zarządzania relacjami z klientem, zarządzania łańcuchem dostaw
  • proponowane rozwiązanie ma zintegrować różne systemy występuje w przedsiębiorstwie

W takiej sytuacji analizę można rozpocząć od odpowiedzi na następujące kategorie pytań:

  • Jakie udogodnienia oferowane są dla klienta?
  • W jaki sposób firma chce wspomagać decyzje klienta?
  • Jaki są cele firmy oraz procesu?
  • Z jakich źródeł danych proces może, ma, musi korzystać?
  • Jakie systemy informatyczne będą wykorzystywane w procesie?
  • Jakie informacje firma posiada o rynku, o klientach, jakie informacje potrafi zdobyć?
  • Jakie znaczenie ma dany proces wśród procesów przedsiębiorstwa?

Można zadawać kolejne pytania. Celem ich jest ustalenie tzw. kontekstu procesu (który docelowo przyczynia się do stworzenia tzw. słownika procesu). Uzasadnieniem tego faktu jest to, iż odpowiedzi na powyższe pytania są uzależnione od gałęzi/dziedziny gospodarki, w którym ma miejsce dana sprzedaż, czy obsługa klienta. Innego typu zależności będą występować w przypadku sprzedaży elementów wyposażenia mieszkania, a inne w przypadku przemysłu spożywczego.

Prowadząc taką analizę, poruszamy kwestie dotyczące dwóch warstw procesu. W przypadku założonego procesu, warstwa reinżynierii mogłaby w skrócie przebiegać następująco:

  1. Zapoznanie się z ofertą/produktami
  2. Wybranie produktu i złożenie zamówienia
  3. Przekazanie oraz przetworzenie zamówienia
  4. Sprawdzenie możliwości realizacji zapłaty
  5. Sprawdzenie możliwości dostarczenia produktu
  6. Ustalenie sposobu/miejsca dostarczenia
  7. Realizacja zamówienia
  8. Obsługa posprzedażna oraz transakcje powiązane

Warstwy procesu

A. Tsalgatidou oraz S. Junginger w „Modelling in the Re-engineering Process” wskazują dwie warstwy procesu. Są to: warstwa reinżynierii i warstwa implementacyjna.

Pierwsza z nich – warstwa reinżynierii – określa tzw. charakter wykonania procesu. Proces jest postrzegany jako element codziennej działalności przedsiębiorstwa. Element ten jest oceniany w kategoriach kosztów (ang. costs), czasu (ang. time), przydzielonych praw (ang. laws), odpowiedzialności, wykonywanych zadań.

Druga z nich – warstwa implementacyjna – powiązana jest z takimi kwestiami jak IT, środowisko pracy. Warstwa ta zawiera w sobie zbiór elementów, które dotyczą integracji procesów z systemami przedsiębiorstwa, procedurami oraz środowiskiem pracy, siłą roboczą, posiadanymi kompetencjami do wykonywania określonych zadań.