1 Slezská univerzita v Opavě, FPF Podklady k přednáškám Studijní obor: IVT Ročník: IV. Vyučující: dr. Dušan Kajzar Školní rok: 2020/2021 Obsah: 1. Stavový digram (STD)......................................................................................... 2 2. Diagram struktury programového systému (SCH) .............................................. 5 3. Rekapitulace prezentovaných modelů IS............................................................. 9 4. Historický přehled strukturovaných metod vývoje IS ....................................... 10 5. Yourdonova strukturovaná analýza ................................................................... 14 6. Závěr k tématu ................................................................................................... 16 Opakování - „Modely strukturovaného přístupu ...“ Předmět: Projektování IS Téma: Strukturovaný přístup k vývoji IS (část C) Datový model (Entity Relationship Diagram - ERD) Diagram datových toků (Data Flow Diagram - DFD) Kontextový diagram (KD) Stavový diagram (model řízení) (State Transition Diagram - STD) Diagram struktury programového systému (Structure Chart - SCH) Diagram funkční struktury systému (Function Structure Diagram - FSD) Statické modely IS Modely dynamiky systému Datový slovník (Data Dictionary) Výchozí modely Seznam událostí (SU) 2 1. Stavový digram (STD) Účel modelu:  zobrazit časově závislé chování systému (subsystému),  zachytit události a reakce na ně,  zachytit možné stavy systému a průchod těmito stavy. Zobrazuje situace typu:  stav 1 -- > událost (podmínka, akce) -- > stav 2. Hlavní komponenty:  uzly – znázorňují stavy,  orientované hrany – přechody mezi stavy,  skladiště událostí (Event Store). Čím je určen stav systému?  parametry (tzv. stavové veličiny),  rozmezí hodnot parametrů (charakterizuje daný stav). Událost:  jev, který vyvolává přechod mezi stavy,  např. "uplynul stanovený čas", "přišla očekávaná data", ...  srovnej např. F,T,C-události v modelu SU. Grafické znaky - viz obrázek: Uskladněno Expedováno, fakturuj Výrobek hotov, expeduj Příchod materiálu 1 Příjem materiálu na sklad Dodavatel 2 Materiál pro výrobu je uskladněn 4 Probíhá výroba 5 Probíhá expedice 6 Probíhá fakturace 3 Výdej materiálu do výroby Požadavek na vydání do výroby 3 Postup tvorby stavového diagramu: 1) identifikujeme všechny stavy systému, které budeme rozlišovat, 2) identifikujeme všechny možné přechody mezi stavy a jejich příčiny, 3) určíme stav počáteční a stav (stavy) koncový, 4) ověření úplnosti modelu o vyjdeme z počátečního stavu, zkoumáme přípustné změny stavu, přechody mezi stavy. Řešíme otázky: Hierarchie stavových diagramů:  od nejhrubší rozlišovací úrovně -> potřebné detaily,  dekompozice (rozklad) stavu na podstavy,  stavy sekvenční (následují po sobě) a paralelní (souběžné). Využití STD:  modelování systémů (subsystémů) s real-time charakteristikami,  rozpracování logiky řídicího procesu v DFD,  modelování stavů standardních a chybových (!),  modelování stavů zpracování dat dle provozních technologií. Je množina stavů úplná? Nechybí ve stavovém diagramu některý přechod mezi stavy? Jsou všechny stavy dosažitelné? Lze se dostat do každého stavu? Odpovídají změny stavů všem možným událostem (podmínkám)? Nebyly brány v úvahu jen běžné podmínky? Lze všechny stavy (kromě koncových stavů) opustit? Je daný koncový stav skutečně koncový? Má systém v takovém stavu opravdu setrvat? Nejde o analytickou chybu? 4 Příklad – možné stavy provozních technologií:  např. stavy procesu „zpracování poštovních poukázek B“: o stav č. 1 – příjem předpisů plateb od hromadných podavatelů, o stav č. 2 – zpracování předpisů plateb, tisk a distribuce Pk B, o stav č. 3 – load dat podaných Pk do centrální databáze a jejich opravy, o stav č. 4 – load dat vyplacených Pk z pošt a jejich opravy, o stav č. 5 – párování podaných Pk na vyplacené Pk, o stav č. 6 – řešení nevyplacených Pk a vad, o stav č. 7 – vyúčtování s podavateli Pk, o stav č. 8 – řešení reklamací a druhopisů, o ... ,  obdobně lze rozlišit: o stavy účetního systému během účetního období apod. Z procesního a technického pohledu je důležité:  ošetřit také chybové stavy systému,  ošetřit stavy nouzového provozu systému (např. na náhradním uzlu v clusteru, v záložní lokalitě apod.). Vztah mezi STD a ostatními modely:  STD jako návazný diagram na Seznam událostí (SU),  STD jako rozpracování řídicího procesu DFD,  souvislost s Data Dictionary (slovní popis prvků). Poznámka – souvislost s modely OOP:  v OOP máme tzv. State diagram (zobrazení stavů objektů, subsystémů),  v OOP pro modelování real-time systémů – navíc Timing diagram. 5 2. Diagram struktury programového systému (SCH) Kde se nyní nacházíme?  na implementační úrovni zobrazení vyvíjeného IS,  v etapě detailního návrhu systému. V této etapě máme již k dispozici:  KD (SU) - model začlenění systému do okolní infrastruktury IS/IT,  DFD včetně detailů - elementární procesy a jejich minispecifikace,  ERD - model fyzických datových struktur (strukturu dat) systému,  případně STD. Co je v této etapě tvorby IS je nutné?  navrhnout podrobnou fyzickou (HW a SW) architekturu systému,  přiřadit jednotlivé části (subsystémy) vyvíjeného IS hardwarovým a softwarovým komponentám,  navrhnout vhodnou fyzickou reprezentaci dat,  navrhnout (rekapitulovat) uživatelské rozhraní systému,  navrhnout technicky zajištění požadavků na bezpečnost a dostupnost dat,  zpracovat časový a věcný plán pro etapu implementace,  zpracovat plán testování systému,  zpracovat plán školení uživatelů,  zpracovat plán procesu zavádění IS do provozu. 6 Účel modelu SCH (Structure Chart):  znázornění hierarchie SW modulů,  vazeb mezi SW moduly. Tvorba struktury programového systému zahrnuje:  definovat pokrytí funkcí systému SW komponentami (programovými moduly),  identifikovat vhodný rozsah jednotlivých SW modulů,  identifikovat závislosti mezi moduly a rozhraní jednotlivých SW modulů,  vyčlenit SW sub-moduly, používané (volané) na více místech systému,  integrovat SW moduly v jeden celek – výsledný IS. Spolupráce rolí při tvorbě SCH:  analytik a programátor. Řešení otázek:  optimální velikosti SW modulů,  globálních proměnných a funkcí,  možnosti opakovaného využití SW modulů (procedury). SW SW SW SW 7 Grafické znaky - viz obrázek:  SW moduly, volání modulů, předávané hodnoty parametrů, větvení, cyklická volání, ... Obrázek: Ukázka diagramu struktury programového systému - SCH Poznámka:  může vzniknout nejen stromová struktura, nýbrž také síť SW modulů. Techniky tvorby SCH:  modulární návrh na základě funkční dekompozice o vycházíme z FSD,  modulární návrh na základě analýzy datových toků o vycházíme z DFD, o technika transformační analýzy, o technika transakční analýzy, atd. .... 1. Zpracování poukázek 1.1 Poukázky podané 1.2 Poukázky vyplacené 1.3 Párování 1.4 Vyúčtování atd. .... 1.1.1 Příjem dat 1.1.2 Opravy 1.2.1 Příjem dat 1.2.2 Opravy 1.3.1 Indikace 1.4.1 Tisky FSD SCH DFD SCH 8  modulární návrh na základě analýzy datových struktur o vycházíme z ERD, o uvažujeme skupiny procesů, které pracují s „příbuznými“ typy dat, o tyto skupiny procesů sdružujeme do SW modulů. Souvislost s jinými modely:  viz výše odstavec Techniky tvorby SCH,  kontrola konzistence: DFD (FSD, ERD) vs. SCH. Poznámka – souvislost s modely OOP:  Diagram komponent (tj. SW komponent),  Diagram nasazení (Deployment diagram). transformační analýza sledování logiky sekvenčních procesů: In -> T -> Out transakční analýza sledování logiky větvení a předávání řízení Řídicí modul ..... ERD SCH ERD Moduly vstupů Moduly výstupů Řídicí modul Transformační moduly 9 3. Rekapitulace prezentovaných modelů IS Seznámili jsme se:  s hlavními myšlenkami (principy) strukturované analýzy a návrhu IS,  s modely používanými k zobrazení IS. Poznámka:  Nechybí nám (z hlediska současné praxe) nějaký model?  Pokud myslíte, že chybí, pak proč asi chybí?  A jak si bez onoho „chybějícího modelu“ v praxi pomůžete? Co je nutné při modelování IS pochopit?  účel použitých modelů o co pomocí daného modelu mohu (chci) zobrazit, o k jakému účelu bude vytvářený model IS sloužit, o komu (jakému čtenáři) je výsledek mé práce určen, ...  úplnost modelu o zda v něm něco důležitého nechybí, o zejména na koncepční a technologické úrovni zobrazení,  zvolit vhodnou (dostatečnou) úroveň podrobnosti zobrazení (detailů), o v závislosti na účelu modelu a na cílovém čtenáři, o podrobnost (úplnost) vs. srozumitelnost a vypovídací schopnost, Datový model (Entity Relationship Diagram - ERD) Diagram datových toků (Data Flow Diagram - DFD) Kontextový diagram (KD) Stavový diagram (model řízení) (State Transition Diagram - STD) Diagram struktury programového systému (Structure Chart - SCH) Diagram funkční struktury systému (Function Structure Diagram - FSD) Statické modely IS Modely dynamiky systému Datový slovník (Data Dictionary) Výchozí modely Seznam událostí (SU) 10 o poznat „informační potřebu“ cílového čtenáře (!!),  dobře zkontrolovat konzistenci modelů o bezespornost různých modelů, o bezespornost rozlišovacích úrovní téhož typu modelu.  celkově zhodnotit návrh (model) IS o Odpovídá návrh IS specifikovaným požadavkům? o Bude navržený systém skutečně řešit požadované úkoly? o Bude splňovat požadavky zákazníka (uživatele)? Bude kvalitně uspokojovat jeho potřeby? 4. Historický přehled strukturovaných metod vývoje IS a) Metoda HIPO (Hierarchy Input-Process-Output) Obrázek: Hierarchie SW modulů Obrázek: IPO diagram pro dílčí proces 2.1 Autor: J.Novák Program: Zpracování PkB Datum: 20.10.2000 Diagram: 2.1 Modul: Příjem PkB Strana: 5 z 15 Input Soubor PkB podavatele Číselník podavatelů Output Načtená data PkB Soubor chyb Proces Čtení souboru PkB Uložení do pracovní tabulky Kontroly podacích znaků .... .... Čtení kontrolního součtu Kč .... Uložení do tabulky přijatých Pk 0 1 2 4 1.1 1.2 2.1 4.1 4.34.2 3 11 b) Metoda DeMarco Obrázek: Schéma metody DeMarco Výsledek: strukturovaná specifikace systému + plán a rozpočet + fyzické požadavky na systém Analýza stávajícího systému Odvozený logický ekvivalent Modelování nového systému Stanovení uživatelského rozhraní Fyzický DFD stávajícího systému Logický DFD Nový logický DFD Nový fyzický DFD Kvalifikace možností (studie nákladů + výběr alternativ řešení) Kompletace specifikace 12 c) Metoda Gane/Sarson Obrázek: Schéma metody Gane/Sarson Systémový DFD Hrubý ERD Analýza entit a vztahů mezi nimi Detailní ERD Normalizace datového modelu Úprava DFD podle ERD Dekompozice logického modelu, procesů a dat Specifikace detailů procesních jednotek 13 d) Metoda Warnier/Orr Obrázek: Schéma metody Warnier/Orr Obrázek: Struktura informací o vyvíjeném IS Datový model (databáze) - procesy výběru dat z databáze - transformace dat na log. výstupy - transformace dat na fyz. výstupy - fyzické výstupy - fyzické vstupy - transformace na logické vstupy - editace vstupů - procesy datových změn Odvození logických výstupů Odvození logických dat Odvození procesů logického výběru dat Odvození logického datového modelu Odvození změnových a editačních transakcí Odvození vstupních transakcí Struktura fyzických vstupů Struktura fyzických výstupů 14 5. Yourdonova strukturovaná analýza Doporučený postup: Esenciální model:  esence = podstata,  esenciální model = model, zobrazující podstatu systému. Počáteční modely IS:  seznam událostí,  kontextový diagram. Otázka řešená v praxi:  Na základě jakých faktorů je vhodné provádět dekompozici DFD?  Yourdonova metoda doporučuje: o proveďte dekompozici DFD pomocí techniky analýzy událostí, o tj. použijte seznam událostí (SU) jako inspiraci k dekompozici DFD. Technika analýzy událostí:  1) vytvoř seznam událostí (SU),  2) pro každou událost ze SU vytvoř proces v DFD, který událost zpracuje,  3) procesy pojmenuj podle odezvy na událost,  4) k procesům urči vstupní datové toky, výstupní datové toky a úložiště dat,  ... 1. krok - tvorba tzv. esenciálního modelu 2. krok - sestavení modelu uživatelského - implementačního 3. krok - přechod do fáze SW návrhu systému SUKD Esenciální model KD SU DFD FSD ERD DD (STD) Model prostředí systému Model struktury a chování systému 15  5) výsledný DFD porovnej s KD (předpoklad – máme KD),  6) ověř bezespornost a úplnost modelu. Vyvažování DFD (level balancing):  cíl - získat DFD na různých rozlišovacích úrovních,  vyvažování DFD směrem nahoru,  vyvažování DFD směrem dolů. Předpoklad techniky analýzy SU:  předpokládáme existenci SU (vycházíme z SU),  Ale co když nemáme SU vytvořený?  doporučení - vytvoř SU pomocí KD nebo hrubého ERD. První postup tvorby SU - pomocí KD:  vytvoříme KD (terminátory + datové toky s okolím),  zkoumáme terminátory a toky dat z okolí,  odhalujeme události (toky dat ze strany externích entit), na které systém musí reagovat,  => získáváme SU. Druhý postup tvorby SU - pomocí ERD:  vytvoříme prvotní „hrubý“ datový model (ERD),  pro každou množinu entit hledáme vnější událost, která vede k jejímu použití („Co hýbe s daty?“),  => takto sestavíme SU,  => na základě SU dále sestavíme KD. Výsledek tvorby tzv. esenciálního modelu:  kontextový diagram (KD),  seznam událostí (SU),  model datových toků (DFD),  model datových struktur (ERD), DFD KD SU ERD SU KD Esenciální model IS 16  slovní popis v datovém slovníku (DD),  případně stavový diagram (STD). Kontroly konzistence modelů:  konzistence mezi různými modely,  konzistence mezi rozlišovacími úrovněmi téhož modelu,  DFD a datový slovník,  DFD a minispecifikace (Process Specification),  DFD a ERD,  DFD a STD. Uživatelský implementační model:  návrh uživatelského rozhraní (pro vstupy a výstupy dat),  automatizované a neautomatizované činnosti, integrace těchto činností,  specifikace hodnot a množství dat (frekvence přístupů, přístupové klíče, ....),  řešení bezpečnosti a spolehlivosti systému,  .... Přechod do fáze SW návrhu systému:  návrh struktury programového systému,  viz téma Structure Chart (SCH). 6. Závěr k tématu Seznámili jsme se:  s hlavními myšlenkami (principy) strukturované analýzy a návrhu IS,  s modely používanými k zobrazení IS,  s příklady historicky významných strukturovaných metod vývoje IS,  se základními myšlenkami Yourdonovy strukturované analýzy. Uživatelský implementační model IS Detailní SW návrh systému Esenciální model IS 17 Rekapitulace pohledů na vyvíjen IS: Vyvíjený IS Pohled na okolí IS Procesy (funkce) Data systému Stavy v čase SW a HW architektura Business procesy Ekonomický pohled Organizace práce Sociální (psycholog.) prvky Potřeby zákazníka (uživatele) Požadavky a jejich specifikace Programování Testování Zavedení do provozu Specifikace požadavků Analýza a návrh IS Další etapy vývoje IS