1 / 53

Strukturované metody

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.

owen
Download Presentation

Strukturované metody

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • EdYourdon, LarryConstantine, 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 -- .9 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. ID Udělaná známka Učitel Student Známkovací systém Seznam studentů Studenti Získaná známka Správce Kontextový diagram

  28. Známka ID Udělaná známka 2 Čtení seznamu stud. 3 Zápis známky 4 Vyhl známky stud známky Student Studenti Známky Seznam studentů 1 Zápis seznamu stud. Studenti Získaná známka Úroveň „0“

  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 • 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 StructureDiagrams • Data structure diagram • 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. č. 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

  39. Vztah, kardinalita Kolo Vozidlo Obsahuje

  40. Parcialita (volitelnost) Švestka Strom Plodí

  41. Vztah sám se sebou Je kamarád Student

  42. Studuje Učí Získal Příklad Student Předmět 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. Člověk Rodné číslo Jméno Datum narození Věk SPZ Auta RČ otce 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í)

  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. Student si zapsal předmět Zapiš studenta Omyl Test opraven Zruš známku Zapiš známku STD entity Student Nezapsaný Zapsaný 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. Předmět Učitel Předmět 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

  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

More Related