Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Strukturované metody Jan Smolík
2
Historie strukturovaných metodik
Strukturované programování Programování ve velkém Funkční přístup Yourdan structured method Structured design (Larry Constantine) Datové modelování Relační algebra Data structure diagram Chenovy diagramy
3
Strukturované programování
S rozsahem se programy opět stávají nezvladatelné Edsger Wybe Dijkstra: „Go To Statement Considered Harmful“ (1968)
4
Kde jsme to jenom viděli?
Sekvence, selekce, iterace Vaření vejce Nemám Mám P1 * Vařím
5
Teorie struktorovaného programování
Tři možnosti skládání programů: Sekvence Selekce Iterace Není úplnou novinkou, vychází už z teorie Turingova stroje
6
Jacksonovo strukturované programování
Můžu popsat nejen program ale i jeho data Obrázek: Wikipedia
7
Srovnání vstupních a výstupních dat
8
Výsledná struktura programu
9
Jacksonova metoda Problém nekorespondujících struktur
Řešení: rozdělení do podprogramů Podle některých autorů je metoda závislá na datech
10
Strukturované progranovací jazyky
ALGOL (1960) Pascal (1970) PL/I Ada Vznikají postupně 60. – 70. léta Pozn.: první objektový jazyk: Simula 67, Smalltalk (70. léta) – publikováno 1980
11
Programování ve velkém
Frank DeRemer, Hans Kron Vidí rozdíl mezi programováním v malém a programováním ve velkém Jazyky pro malé programování – určeny pro tvorbu modulů Snaží se budovat jazyk pro programování ve velkém – module interconnection language
12
Požadavky MIL Seshora dolů Po jedné úrovni najendou Zezdola nahoru
Horizontální komunikace Finální kompozice do jednoho celku
13
Příklad MIL75
14
Funkční přístup Kniha Structured Design
Ed Yourdon, Larry Constantine, 1979 1. skutečná učebnice designu Práce s černými skříňkami „Kdykoliv potřebujete funkci, navrhněte ji a užívejte ji jako černou skříňku, bez ohledu na to jak ji budete realizovat Přístup shora dolů“ Foto: computer-museum.org
15
Strukturovaný design „Cena vývoje systému je cena odhalování chyb
Cena odhalování chyb je cenou chyb programátora Počet chyb roste nelineárně s komplexitou problému Komplexita problému může být snížena rozdělením na malé části Ve výsledku rozdělení na malé části vyvolá větší komplexitu, kvůli závislosti modulů“ Volná citace, Yourdon: Structured Design
16
Strukturovaný design Snaha o vysokou kohesivitu (cohesion) a nízkou spřaženost (coupling) Odklon od optimalizace kódu za každou cenu Neoptimalizujte Když už musíte optimalizovat, dělejte to, až nakonec, kdy máte všechno správně Snaha o optimalizaci práce programátora ne počítače Použití principu modelování
17
Strukturovaný design Do dneška přežily Data Flow Diagramy
Autorem DFD je Larry Constantine
18
Data Flow Diagram Grafický prostředek návrhu a zobrazení funkčního modelu systému Vrstvený (hierarchický) – různé úrovně podrobnosti Nástroj
19
DFD – základní prvky Terminátor (externí entita)
Datový tok (Data Flow) Datový sklad (Data Store) Proces
20
Terminátor Objekt, který nepatří do systému, ale do jeho okolí
Začátek nebo konec datového toku, zdroj dat Terminátor
21
Proces Datový proces (fyzická transformace dat) Řídící proces
Číslování: V úrovni 0 od 1 do 9 V nižších úrovních číslo nadřazeného procesu 1. Proces
22
Datový tok Abstrakce jakékoliv formy přesunu (předání) dat Objednávka
23
Data Store Místo (dočasného) uložení dat
Umožní překlenout časovou mezeru mezi procesy (komunikace procesů v různých časech musí přes data store) Zákazníci
24
Pravidla DFD 3 – 9 procesů v jednom diagramu
S datastorem vždy komunikuje proces (nelze datovým tokem spojit dva datastory, či datastor s terminátorem)
25
Hierarchie DFD Kontextový diagram – jen terminátory a jeden proces = systém Úroveň „0“ rozvedení systému z kontextového diagramu Nižší úrovně – vždy rozvádějí 1 proces z vyšší úrovně
26
Příklad Jednoduchý systém pro známkování studentů. Učitel známkuje studenty podle seznamu, ti se pak mohou dívat na své známky.
27
Kontextový diagram Učitel Student Správce ID Udělaná známka
Známkovací systém Seznam studentů Získaná známka Studenti Správce
28
Úroveň „0“ ID Známka Udělaná známka Student Získaná známka
Známky 3 Zápis známky 4 Vyhl známky stud známky Student Získaná známka Studenti 2 Čtení seznamu stud. 1 Zápis seznamu stud. Seznam studentů Studenti
29
Structured Systems Analysis and Design Method (SSADM)
Peter Checkland Larry Constantine Wayne Stevens Chris Gane & Trish Sarson, authors of Structured Systems Analysis: Tools and Techniques Ed Yourdon Michael A. Jackson
30
SSADM Vodopádová metodika Vyvinuta pro vládu Velké Británie
V současné době patří Office of Governement Commerce spadající pod ministerstvo financí Spojeného Království Pod tuto agenturu rovněž spadá MSP, PRINCE2, M_o_R, ITIL
31
SSADM Tři hlavní techniky Logické datové modelování
Modelování datových toků (DFD) Modelování chování entit
32
Datové modelování Data Structure Diagrams (síťový model) Relační model
Entity set model Chenův Entity Relationship Diagram
33
Relační model Založen na relační algebře Relace je uspořádaná n-tice
Matematický obor Relace je uspořádaná n-tice Operace Projekce (zůžení na určitý počet sloupců) Selekce (výběr řádků) Kartézský součin Přirozený join Equijion Semijoin
34
Chenův diagram Od začátku chápán pro popis reálného světa
Od relačního modelu se snaží odlišit přesnějším pomisem sémantiky reálného světa Liší se od dalších přístupů
35
Entity Relationship Diagram
Ukazuje vztahy mezi entitami reálného světa Popisuje data, která budou existovat v systému Existuje více notací Velmi podobný relačnímu popisu dat
36
Srovnání ERD a Data Structure Diagrams
Entity relationship diagram Zdroj: Chen: The Entity-Relationship Model—Toward a Unified View of Data
37
ERD Entita Vztah Entita Sklad Materiál Materiál na skladě
Asociativní entita
38
Entita Rozlišitelný a identifikovatelný objekt reality (Karel Novák,motor s výr. č ) Jsou slučovány do entitních množin (Osoba, Motor) V ER diagramech modelujeme entitní množiny, přesto se jim říká entity
39
Vztah, kardinalita Vozidlo Kolo Obsahuje
40
Parcialita (volitelnost)
Švestka Strom Plodí
41
Vztah sám se sebou Je kamarád Student
42
Příklad Studuje Student Předmět Získal Učí Známka Učitel
43
Atribut Vlastnost entity Základní dělení
Totální atribut – u každé entity má hodnotu Parciální atribut – hodnotu má jen někdy
44
Typy atributů Základní Odvoditelné Primární klíč Cizí klíč
45
Příklad Primární klíč: Rodné číslo
Totální atribut: RČ, Jméno, Datum narození, RČ otce Parciální atribut: SPZ Auta Cizí klíč: RČ otce, (SPZ) Odvoditelný: Věk (ostatní základní) Rodné číslo Jméno Datum narození Věk SPZ Auta RČ otce Člověk
46
State Transition Diagram
Popisuje časové následnosti procesů funkcí Popisuje stavy systému (entity) a přechody mezi nimi Původně vyvinut ve strukturovaných metodikách, nyní užíván v objektových
47
STD entity Student Nezapsaný Zapsaný Oznámkovaný
Student si zapsal předmět Zapiš studenta Zapsaný Omyl Zruš známku Test opraven Zapiš známku Oznámkovaný
48
Normalizace dat Technika datové analýzy
Vhodná pro ověření návrhu logické datové struktury Sada omezení aplikovaných na datové struktury
49
První normální forma Datová struktura nesmí obsahovat opakující se položky UČO Jméno Ident Název předmětu Počet kreditů Přemět Ident Název předmětu Počet kreditů Učitel UČO Jméno Učitel Předmět
50
Druhá normální forma Datová struktura, která obsahuje složený primární klíč, může obsahovat pouze takové položky, které závisí na celém složeném klíči
51
Druhá normální forma Předmět Cvičení Ident předmětu Číslo cvičení
Počet studentů Jméno učitele Počet kreditů Cvičení Ident předmětu Číslo cvičení Počet studentů Jméno učitele Předmět Ident předmětu Počet kreditů Předmět Cvičení Obsahuje
52
Třetí normální forma Všechny neklíčové položky musí záviset na primárním klíči přímo Ident Název předmětu Počet kreditů UČO Jméno Přemět Ident Název předmětu Počet kreditů Učitel UČO Jméno Učitel Předmět
53
Normalizujte 1NF: Datová struktura nesmí obsahovat opakující se položky 2NF: Datová struktura, která obsahuje složený primární klíč, může obsahovat pouze takové položky, které závisí na celém složeném klíči 3NF: Všechny neklíčové položky musí záviset na primárním klíči přímo
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.