Návrh softwaru. RNDr. Michal Žemlička, Ph.D. Zimní semestr 2013/2014



Podobné dokumenty
TÉMATICKÝ OKRUH Softwarové inženýrství

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Modelování procesů s využitím MS Visio.

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

UML. Unified Modeling Language. Součásti UML

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

CASE. Jaroslav Žáček

10 Metody a metodologie strukturované analýzy

Analýza a Návrh. Analýza

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Metody popisu systému, základy UML

Vývoj IS - strukturované paradigma II

CASE nástroje. Jaroslav Žáček

Objektová tvorba SW, Analýza požadavků 2006 UOMO 53

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

10 Balíčky, grafické znázornění tříd, základy zapozdření

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Vyřešené teoretické otázky do OOP ( )

Vývoj informačních systémů. Obecně o IS

Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Programování II. Modularita 2017/18

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

TÉMATICKÝ OKRUH Softwarové inženýrství

U Úvod do modelování a simulace systémů

Využití SysML pro tvorbu modelů v systémovém inženýrství

Obsah Charakteristiky software Programování ve velkém... 3

1 Strukturované programování

Profilová část maturitní zkoušky 2017/2018

Funkční analýza Předmět Informační systémy. Daniela Szturcová

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

Unifikovaný modelovací jazyk UML

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

11 Návrh programového vybavení

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

Teorie systémů TES 1. Úvod

PŘÍLOHA C Požadavky na Dokumentaci

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

09. Memory management. ZOS 2006, L.Pešička

SOUVISLOSTI PROBLEMATIKY SYSTÉMOVÉHO MODELOVÁNÍ A TVORBY INFORMAČNÍCH SYSTÉMŮ RELATIONS BETWEEN SYSTEM MODELLING AND INFORMATION SYSTEM DEVELOPMENT

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Maturitní otázky z předmětu PROGRAMOVÁNÍ

7.5 Diagram tříd pokročilé techniky

Business Process Modeling Notation

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

6 Objektově-orientovaný vývoj programového vybavení

7 Jazyk UML (Unified Modeling Language)

Objekty, třídy, vazby 2006 UOMO 30

UML úvod. Zdroje: Kanisová Hana, Müller Miroslav: UML srozumitelně, Computer Press 2007

7.3 Diagramy tříd - základy

Analýza a modelování dat. Přednáška 4

Architektura softwarových systémů

Architektury Informačních systémů. Jaroslav Žáček

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

Algoritmizace- úvod. Ing. Tomáš Otáhal

Aplikace. vliv na to, jakou mají strukturu i na to, jak pracné je je vyvinout. Bylo vypozorováno, že aplikace je možné rozdělit do skupin

Maturitní témata Školní rok: 2015/2016

Vývojové prostředí,průvodce novou aplikací

9. Praktická verifikace

Objektově orientované databáze. Miroslav Beneš

Ruční návrh Připravíme si odpovědi na základní otázky Co chceme řešit (projektovat) a proč Komu to bude sloužit Jaký užitek z toho bude mít uživatel I

Jaký programovací jazyk učit jako první a jak ho učit?

Profilová část maturitní zkoušky 2013/2014

7.5 Diagram tříd pokročilé techniky

Architektury Informačních systémů. Jaroslav Žáček

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

7.3 Diagramy tříd - základy

7 Jazyk UML (Unified Modeling Language)

Bakalářky. Cyril Brom

4 ARCHITEKTURA PODNIKOVÝCH PROCESŮ S ARISEM

Novinky v UML 2.5 a agilní modelování

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Program a životní cyklus programu

PV167 Projekt z obj. návrhu IS. 26. března 2008

Obsah. Zpracoval:

Windows a real-time. Windows Embedded

EXTRAKT z mezinárodní normy

Diagram datových toků - DFD

2 Životní cyklus programového díla

3 druhy UML diagramů

Objektově orientovaný přístup

8 Třídy, objekty, metody, předávání argumentů metod

Modelování webových služeb v UML

2. Systémová analýza SA návrhová část projektu = příručka projektu - systémový přístup k analýze problémů, nejdůležitější etapa projektu - podrobné st

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Výukový materiál zpracován v rámci projektu EU peníze školám

MANAŽERSKÉ INFORMAČNÍ SYSTÉMY

Diagramy tříd - základy

