Strukturovaná analýza a návrh
description
Transcript of Strukturovaná analýza a návrh
![Page 1: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/1.jpg)
Strukturovaná analýza a návrhMETODOLOGIE PROJEKTOVÁNÍ
Roman DanelVŠB–TU Ostrava
Hornicko-geologická fakultaInstitut ekonomiky a systémů řízení
![Page 2: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/2.jpg)
Historie
• Tom DeMarco, 1979– „Strukturovaná analýza a specifikace procesu“
• Doporučení:– rozdělení systému na subsystémy;– používat grafické znázornění (grafické modely)
systému;– před implementací vytvořit logický model systému
![Page 3: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/3.jpg)
Filozofie SA
• Produkty analýzy musí být udržovatelné• Velké problémy rozděleny na menší• Použití grafického vyjádření• Odlišení logické a fyzické úrovně• Logický model má za cíl seznámení uživatele
se systémem před jeho vytvořením a implementací
![Page 4: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/4.jpg)
Charakteristika
• Člení projekt na malé dobře definované aktivity
• Určuje posloupnost těchto aktivit a vzájemnou interakci
• Snaha vytvořit specifikaci, které rozumí uživatelé i návrháři
![Page 5: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/5.jpg)
Přínosy
• Formuluje obecně srozumitelné požadavky na systém
• Zlepšení plánování a řízení• Zvýšení kvality systému – ještě před vlastní
realizací je možná průběžná kontrola• Vtažení do vývoje systému i méně zkušených
pracovníků (díky grafické prezentaci přehlednější)
![Page 6: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/6.jpg)
Nástroje - DeMarco
• 1979• DFD (Data Flow Diagram) – důraz na
modelování pomocí datových toků• Datový slovník – slouží k popisu prvků• Strukturovaná angličtina• Rozhodovací tabulky nebo stromy
![Page 7: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/7.jpg)
De Marco
• rozdělení systému na subsystémy;• používat grafické znázornění (grafické modely)
systému;• před implementací vytvořit logický model
systému.
![Page 8: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/8.jpg)
Gane - Sarson
• „logické modelování“• Práce „Strukturální analýza systému“• Vychází z DeMarca – DFD – výchozí model IS• Doplněn o datové modelování pomocí ERD
![Page 9: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/9.jpg)
Gane - Sarson
Kroky pro vytvoření modelu:1. Systémový DFD2. Hrubý ERD3. Analýza entit a vztahů mezi nimi4. Detailní ERD5. Normalizace datového modelu6. Úprava DFD podle ERD
![Page 10: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/10.jpg)
![Page 11: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/11.jpg)
Gane - Sarson
• Co je příčinou pohybu dat?• Kdy k pohybu dat dojde?• Jak velká oblast systému se podílí na
zpracování vstupu a na vytvoření výstupu?• Top-down
![Page 12: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/12.jpg)
Pohledová analýza
• Metodika CORE (Controled Requirements Expression), Mullery 1979
• Je vhodná pro analýzu systémů, u nichž není na první pohled zřejmá hierarchická struktura nebo které hierarchickou strukturu nemají, a tudíž zde není možné efektivně použít dekompozici shora dolů
![Page 13: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/13.jpg)
CORE
Analýza zdola nahoru:• identifikace pozorovacích bodů• Sloučení pohledů do skupin• Vytvoření struktury pohledů
![Page 14: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/14.jpg)
Datově orientované přístupy
• Warnierr – Orr - 1972 - odvození logického datového modelu na základě analýzy požadovaných výstupů systému; Warnier-Orr diagramy
• Metodologie DSSD (Data Structured Systems Development) – datově orientovaný přístup– struktura programu má odpovídat hierarchické
struktuře datového modelu
![Page 15: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/15.jpg)
Warnierr/Orr diagram
![Page 16: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/16.jpg)
Yourdonova strukturovaná analýza
• Edward Yourdon, 1989 – myšlenka datového a funkčního modelování jako
jeden celek• DFD a ERD doplnil o STD• STD (State Diagram) – nástroj pro vyjádření
logiky řídicího procesu
![Page 17: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/17.jpg)
Yourdonova strukturovaná analýza
Esenciální model – vyjadřuje podstatu systému:– Model okolí (Environmental Model)– Model chování (Behavioral Model)– Model řízení
![Page 18: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/18.jpg)
Yourdonova strukturovaná analýza
MODEL OKOLÍ• Dokument o účelu• Kontextový diagram• Seznam událostí
![Page 19: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/19.jpg)
Yourdonova strukturovaná analýza
MODEL CHOVÁNÍ• Popisuje chování uvnitř systému• DFD, ERD, DD• Hierarchická sada DFD, vyvažování v obou
směrech (zdola nahora, zhora dolů)• STD, minispecifikace• Není určen zákazníkovi
![Page 20: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/20.jpg)
ERD
![Page 21: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/21.jpg)
ERD
• Jaké data jsou v systému a jaký je mezi nimi vztah
• Reálný svět je reprezentován jako množina entit a jejich vztahů
• Neukazuje funkce ani datové toky
![Page 23: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/23.jpg)
![Page 24: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/24.jpg)
ERD
• Entita• Atribut• Relace• Kardinalita• Parcialita
![Page 25: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/25.jpg)
DFD
![Page 26: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/26.jpg)
DFD
• Hierarchie diagramů– Kontextový diagram– První až třetí úrovně
• DFD je tvořen na základě interview, pozorování, dotazníků….
• Jak informace prochází systémem• Nemá časový aspekt• Analytický nástroj, modelování systému• Dokumentace!!
![Page 27: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/27.jpg)
DFD – notace Yourdon/De Marco
Data store(datovéúložiště)
Dodavatel
Požadavek
Zpracováníobjednávky
Objednávky Místo pro ukládání dat (databáze).
terminátor
tokinformací
proces (funkce)
Představuje subjekt v okolí systému (z KD).
Představuje tok dat informací mezi terminátory, procesy a datastory.
Představuje funkci (proces) systému, který zpracovává informace.
![Page 28: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/28.jpg)
DFD
Kontextový diagram – popisuje chování systému vůči vnějšku
• Důležitý - odpovídá tomu, co od systému chtějí uživatelé
• Události, které mohou nastat mezi systémem a okolím
![Page 29: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/29.jpg)
DFD
Událost: F (Flow oriented) : datová událost, odvozená od
vstupu do systému T (Temporary) : časová událost, odvozená od
časového okamžiku. Vyvolá činnost, která se má např. konat pravidelně.
C (Control) : řídicí událost, odvozená od povelu, např. stisk tlačítka na formuláři (click).
![Page 30: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/30.jpg)
DFD
• Zachycuje tok informací mezi jednotlivými procesy
• DFD jsou vhodné pro dávkově orientované procesy; interaktivní „okenní“ aplikace se jimi hůře popisují (zde je vhodnější objektový přístup)
• Hierarchická struktura, od kontextového diagramu na nejvyšší úrovni
![Page 31: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/31.jpg)
DFD
• Každá funkce, datastor a tok musí mít svůj název• Nic se nemůže ztratit a nic nemůže přibýt (vstup
a výstup z funkce do diagramů na nižší úrovni)• Jeden datastor odpovídá víceméně jedné nebo
více entitám• Funkce na nejvyšší úrovni mohou odpovídat
formulářům aplikace
![Page 32: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/32.jpg)
Example – DFD (Data Flow Diagram)
![Page 33: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/33.jpg)
Příklad DDF
![Page 34: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/34.jpg)
![Page 35: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/35.jpg)
Nevýhody DFD
• Pro velké systémy nepřehledné a náročné časově na vytvoření
![Page 36: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/36.jpg)
Příklad DFD – odbyt OKD
Důlní závod
Úpravna
OŘKJ
Expedice(výpravna)
řízeníodbytu
obchodníorganizace
OKD doprava
odštěpný důlní závod externí organizace
veřejnýpřepravce
![Page 37: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/37.jpg)
vozy
přepravce
program nakládky
obchodníspolečnost
a důlnípodnik
seznamloženýchodběratelů přiřazení
váženík vozu průměrování
a přiřazeník vozu
tvorbaprogramunakládky
vážení
objednávkavozů
přistavenívozů
operativníměření
jakostníchparametrů
zásoby
proces
Data store
![Page 38: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/38.jpg)
Nejčastější chyby s DFD
![Page 39: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/39.jpg)
Nejčastější chyby s DFD
![Page 40: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/40.jpg)
STD
![Page 41: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/41.jpg)
STD
• State Diagram• Užití pro Real-time systémy, embedded atd.• Systém je většinou ve stavu:
– Čeká na událost– Čeká až skončí proces
• Zaznamenává stavy jednotlivých procesů, přechody mezi nimi a události, které způsobí přechod z jednoho stavu do druhého
![Page 42: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/42.jpg)
State Diagram (STD) - notace
Zaplacenáobjednávka
Schválení/odeslání
Počáteční bod diagramu – je vždy pouze jeden!
Koncový bod diagramu – může jich být více
Stav – je vždy statický, ve stavu se z hlediska diagramu stavů nic neděje
Přechod ze stavu do stavu.Zapisujeme si podmínku, za které k přechodu ze stavu do stavu dojde a akci, která se při přechodu uskuteční!
![Page 43: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/43.jpg)
Příklad STD
43
START
Nová objednávka
Odeslanáobjednávka
Fakturovanáobjednávka
Zaplacenáobjednávka
KONEC KONEC
Přišla faktura
Zamítnutáobjednávka
Zamítnutí
Schválení/zaplacení Schválení/odeslání
![Page 44: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/44.jpg)
Example: STD diagram
![Page 45: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/45.jpg)
Postup tvorby STD
• Provedeme identifikaci všech možných stavů a zakreslíme je do diagramu.
• Jejich vzájemné propojení označíme pomocí orientovaných hran mezi jednotlivými stavy.
• Nejprve z výchozího stavu hledáme všechny přípustné změny, ty pak zaznamenáme jako nové stavy.
• Opakujeme vyhledání možných přechodů a navazujících stavů.
![Page 46: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/46.jpg)
Kontrola STD
• Byly definovány všechny stavy?• Jsou všechny stavy dosažitelné?• Je možné všechny stavy opustit (mimo
koncových)?• Reaguje systém v daném stavu na všechny
možné přípustné podmínky?• Jsou akce adekvátní danému stavu?
![Page 47: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/47.jpg)
STD
• Stav systému jako celku nemusí být vždy potřebný
• Důležitý z pohledu pochopení logiky aplikace• Uživatel nesdělí algoritmus, ale popisuje
stavy• Z STD lze odvodit algoritmus zpracování
![Page 48: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/48.jpg)
STD
• Stavy jsou statické, dynamické jsou přechody• Vždy se zapisuje podmínka přechodu• Důležité datastory mají své STD• STD může být hierarchický• Lze použít i samostatně, bez DFD
![Page 49: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/49.jpg)
Data Dictionary
• Datový slovník – seznam všech položek v db• Cílem je minimalizovat redundanci
![Page 50: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/50.jpg)
Flow Chart
• Flow chart - popisuje algoritmus• Vhodný pro popis funkcí• Přehledný
Pro strukturované programování jsou vhodnější strukturogramy.
![Page 51: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/51.jpg)
Flow Chart
51
Začátek
Konec
Akce 1
rozhodnutí
ANO
NE
podprogram (parametry)
Vstup (data)
![Page 52: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/52.jpg)
SSADM
• Structured systems analysis and design method (SSADM)– Logical data modelling– data flow modelling– Entity event modelling
![Page 53: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/53.jpg)
SSADM
• Feasibility study• Invetigation of the current environemnt• Business systém options• Requirements specification• Technical systém options• Logical design• Physical design
![Page 54: Strukturovaná analýza a návrh](https://reader035.fdocument.pub/reader035/viewer/2022081420/5681655e550346895dd7e0fa/html5/thumbnails/54.jpg)
Shrnutí
• Strukturovaná analýza: ERD+DFD+STD+DD• Flowchart• Yourdon - metodologie