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



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

Úvodní studie (pokraov

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

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

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33

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

SWI041: Testování programových. Jak se to oví

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

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

Návrhové vzory OMO, LS 2014/2015

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Unifikovaný modelovací jazyk UML

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

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

Internetový mapový server Karlovarského kraje

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2008 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 24

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

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

Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2009 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 25

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

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

DUM. Databáze - úvod

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

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

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

Design Patterns. Tomáš Herceg Microsoft MVP (ASP.NET)

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

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

DBS Transformace konceptuálního schématu na

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.

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

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

Semestrální práce z DAS2 a WWW

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

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

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

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

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

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

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

Dodatek dokumentace KEO-Moderní kancelá verze 7.40

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

Problém, jehož různé instance je třeba často řešit Tyto instance lze vyjádřit větami v jednoduchém jazyce

Zbytky zákaznického materiálu

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

7.3 Diagramy tříd - základy

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

7.3 Diagramy tříd - základy

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

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

SWI041: (Design Patterns) JAK se to obvykle dlá

Databázové systémy trocha teorie

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.

Tvorba informačních systémů

Objektové programování

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

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

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í

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

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

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

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

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

1 Píklady popisu typických konstrukcí

UML. Unified Modeling Language. Součásti UML

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

Diagramy tříd - základy

10 Metody a metodologie strukturované analýzy

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

Role a integrace HR systém

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

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

Návrhové vzory. n OO jazyky - široká paleta technických prostředků. n Návrhový vzor. n rozhraní!! n volnější vazby, parametrizace

Základy objektové orientace I. Únor 2010

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

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

Relace x vztah (relationship)

Architektura softwaru Logická architekura a UML Package Diagramy David Toth

7.5 Diagram tříd pokročilé techniky

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

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

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

ORACLE ÍZENÍ VÝROBY ORACLE WORK IN PROCESS KLÍOVÉ FUNKCE ORACLE WORK IN PROCESS

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

10. Architektura klient/server a třívrstvá architektura

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

10. Architektura klient/server a třívrstvá architektura

IMPORT DAT Z TABULEK MICROSOFT EXCEL

Obsah. Zpracoval:

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

Konceptuální modelování a SQL

Instalace multiimportu

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

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

Transkript:

Kroky návrhun Návrh Z analytického konceptuálního modelu, kde je popsáno CO, musíme navrhnout JAK se to udlá 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 1 2 Základní technologická rozhodnutí ve fázi f návrhun architektura systému datové zdroje, pístupové mechanismy k nim distribuce programových modul, komunikaní mechanismy typy a formy výstup uživatelské rozhraní vývojové prostedí Vstupy pro návrhn Analytický model chování systému Mže se lišit dle použité metodiky, proto je zapotebí v úvodu dokumentace definovat použitou metodiku a zvolit odpovídající sadu model, která zahrnuje: Konceptuální datový model - entity (typy objekt, tídy), atributy, metody, vztahy, integritní omezení Konceptuální procesní model model jednání, scénáe, popisy funkcí (minispecifikace), diagramy aktivit, funkní hierarchie (DFD) Konceptuální dynamický model diagramy aktivit, stavy systému, události a reakce na n 3 4 Výstupní dokumenty návrhun Píklad návrhu architektury Architektura systému (HW,SW) Popis implementace dat (logický datový model) Popis komponent (modul) Projektová dokumentace návrhu 5 6

Jiný píklad: p Elektronická pokladna Elektronická pokladna (komponenty) 7 8 Pokladna (architektura) Návrh reprezentace dat Konceptuální datový model UML/OCL (ER-model) Návrh reprezentace dat Logický model reprezentace dat (nap. relaní model) Nap. SQL-99 9 10 Konceptuální datový model specifikuje Píklad: 1.verze dat.modelu Typy dat (které entity, tídy, ) Vztahy mezi nimi Další logická omezení (integrity constraints) Pozn: Model tíd popisuje i operace, ale ty se asto k modelu pipojí až v návrhu 11 12

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). Píklad Plat vedoucího musí být vyšší, než plat jeho podízených. OCL: context ZAMESTNANEC inv C1 : forall(zamestnanec e1,e2 e1 = e2.vedouci implies e1.plat > e2.plat) Ekvivalentní logická formule: (C1) e1,e2 ZAMESTNANEC : e1 = e2.vedouci e1.plat > e2.plat 13 14 Píklad: 2.verze dat.modelu 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. 15 16 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í Postup návrhun Úprava (normalizace) konceptuálního modelu Návrh reprezentace typ (entit) Návrh reprezentace vztah Návrh reprezentace 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 17 18