POPIS STANDARDU CEN TC278/WG12. draft prenv ISO TICS AVI/AEI architektura a terminologie intermodální dopravy zboží. 1 z 5

C2115 Praktický úvod do superpočítání

Hodnoticí standard. Návrhář software (kód: N) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Úvod. Programovací paradigmata

AUTOMATIZACE Úvod do programování PLC

Základy objektové orientace I. Únor 2010

Vývojové diagramy 1/7

Problémové domény a jejich charakteristiky

Teorie systémů TES 10. Měkké systémy metodiky

Transkript:

Softwarové inženýrství I Návrh softwaru RNDr. Michal Žemlička, Ph.D. Vysoká škola finanční a správní Zimní semestr 2013/2014

Návrh softwaru k čemu to? Udělat cokoliv většího bez plánu je riskantní záležitost. Velký program za nás žádná neviditelná ruka softwaru kvalitně nevytvoří. Abychom mohli dobře plánovat, bývá výhodné se poučit s čím uspěli ti před námi. Podíváme se na hrubý i jemnější návrh, na některé architektonické prvky i na srovnání některých přístupů k návrhu softwaru.

Návrhový proces Obecný model návrhu softwaru je orientovaný graf. Cílem tohoto procesu je vytvoření dané struktury bez nekonsistencí. Náčrt/osnova neformálního návrhu Neformální návrh Formálnější návrh Hotový návrh

Návrhové aktivity 1. Architekturní návrh. Identifikace a dokumentace subsystémů a jejich vztahů. 2. Abstraktní specifikace. Pro každý subsystém je provedena abstraktní specifikace služeb, které podporuje, i omezení, za kterých musí fungovat. 3. Návrh rozhraní. Pro každý subsystém je navrženo a zdokumentováno rozhraní k ostatním částem. 4. Návrh komponent. Služby jsou rozmístěny do jednotlivých komponent a jsou vytvořena rozhraní těchto komponent. 5. Návrh datových struktur. Podrobný návrh datových struktur použitých k implementaci systému. 6. Návrh algoritmů. Podrobný návrh a popis algoritmů použitých k poskytování služeb.

Metody návrhu Model toku dat. Systém je modelován pomocí transformací dat. Entitně-relační model. Popisuje logické datové struktury. Strukturovaný model. Dokumentuje systémové komponenty a jejich interakci. Objektově-orientovaný model. Měl by obsahovat: model dědičnosti, model skládání objektů a obvykle i model toho, jak jsou objekty využívány jinými objekty.

Popis návrhu 1. Grafické notace Používají se k zobrazení vztahů mezi komponentami a k navázání systému na reálný svět, který modeluje. Grafický pohled je abstraktním pohledem. Bývají velmi výhodné pro získání celkového přehledu. 2. Jazyky popisu programu (program description languages, PDL). Tyto jazyky využívají řídící a strukturní konstrukty založené na programovacích jazycích, ale také vysvětlující text a někdy též další typy příkazů. To umožňuje zachytit spíše záměr návrháře než implementační detaily. 3. Neformální text. Mnoho z infomací spojených s návrhem nemůže být vyjádřeno formálně. Některé záměry mohou být lépe vyjádřeny textem.

Návrhové startegie 1. Funkční/praktický návrh. Systém je navržen z funkčního pohledu postupným zjemňováním shora dolů. Zástupci thoto přístupu jsou: Strukturovaný návrh [1] SSADM [2, 4] postupné zjemňování [5, 6] 2. Objektově orientovaný návrh. Systém je nahĺıžen jako kolekce objektů. OON vychází z myšlenky skrývání infomace [3] a byl popsána mnoha autory.

Koheze Koheze komponenty je míra nebo bĺızkost vztahů mezi jejími částmi. Komponenta by měla realizovat jednu logickou funkci nebo jednu logickou entitu. Koheze je významnou charakteristikou, protože znamená, že jednotka implementuje jednu část řešení problému.

