Modelování chování v UML

Podobné dokumenty
Superstruktura UML. Modelování chování v UML. B101TMM Techniky a metody modelování požadavků Modelování chování. Richta: Podklady z přednášek na BI

Ing. Martin Komárek Katedra počítačů ČVUT v Praze, FEL. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Model případu užití. Martin Komárek

Úvodní studie (pokraov

Metodiky vývoje SW. Taxonomie metodik. Metodiky pro softwarový proces. Moderní strukturovaná analýza. Unifikovaný proces vývoje (UP) Klasické.

Požadavky Modelování případů užití

SWI041: Analýza. Hledáme odpov na otázku: Co se má udlat?

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Analýza. Analýza. Datový model. Dynamický model

Unifikovaný modelovací jazyk UML

SQL - trigger, Databázové modelování

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

7.2 Model použití (jednání) (Use Case)

SI1: Pozvánka na doplující pednášky z SI

Model podnikových procesu. Model objektu. Model funkcí. Akce. Proces Objekt (trída) Událost Atribut. Akce. Akce. Funkce

8.2 Používání a tvorba databází

Programovací jazyk Pascal

Introduction to MS Dynamics NAV

Algoritmizace a programování

UML. Unified Modeling Language. Součásti UML

Algoritmizace. 1. Úvod. Algoritmus

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

Postup objednávky Microsoft Action Pack Subscription

ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH

Analýza Realizace případů užití

10 Metody a metodologie strukturované analýzy

Nemocnice. Prvotní analýza a plán projektu

Pokročilé typové úlohy a scénáře 2006 UOMO 71

IS Restaurace. Semestrální práce. Tomáš Rumíšek V Brně dne Peter Ševčík

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

7.6 Další diagramy UML

Funkční analýza Předmět Informační systémy. Daniela Szturcová

Návrh IS - UML. Jaroslav Žáček

Návrh IS - UML. Jaroslav Žáček

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

Metodika analýzy. Příloha č. 1

Jiří Mašek BIVŠ V Pra r ha

Úvod do programování - Java. Cvičení č.4

2. Začlenění HCI do životního cyklu software

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Add-on modul Microsoft Dynamics NAV. Doprava - základ. manuál

Use Case Model - Complete Report Grouped by Item Kind, Full Descriptions

Problém identity instancí asociačních tříd

User manual SŘHV Online WEB interface for CUSTOMERS June 2017 version 14 VÍTKOVICE STEEL, a.s. vitkovicesteel.com

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Co je to softwarové inženýrství? Co je to projekt? Co je to softwarový projekt? Termín softwarové inženýrství Definice IEEE : ina vzniku SI?

7.6 Další diagramy UML

Ruční návrh Připravíme si odpovědi na základní otázky Co chceme řešit (projektovat) a proč Komu to bude sloužit Jaký užitek z toho bude mít uživatel I

Business Process Modeling Notation

Algoritmizace prostorových úloh

Vývoj IS - strukturované paradigma II

EURO přeshraniční platba

OOT Objektově orientované technologie

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

Modelování procesů s využitím MS Visio.

Analytická specifikace a její zpracování

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

[XXX-PUB] Návrh uživatelského rozhraní pro ovládací panel v restauracích The PUB

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Rychlá eshop objednávka: Krok za krokem

OOT Objektově orientované technologie

1. Přihlášení Registrace ve webovém uživatelském rozhraní HU-GO. Postup registrace palubního přístroje (OBU On-Board Unit) Obsah

Databázové modelování. Analýza Návrh konceptuálního schématu

Diagram datových toků - DFD

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

GENERAL INFORMATION MATCH: ALSA PRO ARENA MASTERS DATE: TIME SCHEDULE:

Modelování procesů (2) Procesní řízení 1

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA

Use case - management skladu

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

UML úvod. Zdroje: Kanisová Hana, Müller Miroslav: UML srozumitelně, Computer Press 2007

Tvorba informačních systémů

Opravy a prodej. Uživatelská příručka. Milan Hradecký.

Systémová analýza a návrh. Zbyněk Ungermann, UNG května 2011

Modelování procesů (1) Procesní řízení 1

Modelování požadavků

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

Text úlohy. Systémový katalog (DICTIONARY):

Roční periodická zpráva projektu

TÉMATICKÝ OKRUH Softwarové inženýrství

Úvod do databázových systémů

PV207. Business Process Management

Řídicí struktury. alg3 1

Operátory ROLLUP a CUBE

Čipové karty Lekařská informatika

7.3 Diagramy tříd - základy

Základní informace. Modelování. Notace

LabView jako programovací jazyk II

6 Příkazy řízení toku

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

OBSAH 1. ÚVOD STRUKTURA A ÚROVNĚ PROCESNÍHO MODELU KONVENCE PRO MODELOVÁNÍ PROCESŮ KONVENCE PRO MODELOVÁNÍ ORGANIZAČNÍCH STRUK

4 ARCHITEKTURA PODNIKOVÝCH PROCESŮ S ARISEM

Přednáška. Sběr požadavků na SW s použitím metody C.C a nástroje Craft.CASE. e-fractal, s.r.o.

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Globální strategie, IT strategie, podnikové procesy. Jaroslav Žáček

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Transkript:

Modelování chování v UML Karel Richta listopad 2011

Superstruktura UML Richta: B101TMM - Modelování chování v UML 2

Analýza chování Začínáme zpravidla seznamem funkcí - modelem jednání ten definuje případy užití. Pro každý případ užití navrhneme podrobný scénář jednání (původce, událost, akce, participanti, výstupy - reakce), diagramy aktivit, příp. diagramy datových toků (návaznosti funkcí). Každý takový popis případu užití představuje dekompozici na jednodušší aktivity. Pro netriviální aktivity definujeme popis takových aktivit opět pomocí dekompozice rozložíme je na aktivity jednodušší. Pro triviální aktivity popíšeme takové aktivity (nazýváme je akce) jako minispecifikace. Richta: B101TMM - Modelování chování v UML 3

Model jednání ECO-skladu Diagram případů užití je pouhá evidence služeb, ty musí být popsány přesněji. Striktně řečeno - model jednání obsahuje diagram případů užití a jejich popis. Richta: B101TMM - Modelování chování v UML 4

Jak lze služby evidované v modelu jednání popsat? Textovým popisem (to je podmínka nutná, nikoli postačující). Minispecifikací (strukturovaným popisem operace). Dekompozicí na služby jednodušší pomocí scénáře, pomocí diagramu datových toků (DFD), pomocí diagramu aktivity, pomocí diagramu komunikace, pomocí stavového diagramu. Richta: B101TMM - Modelování chování v UML 5

1. Zákazník prohlíží katalog a vybere si zboží k nákupu 2. Zákazník zvolí nákup 3. Zákazník vyplní dodací informace (adresa, expresní nebo standardní dodávka) 4. Systém zobrazí plnou cenu včetně ceny dodání 5. Zákazník vyplní platební informace (číslo kreditní karty) 6. Systém autorizuje platbu 7. Systém potvrdí prodej 8. Systém zašle potvrzovací e-mail zákazníkovi Alternativy: 3a. Uživatel je pravidelným zákazníkem 3a1. Systém zobrazí naposled zapamatované dodací a platební informace 3a2. Uživatel může potvrdit, nebo změnit zobrazené informace a scénář pokračuje v kroku 6 6a. Systému se nepovedlo autorizovat platbu 6a1. Zákazník může opravit platební informace, nebo zrušit nákup 6

Detailní specifikace případů užití use case name use case identifier brief description the actors involved in the use case the system state before the use case can begin the actual steps of the use case the system state when the use case has finished alternative flows ID: 1 Primary actors: Time Use case: PaySalesTax Brief description: Pay Sales Tax to the Tax Authority at the end of the business quarter. Secondary actors: TaxAuthority Preconditions: 1. It is the end of the business quarter. Main flow: 1. 2. 3. The use case starts when it is the end of the business quarter. The system determines the amount of Sales Tax owed to the Tax Authority. The system sends an electronic payment to the Tax Authority. Postconditions: 1. The Tax Authority receives the correct amount of Sales Tax. Alternative flows: None. implicit time actor Richta: B101TMM - Modelování chování v UML 7

Předpoklady a důsledky Předpoklady (preconditions) a důsledky (postconditions) představují omezení. Předpoklady omezují stav systému před zahájením scénáře. Důsledky omezují stav systému po ukončení scénáře. Pokud nejso žádné předpoklady ani důsledky, je třeba to zdůraznit např. klíčovým slovem "None" pod hlavičkou. Place Order Preconditions: 1. A valid user has logged on to the system Postconditions: 1. The order has been marked confirmed and is saved by the system Richta: B101TMM - Modelování chování v UML 8

Hlavní scénář Scénář zachycuje posloupnost kroků v rámci zpracování případu užití. Vždy se začíná tím že aktér něco provede (iniciuje událost). Dobrá technika je zahájit scénář: 1) Případ užití se spustí, když aktér - <funkce> Kroky scénáře by měly být : deklarativní, očíslované, <číslo> <někdo> <nějaká akce> Uspořádané v čase. Hlavní scénář by měl představovat úspěšné použití: Vše probíhá podle očekávání, nenastaly chýyby, odchylky, přerušení apod. Alternativní scénáře pak popisují tyto alternativy. Richta: B101TMM - Modelování chování v UML 9

