Upload
owen
View
50
Download
0
Embed Size (px)
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 Presentation
Citation preview
Strukturované metodyStrukturované metodyJan Smolík
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
Strukturované Strukturované programováníprogramováníS rozsahem se programy opět
stávají nezvladatelnéEdsger Wybe Dijkstra: „Go To
Statement Considered Harmful“ (1968)
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
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
Jacksonovo strukturované Jacksonovo strukturované programováníprogramování• Můžu popsat nejen program ale i jeho data
Obrázek: Wikipedia
Srovnání vstupních a Srovnání vstupních a výstupních datvýstupních dat
Výsledná struktura Výsledná struktura programuprogramu
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
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
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
Požadavky MILPožadavky MILSeshora dolůPo jedné úrovni najendouZezdola nahoruHorizontální komunikaceFinální kompozice do jednoho
celku
Příklad MIL75Příklad MIL75
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
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
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í
Strukturovaný designStrukturovaný designDo dneška přežily Data Flow
DiagramyAutorem DFD je Larry
Constantine
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
DFD – základní prvkyDFD – základní prvky
Terminátor (externí entita)Datový tok (Data Flow)Datový sklad (Data Store)Proces
TerminátorTerminátor
Objekt, který nepatří do systému, ale do jeho okolí
Začátek nebo konec datového toku, zdroj dat
Terminátor
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
Datový tokDatový tok
Abstrakce jakékoliv formy přesunu (předání) dat
Objednávka
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
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)
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ě
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.
Kontextový diagramKontextový diagram
StudentUčitel
Správce
Známkovací systém
Získaná známka
ID
Studenti
Seznam studentů
Udělaná známka
Ú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
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
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
SSADMSSADMTři hlavní techniky
◦Logické datové modelování◦Modelování datových toků (DFD)◦Modelování chování entit
Datové modelováníDatové modelováníData Structure Diagrams (síťový
model)Relační modelEntity set model
Chenův Entity Relationship Diagram
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
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ů
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
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
ERDERD
Sklad Materiál
Materiál na skladě
Entita EntitaVztah
Asociativní entita
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
Vztah, kardinalitaVztah, kardinalita
Vozidlo KoloObsahuje
Parcialita (volitelnost)Parcialita (volitelnost)
Strom ŠvestkaPlodí
Vztah sám se sebouVztah sám se sebou
Student
Je kamarád
PříkladPříklad
Student
Známka
Předmět
Učitel
Učí
Studuje
Získal
AtributAtributVlastnost entityZákladní dělení
◦Totální atribut – u každé entity má hodnotu
◦Parciální atribut – hodnotu má jen někdy
Typy atributůTypy atributů
ZákladníOdvoditelnéPrimární klíčCizí klíč
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
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
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
Normalizace datNormalizace datTechnika datové analýzyVhodná pro ověření návrhu
logické datové strukturySada omezení aplikovaných na
datové struktury
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
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
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
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
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