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

Podobné dokumenty
Modelování chování v UML

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

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

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í

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

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)

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

Postup objednávky Microsoft Action Pack Subscription

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

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

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

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

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

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

10 Metody a metodologie strukturované analýzy

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

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?

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

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

7.6 Další diagramy UML

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

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

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

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

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

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

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

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

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ů

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

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

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

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

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

Algoritmizace prostorových úloh

EURO přeshraniční platba

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

7.6 Další diagramy UML

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

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

Business Process Modeling Notation

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

Vývoj IS - strukturované paradigma II

OOT Objektově orientované technologie

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.

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

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

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

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

OOT Objektově orientované technologie

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

Roční periodická zpráva projektu

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

Diagram datových toků - DFD

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

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

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

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

Řídicí struktury. alg3 1

Čipové karty Lekařská informatika

Operátory ROLLUP a CUBE

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

7.3 Diagramy tříd - základy

LabView jako programovací jazyk II

6 Příkazy řízení toku

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

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

Tvorba informačních systémů

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

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

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.

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Helios RED a Internetový obchod

Dolování v objektových datech. Ivana Rudolfová

1. Dědičnost a polymorfismus

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

7.3 Diagramy tříd - základy

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Transkript:

Superstruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - 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. 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 - v UML 3 Richta: B101TMM - 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. 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 Richta: B101TMM - v UML 5 6 1

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 1. It is the end of the business quarter. Main flow: 1. The use case starts when it is the end of the business quarter. 2. The system determines the amount of Sales Tax owed to the Tax Authority. 3. The system sends an electronic payment to the Tax Authority. 1. The Tax Authority receives the correct amount of Sales Tax. Alternative flows: implicit time actor Richta: B101TMM - 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 1. A valid user has logged on to the system 1. The order has been marked confirmed and is saved by the system Richta: B101TMM - v UML 8 Hlavní scénář <číslo> <někdo> <nějaká akce> 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é, 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 - 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: 1. The shopping basket contents are visible. Main flow: 1. 2. 3. The use case starts when the Customer selects an item in the basket. If the Customer selects "delete item" 2.1 The system removes the item from the basket. If the Customer types in a new quantity 3.1 Alternative flows: The system updates the quantity of the item in the basket. Richta: B101TMM - 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 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. Alternative flows: Use case: FindProduct Brief description: The system finds some products based on Customer search criteria and displays them to the Customer. Richta: B101TMM - 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 Primary actors: Customer Secondary actors: 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. Alternative flows: Use case: FindProduct Brief description: The system finds some products based on Customer search criteria and displays them to the Customer. Richta: B101TMM - v UML 12 2

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 - 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: 1. 2. 3. The use case begins when the Customer selects "create new customer account". While the Customer details are invalid 2.1. 2.2 The system creates a new account for the Customer. 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 - 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: 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. Model jednání pro Výtah 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 - v UML 15 Richta: B101TMM - v UML 16 Model jednání ECO-skladu 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ě. Případy užití U1 U2 U3 U4 P1 P2 P3 P4 P5 Požadavky Matice sledovatelnosti požadavků Richta: B101TMM - v UML 17 Richta: B101TMM - v UML 18 3

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í. 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 - v UML 19 Richta: B101TMM - v UML 20 Základní princip scénáře Zvolíme-li konkrétní metodu Richta: B101TMM - v UML 21 Richta: B101TMM - v UML 22 Konstrukce a destrukce Reakce a návratové hodnoty Richta: B101TMM - v UML 23 Richta: B101TMM - v UML 24 4

Hrubý scénář pro čerpání Zákazník se autentizuje Richta: B101TMM - v UML 25 Richta: B101TMM - v UML 26 Scénář pro přejímku Scénář pro dodávku Richta: B101TMM - v UML 27 Richta: B101TMM - v UML 28 Scénář pro přivolání 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 - v UML 29 Richta: B101TMM - v UML 30 5

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ě 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 - v UML 31 Richta: B101TMM - 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 - 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 - 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ý 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 - v UML 35 Richta: B101TMM - v UML 36 6

Matice CRUD pro ECO sklad Prázdná Zadej Zařaď Konec Dodávka Zahájení Ukončení plošina dodací barel přejímky práce práce list systému systému ECO ECO sklad sklad Plošina U U U C D Sklad U C,Get D,Save U Monitor U,Print U,Print C D Barel C 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. Dodací list C R,D Příkaz C,Print C,Print Richta: B101TMM - v UML 37 Richta: B101TMM - v UML 38 Diagramy aktivity Co všichni známe: Příklad: Diagram aktivity při vytváření objednávky v HRS Co není tak obvyklé: Co není známo vůbec: Richta: B101TMM - v UML 39 Richta: B101TMM - v UML 40 Příklad: Podobný diagram, který ale obsahuje chybu? Aktivita se spustí, pokud jsou všechny vstupy aktivovány Řídicí a objektové toky Richta: B101TMM - v UML 41 Richta: B101TMM - v UML 42 7

Řídicí a objektové toky jinak Řízení toku pešek (token) Richta: B101TMM - v UML 43 Richta: B101TMM - v UML 44 Paralelně Objektové řízení Nedeterministicky se zvolí z možných Richta: B101TMM - v UML 45 Richta: B101TMM - v UML 46 Deterministicky Př. Deterministicky se vyhodnotí podmínka. Richta: B101TMM - v UML 47 Richta: B101TMM - v UML 48 8

Parametry aktivit Doplňky k diagramům aktivity Richta: B101TMM - v UML 49 Richta: B101TMM - v UML 50 Plavecké dráhy (swimlanes) Plavecké dráhy ve více dimenzích Oblasti zodpovědnosti. act Activ ity diagram Mohamed Aktivitu vyvolá Mohamed hora Chce hora přijít? [NE] [ANO] jde k hoře jde k Mohamedovi Konec Richta: B101TMM - v UML 51 Richta: B101TMM - 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. Akce a aktivity UML 2 definuje více než 50 akcí CallOperationAction CallBehaviorAction CreateObjectAction DestroyObjectAction ReadVariableAction WriteVariableAction Richta: B101TMM - v UML 53 Richta: B101TMM - v UML 54 9

Základ akcí (metamodel) 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 - v UML 55 Richta: B101TMM - v UML 56 Př.: Akce s objekty Richta: B101TMM - v UML 57 Richta: B101TMM - v UML 58 Výstup analýzy Kontroly analytických modelů 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 - v UML 60 10

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í? 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 - v UML 61 Richta: B101TMM - v UML 62 Jsou zaneseny všechny vztahy? Datový model pro ECO-sklad 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 - v UML 63 Richta: B101TMM - 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). 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 - v UML 65 Richta: B101TMM - v UML 66 11

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). 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 - v UML 67 Richta: B101TMM - 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). 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 - v UML 69 Richta: B101TMM - v UML 70 The End 12