Větvení: If Alternativy indikujeme klíčovým slovem if: po if musí bezprostředně následovat výraz nabývající logické hodnoty (Boolean). Používejte odsazování a číslování pro vyznačení podmíněných částí. Pokud chcete vyznačit, co se má stát, když podmínka za if nabývá hodnoty false (nepravda), použijte else (příklad je na následujícím slidu). ID: 2 Primary actors: Customer Use case: ManageBasket Brief description: The Customer changes the quantity of an item in the basket. Secondary actors: None. Preconditions: 1. The shopping basket contents are visible. Main flow: 1. The use case starts when the Customer selects an item in the basket. 2. If the Customer selects "delete item" 2.1 The system removes the item from the basket. 3. If the Customer types in a new quantity 3.1 The system updates the quantity of the item in the basket. Postconditions: None. Alternative flows: None. Richta: B101TMM - Modelování chování v UML 10

Opakování: For Pro opakování můžeme použít klíčové slovo For pro označení začátku iterace. Výraz, který je za klíčovým slovem For indikuje počet opakování vnořeného textu za příkazem For. ID: 3 Actors: Customer Preconditions: None. Use case: FindProduct Brief description: The system finds some products based on Customer search criteria and displays them to the Customer. Main flow: 1. The use case starts when the Customer selects "find product". 2. The system asks the Customer for search criteria. 3. The Customer enters the requested criteria. 4. The system searches for products that match the Customer's criteria. 5. If the system finds some matching products then 5.1 For each product found 5.1.1. The system displays a thumbnail sketch of the product. 5.1.2. The system displays a summary of the product details. 5.1.3. The system displays the product price. 6. Else 6.1. The system tells the Customer that no matching products could be found. Postconditions: None. Alternative flows: None. Richta: B101TMM - Modelování chování v UML 11