Koheze (2) Constatnitne a Yourdon [1] rozlišují 7 úrovní koheze s rostoucí silou: 1. Náhodná koheze části komponenty nejsou provázány, jsou prostě zabaleny do jedné komponenty; 2. Logická asociace části vykonávající podobnou funkci jako ošetření vstupu nebo tiskové výstupy jsou zabaleny dohromady; 3. Temporální koheze všechny části se aktivují ve stejnou dobu (například spuštění nebo vypnutí) jsou zabaleny dohromady; 4. Procedurální koheze části komponenty tvoří jednu řídící sekvenci; 5. Komunikační koheze všechny části komponenty pracují nad stejnými vstupními daty nebo produkují stejná výstupní data; 6. Sekvenční koheze výstup jedné části slouží jako vstup pro nějaké další části; 7. Funkční koheze každá část komponenty je potřebná pro výkon jedné funkce.

Koheze (3) Popsané třídy nejsou striktně definovány. Původní dokument je funkční. Můžeme tak přidat ještě další stupeň: 8 Objektová koheze každá operace provádí funkcionalitu umožňující modifikovat, kontrolovat, nebo používat atributy objektu;

Adaptabilita Adaptabilita návrhu je obecné očekávání toho, jak snadno jde návrh měnit. Komponenty musí být volně spojené. Pro vysokou adaptabilitu je vhodné, aby komponenta byla samostatná (self-contained) aby nebyla závislá na dalších, externích, komponentách. To je v rozporu s maximální znovupoužitelností a s tím, aby bylo jedno místo opravy. Návrhář tak musí zvolit vhodný kompromis mezi znovupoužitelností a adaptabilitou.

Návrh datových toků (Data-Flow Design) Ukazuje, jak data procházejí systémem a jak jsou transformována jednotlivými funkcemi systému. Bývá možné odvodit tento model od modelu datových toků získaného v analýze. Diagramy datových toků podporují hierarchické členění. To usnadňuje jejich návrh i porozumnění v případě rozsáhlejších modelů. Grafické zobrazení se v různých CASE nástrojích výrazně liší; je třeba se nejdříve ujistit, jak to je v daném systému.

Systémy pracující v reálném čase Na jejich práci je kladen další požadavek: jednotlivé funkce musí být vykonány do určité doby od vyvolání. 2 varianty: 1. tvrdé systémy reálného času (hard real-time systems) časová omezení musí být doržena, jinak hrozí velký problém; 2. měkké systémy reálného času (soft real-time systems) časová omezení je třeba dodržet, ale občasné mírné nedodržení nevadí, pokud se limity v součtu dodrží.

Systémy pracující v reálném čase důsledky Při požadavku na krátkou odezvu funkce nelze spoléhat na zásah člověka jednoduše za setinu sekundy reagovat nestihne (natož aby si reakci rozmyslel). V mnoha systémech reálného času nelze použít pevný disk ani jiné periferie s proměnnou dobou odezvy. Toto je typické spíše pro systémy či funkce pracující v režimu hard real-time. I v systémech označovaných jako hard real-time bývají části, pro které ve skutečnosti stačí podmínka soft real-time. Někdy takové systémy obsahují i části, které mohou fungovat jako dávka (běží, dokud nedoběhnou). Hard real-time operace mohou mít zakázánu alokaci paměti (tedy žádná Java, C#, php nebo jiné jazyky, které si alokují nebo dokonce čistí pamět ve vlastní režii).

Systémy pracující v reálném čase pokračování Systémy pracující v reálném čase: nesmí vypadnout je třeba je vyvíjet s výrazně větším důrazem na spolehlivost; musí počítat to, co je od nich požadováno (pokud místo brzd vyvoláme akceleraci, může to pro mnoho lidí skončit velmi špatně); nesmí ztrácet pamět (musí vydržet v provozu bez restartu dlouhou dobu); by měl počítat s problémy a mít definovaný bezpečný stav, do kterého v případě problémů přejde. Webové aplikace vykazují mnohé vlastnosti soft real-time může být výhodné se při jejich tvorbě ve světě soft real-time inspirovat.

L. L. Constantine and E. Yourdon. Structured Design. Prentice-Hall, Englewood Cliffs, NJ, 1979. G. Cutts. Structured systems analysis and design methodology. In H.-J. Bullinger, editor, Information Technology for Organzational Systems, pages 363 370, Amsterdam, 1988. Elsevier. D. L. Parnas. Designing software for ease of extension and contraction. IEEE Transactions on Software Engineering, 5(2):128 138, 1979. P. Weaver. Practical SSADM, vesrion 4. Pitman, London, 1993. N. Wirth. program development by stepwise refinement. Communication of the ACM, 14(4):221 227, 1971.

N. Wirth. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, NJ, 1976.