strukturované metody
DESCRIPTION
Strukturované metody. Jan Smolík. 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. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/1.jpg)
Strukturované metodyStrukturované metodyJan Smolík
![Page 2: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/2.jpg)
Historie strukturovaných Historie strukturovaných metodikmetodikStrukturované programováníProgramování ve velkémFunkční přístup
◦Yourdan structured method◦Structured design (Larry Constantine)
Datové modelování◦Relační algebra◦Data structure diagram◦Chenovy diagramy
![Page 3: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/3.jpg)
Strukturované Strukturované programováníprogramováníS rozsahem se programy opět
stávají nezvladatelnéEdsger Wybe Dijkstra: „Go To
Statement Considered Harmful“ (1968)
![Page 4: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/4.jpg)
Kde jsme to jenom viděli?Kde jsme to jenom viděli?Sekvence, selekce, iterace
Mám
Vařím
Nemám
Vaření vejce
P1
![Page 5: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/5.jpg)
Teorie struktorovaného Teorie struktorovaného programováníprogramováníTři možnosti skládání programů:
◦Sekvence◦Selekce◦Iterace
Není úplnou novinkou, vychází už z teorie Turingova stroje
![Page 6: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/6.jpg)
Jacksonovo strukturované Jacksonovo strukturované programováníprogramování• Můžu popsat nejen program ale i jeho data
Obrázek: Wikipedia
![Page 7: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/7.jpg)
Srovnání vstupních a Srovnání vstupních a výstupních datvýstupních dat
![Page 8: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/8.jpg)
Výsledná struktura Výsledná struktura programuprogramu
![Page 9: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/9.jpg)
Jacksonova metodaJacksonova metodaProblém nekorespondujících
struktur◦Řešení: rozdělení do podprogramů
Podle některých autorů je metoda závislá na datech
![Page 10: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/10.jpg)
Strukturované progranovací Strukturované progranovací jazykyjazykyALGOL (1960)Pascal (1970)PL/IAda
Vznikají postupně 60. – 70. létaPozn.: první objektový jazyk:
Simula 67, Smalltalk (70. léta) – publikováno 1980
![Page 11: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/11.jpg)
Programování ve velkémProgramování ve velkémFrank DeRemer, Hans KronVidí 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
![Page 12: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/12.jpg)
Požadavky MILPožadavky MILSeshora dolůPo jedné úrovni najendouZezdola nahoruHorizontální komunikaceFinální kompozice do jednoho
celku
![Page 13: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/13.jpg)
Příklad MIL75Příklad MIL75
![Page 14: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/14.jpg)
Funkční přístupFunkční přístupKniha Structured DesignEd Yourdon, Larry Constantine,
19791. skutečná učebnice designuPrá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
![Page 15: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/15.jpg)
Strukturovaný designStrukturovaný design„Cena vývoje systému je cena
odhalování chybCena odhalování chyb je cenou chyb
programátoraPočet chyb roste nelineárně s
komplexitou problémuKomplexita problému může být snížena
rozdělením na malé částiVe výsledku rozdělení na malé části
vyvolá větší komplexitu, kvůli závislosti modulů“
Volná citace, Yourdon: Structured Design
![Page 16: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/16.jpg)
Strukturovaný designStrukturovaný designSnaha 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čePoužití principu modelování
![Page 17: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/17.jpg)
Strukturovaný designStrukturovaný designDo dneška přežily Data Flow
DiagramyAutorem DFD je Larry
Constantine
![Page 18: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/18.jpg)
Data Flow DiagramData Flow Diagram
Grafický prostředek návrhu a zobrazení funkčního modelu systému
Vrstvený (hierarchický) – různé úrovně podrobnosti
Nástroj
![Page 19: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/19.jpg)
DFD – základní prvkyDFD – základní prvky
Terminátor (externí entita)Datový tok (Data Flow)Datový sklad (Data Store)Proces
![Page 20: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/20.jpg)
TerminátorTerminátor
Objekt, který nepatří do systému, ale do jeho okolí
Začátek nebo konec datového toku, zdroj dat
Terminátor
![Page 21: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/21.jpg)
ProcesProces
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 -- .9
1.
Proces
![Page 22: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/22.jpg)
Datový tokDatový tok
Abstrakce jakékoliv formy přesunu (předání) dat
Objednávka
![Page 23: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/23.jpg)
Data StoreData StoreMísto (dočasného) uložení datUmožní překlenout časovou
mezeru mezi procesy (komunikace procesů v různých časech musí přes data store)
Zákazníci
![Page 24: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/24.jpg)
Pravidla DFDPravidla DFD
3 – 9 procesů v jednom diagramuS datastorem vždy komunikuje
proces (nelze datovým tokem spojit dva datastory, či datastor s terminátorem)
![Page 25: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/25.jpg)
Hierarchie DFDHierarchie 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ě
![Page 26: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/26.jpg)
PříkladPří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.
![Page 27: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/27.jpg)
Kontextový diagramKontextový diagram
StudentUčitel
Správce
Známkovací systém
Získaná známka
ID
Studenti
Seznam studentů
Udělaná známka
![Page 28: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/28.jpg)
Úroveň „0“Úroveň „0“
Získaná známka
ID
Studenti
Seznam studentů
Udělaná známka
1 Zápis seznamu
stud.
Studenti
2 Čtení seznamu
stud.
3 Zápis známky
Známky
4 Vyhl známky stud známky
Student
Známka
![Page 29: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/29.jpg)
Structured Systems Structured Systems Analysis and Design Analysis and Design MethodMethod ( (SSADMSSADM))Peter ChecklandLarry ConstantineWayne StevensChris Gane & Trish Sarson,
authors of Structured Systems Analysis: Tools and Techniques
Ed YourdonMichael A. Jackson
![Page 30: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/30.jpg)
SSADMSSADMVodopádová metodikaVyvinuta pro vládu Velké BritánieV 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
![Page 31: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/31.jpg)
SSADMSSADMTři hlavní techniky
◦Logické datové modelování◦Modelování datových toků (DFD)◦Modelování chování entit
![Page 32: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/32.jpg)
Datové modelováníDatové modelováníData Structure Diagrams (síťový
model)Relační modelEntity set model
Chenův Entity Relationship Diagram
![Page 33: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/33.jpg)
Relační modelRelační modelZaložen na relační algebře
◦Matematický oborRelace je uspořádaná n-ticeOperace
◦Projekce (zůžení na určitý počet sloupců)
◦Selekce (výběr řádků)◦Kartézský součin
Přirozený join Equijion Semijoin
![Page 34: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/34.jpg)
Chenův diagramChenův diagramOd začátku chápán pro popis
reálného světaOd 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ů
![Page 35: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/35.jpg)
Entity Relationship Entity Relationship DiagramDiagramUkazuje vztahy mezi entitami
reálného světaPopisuje data, která budou
existovat v systémuExistuje více notacíVelmi podobný relačnímu popisu
dat
![Page 36: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/36.jpg)
Srovnání ERD a Data Srovnání ERD a Data Structure Diagrams Structure Diagrams
a) Data structure diagramb) Entity relationship diagramZdroj: Chen: The Entity-Relationship Model—Toward a Unified View of Data
![Page 37: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/37.jpg)
ERDERD
Sklad Materiál
Materiál na skladě
Entita EntitaVztah
Asociativní entita
![Page 38: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/38.jpg)
EntitaEntita
Rozlišitelný a identifikovatelný objekt reality (Karel Novák,motor s výr. č. 1525-1455-456)
Jsou slučovány do entitních množin (Osoba, Motor)
V ER diagramech modelujeme entitní množiny, přesto se jim říká entity
![Page 39: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/39.jpg)
Vztah, kardinalitaVztah, kardinalita
Vozidlo KoloObsahuje
![Page 40: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/40.jpg)
Parcialita (volitelnost)Parcialita (volitelnost)
Strom ŠvestkaPlodí
![Page 41: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/41.jpg)
Vztah sám se sebouVztah sám se sebou
Student
Je kamarád
![Page 42: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/42.jpg)
PříkladPříklad
Student
Známka
Předmět
Učitel
Učí
Studuje
Získal
![Page 43: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/43.jpg)
AtributAtributVlastnost entityZákladní dělení
◦Totální atribut – u každé entity má hodnotu
◦Parciální atribut – hodnotu má jen někdy
![Page 44: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/44.jpg)
Typy atributůTypy atributů
ZákladníOdvoditelnéPrimární klíčCizí klíč
![Page 45: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/45.jpg)
PříkladPříklad
Primární klíč: Rodné čísloTotá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é čísloJménoDatum narozeníVěkSPZ AutaRČ otce
Člověk
![Page 46: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/46.jpg)
State Transition DiagramState Transition DiagramPopisuje časové následnosti
procesů funkcíPopisuje stavy systému (entity) a
přechody mezi nimiPůvodně vyvinut ve
strukturovaných metodikách, nyní užíván v objektových
![Page 47: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/47.jpg)
STD entity StudentSTD entity Student
Nezapsaný
Zapsaný
Oznámkovaný
Student si zapsal předmět
Zapiš studenta
Omyl
Zruš známkuTest opraven
Zapiš známku
![Page 48: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/48.jpg)
Normalizace datNormalizace datTechnika datové analýzyVhodná pro ověření návrhu
logické datové strukturySada omezení aplikovaných na
datové struktury
![Page 49: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/49.jpg)
První normální formaPrvní normální forma
Datová struktura nesmí obsahovat opakující se položky
UČOJménoIdentNázev předmětuPočet kreditůUčitel
UČOJméno
PřemětIdentNázev předmětuPočet kreditů
Učitel PředmětPředmět
![Page 50: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/50.jpg)
Druhá normální formaDruhá 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
![Page 51: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/51.jpg)
Druhá normální formaDruhá normální forma
Ident předmětuČíslo cvičeníPočet studentůJméno učitelePočet kreditů
CvičeníIdent předmětuČíslo cvičeníPočet studentůJméno učitele
PředmětIdent předmětuPočet kreditů
Předmět CvičeníObsahuje
![Page 52: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/52.jpg)
Třetí normální formaTřetí normální forma
Všechny neklíčové položky musí záviset na primárním klíči přímo
IdentNázev předmětuPočet kreditůUČOJméno
UčitelUČOJméno
PřemětIdentNázev předmětuPočet kreditů
Učitel PředmětPředmět
![Page 53: Strukturované metody](https://reader036.vdocuments.mx/reader036/viewer/2022062301/56815294550346895dc0b958/html5/thumbnails/53.jpg)
NormalizujteNormalizujte
1NF: Datová struktura nesmí obsahovat opakující se položky2NF: 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íči3NF: Všechny neklíčové položky musí záviset na primárním klíči přímo