Opakování: While Pro opakování můžeme také použít klíčové slovo while, kdy je opakování dáno logickým výrazem (opakuj se, dokud má tento výraz hodnotu true). ID: 3 Use case: FindProduct Brief description: The system finds some products based on Customer search criteria and displays them to the Customer. Primary actors: Customer Secondary actors: None Preconditions: None. Main flow: 1. The use case starts when the Customer selects "find product". 2. The system asks the Customer for search criteria. 3. The Customer enters the requested criteria. 4. The system searches for products that match the Customer's criteria. 5. If the system finds some matching products then 5.1 while product found 5.1.1. The system displays a thumbnail sketch of the product. 5.1.2. The system displays a summary of the product details. 5.1.3. The system displays the product price. 6. Else 6.1. The system tells the Customer that no matching products could be found. Postconditions: None. Alternative flows: None. Richta: B101TMM - Modelování chování v UML 12

Alternativy Alterativních toků může být více: měly by zahrnovat všechny případy chybových situací, požadavků na přerušení činnosti atd, alternativní toky se nikdy nevracejí do hlavního toku (main flow). Potenciálně existuje velmi mnoho alternativ! Musíte to nějak zvládnout: vyberte nejdůležitější alternativy, pokud existují skupiny podobných alternativ dokumentujte pouze jednu z nich jako demonstrační příklad a pokud je to nezbytné, vysvětlete jak se liší. Případ užití Hlavní tok Alternativní toky Dokumentujte pouze takové alternativy, které jsou uvedeny v požadavcích! Richta: B101TMM - Modelování chování v UML 13

