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

Podobné dokumenty
Úvodní studie (pokraov

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

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

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

SWI041: Návrh. Z analytického konceptuálního modelu, kde je popsáno CO, musíme navrhnout JAK se to udlá

Modelování chování v UML

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

SWI041: Hledáme, odpov na otázku ZDA a PRO Sbr požadavk na SW produkt (feasibility study)

Návrh. Kroky návrhun. Základní technologická. Vstupy pro návrhn. návrhu architektury. Píklad

Unifikovaný modelovací jazyk UML

X36SIN: Softwarové inženýrstv. enýrství. Notace modelu jednání (UML) Chyby v modelu jednání. Píklad: e-obchod. úvodní studie

X36SIN: Softwarové inženýrstv. enýrství í? Co to je. Píklad definice SI (SEI, CMU) Historie SI. Pro se SI na FEL uí? u.

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?

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

7.3 Diagramy tříd - základy

7.3 Diagramy tříd - základy

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Diagramy tříd - základy

DBS Konceptuální modelování

Tvorba informačních systémů

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

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

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

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

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

Ing. Jaroslav Halva. UDS Fakturace

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

Programování v C++ 3, 3. cvičení

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

DBS Transformace konceptuálního schématu na

MATEMATIKA MATEMATIKA

PÍRUKA A NÁVODY PRO ÚELY: - RUTINNÍ PRÁCE S DATY

Základy analýzy. autor. Jan Novotný února 2007

Analýza a modelování dat. Helena Palovská

Programovací jazyky, syntaxe, sémantika, zpsoby popisu

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

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

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

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

UML. Unified Modeling Language. Součásti 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í.

Databázové systémy Cvičení 5.2

Obsah. Zpracoval:

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

7.5 Diagram tříd pokročilé techniky

IMPORT DAT Z TABULEK MICROSOFT EXCEL

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

Správa obsahu ízené dokumentace v aplikaci SPM Vema

Relace x vztah (relationship)

Diagram výskytů a vztahů

Metody popisu systému, základy UML

Objektov orientovaný pístup

Obsah Úvod...2 Slovníek pojm Popis instalace...3 Nároky na hardware a software...3 Instalace a spouštní...3 Vstupní soubory

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

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

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Principy UML. Clear View Training 2005 v2.2 1

7.5 Diagram tříd pokročilé techniky

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

1 Píklady popisu typických konstrukcí

Objekty, třídy, vazby 2006 UOMO 30

2. Žadatel 2.1. Identifikace žadatele Název pozemkového úadu (nap. Ministerstvo Zemdlství R Pozemkový úad Jihlava)

Promnné. [citováno z

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

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

01. Životní cyklus programového díla, analýza, návrh, implementace, provoz a metodiky vývoje SW. (A7B36SIN)

Semestrální práce z DAS2 a WWW

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Úvod do databázových systémů. Ing. Jan Šudřich

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

Internetový mapový server Karlovarského kraje

REDAS. Vývoj informaních systém Tvrci: Petr Kalíš Judita Hlinková,, Richard Vavrda

SWI041: Modelování a realizace programových systémů. Rozsah: 2+1 Přednášející: Karel Richta Zakončení: z,zk.

Příklady a návody. Databázová vrstva

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

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

POPIS TESTOVACÍHO PROSTEDÍ 1 ZÁLOŽKA PARSER

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Registrační číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

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

PRÁCE S GRAFICKÝMI VÝSTUPY SESTAV

Transformace konceptuálního modelu na relační

Konceptuální datové modely používané při analýze

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

Databáze I. Přednáška 7

Analýza IS autoservisu:

Informace pro autory píspvk na konferenci ICTM 2007

7 Jazyk UML (Unified Modeling Language)

Úvod do softwarového inženýrství IUS 2009/2010 p.1/30

7 Jazyk UML (Unified Modeling Language)

Stručný obsah. Část I Úvod do jazyka UML a metodiky Unified Process 25. Část II Požadavky 71. Část III Analýza 135.

EXTRAKT z mezinárodní normy

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.

Analýza problémové domény

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

4. Lineární diferenciální rovnice rovnice 1. ádu

II. Jak se p?ihlásit do diskusní skupiny

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

Transkript:

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

Nejprve trochu kontroly Stav projekt

Pro vytváet úvodní studii A. Protože to Richta chce. B. Protože se to v komunit informatik sluší. C. Protože to mže ušetit výdaje. C je správn!! SWI041 - Analýza 3

Jak to je ideáln lní SWI041 - Analýza 4

Ale nemusí to vždy v dopadnout SWI041 - Analýza 5

Úvodní studie mžm že e nco n ušetit SWI041 - Analýza 6

Co obsahuje úvodní studie? Struný náznak o jaký produkt se jedná - definice hranice systému Katalog požadavk Odhad náklad a výnos. Pokus o pesvdení investora, že se vyplatí do projektu vložit peníze. asto je vhodné vymezit rzné varianty ešení. SWI041 - Analýza 7

Struná definice hranice systému Struná informace, bez zbytených podrobností (ty se pozdji doplní v analýze). Deklarace zámru Odborný lánek Model jednání (Use Case Model UML, píp. kontext) Slovník použitých termín (pojm) Základní datový model SWI041 - Analýza 8

Jedná se o rzné aktéry? SWI041 - Analýza 9

SWI041 - Analýza 10

SWI041 - Analýza 11

Model jednání pro Výtah SWI041 - Analýza 12

Model jednání ECO-skladu SWI041 - Analýza 13

SWI041 - Analýza 14

Scénáe e událost lostí (Sequence diagrams) (zachycení sledu událostí) Prvky: objekty - znázornné 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 vyznaení sledu událostí SWI041 - Analýza 15

Scéná pro pivolp ivolání SWI041 - Analýza 16

Scéná pro pejímku SWI041 - Analýza 17

Scéná pro dodávku SWI041 - Analýza 18

Datový model (konceptuáln lní) (zachycení analýzy dat) Komponenty: typy objekt (entity) - entita = rozlišitelný identifikovatelný objekt vztahy (relationships) - množiny instancí reprezentujících vztahy mezi (2 a více) objekty indikace pidružených objekt - pro vztahy o nichž si potebujeme nco pamatovat indikace vztah nadtyp-podtyp, celek-ást (genspec, whole-part) - vyjádení vztahu spolený - speciální (ddinost) SWI041 - Analýza 19

SWI041 - Analýza 20

Datový model ECO (1.verze) SWI041 - Analýza 21

Alternativní notace Integrated Definition IDEF (U.S. Air Force - http://www.idef.com) SWI041 - Analýza 22

Alternativní notace Architecture of Integrated Information Systems ARIS (prof. Scheer, SAP) http://www.ids-scheer.com SWI041 - Analýza 23

Datové modelování

Fáze datového modelování Sbr požadavk Analýza dat a vytvoení konceptuálního datového modelu (ER-model, model tíd, PIM) Návrh reprezentace dat logický datový model (nap. relaní model, objektový model, PSM) Implementace datového modelu skutené vyjádení datových charakteristik pro konkrétní prostedí (fyzický model) SWI041 - Analýza 25

Píklad: MS Project Požadavky: aplikace bude pracovat s úlohami, zdroji a vztahy. Odtud kandidáti na entity (typy objekt, tídy): Úloha Zdroj Piazení První model: SWI041 - Analýza 26

Podrobnjší model SWI041 - Analýza 27

Ješt podrobnjší model SWI041 - Analýza 28

Použijeme ijeme-li relaní databázi (ást) SWI041 - Analýza 29

Skutená implementace CREATE TABLE MSP_TASKS ( PROJ_ID NUMBER(18,0), TASK_UID NUMBER(18,0),, PRIMARY KEY (PROJ_ID,TASK_UID) ); CREATE TABLE MSP_RESOURCES ( PROJ_ID NUMBER(18,0), RES_UID NUMBER(18,0), RES_NAME VARCHAR2(255),, PRIMARY KEY (PROJ_ID,RES_UID) ); CREATE TABLE MSP_LINKS ( PROJ_ID NUMBER(18,0), LINK_UID NUMBER(18,0), LINK_PRED_UID NUMBER(18,0), LINK_SUCC_UID NUMBER(18,0),, FOREIGN KEY (PROJ_ID, LINK_PRED_UID) REFERENCES MSP_TASKS (PROJ_ID, TASK_UID) ); SWI041 - Analýza 30

Pozor na role ve vztazích Predmet+ma instanci nazev : string 0..* +je typutyp Predmetu jmeno : string 1 Pedmt je práv jednoho typu Typ pedmtu má 0..* instancí SWI041 - Analýza 31

Generovaný kódk #ifndef Predmet_h #define Predmet_h #include "Typ Predmetu.h" class Predmet { public: Predmet(); ~Predmet(); const Typ_Predmetu * get_je_typu () const; void set_je_typu (Typ_Predmetu * value); private: const string get_nazev () const; void set_nazev (string value); string nazev; Typ_Predmetu *je_typu; }; SWI041 - Analýza 32

SWI041 - Analýza 33

SWI041 - Analýza 34

CASE nástrojen http://www.uml.org SWI041 - Analýza 35

Definice architektury systému

Architektura SWI041 - Analýza 37

První pedstava o rozmíst stní v UML SWI041 - Analýza 38

Druhá pedstava o rozmíst stní v UML SWI041 - Analýza 39

Funkní model

Základní princip scénáe SWI041 - Analýza 41

Zvolíme me-li konkrétn tní metodu SWI041 - Analýza 42

Konstrukce a destrukce SWI041 - Analýza 43

Reakce a návratovn vratové hodnoty SWI041 - Analýza 44

Hrubý scéná pro erpání SWI041 - Analýza 45

Zákazník k se autentizuje SWI041 - Analýza 46

Scéná pro pivolání SWI041 - Analýza 47

Scéná pro pejímku SWI041 - Analýza 48

Scéná pro dodávku SWI041 - Analýza 49

Popis akce (operace, funkce) Operation: název Description: textový popis Reads: jaká data jente Changes: jaká data mní nebo vytváí Sends: jaké reakce vyvolává (jaké zprávy posílá) Assumes: co pedpokládá Results: co zajišuje (zaruuje) SWI041 - Analýza 50

Popis pro prázdná plošina 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 SWI041 - Analýza 51

Popis pro zadej dodací list Operation: dodací list Description: zahájí pejímku a uloží informace z dodacího listu Reads: supplied dodací_list Changes: zadaný_dodací_list Sends: Assumes: Results: vnitní objekt zadaný_dodací_list je inicializován hodnotami z fyzického dodacího_listu SWI041 - Analýza 52

Popis pro barel k zaazen azení Operation: barel k zaazení Description: každý vyložený barel je jednoznan 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 SWI041 - Analýza 53

Popis pro konec pejímky Operation: konec pejí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 pejímce, nelze uložit}, skladník:{píkaz pro skladníka} Assumes: sklad je bezpený SWI041 - Analýza 54

Popis pro konec pejímky (pokra.) Results: pro všechny barely, které lze do skladu umístit, pesune v modelu jejich umístní do vhodné budovy a vytvoí príkaz pro skladníka(kam: alokaní seznam) pokud existují rozdíly mezi zadaným_dodacím_listem a skutenou dodávkou, vytvoí se rozdíly v pejí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 bezpený SWI041 - Analýza 55

Další postup Z datového modelu se snažíme odvodit funkce: Vytvoíme matici CRUD (Create, Read, Update, Delete) Zkoumáme, zda pro každý typ dat existuje odpovídající funkce Z datového modelu se snažíme odvodit dynamiku: Pro každý typ dat zkoumáme, zda objekty nevykazují zmny stavu SWI041 - Analýza 56

Matice CRUD ádky odpovídají typm objekt. Sloupce odpovídají funkcím. V prseíku je zapsáno zda funkce C,R,U a/nebo D odpovídající data. V každém ádku by mlo nkde být vše (nkterá funkce musí objekt vytváet, jiná využívat, i rušit). SWI041 - Analýza 57

Matice CRUD pro ECO sklad Prázdná plošina Zadej dodací list Zaa barel Konec pejímky Dodávka Zahájení práce systému ECO sklad Ukonení 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 SWI041 - Analýza 58

Co jsme zjistili? Potebujeme ješt v rámci njaké funkce reprezentaci barelu zrušit. Mohla by to udlat funkce dodávka, nebo po vyskladnní barelu jeho životní cyklus koní. Doplníme tedy do popisu funkce dodávka požadavek pokud v rámci dodávky využijeme nkterý barel, vymažeme jeho reprezentaci z obsahu skladu a zrušíme ji. Do matice CRUD pidáme odpovídající D. SWI041 - Analýza 59

Dynamický model

Stavové diagramy Slouží k popisu dynamiky systému Stavový diagram definuje možné stavy, možné pechody mezi stavy, události, které pechody iniciují, podmínky pechod a akce, které s pechody souvisí Stavový diagram lze použít pro popis dynamiky objektu (pokud má rozpoznatelné stavy), pro popis metody (pokud známe algoritmus), i pro popis protokolu (vetn protokolu o styku uživatele se systémem) SWI041 - Analýza 61

Životní cyklus skuteného barelu idi vykládá barel na plošinu / zarad_barel Je na plošin neoznaen Zaa barel / ID Je na plošin oznaen Píkaz / Skladník odváží barel do skladu Je ve skladu Je na plošin oznaen Píkaz / Skladník odváží barel na plošinu idi nakládá barel z plošiny / smazat ID SWI041 - Analýza 62

Životní cyklus entity barel zarad_barel / ID Je v kontejneru Plošina oznaen konec_prejimky / prikaz pro uskladneni Je v kontejneru Sklad dodavka / píkaz pro vyskladneni SWI041 - Analýza 63

Popis ídicích ch proces pomocí stavových diagram Vstupy ídicího procesu lze modelovat pomocí událostí stavového diagramu. Výstupy ídicího procesu lze modelovat pomocí akcí stavového diagramu. Pak lze ídicí procesy modelovat stavovými diagramy. SWI041 - Analýza 64

P1 P2 a x b y ídicí proces /a stídav spouštíme P1 a P2 y/a Pracuje P1 Pracuje P2 x/b SWI041 - Analýza 65

Životní cyklus systému Vyjádení souhrné dynamiky systému, která je zachycena ve scénáích Definuje povolené návaznosti akcí a reakcí Pedstavuje hrubou uživatelskou píruku pro systém Definice systému jako koneného automatu SWI041 - Analýza 66

Životní cyklus jako regulárn rní výraz <Životní cyklus> = Lifecycle <jméno objektu> : <regulární výraz> <regulární výraz> = <akce> #<reakce> <regulární výraz>. <regulární výraz> sekvence [ <regulární výraz> ] voliteln <regulární výraz>* iterace (<regulární výraz> <regulární výraz>) selekce (<regulární výraz> <regulární výraz>) paraleln <akce> = jméno události <reakce> = jméno reakce SWI041 - Analýza 67

Životní cyklus ECO-skladu Lifecycle ECO-sklad: (dodávka pejímka)* (dotaz na stav je bezpený?)* pejímka = prázdná plošina. dodací list. (barel k zaazení. #ID barelu)*. konec pejímky. [#rozdíly v pejímce]. #píkaz pro skladníka. [#nelze uložit] dodávka = prázdná plošina.požadovaná dodávka. #skutená dodávka. #píkaz pro skladníka dotaz na stav = je bezpený? =... SWI041 - Analýza 68

Životní cyklus entity barel Lifecycle BAREL: zarad_barel. #ID barelu. #píkaz pro uskladnní. dodávka. #píkaz pro vyskladnní SWI041 - Analýza 69

Kontroly analytických model

Výstup analýzy Konceptuální model: datový model popisuje entity, atributy, vztahy, integritní omezení, funkní 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 zmny. Kontrola výstup analýzy: kontrola jednotlivých model (pohled) kontrola vzájemné konzistence model SWI041 - Analýza 71

Kontrola datového modelu je datový model úplný? existuje entita pro každý typ objektu? nejsou zde nadbytené entity (entity tvoené pouze identifikací, entity s jedinou instancí, apod.)? jsou zde zaneseny všechny vztahy (vetn generalizací a agregací)? nejsou zde odvoditelné vztahy? je model v normální form? jsou zanesena všechna integritní omezení? SWI041 - Analýza 72

Nadbytené entity entity tvoené pouze identifikací entity s jedinou instancí entity s vazbou typy 1:1 apod. Dobrou technikou je pedstavit si píklady entit a objekt? SWI041 - Analýza 73

Jsou zaneseny všechny v vztahy? Nelze doplnit generalizace? Nelze doplnit agregace? Nelze model vylepšit? Píklad: Pro entitu dodací list lze vymyslet pružnjší model, který usnadní pípadné úpravy v budoucnosti SWI041 - Analýza 74

Datový model pro ECO-sklad SWI041 - Analýza 75

Nejsou zde odvoditelné vztahy? Zákazník si objednává zboží Zákazníkovi je vystavena faktura. Odebrané zboží je pedmtem fakturace.? Nejsou zde odvoditelné vztahy? Pozn.: Odvoditelné vztahy mohou v modelu být, ale musí být jako odvoditelné pedznaeny znakem / a doplnny zpsobem odvození (formulí, popisem v OCL). SWI041 - Analýza 76

Jsou zanesena všechna v integritní omezení? adu vlastností dat nelze do diagramu zanést: Šéf musí mít vtší 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) SWI041 - Analýza 77

Vyvážen ení datového modelu datový model versus datový slovník každá entita, atribut a vztah v DD datový model versus funkní dekompozice každá pam a datový tok obsahuje entitu, atribut nebo vztah (nebo jejich kombinaci) datový model versus minispecifikace nco musí entity a vztahy vytváet/rušit, íst/modifikovat (matice CRUD) SWI041 - Analýza 78

Kontrola funkního modelu je funkní 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 nadbytené funkce/metody? SWI041 - Analýza 79

Vyvážen ení funkního modelu funkní model versus datový slovník každá pam a datový tok v DD každý prvek DD se nkde vyskytuje (jinak je zbytený) funkní model versus datový model každá data zmínná ve funkce/metod musí být popsána v datovém modelu funkní model versus dynamický model každý ídicí proces má dynamický model (vstupy = podmínky, výstupy = akce) SWI041 - Analýza 80

Kontrola dynamického modelu je dynamický model úplný? existuje model pro každou entitu, která mže mít rzné stavy? existuje model pro každý ídicí proces? existuje popis životního cyklu systému? SWI041 - Analýza 81

The End