EO_08
Obsah přednášky • Model faktů – tenisový klub. • Akční model – tenisový klub. • Půjčovna aut.
2
Model faktů • Konstrukční diagram organizace obsahuje také tabulku produktů transakcí (Transaction Product Table). • Z tabulky se dovíme, že typ produktu transakce T1 je „Členství začalo“ a že je označeno „P1“ (produkt 1). • Podobně typ produktu transakce T2 je „první poplatek členství je placen“ je označen „P2“. • Tabulka produktů transakcí je mostem mezi Konstrukčním modelem a Modelem faktů. 3
Model faktů • Model faktů je reprezentovaný diagramem faktů objektů (Fact Object Diagram). • V Modelu faktů se specifikuje, která (byznys) fakta jsou relevantní v produkčním světě a jaká se aplikují byznys pravidla. • Rozlišujeme tři skupiny typů byznys faktů (fakt celý výraz): – třídy objektů, – typy vlastností, – typy atributů. 4
Model faktů • Třída objektu je extenzí unárního typu faktu (a naopak, unární typ faktu je intenzí třídy objektu). • Např. třída objektu je ČLENSTVÍ. • Typ vlastnost je speciální binární typ faktu, který mapuje z třídy objektu nazývané doména do třídy objektu nazývané rozsah (range). • Příkladem je člen daného členství. • Instance typu vlastnosti jsou existenčně závislé na existenci objektu domény – kresleno otevřenou stranou symbolu ‘>’. 5
Model faktů • Typ vlastnost se nazývá typem atributu, je-li rozsah (range) rozsahem hodnot. • Např. typ atribut je datum narození osoby. • Typy atributů jsou kresleny uváděny v seznamu mezi se zaoblenými tvary domény. • Dimenze hodnot rozsahu je uvedena v závorkách. • Příklady dimenzí jsou TIME, MONEY. • Mohou být specializované do rozsahů hodnot např. YEAR, MONTH, DAY, EURO. 6
Diagram faktů a objektů
7
Model faktů • Zaoblené obdélníky reprezentují třídy objektů. • Třídy MEMBERSHIP a PERSON jsou primární třídy, kterým se říká kategorie. • Kategorie nemusí být definované na základě jiných typů faktů, místo toho jsou definované jako takové. • Světle šedá barva u kategorie PERSON znamená, že je externí. 8
Model faktů • To znamená, že osoby (persons) nejsou vytvářeny v rámci konkrétního rozsahu zájmu (Scope of Interest). • Spojnice mezi MEMBERSHIP a PERSON je označena jako „the member of Membership is Person“ (člen Členství je Osoba), reprezentuje typ vlastnost.
9
Model faktů • Symbol “>” vyjadřuje, že každé členství má přesně jednu osobu jako svého člena. • Zatímco každá osoba může být členem 0, 1 nebo více členství. • Poznámka: ačkoli to nedává smysl, mít současná členství se stejnou osobou jako členem, osoba může velmi dobře mít více členství v průběhu svého života.
10
Model faktů • Symbol “>” také vyjadřuje, že tento typ faktu je existenciálně závislý na třídě objektu MEMBERSHIP. • To znamená, že může začít existovat spolu s korespondující instancí od MEMBERSHIP. • Typy (druhy) produktů P1 a P2 jsou existenciálně nezávislé unární typy faktů: výsledky typů transakcí T1 a T2.
11
Model faktů • Z obrázku je patrné, že jakékoli členství (membership) se může stát zaplaceným členstvím (paid membership), ale pouze zaplacené členství se může stát zahájeným členstvím (started membership). • Jinak řečeno třída PAID MEMBERSHIP je podtřídou třídy MEMBERSHIP a třída STARTED MEMBERSHIP je podtřídou třídy PAID MEMBERSHIP. 12
Model faktů • Členství tedy nejdříve projde fází zaplaceného členství a pak se stane zahájeným členstvím (začne existovat).
13
Model faktů • Třída objektu [YEAR] není ve skutečnosti třídou objektu, ale rozsahem hodnot (value scale) – proto je jméno v závorkách. • Tímto způsobem je možné modelovat minimální věk, maximální počet členů a roční členský poplatek. • Tyto položky jsou časově závislé vlastnosti (properties). Rozhodnutí je mimo oblast zájmu – proto kresleny šedě. 14
Model faktů • Typy faktů mohou být deklarované podobně jako MEMBERSHIP a datum narození, nebo mohou být také odvozené – odvozené od originálních typů faktů. • Jsou zobrazeny také některá byznys pravidla, např. zaplacené členství je specializací od členství a binární druh faktu „člen Členství je Osoba“, jedná se o typ vlastnost placeného členství.
15
Specifikace odvozených faktů
16
Model akcí – Action Model AM • Pravidla akcí (action rules) jsou vodítkem pro aktéry, když zpracovávají reakce na události. • Obecná forma pravidla akce: <event part>
• Event part (část událost) specifikuje na jakou událost (množina souběžných událostí) je odpovídáno (reagováno) – událost je koordinační fakt.
17
Model akcí • Klauzule when ukazuje, že událost je being requested, transakce T1. • Klauzule new – indikuje vytvoření nové instanci od členství. • Klauzule with specifikuje závislá fakta členství. when
membership start for new Membership is requested (T1/rq) with the member of Membership is a Person the starting day of Membership is a Day
18
Model akcí • assess part je v pravidle činnosti rozdělena na tři části odpovídající požadavkům platnosti (validity claims): požadavky na spravedlnost, upřímnost a pravdu. • Podmínky spravedlivosti jsou obsaženy v transakčních bankách. • Po vyhodnocení podmínek, nastává response part.
19
Model akcí • Klauzule if specifikuje, jaké akce se musí podniknout, pokud aktér pokládá splnění události za opodstatněné, eventuálně jaké akce provést pokud to nebude uvedený případ. assess
if then else
justice: sincerity: truth:
the performer of the request is the (aspirant) member of Membership < no specific condition > Day is the first day of some Month; Month is greater than Current Month; the age of Person is equal to or greater than the minimal age in the year of Day the number of the members on Day is less than the max members in the year of Day
complying with the request is considered justifiable promise membership start for Membership decline membership start for Membership
[T1/pm] [T1/dc]
20
Model akcí • Tučně tištěné termy jsou standardní gramatické elementy jazyka specifikace. • Podtržené termy jsou specifické výrazy ve specifikacích pravidel akcí, srovnatelné s vybranými slovy programovacího jazyka. • Ostatní termy jsou specifika modelované organizace. • Pro znázornění vztahů mezi pravidlem akcí a odpovídající částí Procesního modelu, koordinační činy a akty jsou uvedeny, v pravém sloupci. 21
Model akcí • Předchozí příklad: Anna je vykonavatelem request a Eva je adresátem. • V podstatě je Eva autonomní ve zpracování události (koordinační fakt). • To implikuje dvě věci: – Eva je autonomní v určení času, ve kterém událost bude zpracovávat. Událost se stala položkou její agendy. – Eva se může odchýlit od pravidel, tedy porušit jednu nebo více podmínek. 22
Model akcí – Avšak Eva je oprávněna vykonávat roli aktéra A1, předpokládá se tedy, že bude jednat zodpovědně, bude zodpovědná za důsledek svých činů.
• Podstatou vyhodnocení spravedlivosti je autorizace (pověření) vykonavatele. • V našem případě to znamená, že Eva uznala pověření Anny být iniciátorem transakce T1. • Legitimnost autorizace Anny, je dána občanským zákoníkem. 23
Model akcí • Vyhodnocení upřímnosti znamená, prokázání upřímnosti vykonavatele koordinačního činu, Anny (může Eva důvěřovat Anně v upřímnosti jejího požadavku stát se členkou klubu). • Vyhodnocení pravdy znamená, ověření pravdy produkčního faktu. • Je platný, pokud fakt existuje, nebo vytvoření faktu vede k legálnímu novému stavu produkčního světa. 24
Model akcí • Požadavek pravdy je garantován za předpokladu, že počáteční den členství je první den měsíce, nový člen klubu má alespoň minimální věk v den začátku členství a maximální počet členů klubu není překročen. • Důvodem zápisu byznys pravidel je, že musí být analyzovatelné formálními prostředky, jako např. automatickými analyzátory. • Každá věta musí být jednoznačně transformovaná do logické formule. 25
Model akcí • Person je zástupný symbol (place holder) pro člena ze třídy PERSON.
26
Další pravidla when
membership start for Membership is promised
access
justice: sincerity: truth:
if then
complying with promise is considered justifiable request membership payment for Membership with the amount to pay of Membership is equal to the first fee of Membership
(T1/pm)
the performer of the promise is the membership starter for Membership <no specific condition> <no specific condition>
[T2/rq]
27
Další pravidla 1 when
membership payment for Membership is stated with the amount paid of Membership is some Money
access
justice: sincerity: truth:
if then else
complying with promise is considered justifiable accept membership payment for Membership membership payment for Membership reject
(T2/st)
the performer of the state is the payer for Membership <no specific condition> Money is equal to the first fee of Membership
[T2/ac] [T2/rj]
28
Model akcí • Jak zpracovat čekací spojení v Modelu akcí. • Událost na kterou se odpovídá je v klauzuli when (T1/pm), ale událost (T2/ac) v klauzuli while musí také nastat. • Pokud se tak nestane, položka zůstane v agendě aktora. • Události za „while“ reprezentují spojení čekání v procesním modelu. 29
Další pravidla 2 when
membership start for Membership is promised while membership payment for Membership is accepted
access
justice: sincerity: truth:
if then
complying with promise is considered justifiable execute membership start for Membership membership start for Membership state
(T1/pm) (T2/ac)
the performer of the promise is the membership starter for Membership <no specific condition> <no specific conditions>
[T1/ex] [T1/st]
30
Tabulka obsahů bank Bank Contents Table
• Tabulka se týká stavové interpretace transakčních typů (druhů). • V transakční bance T1 můžeme nalézt všechna členství, která byla vytvořena, fakt, že byla začata (odstartována) a počáteční den existence. • V transakční bance T2 je možno nalézt instance dvou dalších vlastností členství.
31
Tabulka obsahů bank
32
Tabulka obsahů bank • (Externí) agregovaná transakční banka AT1 obsahuje pro každý rok hodnoty uvedené v seznamu parametrů klubu, AT2 obsahuje všechny osoby a jejich data narození.
33
Model faktů • Na model faktů se můžeme dívat jako na jádro slovníku dat (data dictionary). • Je třeba pouze doplnit vysvětlující text ke každému z prvků. • Stejně tak se člověk může dívat na model faktů jako na jádro databázového modelu. • Všechno v něm, je potřebné, protože se jedná o ontologický model. • Reálná DB ale také obsahuje mnoho faktů nutných pro informační a dokumentační typy transakcí. 34
Model faktů • Normální databáze pokrývají jak koordinační, tak produkční svět a jsou obyčejně nekompletní v oblasti koordinačního světa, protože ignorují transakční vzor. • Univerzálnost a komplexnost kompletního transakčního vzoru garantuje, že všechny relevantní informace budou dostupné.
35
Model faktů • Je třeba se zabývat kompletním transakčním vzorem při použití nových podpůrných IS? • Univerzální vzor je přirozený způsob, jak lidé spolu komunikují. • Lidé očekávají, že v informačním systému mohou provést libovolný krok z univerzálního vzoru, je-li to potřebné. • Pokud to IS nepodporuje, musíme to řešit ad-hoc manuálně. 36
Model faktů • Je-li navíc uživatelské rozhraní plně webové, náklady za jedno speciálním doplnění převáží náklady za zpracování výjimky manuálně. • V uvedeném příkladu: sekretářka (Eva) je zodpovědná za řešení události (T1/rq) provedením buď [T1/pm] nebo [T1/dc] – koordinační činy. • Administrátor provádí pouze informační a dokumentační úlohy. 37
Model faktů • Vykonáním činu promise a následného produkčního činu je normálně v zodpovědnosti někoho, kdo je exekutorem transakce. • To znamená, že tato osoba je zodpovědná za celou transakci, i když část může být delegovaná na jiné osoby. • Ve třetí části, Eva – sekretářka deleguje svoji pravomoc na administrátora, aby vykonal některé procesní kroky, [T1/st], [T2/rq] a [T2/ac]. 38
Model faktů • Administrátor je tedy zodpovědný za správné provedení těchto kroků, ale sekretářka stále zůstává principiálně zodpovědná za celý proces. • Sekretářka je zodpovědná klubu za případné chyby, ne administrátor.
39
Půjčovna aut Rent-A-Car (RAC)
• Základní model organizace podniku (4 pohledové modely) mohou poskytnout neočekávaný vhled do operací podniku. • Je to z důvodu radikálně odlišného pohledu, který člověk dostane když se na podnik dívá přes brýle podnikové ontologie. • Příklad tenisového klubu je jednoduchý, půjčovna aut je komplexnější příklad.
40
Půjčovna aut Rent-A-Car (RAC) Rent-A-Car (or RAC for short) je společnost, která půjčuje auta osobám, tedy jak fyzickým osobám, tak společnostem. Byla založena dvěma bratry Janem a Teem. Začali půjčovat jejich (dvě) auta a byly mezi prvními společnostmi, které umožňovaly, aby auta byla vrácena na jiných místech než byla pronajata. Za tím účelem Jan s Teem udělali smlouvu se studenty v několika městech, kteří za malý poplatek čekali na vrácení půjčených aut např. na letišti a poté zavezli auto do kanceláře RAC a domů odjeli veřejnou dopravou. Aktuálně RAC funguje ve více než padesáti geograficky rozptýlených pobočkách v Evropě. V mnoha městech a jejich pobočka v několika městech je i několik poboček a existují pobočky v blízkosti letišť. Jedna z poboček je původní kancelář, ve které začínali a kde dodnes pracují.
41
Půjčovna aut Rent-A-Car (RAC) Vedoucí domácí společnosti je Hana. Jsou zde dva pracovníci u přepážek. Požadavky zákazníků jsou přijímány několika možnostmi: příchozí, telefon, fax, email. Příchozí zákazníci jsou obyčejně lidé, kteří okamžitě najmout auto. Přes ostatní možnosti (kanály) člověk obyčejně provádí rezervace v budoucnu. Mohou udělat přes 200 rezervací za den. Ve všech případech je vyplněn elektronický nájemní formulář jedním z pracovníků u přepážky, jako vstup pro RACIS (RAC informační systém). Následující skupiny dat musí být dodány: PRONÁJEM (RENTAL): identifikační číslo (generované automaticky), datum začátku, datum ukončení, pobočka vyzvednutí auta, pobočka vrácení auta, skupina auta. NÁJEMCE (RENTER): identifikace (pas nebo číslo řidičáku), jméno, příjmení, adresa, datum narození, místo narození. ŘIDIČ: identifikace (číslo řidičáku), jméno příjmení. FINANČNÍ: pronájem sazba za den (určovaná na základě skupiny aut).
42
Půjčovna aut Rent-A-Car (RAC)
Ačkoli je to úkol pracovníků u přepážek brát objednávky na pronájem aut, Jan a Teem často pomáhají příchozím zákazníkům, nebo berou telefony. Hana to nevidí ráda, ale nemůže s tím nic moc dělat. Problémy se spontánní reakcí Jana a Tea jsou, že zapomínají zaznamenávat věci správně, což vede k nedorozumění a někdy následně dokonce ke sporům se zákazníky. Někdy postupují proto pravidlům např. slíbením auta za nižší sazbu než je na seznamu. Auta společnosti RAC jsou rozdělena do skupin. Skupina aut může obsahovat několik typů (značka a model). Všeobecnou charakteristikou aut ve skupině je, že mají stejnou sazbu nájmu na den. Komise vedení společnosti tedy Jan a Teo rozhodují, které značky a modely patří do konkrétní skupiny, stejně jako o sazbě nájmu pro každou skupinu. Standardně to dělají jednou za rok.
43
Půjčovna aut Rent-A-Car (RAC) Pro příchozí zákazníky je počáteční datum obvykle ten stejný den, kdy je vytvořena smlouva. Rezervace předem mají nějaký budoucí den jako počáteční datum. Společnost RAC uplatňuje maximální období nájmu (aktuálně 10 dní). Poté, co nájemce podepsal smlouvu, pronájem je uzavřen zaměstnancem (podpis nájemce se bere jako promise (slib) zaplacení poplatku nájmu, což je smluvní délka krát sazba za den. Protože pronájem může být rezervace předem, platba může být odsunuta až na počáteční den pronájmu. V počáteční den nájmu si řidič vyzvedne auto v distribučním oddělení na základě předložení kopie smlouvy. V tomto oddělení pracují tři zaměstnanci: Milan, Josef a Karel, ale ne všichni jsou vždy přítomni. Jakmile se objeví řidič, jeden z nich zkontroluje zda je dostupné auto ze skupiny na smlouvě. Je-li zde alespoň jedno, přidělí auto k pronájmu a podepíše, že auto bylo vyzvednuto. Pokud není k dispozici žádné auto ze skupiny na smlouvě, „upgrage“ smlouvu a vybere auto z nejbližší vyšší skupiny aut. Řidič dostane toto lepší auto za stejnou cenu jako je uvedena ve smlouvě.
44
Půjčovna aut Rent-A-Car (RAC) Poté, co auto pronájmu bylo vráceno na některé z poboček, možná způsobená pokuta musí být uhrazena. Pokuta může být za pozdní vrácení auta (pozdější datum než je uvedeno ve smlouvě). To činí počet dnů navíc krát sazba za pokutu. Pokud je auto vráceno v jiné pobočce než je pobočka ve smlouvě je třeba zaplatit pokutu za změnu pobočky. Pokuta se rovná vzdálenosti mezi oběma pobočkami krát poplatek za kilometr. Distribuční oddělení je také zodpovědné za přesun aut mezi pobočkami, protože auta mohou být vrácena v jiných pobočkách. Každé ráno plánuje Milan přesuny aut, které musí být provedeny ten den. Přesuny aut jsou prováděny všemi třemi pracovníky distribučního oddělení. To je také důvod jejich nepřítomnosti na pracovišti.
45
Půjčovna aut • Podobně jako v případě tenisového klubu, budeme abstrahovat všechny aspekty realizace a implementace. • To konkrétně znamená, že abstrahujeme od způsobu, jímž aktéři komunikují (telefonní hovory, vyplňování elektronických formulářů) a způsoby, kterými jsou informace ukládány a zpřístupňovány.
46
Půjčovna aut • Místo toho se soustředíme na závazky do kterých aktéři vstupují a splňují a na obsah informací bez ohledu na jejich formu a substanci ve které je forma napsaná. • Dále je třeba použít univerzální transakční vzor porozumění uvedenému zadání a začít identifikovat originální transakce.
47
Půjčovna aut • Praktická rada: začít s pokrytím interních rolí aktérů, transakčních typů (druhů) a identifikovat hranice transakčních typů. • Konstrukční diagram organizace to vše ukazuje, hlavně umístění složených (kompozitních) rolí aktérů do středu; ti reprezentují všechny interní aktivity. • Konstrukční diagram organizace a tabulka produktů transakcí jsou „globální“, protože ukazují interakci pobočky RAC s okolím. 48
Konstrukční diagram organizace Organization Construction Diagram
49
Tabulka produktů transakcí druh transakce
druh produktu
T1 pronájem smlouva
P1
Pronájem je uzavřen smlouvou
T2 pronájem platba
P2
nájemné Pronájmu je zaplaceno
T3 vyzvednutí auta
P3
auto Pronájmu je vyzvednuto
T4
vrácení auta
P4
auto Pronájmu je vráceno
T5
platba penalizace
P5
penalizace Pronájmu je zaplacena
50
Půjčovna aut - analýza • Z vyprávění jsme identifikovali pět originálních druhů transakcí. • Ne úplně jasné je modelování iniciátora a exekutora transakcí T3 a T4. • Rovněž oddělení platby za pronájem od penalizačního poplatku je důležité. • Ověření se provede podobně jako v ORM pomocí instanciace. 51
Půjčovna aut • Pronájem je specifická instance od nájmu specifického auta specifickou osobou během specifického časového intervalu. • Fakt, že všechny druhy transakcí se týkají stejných druhů objektů je trochu podružný. • Později uvidíme, že interní druhy transakcí se týkají odlišných druhů objektů.
52
Půjčovna aut • Na obrázku jsou dvě externí banky agregovaných transakcí. • AT1 je konceptuální kontejner všech druhů faktů, které se týkají osob (nájemce a řidič). • AT2 obsahuje fakta, která jsou vytvořena RAC společností. • Nyní validace ontologií: procházíme každý kompletní transakční vzor pro každý druh transakce a diskutujeme se zaměstnanci, jak je to implementováno nyní. 53
Půjčovna aut • Obyčejně se najde několik mlčky vykonaných koordinačních činů, stejně jako mnoho ignorovaných vzorů rušení (revokace). • Interní složenou roli aktéra CA0 je třeba rozložit na specifičtější role. • Role aktéra A1 se jmenuje „uzavíratel nájemní smlouvy“ (rental contractor), a druhá interní role A3 bude „vydavatel aut“ (car issuer).
54
Konstrukční model AT1
AT2
POBOČKA RAC CA02 A3 T03 vyzvednutí auta
CA01
A1
Vydavatel aut
řidič
T04
T01 pronájem smlouva Nájemce
Uzavíratel nájemní smlouvy
vrácení auta
T02
T05
pronájem platba
placení penalizace
55
Konstrukční model • Jako následek můžeme dedukovat, že T2 transakce je vložena v transakci T1. • Podobně transakce T4 a T5 jsou vloženy do transakce T3. • Informační spojení (link) na externí agregovaná banky AT1 a AT2 je ukryto pod čarou označující hranice zájmu (organizaci a okolí) – tím i interní role aktérů mají přístup do AT1 a AT2..
56
Konstrukční model • Obrázek představuje dva podnikové procesy (ve stromové struktuře), které se zdá, že nejsou spojeny. • Jsou však volně spojenu „loosely coupled“, což je způsob, jmenovitě prostřednictvím interstrikce, která je reprezentovaná v diagramu čárkovanou čarou od A3 do banky transakcí T1. • Význam tohoto informačního spojení je ten, že role aktéra A3 má přístup k obsahu banky transakcí T1 viz model akcí, zda smlouva existuje. 57
Model faktů
58
Model faktů • Jedná se pouze o transakce T1 a T2. • Třída Pronájem je stěžejním konceptem v příkladu. • Pronájem je doménou typů produktů P1 a P2. • Vytvořené P2 předchází vytvoření P1, což vyjadřuje diagram. • Pronájem nejdříve vstoupí do stavu zaplacený a pak do stavu smlouva je podepsaná (being contracted – alive). 59
Model faktů • Šedé třídy objektů jsou vytvořeny mimo oblast našeho zájmu, ale potřebujeme od nich informace. • Tyto informace jsou obsaženy v externích bankách agregovaných transakcí AT1 a AT2. • Přesný obsah každé transakční banky včetně interních je specifikován v Tabulce obsahu bank (Bank Contents Table).
60
Model faktů • Denní sazba za auto je závislá na skupině auta a na běžném roce. • Symbol ‘*’ indikuje kartézský součin SKUPINY AUT a [YEAR] – není objekt ale rozsah hodnot (value scale). • Standardně kardinalita “1:1” je u „otevřené“ strany znaku ‘>’ a “0..*” na druhé straně. • Typy faktů se nazývají vlastnosti (properties) objektů na otevřené straně ‘>’ symbolu. 61
Model faktů • Třída objektu PRONÁJEM má u třetího typu atributu „*“ což indikuje, že se jedná o definovaný typ faktu, pro něhož je poskytnuta definice. • Tento typ faktu není povinný (mandatorní).
62
Tabulka obsahu bank banka
Nezávislý / závislý fakt
T1
PRONÁJEM Pronájem je kontrahován počáteční datum Pronájmu konečné datum pronájmu nájemce Pronájmu řidič Pronájmu skupina aut Pronájmu místo převzetí Pronájmu místo vrácení Pronájmu
T2
poplatek za Pronájem je zaplacen částka za pronájem Pronájmu
AT1
POBOČKA lokace Pobočky SKUPINA AUT denní nájemní částka Skupiny Aut v Roce max. trvání pronájmu v Roce penalizační sazba za vrácení v jiné lokaci v Roce penalizační sazba za pozdní vrácení v Roce nájemní horizont v Roce
AT2
OSOBA den narození Osoby řidičský průkaz Osoby ŘIDIČSKÝ PRŮKAZ OSOBY
63