Referencování alternativ Zapište odkaz na všechny alternativy na konec popisu případu užití. Hledejte alternativní toky tak, že vyzkoušíte všechny kroky v hlavním scénáři a hledáte: alternativy, výjimky (exceptions), přerušení (interrupts). alternative flows ID: 5 Main flow: Use case: CreateNewCustomerAccount Brief description: The system creates a new account for the Customer. Primary actors: Customer Secondary actors: None. Preconditions: None. 1. 2. The use case begins when the Customer selects "create new customer account". While the Customer details are invalid 2.1. 2.2 3. The system creates a new account for the Customer. Postconditions: 1. A new account has been created for the Customer. Alternative flows: InvalidEmailAddress InvalidPassword Cancel The system asks the Customer to enter his or her details comprising email address, password and password again for confirmation. The system validates the Customer details. Richta: B101TMM - Modelování chování v UML 14

Příklad alternativy notice how we name and number alternative flows always indicate how the alternative flow begins. In this case it starts after step 2.2 in the main flow Alternative flow: CreateNewCustomerAccount:InvalidEmailAddress ID: 5.1 Brief description: The system informs the Customer that they have entered an invalid email address. Primary actors: Customer Secondary actors: None. Preconditions: 1. The Customer has entered an invalid email address Alternative flow: 1. 2. The alternative flow begins after step 2.2. of the main flow. The system informs the Customer that he or she entered an invalid email address. Postconditions: None. Alternativní tok může být spuštěn místo hlavního toku nastartován aktérem - instead of. Alternativní tok může být spuštěn po některém kroku after. Alternativní tok může být spuštěn kdykoliv během hlavního toku - at any time. Richta: B101TMM - Modelování chování v UML 15

Model jednání pro Výtah Richta: B101TMM - Modelování chování v UML 16

Model jednání ECO-skladu Richta: B101TMM - Modelování chování v UML 17

Trasování požadavků Vzhledem k tomu, že v katalogu požadavků máme zachyceny funkční požadavky a vytváříme model jednání, měli bychom je porovnat. Mezi požadavky a případy užití existuje vztah M..N: jeden případ užití se může týkat mnoha jednotlivých funkčních požadavků, jeden funkční požadavek může být realizován v mnoha případech užití. V ideálním případě máme CASE nástroj pro sledování požadavků: označené funkční požadavky mapujeme na případy užití, označené případy užití můžeme mapovat na funkční požadavky. Není-li CASE nástroj, můžeme vytvořit matici sledovatelnosti požadavků ručně. Požadavky P1 P2 P3 P4 P5 Případy užití U1 U2 U3 U4 Matice sledovatelnosti požadavků Richta: B101TMM - Modelování chování v UML 18

Kdy používat analýzu případů užití? Případy užití popisují systém z pohledu aktérů. To je vhodné: Když u systému dominují funkční požadavky. Když systém poskytuje různou funkcionalitu různým aktérům. Pokud má systém rozmanitá rozhranní. Případy užití specifikují chování z hlediska poskytovaných funkcí. Nejsou vhodné: Když u systému dominují nefunkční požadavky. Pokud má systém jen málo aktérů. Pokud má systém jednoduchá rozhranní. Richta: B101TMM - Modelování chování v UML 19

