Strukturované metody

Post on 23-Jan-2016

41 views 0 download

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

transcript

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