Úprava (normalizace) konceptuáln lního modelu Normalizovaný datový model 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 19 20 Návrh reprezentace Návrh reprezentace (pokr( pokr.) 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). 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). 21 22 Návrh reprezentace (pokr( pokr.) 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. 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 ). 23 24

Konceptuáln lní model Jména a domény Konceptuální model dat firmy Zamestnanec Zamestnanec prijmeni jmeno funkce plat odmena +vede 0..n +ma +je zarazen na 0..n 1 +je veden 0..1 Oddeleni nazev misto (from Business Object Model) prijmeni 0..1 : VARCHAR2 jmeno : VARCHAR2 funkce : VARCHAR2 plat : NUMBER odmena : NUMBER +vede 0..n +ma +je zarazen na 0..n 1 +je veden Oddeleni (from Business Object Model) nazev : VARCHAR2 misto : VARCHAR2 <<constraint>> -- Plat vedoucího nesmí být nižší, než plat podízených context Zamestnanec inv C1: forall (Zamestnanec e1,e2? e1.id = e2.vedouci implies e1.plat > e2.plat) <<constraint>> -- Plat vedoucího nesmí být nižší, než plat podízených context Zamestnanec inv C1: forall (Zamestnanec e1,e2 e1.id = e2.vedouci implies e1.plat > e2.plat) 25 26 Primární identifikace Vytvoíme tabulky Zamestnanec (from Business Object Model) ID : ROWID prijmeni : VARCHAR2 jmeno : VARCHAR2 funkce : VARCHAR2 plat : NUMBER odmena : NUMBER +ma +je zarazen na 0..n 1 Oddeleni (from Business Object Model) ID : ROWID nazev : VARCHAR2 misto : VARCHAR2 <<constraint>> -- Plat vedoucího nesmí být nižší, než plat podízených context Zamestnanci inv C1: forall (Zamestnanci e1,e2? e1.id = e2.vedouci implies e1.plat > e2.plat) +vede 0..n +ma 0..n +je zarazen na +vede 0..n +je veden 0..1 Zamestnanci (from Business Object Model) 1 Oddeleni (from Business Object Model) <<constraint>> -- Plat vedoucího nesmí být nižší, než plat podízených context Zamestnanec inv C1: forall (Zamestnanec e1,e2 implies e1.plat > e2.plat) ID : ROWID prijmeni : VARCHAR2 jmeno : VARCHAR2 funkce : VARCHAR2 plat : NUMBER odmena : NUMBER +je veden 0..1 ID : ROWID nazev : VARCHAR2 misto : VARCHAR2 27 28 Cizí klí pro vedoucího Cizí klí pro zamstnance <<constraint>> -- Plat vedoucího nesmí být nižší, než plat podízených context Zamestnanci inv C1: forall (Zamestnanci e1,e2 e1.id = e2.vedouci implies e1.plat > e2.plat) <<constraint>> -- Plat vedoucího nesmí být nižší, než plat podízených context Zamestnanci inv C1: forall (Zamestnanci e1,e2 e1.id = e2.vedouci implies e1.plat > e2.plat) +ma 0..n +je zarazen na 1 Zamestnanci (from Business Object Model) ID : ROWID prijmeni : VARCHAR2 jmeno : VARCHAR2 funkce : VARCHAR2 plat : NUMBER odmena : NUMBER <<FK>> vedouci : ROWID <<FK>> vedouci odkazuje na ID vedouciho (mže být NULL) Oddeleni (from Business Object Model) ID : ROWID nazev : VARCHAR2 misto : VARCHAR2 <<FK>> vedouci odkazuje na ID vedouciho (mže být NULL) <<FK>> oddeleni odkazuje na ID oddeleni (NOT NULL) Zamestnanec (from Business Object Model) <<PK>> ID : ROWID prijmeni : VARCHAR2 jmeno : VARCHAR2 funkce : VARCHAR2 plat : NUMBER odmena : NUMBER <<FK>> vedouci : ROWID <<FK>> oddeleni : ROWID Oddeleni (from Business Object Model) <<PK>> ID : ROWID nazev : VARCHAR2 misto : VARCHAR2 29 30