Scénáře událostí (Sequence diagrams) (zachycení sledu událostí) Prvky: objekty - znázorněné obvykle jako sloupce interakce mezi objekty (stimuly) - orientované šipky mezi objekty události - události, které vyvolaly interakci reakce - odezvy na události (výstupy) časová osa - pro vyznačení sledu událostí Richta: B101TMM - Modelování chování v UML 20

Základní princip scénáře Richta: B101TMM - Modelování chování v UML 21

Zvolíme-li konkrétní metodu Richta: B101TMM - Modelování chování v UML 22

Konstrukce a destrukce Richta: B101TMM - Modelování chování v UML 23

Reakce a návratové hodnoty Richta: B101TMM - Modelování chování v UML 24

Hrubý scénář pro čerpání Richta: B101TMM - Modelování chování v UML 25

Zákazník se autentizuje Richta: B101TMM - Modelování chování v UML 26

Scénář pro přejímku Richta: B101TMM - Modelování chování v UML 27

Scénář pro dodávku Richta: B101TMM - Modelování chování v UML 28

Scénář pro přivolání Richta: B101TMM - Modelování chování v UML 29

Popis akce (operace, funkce) Operation: název Description: textový popis Reads: jaká data jen čte Changes: jaká data mění nebo vytváří Sends: jaké reakce vyvolává (jaké zprávy posílá) Assumes: co předpokládá Results: co zajišťuje (zaručuje) Richta: B101TMM - Modelování chování v UML 30

Popis pro prázdná plošina Operation: prázdná plošina Description: informuje systém, že nakládací plošina je prázdná Reads: Changes: plošina Sends: Assumes: Results: vyprázdní v modelu nakládací plošinu uvolní identifikátory barelů, které jsou na plošině Richta: B101TMM - Modelování chování v UML 31

Popis pro zadej dodací list Operation: dodací list Description: zahájí přejímku a uloží informace z dodacího listu Reads: supplied dodací_list Changes: zadaný_dodací_list Sends: Assumes: Results: vnitřní objekt zadaný_dodací_list je inicializován hodnotami z fyzického dodacího_listu Richta: B101TMM - Modelování chování v UML 32

Popis pro barel k zařazení Operation: barel k zařazení Description: každý vyložený barel je jednoznačně identifikován Reads: supplied typ_chemikálie Changes: plošina, new b: Barel Sends: operátor:{id barelu} Assumes: Results: nakládací plošina obsahuje barel b operátor dostane identifikaci ID barelu atribut b.typ je nastaven na typ_chemikálie atribut b.id je nastaven na identifikaci ID barelu Richta: B101TMM - Modelování chování v UML 33

Popis pro konec přejímky Operation: konec přejímky Description: operátor informuje systém, že již byly vyloženy všechny barely Reads: zadaný_dodací_list Changes: plošina, budovy ve skladu Sends: operátor:{rozdíly v přejímce, nelze uložit}, skladník:{příkaz pro skladníka} Assumes: sklad je bezpečný Richta: B101TMM - Modelování chování v UML 34

Popis pro konec přejímky (pokr.) Results: pro všechny barely, které lze do skladu umístit, přesune v modelu jejich umístění do vhodné budovy a vytvoří príkaz pro skladníka(kam: alokační seznam) pokud existují rozdíly mezi zadaným_dodacím_listem a skutečnou dodávkou, vytvoří se rozdíly v přejímce(navíc, chybí: seznam barelů) pro všechny barely, které nelze do skladu umístit vytvoří nelze uložit(co: seznam barelů) sklad je bezpečný Richta: B101TMM - Modelování chování v UML 35

Matice CRUD Řádky odpovídají typům objektů. Sloupce odpovídají funkcím. V průsečíku je zapsáno zda funkce C,R,U a/nebo D odpovídající data. V každém řádku by mělo někde být vše (některá funkce musí objekt vytvářet, jiná využívat, či rušit). Richta: B101TMM - Modelování chování v UML 36

