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

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

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

Úvodní studie (pokraov

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

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

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

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

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

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

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

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

Relace x vztah (relationship)

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

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

4IT218 Databáze. 4IT218 Databáze

DBS Transformace konceptuálního schématu na

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

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Konceptuální modelování a SQL

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

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

Semestrální práce z DAS2 a WWW

Unifikovaný modelovací jazyk UML

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

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

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

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

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Tvorba informačních systémů

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Virtual Private Database (VPD) Jaroslav Kotrč

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

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

Tvorba informačních systémů

10 Metody a metodologie strukturované analýzy

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

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

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

6. SQL složitější dotazy, QBE

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Databázové systémy trocha teorie

UML. Unified Modeling Language. Součásti UML

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

7.3 Diagramy tříd - základy

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

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Konceptuální modelování. Pavel Tyl

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Tabulka fotbalové ligy

7.3 Diagramy tříd - základy

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Sada 1 - PHP. 14. Úvod do jazyka SQL

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

DUM 12 téma: Příkazy pro tvorbu databáze

Databázové systémy I

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

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Relační databázová technologie

Maturitní témata Školní rok: 2015/2016

Kapitola 6: Omezení integrity. Omezení domény

Oracle XML DB. Tomáš Nykodým

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

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Diagramy tříd - základy

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

PG 9.5 novinky ve vývoji aplikací

2 Konceptuální modelování a návrh databáze

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

2 Konceptuální modelování a návrh databáze

Novinky v PostgreSQL 9.4. Tomáš Vondra, 2ndQuadrant

Analýza a modelování dat 3. přednáška. Helena Palovská

Otázky k státní závrené zkoušce v bakaláském studijním programu. Druhý okruh (VOŠIS)

Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny.

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Metody popisu systému, základy UML

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

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

Strukturované metody Jan Smolík

Databázové systémy I

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

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

Databázové systémy úvod

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Verzování a publikace dat na webu za pomoci PostgreSQL

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Transkript:

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

Nejprve trochu kontroly Stav projekt

Kroky návrhun návrh architektury systému návrh uživatelského vzhledu návrh komponent návrh komunikace mezi komponentami návrh zpsobu integrace komponent a testování celku SWI041 - Návrh 3

Základní technologická rozhodnutí ve fázi f návrhun architektura systému datové zdroje, datové pamti, pístupové mechanismy k nim distribuce programových modul, komunikaní mechanismy typy a formy výstup uživatelské rozhraní vývojové prostedí SWI041 - Návrh 4

Výstupní dokumenty návrhun Architektura systému (HW,SW) Popis implementace dat (logický datový model) Popis komponent (modul) Projektová dokumentace návrhu SWI041 - Návrh 5

Píklad návrhu architektury SWI041 - Návrh 6

SWI041: Návrh (datový model) Z analytického konceptuálního datového modelu musíme navrhnout model logický

Konceptuální datový model specifikuje Typy dat (které entity, tídy, ) Vztahy mezi nimi Další logická omezení (integrity constraints) Pozn: Model tíd popisuje i operace SWI041 - Návrh 8

Píklad: Diagram tíd t d pro personáln lní agendu SWI041 - Návrh 9

Integritní omezení jsou souást stí specifikace Integritní omezení zajišují, aby popisovaná data (data uložená v databázi) byla pokud možno korektní a úplná. V UML mžeme pro specifikaci integritních omezení použít jazyk OCL (Object Constraint Language). SWI041 - Návrh 10

Návrh reprezentace dat Pro každou datovou pam (úložišt) musíme navrhnout zpsob reprezentace - mže to být systém ovládání soubor, systém ízení báze dat (relaní, objektové, objektov-relaní), speciální datový stroj (SW, SW+HW). Následuje pevod konceptuálního modelu do logického. Souástí pevodu je i návrh zajištní integrity dat Návrh zajištní konzistence dat, zálohování, archivace apod. SWI041 - Návrh 11

Návrh reprezentace dat pomocí relaního databázov zového systému Vstup: konceptuální datový model (diagram tíd + popis integritních omezení) Výstup: logický relaní datový model (SQL- 1999), vetn návrhu realizace integritních omezení Pozn.: Výstupem je obecné SQL, pi skutené implementaci návrhu musí být ješt výstup pizpsoben konkrétnímu stroji SWI041 - Návrh 12

Postup návrhun Úprava (normalizace) konceptuálního modelu Návrh reprezentace typ (entit) Návrh reprezentace vztah Návrh reprezentace integritních omezení SWI041 - Návrh 13

Úprava (normalizace) konceptuáln lního modelu Vylouení multihodnotových a násobných atribut Vylouení funkních závislostí (odstranní redundance dat) pevod modelu do 3-NF (píp. 4-té, i 5-té normální formy) Náhrada nebinárních vztah binárními Náhrada vztah typu M:N pidruženými tídami SWI041 - Návrh 14

Normalizovaný datový model SWI041 - Návrh 15

Návrh reprezentace Pro každou jednoduchou entitu (typ) navrhneme tabulku, jméno tabulky bude množnéíslo jména typu. Návrh jmen sloupc pro reprezentaci atribut a odpovídajících domén. Doplníme informace o volitelnosti formátu sloupc. Z nejastji používané unikátní identifikace vytvoíme primární klí, nebo zavedeme nový identifikaní sloupec (OID). SWI041 - Návrh 16

Návrh reprezentace (pokr( pokr.) Pro N-konce vztah pidáme k tabulce jednoznané identifikace z tabulky na 1-konci (volitelné vztahy indikují nepovinnost. Souasn pidáme odpovídající cizí klíe. Pro každý vztah typu nadtyp/podtyp navrhneme reprezentaci (spolená tabulka s rozlišovací položkou, samostatné tabulky). Pro každý vztah typu celek/ást navrhneme reprezentaci (spolená tabulka s rozlišovací položkou, samostatné tabulky). SWI041 - Návrh 17

Návrh reprezentace (pokr( pokr.) Pro každý exkluzivní vztah (exkluzivní podtypy) rozhodneme, zda se máešit spolenou doménou, nebo explicitními cizími klíi. Doplníme sloupce odpovídajícíasto používaným odvozeným atributm a navrhneme mechanizmus jejich údržby. Navrhneme indexy pro asto využívané unikátní kombinace, které nejsou realizovány jako primární klíe. Indexy rovnž vytvoíme pro cizí klíe. SWI041 - Návrh 18

Návrh reprezentace (pokr( pokr.) Pidáme definice pohled (zejména pro nadtypy, podtypy, celky a ásti). Pro generované primární klíe pidáme definice sekvencí pro jejich generování (mže být implementan závislé). Navrhneme ešení integritních omezení (použijeme deklarativní relaní integritní omezení, nebo navrhneme triggery ). SWI041 - Návrh 19

Jména a domény EMP 0..1 last_nam e : VARCHAR2 first_nam e : VARCHAR2 job : VARCHAR2 salary : NUMBER bonus : NUMBER employ 0..* 1..1 DEPT name : VARCHAR2 loca ti on : VARCHAR2 supervisor 0..* The salary of the supervisor should be grater than the salary of an employee SWI041 - Návrh 20

Primární identifikace EMP 0..* id : ROWID last_name : VARCHAR2 first_name : VARCHAR2 job : VARCHAR2 salary : NUMBER bonus : NUMBER employ 0..* 1..1 DEPT id : ROWID name : VARCHAR2 location : VARCHAR2 supervisor 0..1 The salary of the supervisor should be grater than the salary of an employee SWI041 - Návrh 21

Vytvoíme tabulky 0..* supervisor <<Relational Table>> EMP id : ROWID last_name : VARCHAR2 first_name : VARCHAR2 job : VARCHAR2 s alary : NUMBER bonus : NUMBER 0..1 employ 0..* 1..1 <<Relational Table>> DEPT id : ROWID name : VARCHAR2 location : VARCHAR2 The salary of the supervisor should be grater than the salary of an employee SWI041 - Návrh 22

Cizí klí pro supervisora <<Relational Table>> EMP <<PK>> id : ROWID last_name : VARCHAR2 first_name : VARCHAR2 job : VARCHAR2 salary : NUMBER bonus : NUMBER <<FK>> supervisor : ROWID The salary of the supervisor should be grater than the salary of an employee employ 0..* 1..1 <<Relational Table>> DEPT <<PK>> id : ROWID name : VARCHAR2 location : VARCHAR2 <<FK>> EMP.supervisor references <<PK>> EMP.id SWI041 - Návrh 23

Cizí klí pro zamstnance <<Relational Table>> EMP <<PK>> id : ROWID last_name : VARCHAR2 first_name : VARCHAR2 job : VARCHAR2 salary : NUMBER bonus : NUMBER <<FK>> supervisor : ROWID <<FK>> dept : ROWID The salary of the supervisor should be grater than the salary of an employee <<Relatio nal Table>> DEPT <<PK>> id : ROWID name : VARCHAR2 location : VARCHAR2 optional <<FK>> EMP.supervisor references <<PK>> EMP.id mandatory <<FK>> EMP.dept references <<PK>> DEPT.i d SWI041 - Návrh 24

Návrh reprezentace integritních omezení Zkusíme vytvoit deklarativní omezení. Pokud by nefungovala, musíme navrhnout triggery. SWI041 - Návrh 25

Specifikace v OCL <<Relational Table>> EMP <<PK>> id : ROWID last_nam e : VARC HAR2 first_nam e : VARCHAR2 job : VARCHAR2 salary : NUMBER bonus : NUMBER <<FK>> supervi sor : ROWID <<FK>> dept : ROWID <<Relational Table>> DEPT <<PK>> id : ROWID name : VARCHAR2 location : VARCHAR2 optional <<FK>> EMP.supervisor references <<PK>> EMP.id mandatory <<FK>> EMP.dept references <<PK>> DEPT.id <<constraint>> context EMP inv C1: forall (EMP e1,e2 e1.id = e2.supervisor implies e1.salary > e2.salary) -- The salary of the supervisor should be grater than the salary of an employee} SWI041 - Návrh 26

Konverze integritních omezení Píklad: context EMP inv min_age: self.age >= 18 alter table EMP add constraint min_age check (self.age >= 18); SWI041 - Návrh 27

Píklad: Personáln lní agenda context EMP inv C1: forall (EMP e1,e2 e1.id = e2.supervisor implies e1.salary > e2.salary) alter table EMP add constraint C1 check (not exists (select X from EMP e1, EMP e2 where e1.id = e2.supervisor e1.salary)); and e2.salary >= SWI041 - Návrh 28

Odvozené SQL I. (table DEPT) create table DEPT ( id ROWID primary key, name VARCHAR2(20), location VARCHAR2(20) ); SWI041 - Návrh 29

Odvozené SQL II. (table EMP) create table EMP ( id ROWID primary key, last_name VARCHAR2(35), first_name VARCHAR2(35), job VARCHAR2(10), salary NUMBER(9,2), bonus NUMBER(9,2), supervisor ROWID references EMP(id), dept ROWID not null references DEPT(id) ); SWI041 - Návrh 30

Odvozené SQL III. (ostatn( ostatní) alter table EMP add constraint C1 check (not exists (select X from EMP e1, EMP e2 where e1.id = e2.supervisor and e2.salary > e1.salary)); Ale problém nkde to nefunguje!!! Zkusíme trigger!!! SWI041 - Návrh 31

Píklad (zjednodušeno) create or replace trigger C1 before insert or update of salary on EMP e1 declare cnt INTEGER; begin select count(*) into cnt from EMP e2 where e1.id = e2.supervisor and e2.salary > e1.salary; if cnt = 0 then e1.salary := :new.salary end if; end; SWI041 - Návrh 32

Píklad jinéešen ení create or replace view EMP_C1 as select * from EMP e1 join EMP e2 on (e1.id = e2.supervisor) where e2.salary >= e1.salary; with check option; Uživatelm zpístupníme pouze EMP_C1 SWI041 - Návrh 33

SWI041: Návrh (funkní model) Ml by odpovdt na otázku JAK, tj. jaké moduly, tídy, komponenty Programování ve velkém Dekompozice

Návrh - funkní model Funkní model musíme rozložit na ásti zvládnutelné technikami programování (v malém) Takovéásti se obvykle nazývají moduly, komponenty, Z analytického funkního modelu, kde je popsáno CO (jaké služby), musíme navrhnout JAK se to udlá (který modul bude službu realizovat a jakými dalšími moduly bude muset spolupracovat) SWI041 - Návrh 35

Techniky návrhu n modul Objektový návrh (nap. Coleman) z analytických model vytvoíme popisy tíd Návrh na základ datových tok (nap. Page- Jones) z analytických diagram datových tok vytvoíme diagramy struktury Návrh na základ datových struktur (nap. Jackson) z analytických popis datových struktur vytvoíme popisy program Návrh fukní dekompozicí z analytických popis funkcí vytvoíme pímou funkní dekompozicí dostaten podrobné popisy funkcí SWI041 - Návrh 36

Píklad: Návrh N dle Fusion

Model životního cyklu (Fusion) ANALÝZA Objektový model Požadavky Operaní model Model interakce Model život.cyklu D a t o v ý NÁVRH Graf viditelnosti Popis tíd Model ddinosti s l o v n í k IMPLEMENTACE Program SWI041 - Návrh 38

Vstupní dokumenty pro návrh n ve Fusion Datový slovník Objektový model (ER-model) Operaní model (kontext, model jednání, scénáe, popisy operací) Model životního cyklu SWI041 - Návrh 39

Výstupní dokumenty návrhu n ve Fusion Datový slovník Architektura systému (HW,SW) Popis komponent jako popis tíd Model životního cyklu SWI041 - Návrh 40

Postup dle Fusion datový slovník objektový model Zaínáme analýzou funkní model - popisy operací model životního cyklu model interakce - scénáe, diag.kolaborace graf viditelnosti popis tíd graf ddinosti program Zde koní analýza a zaíná návrh Zde koní návrh a zaíná implementace SWI041 - Návrh 41

Princip návrhu ve Fusion Objektový model Model interakce objekt Graf viditelnosti Datový slovník objektové atributy datové atributy metody Popis tíd isa class A isa S attribute a : int attribute b : shared B method f(par) endclass Graf ddinosti SWI041 - Návrh 42

Postup návrhu ve Fusion Pro každou operaci funkního modelu nakresli diagram interakce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram interakce Pro každou tídu vytvo popis tídy Dopl návrh grafy ddinosti SWI041 - Návrh 43

P.. ECO sklad SWI041 - Návrh 44

SWI041 - Návrh 45

Scéná pro pejímku v UML SWI041 - Návrh 46

Postup návrhu n ve Fusion Pro každou operaci funkního modelu nakresli diagram interakce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram interakce Pro každou tídu vytvo popis tídy Dopl návrh grafy ddinosti SWI041 - Návrh 47

Diagram Dokumentace návrhu pro ECO interakce pro konec pejímky konec_prejimky() plosina: Plosina 1. Výbr zodpovdného objektu SWI041 - Návrh 48

Diagram Dokumentace návrhu pro ECO interakce pro konec pejímky konec_prejimky() plosina: Plosina d: dodaci_list 2. Výbr kooperujícího objektu SWI041 - Návrh 49

Diagram Dokumentace návrhu pro ECO interakce pro konec pejímky konec_prejimky() plosina: Plosina chybi(m: Dodaci_list) d: Dodaci_list 3. Výbr metody kooperujícího objektu SWI041 - Návrh 50

Diagram Dokumentace návrhu pro ECO interakce pro konec pejímky konec_prejimky() plosina: Plosina chybi = chybi(m: Dodaci_list): Dodaci_list d: Dodaci_list 4. Bude nco vracet? SWI041 - Návrh 51

Diagram Dokumentace návrhu pro ECO interakce pro konec pejímky konec_prejimky() (1.1) plosina: Plosina chybi = chybi(m: Dodaci_list): Dodaci_list d: Dodaci_list 5. Stanovení poadí SWI041 - Návrh 52

Popis pro chybi Operace chybi nepochází z analýzy, vznikla pi návrhu, ale je nutno ji rovnž popsat (aby pak programátor vdl, co má dlat) SWI041 - Návrh 53

Popis pro chybi Dokumentace návrhu pro ECO Operation: chybi Description: zjistí rozdíly v pejímce co chybí Reads: supplied m: dodaci_list, zadany_dodaci_list: dodaci_list Changes: new chybi: dodaci_list Sends: Assumes: Results: porovná zadaný dodací list m s dodacím listem zadany_dodaci_list vytvoí objekt chybi: dodací list, obsahující barely které chybí SWI041 - Návrh 54

Výsledek SWI041 - Návrh 55

Nebo jako scéná SWI041 - Návrh 56

Postup návrhu n ve Fusion Pro každou operaci funkního modelu nakresli diagram interakce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram interakce Pro každou tídu vytvo popis tídy Dopl návrh grafy ddinosti SWI041 - Návrh 57

Grafy viditelnosti Popisují nutné vazby mezi tídami, které souvisí s potebou viditelnosti (mám-li volat službu objektu jiné tídy, musím jej vidt) Definují potebnou referenní strukturu (objektové atributy tíd) SWI041 - Návrh 58

Notace graf viditelnosti Plosina Dodaci_list vidí (souástí reprezentace bude muset být reference na objekt) SWI041 - Návrh 59

Viditelnost v UML SWI041 - Návrh 60

Postup návrhu ve Fusion Pro každou operaci funkního modelu nakresli diagram interakce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram interakce Pro každou tídu vytvo popis tídy Dopl návrh grafy ddinosti SWI041 - Návrh 61

Popis tíd t d ve Fusion class <jméno> [ isa <jméno> ] // pro každý atribut [attribute][constant]<jméno>:[vazba]<typ> // pro každou metodu [method]<jméno>(<argumenty>)[:<typ>] endclass vazba = [ref (exclusive shared)[bound] argumenty = [<jméno>:<typ>](<jméno>:<typ>)* typ = [col]<jméno> SWI041 - Návrh 62

Popis tídy Plosina Dokumentace návrhu pro ECO class Plosina attribute sklady: ref shared col Sklad attribute Operator: share bound Monitor attribute zadany_dodaci_list: ref shared Dodaci_list method konec_prejimky() method prazdna_plosina() method cti_obsah(): col Barel endclass SWI041 - Návrh 63

Popis tídy Sklad Dokumentace návrhu pro ECO class Sklad isa Budova attribute kapacita:int attribute sousedi: exclusive bound col Sklad attribute barely: exclusive bound col Barel method je_místo?(b: Barel): Bool method cti_cislo(): int method pridej(b: Barel) method kolik?(t: TypChem): int endclass SWI041 - Návrh 64

SWI041 - Návrh 65

Postup návrhu n ve Fusion Pro každou operaci funkního modelu nakresli diagram interakce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram interakce Pro každou tídu vytvo popis tídy Dopl návrh grafy ddinosti SWI041 - Návrh 66

Dva zdroje ddid dinosti Spolené a speciální vlastnosti dat odhalené pi analýze Vlastnosti zddné z použitých knihoven SWI041 - Návrh 67

Implementace tídy Plošina Dokumentace implementace ECO class Plosina { protected: Set<Sklad &> sklady; // ref shared col Monitor *Operator; // share bound zadany_dodaci_list &dodaci_list; // ref shared public: Plosina(); ~Plosina(); void konec_prejimky(); void prazdna_plosina(); List<Barel> &cti_obsah(); endclass SWI041 - Návrh 68

Návrh funkní dekompozicí Návrh fukní dekompozicí z analytických popis funkcí vytvoíme pímou funkní dekompozicí dostaten podrobné popisy funkcí, generalizací navrhneme potebné komponenty SWI041 - Návrh 69

Diagramy datových tok Data Flow Diagrams (DFD) Hierarchická sada diagram, jejíž vrchol tvoí diagram kontextu a jejíž listy pedstavují elementární funkce, popsané již jiným zpsobem, než dekompozicí (pomocí tzv. minispecifikací popis operací, metod) Dokumentace ešení technikou divide at impera SWI041 - Návrh 70

Notace DFD (Yourdon( Yourdon) Aktér datový tok proces (funkce) pam SWI041 - Návrh 71

Kontext ECO Dokumentace analýzy pro ECO OPERATOR nelze dodat dodavka prejimka rozdily v prejimce dodavka = { typ chemikalie } ECO sklad prikaz pro skladnika SKLADNIK dotaz na stav stav je bezpecny? bezpecnost MANAZER SWI041 - Návrh 72

Postup návrhu n dle Yourdona (MSA - Modern Structured Analysis) Pro každou událost zave funkci Dopl vstupní a výstupní toky Pidej pamti pro spolupráci Dej vše dohromady a technikou zprostedka do kraj vytvo hierarchii DFD abstrakcí dojdi až ke kontextovému diagramu a dekompozicí k elementárním funkcím SWI041 - Návrh 73

Návrh na základz klad diagram datových tok (DFD) Z analytického popisu funkního modelu vytváíme strukturované návrhové modely - nap. Page-Jones: Practical Guide to Structured Systems Design. Co to jsou diagramy datových tok? Co to jsou diagramy struktury? Jak se diagramy datových tok pevedou na diagramy struktury? SWI041 - Návrh 74

Diagramy struktury Prvky: proces (funkce) vztah typu volá data jako argumenty data jako produkt volání SWI041 - Návrh 75

Pevod DFD na DS Transakní analýza (výbr transakcí v sad DFD) Transformaní analýza (výbr šéfa, pekreslení do DS) Pidání transakního monitoru (nástroj pro výbr transakce) SWI041 - Návrh 76

Návrh na základz klad datových struktur Návrh na základ datových struktur (nap. Jackson) z analytických popis datových struktur vytvoíme popisy program Vstupní a výstupní struktury Prvky: element sekvence selekce iterace SWI041 - Návrh 77

Píklad: vstup - výstup SOUBOR SESTAVA RADEK * ZNAK * * ZNAK LF SWI041 - Návrh 78

Odvozená struktura programu SOUBOR- SESTAVA RADEK * * ZNAK LF SWI041 - Návrh 79

Výstupní dokumenty návrhun Architektura systému (HW,SW) Popis implementace dat (logický datový model) Popis komponent (modul) Projektová dokumentace návrhu SWI041 - Návrh 80

The End