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 člendané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 MEMBERSHIPa PERSONjsou 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ímcokaž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 (paidmembership), 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í ActionModel AM Pravidla akcí (actionrules) jsou vodítkem pro aktéry, když zpracovávají reakce na události. Obecná forma pravidla akce: <event part> <assess part> <response 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 thestartingdayofmembershipisaday 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římnosta pravdu. Podmínky spravedlivostijsou obsaženy v transakčních bankách. Po vyhodnocení podmínek, nastává response part. 19
Model akcí Klauzule ifspecifikuje, 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 justice: the performer of the request is the(aspirant) member of Membership sincerity: < no specific condition > truth: Day is the first day of some Month; Month is greater than Current Month; theage ofperson is equal to or greater than the minimal age in the year ofday thenumber of the members onday is less than the max members intheyear ofday if complying with the request is considered justifiable then promise membership start for Membership [T1/pm] else decline membership start for Membership [T1/dc] 20
Model akcí Tučně tištěné termy jsou standardní gramatické elementy jazyka specifikace. Podtržené termyjsou 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ěnavykoná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í spravedlivostije 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římnostiznamená, 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í pravdyznamená, 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í Personje zástupný symbol (place holder) pro člena ze třídy PERSON. 26
Další pravidla when membership start for Membership is promised (T1/pm) access justice: if the performer of the promise is the membership starter for Membership sincerity: <no specific condition> truth: <no specific condition> complying with promise is considered justifiable then request membership payment for Membership [T2/rq] with the amount to pay ofmembership is equal to thefirst fee of Membership 27
Další pravidla 1 when membership payment for Membership is stated (T2/st) with the amount paid of Membership is some Money access justice: if the performer of the state is the payer for Membership sincerity: <no specific condition> truth: Money is equal to the first fee of Membership complying with promise is considered justifiable then accept membership payment for Membership [T2/ac] else reject membership payment formembership [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 whilemusí 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ší pravidla2 when membership start for Membership is promised (T1/pm) while membership payment for Membership is accepted (T2/ac) access justice: if the performer of the promise is the membership starter for Membership sincerity: <no specific condition> truth: <no specific conditions> complying with promise is considered justifiable then execute membership start for Membership [T1/ex] state membership start formembership [T1/st] 30
Tabulkaobsahů bank Bank Contents Table Tabulka se týká stavové interpretace transakčních typů (druhů). V transakční bance T1můž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 T2je 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 promisea 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ářkadeleguje svoji pravomoc na administrátora, aby vykonal některé procesní kroky, [T1/st], [T2/rq] a [T2/ac]. 38
Model faktů Administrátorje 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ářkaje 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 Teajsou, ž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 Teorozhodují, 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 abstrahovatvš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ávazkydo 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 OrganizationConstructionDiagram 49
Tabulka produktů transakcí druh transakce T1 pronájem smlouva T2 pronájem platba T3 vyzvednutí auta T4 vrácení auta T5 platba penalizace druh produktu P1 Pronájem je uzavřen smlouvou P2 nájemné Pronájmu je zaplaceno P3 auto Pronájmu je vyzvednuto P4 auto Pronájmu je vráceno 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 autaspecifickou osoboubě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ázkujsou dvě externí banky agregovaných transakcí. AT1je konceptuální kontejner všech druhů faktů, které se týkají osob (nájemce a řidič). AT2obsahuje 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íratelnájemní smlouvy (rentalcontractor), a druhá interní role A3 bude vydavatel aut (car issuer). 54
Konstrukční model AT1 AT2 POBOČKA RAC A3 T03 CA02 vyzvednutí auta CA01 T01 A1 Vydavatel aut T04 řidič Nájemce pronájem smlouva 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 AT1a AT2je 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 looselycoupled, což je způsob, jmenovitě prostřednictvím interstrikce, která je reprezentovaná v diagramu čárkovanou čarouod 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ájemje 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ÁJEMmá 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
banka T1 T2 AT1 AT2 Tabulka obsahu bank Nezávislý / závislý fakt 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 poplatek za Pronájem je zaplacen částka za pronájem Pronájmu 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 OSOBA den narození Osoby řidičský průkaz Osoby ŘIDIČSKÝ PRŮKAZ OSOBY 63