Matice CRUD pro ECO sklad Prázdná plošina Zadej dodací list Zařaď barel Konec přejímky Dodávka Zahájení práce systému ECO sklad Ukončení práce systému ECO sklad Plošina U U U C D Sklad U U C,Get D,Save Monitor U,Print U,Print C D Barel C Dodací list C R,D Příkaz C,Print C,Print Richta: B101TMM - Modelování chování v UML 37

Co jsme zjistili? Potřebujeme ještě v rámci nějaké funkce reprezentaci barelu zrušit. Mohla by to udělat funkce dodávka, neboť po vyskladnění barelu jeho životní cyklus končí. Doplníme tedy do popisu funkce dodávka požadavek pokud v rámci dodávky využijeme některý barel, vymažeme jeho reprezentaci z obsahu skladu a zrušíme ji. Do matice CRUD přidáme odpovídající D. Richta: B101TMM - Modelování chování v UML 38

Diagramy aktivity Co všichni známe: Co není tak obvyklé: Co není známo vůbec: Richta: B101TMM - Modelování chování v UML 39

Příklad: Diagram aktivity při vytváření objednávky v HRS Richta: B101TMM - Modelování chování v UML 40

Příklad: Podobný diagram, který ale obsahuje chybu? Aktivita se spustí, pokud jsou všechny vstupy aktivovány Richta: B101TMM - Modelování chování v UML 41

Řídicí a objektové toky Richta: B101TMM - Modelování chování v UML 42

Řídicí a objektové toky jinak Richta: B101TMM - Modelování chování v UML 43

Řízení toku pešek (token) Richta: B101TMM - Modelování chování v UML 44

Paralelně Richta: B101TMM - Modelování chování v UML 45

Objektové řízení Nedeterministicky se zvolí z možných Richta: B101TMM - Modelování chování v UML 46

Deterministicky Deterministicky se vyhodnotí podmínka. Richta: B101TMM - Modelování chování v UML 47

Př. Richta: B101TMM - Modelování chování v UML 48

Parametry aktivit Richta: B101TMM - Modelování chování v UML 49

Doplňky k diagramům aktivity Richta: B101TMM - Modelování chování v UML 50

Plavecké dráhy (swimlanes) Oblasti zodpovědnosti. act Activ ity diagram Aktivitu vyvolá Mohamed Mohamed hora Chce hora přijít? [NE] [ANO] jde k hoře jde k Mohamedov i Konec Richta: B101TMM - Modelování chování v UML 51

Plavecké dráhy ve více dimenzích Richta: B101TMM - Modelování chování v UML 52

Akce a aktivity Akce Základní jednotka při popisu chování. Akce přijímá množinu vstupů a konvertuje ji na množinu výstupů. Některé akce modifikují stav systému, ve kterém jsou provedeny. Akce jsou obsaženy v aktivitách. Richta: B101TMM - Modelování chování v UML 53

Akce a aktivity UML 2 definuje více než 50 akcí CallOperationAction CallBehaviorAction CreateObjectAction DestroyObjectAction ReadVariableAction WriteVariableAction Richta: B101TMM - Modelování chování v UML 54

Základ akcí (metamodel) Richta: B101TMM - Modelování chování v UML 55

Akce a jejich význam Odrůda způsobu definice sémantiky založená na abstraktním stroji, který umí nějakou sadu akcí ( actions ). Sémantika něčeho se pak definuje posloupností akcí, kterou to způsobí. UML 2 to do značné míry převzalo tak, že je stanovena atomická jednotka činnosti, která se nazývá Action. Vše ostatní se skládá z těchto elementů - např. aktivity jsou definovány jako posloupnosti akcí. Akce jsou klasifikovány do několika tříd - základní akce, akce vstupu a výstupu, akce vyvoláni něčeho, akce pro manipulaci s objekty, akce akceptování události apod. Richta: B101TMM - Modelování chování v UML 56

