53
Strukturované metody Strukturované metody Jan Smolík

Strukturované metody

  • Upload
    owen

  • View
    41

  • 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

Page 1: Strukturované metody

Strukturované metodyStrukturované metodyJan Smolík

Page 2: Strukturované metody

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

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

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

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

Jacksonovo strukturované Jacksonovo strukturované programováníprogramování• Můžu popsat nejen program ale i jeho data

Obrázek: Wikipedia

Page 7: Strukturované metody

Srovnání vstupních a Srovnání vstupních a výstupních datvýstupních dat

Page 8: Strukturované metody

Výsledná struktura Výsledná struktura programuprogramu

Page 9: Strukturované metody

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

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

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

Požadavky MILPožadavky MILSeshora dolůPo jedné úrovni najendouZezdola nahoruHorizontální komunikaceFinální kompozice do jednoho

celku

Page 13: Strukturované metody

Příklad MIL75Příklad MIL75

Page 14: Strukturované metody

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

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

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

Strukturovaný designStrukturovaný designDo dneška přežily Data Flow

DiagramyAutorem DFD je Larry

Constantine

Page 18: Strukturované metody

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

DFD – základní prvkyDFD – základní prvky

Terminátor (externí entita)Datový tok (Data Flow)Datový sklad (Data Store)Proces

Page 20: Strukturované metody

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

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

Datový tokDatový tok

Abstrakce jakékoliv formy přesunu (předání) dat

Objednávka

Page 23: Strukturované metody

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

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

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

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

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

Ú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

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

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

SSADMSSADMTři hlavní techniky

◦Logické datové modelování◦Modelování datových toků (DFD)◦Modelování chování entit

Page 32: Strukturované metody

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

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

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

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

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

ERDERD

Sklad Materiál

Materiál na skladě

Entita EntitaVztah

Asociativní entita

Page 38: Strukturované metody

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

Vztah, kardinalitaVztah, kardinalita

Vozidlo KoloObsahuje

Page 40: Strukturované metody

Parcialita (volitelnost)Parcialita (volitelnost)

Strom ŠvestkaPlodí

Page 41: Strukturované metody

Vztah sám se sebouVztah sám se sebou

Student

Je kamarád

Page 42: Strukturované metody

PříkladPříklad

Student

Známka

Předmět

Učitel

Učí

Studuje

Získal

Page 43: Strukturované metody

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

Typy atributůTypy atributů

ZákladníOdvoditelnéPrimární klíčCizí klíč

Page 45: Strukturované metody

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

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

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

Normalizace datNormalizace datTechnika datové analýzyVhodná pro ověření návrhu

logické datové strukturySada omezení aplikovaných na

datové struktury

Page 49: Strukturované metody

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

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

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

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

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