Návrh reprezentace integritních omezení Zkusíme vytvoit deklarativní omezení. Pokud by nefungovala, musíme navrhnout triggery. Píklad: forall context Zamestnanci inv C1: forall (Zamestnanci e1,e2 e1.id = e2.vedouci implies e1.plat > e2.plat) alter table Zamestnanci add constraint C1 check (not exists (select X from Zamestnanci e1, Zamestnanci e2 where e1.id = e2.vedouci and e2.plat >= e1.plat)); 31 32 Odvozené SQL I. (tabulka Oddeleni) create table Oddeleni ( ID ROWID primary key, nazev VARCHAR2(20), misto VARCHAR2(20) ); Odvozené SQL II. (table EMP) create table Zamestnanci ( ID ROWID primary key, prijmeni VARCHAR2(35), jmeno VARCHAR2(35), funkce VARCHAR2(10), plat NUMBER(9,2), odmena NUMBER(9,2), vedouci ROWID references EMP(id), oddeleni ROWID not null references Oddeleni(ID) ); 33 34 Odvozené SQL III. (ostatn( ostatní) alter table Zamestnanci add constraint C1 check (not exists (select X from Zamestnanci e1, Zamestnanci e2 where e1.id = e2.vedouci and e2.plat > e1.plat)); Ale problém nkde to nefunguje!!! Zkusíme trigger!!! Píklad (zjednodušeno) create or replace trigger C1 before insert or update of plat on Zamestnanci e1 declare cnt INTEGER; begin select count(*) into cnt from Zamestnanci e2 where e1.id = e2.vedouci and e2.plat >= e1.plat; if cnt = 0 then e1.plat := :new.plat end if; end; 35 36

Pokladna (analytický model) Pokladna (datový model po návrhu) n 37 38 Pokladna (permanentní data) Pokladna (permanentní data) 39 40 P.. ECO sklad Návrh komponent SI3 Karel Richta 41 42

Scéná pro pejímku v UML 43 44 Model životního cyklu (Fusion) Píklad: Návrh N dle 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 45 46 Postup dle Fusion Princip návrhu ve Fusion datový slovník objektový model funkní model - schémata operací model životního cyklu model interakce - scénáe, diagramy graf viditelnosti popis tíd graf ddinosti program 47 Objektový model Graf viditelnosti Datový slovník objektové atributy datové atributy metody Popis tíd class A isa S attribute a : int attribute b : shared B method f(par) endclass Model interakce objekt isa Graf ddinosti 48

Postup návrhu ve Fusion Pro každou operaci funkního modelu nakresli diagram kolaborace (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram kolaborace Pro každou tídu vytvo popis tídy Dopl návrh grafy ddinosti Postup návrhu dle Fusion Pro každou operaci funkního modelu nakresli diagram spolupráce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram spolupráce Pro každou tídu vytvo popis tídy Dopl návrh o ddinost 49 50 Diagram interakce pro konec pejímky Diagram interakce pro konec pejímky Dokumentace návrhu pro ECO Dokumentace návrhu pro ECO konecprejimky() plosina: Plosina konecprejimky() plosina: Plosina 1. Výbr zodpovdného objektu d: Dodaci_List 2. Výbr kooperujícího objektu 51 52 Diagram interakce pro konec pejímky Dokumentace návrhu pro ECO Diagram interakce pro konec pejímky Dokumentace návrhu pro ECO konecprejimky() konecprejimky() plosina: Plosina plosina: Plosina chybi(m: Dodaci_List) d: Dodaci_List chybi = chybi(m: Dodaci_List): Dodaci_List d: Dodaci_List 3. Výbr metody kooperujícího objektu 4. Bude nco vracet? 53 54

Diagram interakce pro konec pejímky Výsledek konecprejimky() Dokumentace návrhu pro ECO plosina: Plosina (1.1) chybi = chybi(m: Dodaci_List): Dodaci_list 5. Stanovení poadí volání d: Dodaci_List 55 56 Nebo jako scéná Pokladna (spolupráce pi p i inicializaci) 57 58 Pokladna (spolupráce pi p tení kódu) Pokladna (spolupráce pi p i uložen ení) 59 60

Popis pro chybí Operace chybí nepochází z analýzy, vznikla pi návrhu, ale je nutno ji rovnž popsat (aby pak programátor vdl, co má dlat) Popis pro chybí Operation: chybi Dokumentace návrhu pro ECO Description: zjistí, co chybí pi pejímce 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í 61 62 Postup návrhu ve Fusion Pro každou operaci funkního modelu nakresli diagram spolupráce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram spolupráce Pro každou tídu vytvo popis tídy Dopl návrh o ddinost 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) 63 64 Notace graf viditelnosti Viditelnost v UML Plosina Dodaci_list vidí (souástí reprezentace bude muset být reference na objekt) 65 66

Postup návrhu ve Fusion Pro každou operaci funkního modelu nakresli diagram spolupráce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram spolupráce Pro každou tídu vytvo popis tídy Dopl návrh o ddinost 67 68 Popis 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> Popis tídy Sklad Dokumentace návrhu pro ECO class Sklad isa Budova /* attribute sousedi: exclusive bound col Budova dedi od Budovy */ attribute kapacita:int 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 69 70 Popis tídy Plosina Dokumentace návrhu pro ECO class Plosina attribute sklady: ref shared col Sklad attribute Operator: share bound Monitor attribute dodaci_list: ref shared Dodaci_list method konec_prejimky() method prazdna_plosina() method cti_obsah(): col Barel endclass Implementace tídy Plošina Dokumentace implementace ECO class Plosina { protected: Set<Sklad &> sklady; // ref shared col Monitor *Operator; // share bound Dodaci_list &dodaci_list; // ref shared public: Plosina(); ~Plosina(); void konec_prejimky(); void prazdna_plosina(); List<Barel> &cti_obsah(); endclass 71 72

Postup návrhu ve Fusion Pro každou operaci funkního modelu nakresli diagram spolupráce (vetn metod vzniklých pi návrhu) Pro každou tídu datového modelu nakresli graf viditelnosti podle diagram spolupráce Pro každou tídu vytvo popis tídy Dopl návrh o ddinost Dva zdroje ddid dinosti Spolené a speciální vlastnosti dat odhalené pi analýze Vlastnosti zddné z použitých knihoven 73 74 Akceptaní test Co to je Akceptaní test? Akceptaní test pedstavuje podklad pro ovení funknosti ešení. Definice akceptaního testu musí proto obsahovat následující náležitosti: 1. podmínky pro akceptaní test 2. dokumentaci pro akceptaní test 3. definici akcí pro akceptaní test 75 76 1. Podmínky pro akceptaní test Popis prostedí, ve kterém bude akceptaní test probíhat. Není-li v akceptaním testu prostedí explicitn stanoveno, musí být možno akceptaní test vykonat v rámci standardního prostedí na katede poíta FEL. Popis všech vstupních dat, která budou v akceptaním testu využívána. Patí sem popis všech databází, konfiguraních soubor a jiných testovacích dat, která budou v akceptaním testu využívána. Píklad projektu ECO-sklad operátor 77 78

Podmínky pro akceptaní test Podmínky akceptaního testu pro ECO - Produkt ECO bude realizován jako formuláová aplikace pro MS-Windows, pracující s daty uloženými v databázi Oracle. Produkt bude vytvoen pomocí nástroj Oracle*Designer a Oracle*Developer - Forms. Akceptaní test produktu ECO mže proto probíhat kdekoli, kde je pístup z MS-Windows k serveru Oracle. Pro provedení akceptaního testu je nutno mít právo pihlásit se jako uživatel do MS-Windows. Dále je nutné mít pístup k njaké vhodné databázi Oracle jako uživatel, který mže instalovat data produktu. Podmínky pro akceptaní test (pokr( pokr.) Podmínky akceptaního testu pro ECO - Ped spuštním produktu ECO je nutno vytvoit v databázi objekty aplikace a uložit do nich testovací data. Doporuený postup je vytvoení uživatele ECOuser, pidlit mu právo na vytváení objekt a pod tímto uživatelem spustit skript (creco.sql), který vytvoí potebné objekty pro ECO a naplní je poáteními testovacími daty. Po absolvování akceptaního testu lze data z databáze odstranit zrušením uživatele ECOuser (s kaskádním odstranním jeho objekt). 79 80 2. Dokumentace akceptaního testu Dokumentace potebná pro vytvoení a instalaci produktu Uživatelská píruka Definice akceptaního testu Protokol o provedení akceptaního testu Dokumentace akceptaního testu Dokumentace akceptaního testu pro ECO Návod pro instalaci aplikace ECO (zahrnuje popis instalace datové základny a formulá aplikace) Uživatelská píruka produktu ECO Definice akceptaního testu ECO Protokol o provedení akceptaního testu 81 82 Dokumentace akceptaního testu (pokr( pokr.) Dokumentace akceptaního testu pro ECO - Instalace formulá pro ECO (NT) - Instalaní CD aplikace ECO obsahuje soubor setup.exe - Pomocí Start Nastavení Ovládací panely Pidat nebo ubrat programy nainstalujete formuláe aplikace ECO. V domovském adresái aplikace se vytvoí i soubory potebné pro instalaci datové základny, vetn testovacích dat a online uživatelské píruky. - Stejným postupem se formuláe aplikace ECO odinstalují. 83 Dokumentace akceptaního testu (pokr( pokr.) Dokumentace akceptaního testu pro ECO - Instalace testovacích dat pro ECO - Ped spuštním produktu ECO je nutno vytvoit v databázi objekty aplikace a uložit do nich testovací data. Doporuený postup je vytvoení uživatele ECOuser, pidlit mu právo na vytváení objekt a pod tímto uživatelem spustit skript (creco.sql), který vytvoí potebné objekty pro ECO a naplní je poáteními testovacími daty. Po absolvování akceptaního testu lze data z databáze odstranit zrušením uživatele ECOuser (s kaskádním odstranním jeho objekt). 84

3. Definice akceptaního testu Vychází se z definice aktér - zaíná se kontextem aplikace P.: ECO-sklad (model jednání) Definice akceptaního testu pro ECO 85 86 Pro akceptaci ECO je teba stanovit: Definice akceptaního testu pro ECO Jak se vyzkouší zaazení do role OPERÁTOR a MANAŽER Jak se oví, že každá role má k dispozici požadovanou sadu služeb Akce akceptaního testu Popis všech scéná, které budou tvoit akceptaní test. Sada scéná musí zaruit dostatené ovení funknosti ešení. Pro scénáe, pro které je možno stanovit požadovanou reakci systému, je souástí akceptaního testu i popis odpovídajících reakcí. Scénáe akceptaního testu musí zahrnovat i základní chybové situace a jejich ešení. Vychází se z životního cyklu systému. 87 88 Definice akcí pro akceptaní test Definice akcí akceptaního testu pro ECO Akce 1: Instalace a spuštní aplikace ECO možné reakce: OK nepovedlo se Akce 2: Zaazení do rolí OPERÁTOR a MANAŽER možné reakce: OK nepovedlo se povedlo se, ale nejsou k dispozici služby Životní cyklus ECO-skladu [ konec ] eká na pihlášení uživatele entry: Zobrazení LOGIN Selekce role Menu pro roli "OPERÁTOR" entry: Nabídka služeb pihlášení( jméno, heslo ) [ registrovaný OPERÁTOR ] [ pejímka ] zpracování pejímky [ dodávka ] Definice akceptaního testu pro ECO [ LOGOUT ] [ neregistrovaný uživatel ] / Chybná identifikace [ registrovaný MANAŽER ] zpracování dodávky Menu pro roli "MANAŽER" entry: nabídka služeb... podobn 89 90

Scénáe pro ECO (viz( model jednání) Operátor provádí pejímku Operátor vybavuje dodávku Definice akceptaního testu pro ECO Manažer se dotazuje na stav skladu Manažer zjišuje, zda je sklad v bezpeném stavu Pro akceptaci ECO je teba stanovit: Jak se vyzkouší chování pi akci dotaz na stav skladu Jak se vyzkouší chování pi zjišování, zda je sklad bezpený Jak se vyzkouší chování pi akci pejímka Jak se vyzkouší chování pi akci dodávka Jak se oví, že aplikace umí navázat akce 91 92 Definice akcí pro akceptaní test (pokr.) Definice akcí akceptaního testu pro ECO Akce 3: Dotaz na stav skladu možné reakce: OK povedlo se - ale chybný výsledek nepovedlo se Akce 4: Dotaz na bezpenost skladu Akce 5: Pejímka pro správnou dodávku Akce 6: Pejímka pro chybnou dodávku... Popis akce Identifikace akce Popis: textový popis akce Co pedpokládá Jaké reakce vyvolává (jaké zprávy posílá) Jaká data te, mní nebo vytváí Co zajišuje (zaruuje) 93 94 Popis pro Akci 3 Akce: 3 Popis: Dotaz na stav skladu Pedpokládá: Postup: spuštní funkce dotaz na stav skladu musí vytvoit sestavu zobrazující aktuální stav skladu Vstupní data pro akci 3: Definice akceptaního testu pro ECO ECO sklad musí být ve stavu S3 získaném importem souboru ECOS3.dmp píkazem imp ECOuser/heslo@instance file=ecos3.dmp 95 96

Definice akceptaního testu pro ECO Výstupní reakce na akci 3: Definice akceptaního testu pro ECO mku Scéná pro pejímku Pokud je sklad ve stavu S3 mla by akce 3 vytvoit následující sestavu: Stav ECO skladu 100% Obsah 50% 0% S1 S2 O3 Kapacita 80 50 0 A 40 0 0 B 15 30 0 C 0 44 0 Budova 97 98 Životní cyklus pejímky 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] Musí se vyzkoušet: Definice akceptaního testu pro ECO zda produkt nepovolí nesprávné poadí akcí pípad správné pejímky, Popis pro Akci 5 Akce: 5 Popis: Pejímka pro správnou dodávku Pedpokládá ECO-sklad v korektním stavu Postup: spuštní funkce pejímka - musí vyvolat formulá pro zadání informací z dodacího listu zadávají se údaje o barelech - generují se ID barel (viz Vstupní data 5)... Po ukonení musí být ECO-sklad ve správném stavu (oví se funkcí dotaz na stav ) a bezpený (oví se funkcí je bezpený? ) 99 100 Vstupní data pro akci 5: ECO sklad musí být ve stavu S5 získaném importem souboru ECOS5.dmp píkazem imp ECOuser/heslo@instance file=ecos5.dmp Dodací list: 5 barel typu A 4 barely typu B 2 barely typu C Postup vykládky: A, A, B, C, B, C, A, A, A, B, B Definice akceptaního testu pro ECO Definice akceptaního testu pro ECO Výstupní reakce na akci 5: Pokud je sklad ve stavu S5 mla by akce 5 vyvolat následující: Nebyly detekovány žádné rozdíly mezi dodacím listem a skutenou dodávkou Nebyly detekovány žádné barely, které nelze do skladu umístit Píkaz pro skladníka obsahuje všechny barely dodávky a nikdy neumisuje barely typu B a C do stejné budovy, celkový poet barel v budov nepesáhne kapacitu budovy. 101 102

Obsah dokumentace projektu Úvodní studie Analytická dokumentace Dokumentace návrhu Projektová dokumentace Kontrolní body k úvodní studii Kritérium Stránka projektu ešitelský tým Matice zodpovdnosti Deník projektu Plán práce týmu Deklarace zámru Katalog požadavk Seznam aktér Seznam událostí Kontextový diagram Model jednání Implementaní tým Plán realizace Požadavky na HW a SW Rozpoet projektu dekompozicí Rozpoet projektu výpotem Prezentace úvodní studie Poznámka Má projekt kvalitní stránku? Jsou zde uvedeni ešitelé a jejich e-maily? Je na stránkách projektu matice zodpovdnosti? Je na stránkách projektu projektový deník? Je na stránkách k dispozici plán práce týmu? Jak ešitelé zpracovali zadanou deklaraci zámru? Jak ešitelé zpracovali zadaný odborný lánek? Jsou uvedeni správn aktéi? Jsou uvedeny správné události? Je v úvodní studii uveden kontextový diagram? Je v úvodní studii model jednání? Je v úvodní studii seznam požadavk na implementaní tým? Je v úvodní studii definován plán implementace? Jsou v úvodní studii specifikovány požadavky na HW a SW? Je v úvodní studii uveden rozpoet projektu dekomposicí (MS Project)? Je v úvodní studii uveden rozpoet projektu výpotem (COCOMO)? Je k dispozici prezentace úvodní studie projektu? 103 104 Kontrolní body pro analýzu Kritérium Poznámka Datový model Obsahuje analytická studie konceptuální datový model? Popis datového modelu Obsahuje analytická studie vysvtlení konceptuálního datového modelu? Funkní model Obsahuje analytická studie konceptuální funkní model? Scénáe základních pípad použití Obsahuje analytická studie scénáe pro základní pípady použití? Dynamický model Obsahuje analytická studie popis dynamických vlastností? Uživatelská píruka Obsahuje analytická dokumentace uživatelskou píruku? Akceptaní test Obsahuje analytická dokumentace návrh akceptaního testu? Kontrolní body pro návrhn Kritérium Návrh architektury Reprezentace dat Poznámka Obsahuje dokumentace návrhu dekomposici systému na moduly? Je souástí návrhu popis reprezentace dat v logickém modelu? Uživatelský vzhled Obsahuje dokumentace systému definici uživatelského vzhledu? 105 106 Závrená hodnocení Kritérium Posudek jiného projektu Prezentace Celkový dojem Realizace Doporuení pro pijetí Poznámka Je k dispozici posudek jiného projektu? Je k dispozici prezentace projektu? Celkový dojem z projektu Je projekt dobe pipraven k realizaci? Závrené doporuení pro pijetí projektu Návrhové vzory (Design Patterns) JAK se to obvykle dlá 107 108

Co to je návrhový vzor? Christopher Alexander: Každý vzor popisuje asto se vyskytující problém a poté popisuje jádroešení tohoto problému tak, aby bylo možno toto ešení opakovan využívat, bez toho, že bychom stejnou vc dlali dvakrát". Pestože se tato definice týká návrhu budov, totéž platí pro návrhové vzory pi tvorb program. ešení je zde vyjádeno pomocí potebných objekt a zpsobu jejich komunikace. Obecnéásti návrhových vzor Jméno vzoru Popis problému Popisešení Dsledky použití 109 110 Jméno vzoru Termín, pes který se na vzor odvoláváme. Aby se v katalogu vzor dobe a intuitivn hledalo, je volba jména dležitá a obtížná. P.: Proxy (zástupce), Iterator (iterátor) Popis problému pro vzor Vyjaduje situaci, kde se použití vzoru hodí. Mže se stanovit píkladem, seznamem podmínek, které musí platit, apod. 111 112 P: Návrhový vzor Proxy Deklarace zámru: pokud potebujeme zástupce objektu, nebo vlastní objekt je nkde jinde, je tžko pístupný, má být chránn,... Motivaní píklad: editor dokumentu by ml umt pracovat s obrázky, ale zobrazení obrázku je nároné -asto postaí náhradník Popisešen ení pro vzor Popisuje elementy použité piešení a jejich vztahy. Nejedná se o konkrétní implementaci, nebo vzor je pouze šablonou pro ešení. 113 114

Struktura vzoru Proxy Dsledky použit ití vzoru Rozmanité dsledky, které s sebou použití vzoru pináší - nap. asové a prostorové nároky. Poslouží dobe i pi výbru alternativ. 115 116 Píklad použit ití vzoru Proxy 117 118 Píbuzné strukturáln lní vzory Proxy zastupuje objekt a poskytuje stejné rozhranní jako on Adapter mní rozhranní, které objekt poskytuje Dekorátor nco pidává Kategorie návrhových vzor Vzory pro vytváení a manipulaci s reprezentací informace (nap. Abstract Factory, Proxy) Vzory strukturální vyjadující strukturu implementace (nap. Adapter, Composite) Vzory pro chování (nap. Iterátor) 119 120

Vzor: : Builder Struktura vzoru Builder Deklarace zámru: oddlení konstrukce složitého objektu od jeho reprezentace pokud má být algoritmus pro vytváení složitého objektu nezávislý na vytváeníástí pokud lze objekt reprezentovat rznými zpsoby Motivaní píklad: editor dokumentu v RTF by ml umt pracovat s rznými reprezentacemi textu (ASCII, TeX, ) 121 122 Píklad použit ití vzoru Builder Kolaborace pi použit ití Builder 123 124 Vzor: Iterator (Cursor) Struktura pro Iterator Deklarace zámru: pro sekvenní pístup ke složkám složeného objektu bez ohledu na reprezentaci - pokud má být procházen seznam aniž se zabýváme jeho reprezentací (uniformní pístup pro traverzování agregovaných struktur) Motivaní píklad: sekvenní prchod seznamy 125 126

Píklad použit ití Iterator Vzor: : Interpret Deklarace zámru: máme zadánu gramatiku jazyka, jehož vty chceme interpretovat Motivaní píklad: hledání vzorku zadaného regulárním výrazem v etzci (známe gramatiku regulárního výrazu) 127 128 Struktura vzoru Interpret globální kontext Gramatika pro regulárn rní výraz expression ::= literal alternation sequence repetition '(' expression ')' alternation ::= expression ' ' expression sequence ::= expression '&' expression repetition ::= expression '*' literal ::= 'a' 'b' 'c'... { 'a' 'b' 'c'... }* 129 130 Interpret pro reg. výrazy Reprezentace vzorku: raining & (dogs cats) * 131 132

Vzor: : Abstract factory (Kit) Deklarace zámru: interface pro vytváení kolekcí objekt bez podrobné specifikace jejich struktury Motivaní píklad: Abstract factory (stavebnice( stavebnice) 133 134 Píklad použit ití Vzor: : Factory method (virtuální konstruktor) Deklarace zámru: interface pro vytváení a manipulaci s objekty, jejichž konkrétní reprezentaci neznáme 135 136 Struktura pro Factory method Píklad použit ití Factory method 137 138

Pehled vzor (dle GoF) Abstract Factory interface pro vytváení sady objekt, bez specifikace konkrétní tídy Adapter pevádí interface tídy na interface oekávaný klientem - umožuje spolupráci nekompatibilních tíd Bridge oddluje abstrakci od implementace, takže se mohou nezávisle mnit 139 140 Pehled vzor Builder oddluje konstrukci složeného objektu od jeho reprezentace, takže stejný proces mže vytváet rzné reprezentace Chain of Responsibility umožuje propojení zdroje požadavku s píjemcem tak, že dává více objektm šanci požadavek zpracovat. Zetzí píjemce a pedává požadavek mezi nimi. Pehled vzor Command zapouzduje požadavek jako objekt, a tím umožuje parametrizovat klienty s rznými požadavky, frontami, žurnály Composite sestavuje objekt do stromové struktury aby reprezentoval vztah celek-ást. Umožuje pracovat s celkem a jehoástmi uniformním zpsobem 141 142 Pehled vzor Decorator dynamicky pidává odpovdnost, pružná alternativa pro rozšiování fuknosti (alternativa k podtídám) Facade poskytuje unifikovaný interface pro sadu nástroj - podsystém. Poskytuje interfacel vyšší úrovn tak, že použití podsystém je jednodušší. Pehled vzor Factory Method definuje interface pro vytváení objektu, ale ponechává na podsystémech rozhodnutí, které tídy použijí (jakou instanci) Flyweight umožuje podporu efektivního sdílení velkých sad objekt Interpreter vychází z reprezentace gramatiky jazyka, která umožuje interpretaci vt jazyka 143 144

Pehled vzor Iterator poskytuje sekvenní pístup k sad element agregovaných objekt bez znalosti reprezentace sady Mediator definuje object, který zapouzduje zpsob jak spolu objekty komunikují - místo aby komunikovaly pímo Pehled vzor Memento bez porušení pravidla zapouzdení umožuje zapamatování stavu, do kterého se objekt mže pozdji vrátit Observer definuje vztah 1:N mezi objekty tak, že pokud jeden objekt zmní stav, všechny objekty na nm závislé jsou na to upozornny a automaticky poopraveny 145 146 Pehled vzor Prototype specifikuje sadu objekt potebných pro vytvoení instance prototypu a pro kopírování tohoto prototypu Proxy poskytuje zástupce pro ízení pístupu k objektu Singleton zajišuje,a by tída mla pouze jednu instanci a poskytuje k ní globální pístup Pehled vzor State umožuje objektu zmnu chování na základ zmny jeho stavu Strategy definuje rodinu algoritm, které jsou podobné a zamnitelné (umožuje zmnu algoritmu nezávisle na klientech) 147 148 Pehled vzor Template Method definuje kostru algoritmu operace, který pak komunikuje s podsystémy pi vlastním ešení - krokyešení se mohou mnit beze zmny kostry algoritmu Visitor reprezentuje operaci, která má být vykonána na elementech struktury objektu - návštvu struktury objektu Shrnutí Základní technologická rozhodnutí ve fázi f návrhu architektura systému datové zdroje, pístupové mechanismy k nim distribuce programových modul, komunikaní mechanismy typy a formy výstup uživatelské rozhraní vývojové prostedí 149 150

Co bude výstupem SI? Dokumentace projektu Dokumentace SI The End Úvodní studie poznamky Analytická dokumentace Dokumentace návrhu Projektová dokumentace 151 152