Př.: Akce s objekty Richta: B101TMM - Modelování chování v UML 57

Richta: B101TMM - Modelování chování v UML 58

Kontroly analytických modelů

Výstup analýzy Konceptuální model: datový model popisuje entity, atributy, vztahy, integritní omezení, funkční model popisuje služby, které systém poskytuje pro záznam, údržbu a využití dat, dynamický model popisuje možné stavy dat a jejich změny. Kontrola výstupů analýzy: kontrola jednotlivých modelů (pohledů) kontrola vzájemné konzistence modelů Richta: B101TMM - Modelování chování v UML 60

Kontrola datového modelu Je datový model úplný? existuje entita pro každý typ objektu? nejsou zde nadbytečné entity (entity tvořené pouze identifikací, entity s jedinou instancí, apod.)? jsou zde zaneseny všechny vztahy (včetně generalizací a agregací)? nejsou zde odvoditelné vztahy? je model v normální formě? jsou zanesena všechna integritní omezení? Richta: B101TMM - Modelování chování v UML 61

Nadbytečné entity entity tvořené pouze identifikací entity s jedinou instancí entity s vazbou typy 1:1 apod. dobrou technikou je představit si příklady entit a objektů? Richta: B101TMM - Modelování chování v UML 62

Jsou zaneseny všechny vztahy? Nelze doplnit generalizace? Nelze doplnit agregace? Nelze model vylepšit? Příklad: Pro entitu dodací list lze vymyslet pružnější model, který usnadní případné úpravy v budoucnosti Richta: B101TMM - Modelování chování v UML 63

Datový model pro ECO-sklad Richta: B101TMM - Modelování chování v UML 64

Nejsou zde odvoditelné vztahy? Zákazník si objednává zboží. Zákazníkovi je vystavena faktura. Odebrané zboží je předmětem fakturace. Nejsou zde odvoditelné vztahy? Pozn.: Odvoditelné vztahy mohou v modelu být, ale musí být jako odvoditelné předznačeny znakem / a doplněny způsobem odvození (formulí, popisem v OCL). Richta: B101TMM - Modelování chování v UML 65

Jsou zanesena všechna integritní omezení? Řadu vlastností dat nelze do diagramu zanést: Šéf musí mít větší plat než jeho podřízení. V jednom skladu nelze umístit chemikálie typu 1 a 2. context s:sklad inv : forall(barel x,y s.obsahuje(x) and s.obsahuje(y) implies x.typ!= 1 or y.typ!= 2) Richta: B101TMM - Modelování chování v UML 66

Vyvážení datového modelu Datový model versus datový slovník každá entita, atribut a vztah v DD. Datový model versus funkční dekompozice každá paměť a datový tok obsahuje entitu, atribut nebo vztah (nebo jejich kombinaci). Datový model versus minispecifikace něco musí entity a vztahy vytvářet/rušit, číst/modifikovat (matice CRUD). Richta: B101TMM - Modelování chování v UML 67

Kontrola funkčního modelu je funkční model úplný? existuje funkce/metoda pro každou událost? každá funkce/metoda musí být popsána dekompozicí, nebo mít minispecifikaci (vstupy a výstupy musí odpovídat)? nejsou zde nadbytečné funkce/metody? Richta: B101TMM - Modelování chování v UML 68

Vyvážení funkčního modelu Funkční model versus datový slovník každá paměť a datový tok v DD, každý prvek DD se někde vyskytuje (jinak je zbytečný). Funkční model versus datový model každá data zmíněná ve funkce/metodě musí být popsána v datovém modelu. Funkční model versus dynamický model každý řídicí proces má dynamický model (vstupy = podmínky, výstupy = akce). Richta: B101TMM - Modelování chování v UML 69

Kontrola dynamického modelu Je dynamický model úplný? existuje model pro každou entitu, která může mít různé stavy? existuje model pro každý řídicí proces? existuje popis životního cyklu systému? Richta: B101TMM - Modelování chování v UML 70

The End