11 Návrh programového vybavení

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

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

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

10 Metody a metodologie strukturované analýzy

7 Jazyk UML (Unified Modeling Language)

Analýza a Návrh. Analýza

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

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

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

Design systému. Komponentová versus procesní architektura

7 Jazyk UML (Unified Modeling Language)

Architektura softwarových systémů

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

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

7.5 Diagram tříd pokročilé techniky

Programování II. Modularita 2017/18

8 Přehled OO metodik (metod, metodologií)

8 Přehled OO metodik (metod, metodologií)

Procesy a vlákna (Processes and Threads)

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

7.6 Další diagramy UML

Základní typy struktur výpočetních systémů

7.6 Další diagramy UML

7.5 Diagram tříd pokročilé techniky

Softwarové komponenty a Internet

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

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

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

Vývoj informačních systémů. Přehled témat a úkolů

Architektury informačních systémů

Architektury informačních systémů

Vývoj informačních systémů. Přehled témat a úkolů

(Enterprise) JavaBeans. Lekce 7

Student s Life. Návrhová dokumentace (Design) Lukáš Barák, Jakub Ječmínek, Jaroslav Brchel, Jiří Zmeškal

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

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

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

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Tvorba informačních systémů

12 Zajištění kvality programového vybavení

12 Zajištění kvality programového vybavení

Úvod. Programovací paradigmata

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

Common Object Request Broker Architecture

Program a životní cyklus programu

Matematika v programovacích

Programovatelné automaty SIMATIC S7 a S5

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

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

14 Úvod do plánování projektu Řízení projektu

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

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

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

2 Životní cyklus programového díla

Tvorba informačních systémů

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Tvorba informačních systémů

IS pro podporu BOZP na FIT ČVUT

operační systém vjj 1

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

java remote method invocation Kateřina Fricková, Matouš Jandek

14 Úvod do plánování projektu Řízení projektu

Tvorba informačních systémů

SOFTWAROVÉ INŽENÝRSTVÍ 1

Novinky ve Visual Studio Tomáš Kroupa

Principy UML. Clear View Training 2005 v2.2 1

Úvod do Web Services

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

Michal Krátký, Miroslav Beneš

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

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

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

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

CAL (CAN Application Layer) a CANopen

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

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

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

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

UML. Unified Modeling Language. Součásti UML

Od virtualizace serverů k virtualizaci desktopů. Nebo opačně? Jaroslav Prodělal, OldanyGroup VMware VCP, consultant

Návrh IS - UML. Jaroslav Žáček

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

Obsah. Zpracoval:

Návrh IS - UML. Jaroslav Žáček

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

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

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

DF FA Novinky v Simotion Scout

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

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

Vývoj Internetových Aplikací

7.3 Diagramy tříd - základy

Klasické metodiky softwarového inženýrství 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

Michal Andrejčák, Seminář Energetika v průmyslu, Hotel Vista Dolní Morava, Možnosti monitorování a ovládání Zpracování dat z rozvoden

Transkript:

11 Návrh programového vybavení - technické jádro procesu vývoje programového systému, existuje u všech modelů životního cyklu - Jackson: Začínající moudrost programátora (softwarového inženýra) spočívá v rozeznání rozdílu mezi uděláním programu, aby pracoval, a uděláním ho správně. - zásadní význam pro kvalitu (odhalení chyb, testovatelnost, udržovatelnost, použitelnost) Architektura systému Modely analýzy Další požadavky Návrh Uživatelské rozhraní Datové a objektové struktury Kódování Moduly programů Testování Integrovaný a ověřený systém Procedurální detaily - typicky dva kroky: předběžný (architektonický) návrh detailní návrh Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 1

- historie: 1. etapa (začátek 70.let) - kritéria pro modulární programy, návrh architektury programu shora dolů, strukturované programování. 2. etapa (~1975) - metody transformace DFD a struktury dat. 3. etapa (od poloviny 80.let) - objektově orientovaný přístup. - přístupy k návrhu: a) Návrh orientovaný na funkce (strukturovaný návrh) b) Návrh orientovaný na struktury dat c) Objektově-orientovaný návrh 11.1 Strukturovaný návrh Techniky: - abstrakce - zpřesňování - modularita - rozdělení na pojmenované, adresovatelné komponenty (moduly), řešení problému složitosti Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 2

Modul - jednotka zapouzdřující datové typy, funkce, proměnné. Cíl: Nalezení struktury modulů s vysokou funkční nezávislostí (snadnější vývoj, údržba, redukce šíření chyb, opakované použití). Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 3

Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 4

Míry nezávislosti: - koheze (cohesion) - náhodná, logická, časová, sekvenční,... - propojení (coupling) - žádné, datové, struktury, řízení, globální,... Nástroje: a) vyjádření struktury (architektury programu) - diagram struktury (strukturogram) Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 5

F F F F1 F2 F1 F2 F1 data řízení Sekvence Selekce Iterace + další symboly - Jacksonův diagram b) popis algoritmu - procedurální popis - viz minispecifikace Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 6

11.2 Objektově-orientovaný návrh Možný postup (metodika OMT): A) Systémový návrh A1) Rozčlenění na podsystémy - podsystém - kolekce tříd, asociací, operací, omezení, atd. s dobře definovaným rozhraním k jiným podsystémům (poskytuje služby) - většina interakcí uvnitř (koheze, propojení) - v rozčleňování lze pokračovat - vztahy podsystémů: - klient - server (poskytovatel) - sobě rovný (peer-to-peer) - podsystémy mohou být organizovány jako vrstvy nebo sekce (partition) - architektura s vrstvami - uzavřená - otevřená - v zadání vždy specifikována nejvyšší vrstva a často i nejnižší - přenositelnost přepisem vrstvy - sekce - nezávislé nebo slabě vázané podsystémy - vrstvy a sekce lze kombinovat - v UML podsystémy (stereotyp <<subsystem>> symbolu seskupení) a komponenty Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 7

Př) řízení uživatelského rozhraní aplikace grafika okna grafika obrazovky grafika bodu operační systém HW simulační knihovna Aplikační Prezentační Relační Transportní Síťová Linková Fyzická Sedmivrstvý model ISO-OSI Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 8

Win16 MS-DOS NTVDM POSIX subsystem Win32 subsystem OS/2 subsystem Security subsystem User mode Kernel mode Executive Services System Services I/O Manager Cache manager File System drivers Object Manager Security Reference Monitor Process Manager Local Procedure Call Facility Virtual Memory Manager Window Manager (WIN32K.SYS) Network drivers Hardware Device Drivers Microkernel Hardware Abstraction Layer (HAL) Graphics Device Drivers Hardware Architektura Windows NT Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 9

A2) Identifikace souběžnosti - v reálném světě objekty souběžné, při implementaci omezení počtem procesorů, resp.procesů určení současně aktivních objektů - souběžné podsystémy nemusí být nutně implementovány na samostatných procesorech (přerušení, řízení úloh, procesů,...) - vlákno řízení (thread) - zahrnuje vzájemně závislé objekty, jsou implementována jako úlohy - v UML diagramy aktivit A3) Alokace podsystémů procesorům a úlohám - odhad požadavků na HW zdroje - HW - SW kompromisy - alokace úloh procesorům - určení fyzického propojení - v UML diagramy nasazení (viz dále) A4) Volba způsobu správy perzistentních dat - využití správy souborů OS - laciné, přídavný kód v aplikacích, použití: komplikované struktury, archívy, dočasné ukládání - využití systému řízení báze dat (SŘBD) použití: souběžný přístup řady uživatelů, efektivní správa příkazy SŘBD, přenositelnost, rozšiřitelnost Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 10

A5) Volba implementace řízení v programu - varianty externího řízení: - sekvenční řízení kódem - vstupy jen na základě naprogramovaného vyžádání, nelze implementovat asynchronní vstupy - sekvenční řízení událostmi - dispečer událostí (monitor) jazyka, operačního systému nebo podsystému, pružné rozhraní A7) Ošetření mezních podmínek - inicializace, ukončení, chybové stavy A8) Stanovení priorit kompromisů B) Objektový návrh B1) Specifikace všech tříd a jejich interakce - v UML diagram tříd pro specifikační pohled, diagramy interakce, stavový diagram B2) Návrh algoritmů pro implementaci složitých operací B3) Optimalizace přístupu k datům - přidání redundantních asociací, uložení odvozených atributů B4) Implementace řízení vnějších interakcí B5) Přizpůsobení struktury tříd pro zvýšení dědičnosti Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 11

- restrukturalizace, abstrakce společného chování B6) Návrh implementace asociací Př) Student * 0..1 bydlí na Kolej Student ubytován Kolej Student Kolej ubytovaní Set Student ubytován Kolej ubytovaní Set B7) Určení reprezentace objektů - datové typy pro atributy, samostatné třídy (úsečka, bod) - v UML diagram tříd pro implementační pohled B8) Vytvoření modulů (pokud nebyly vytvořeny dříve) - soubor (C, C++) nebo konstrukce jazyka - ukrývání informace, koheze - v UML diagram modulů a komponent Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 12

Modelování architektury systému v UML Pohled návrhu Pohled procesů Pohled použití Pohled realizace Pohled nasazení Pohled Statické aspekty Dynamické aspekty použití diagramy použití diagramy interakce, stavové diagramy, diagramy aktivit návrhu procesů diagramy tříd, diagramy objektů diagramy tříd, diagramy objektů diagramy interakce, stavové diagramy, diagramy aktivit diagramy interakce, stavové diagramy, diagramy aktivit realizace diagramy komponent diagramy interakce, stavové diagramy, diagramy aktivit nasazení diagramy rozmístění diagramy interakce, stavové diagramy, diagramy aktivit Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 13

Diagramy komponent Komponenta fyzická, vyměnitelná část systému, která souhlasí s a realizuje určitou množinu rozhraní. - všechny nejznámější prostředky pro systémy založené na komponentách (COM+, CORBA, Enterprise Java Beans EJB) používají rozhraní jako pojítko komponent - komponenta a modul (package) jsou často totožné, ale mohou být různé (např. třída string v modulu java.lang) Př) ISpeling spellingwizard.dll IUnknown - diagram komponent ukazuje především rozhraní a komponenty a vztahy mezi nimi (závislost, realizace atd.) - existují předdefinované stereotypy <<executable>>, <<library>>, <<document>> Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 14

Diagramy rozmístění (deployment) Uzel fyzický prvek existující v době výpočtu,který reprezentuje výpočetní zdroj. Diagram rozmístění ukazuje spojení uzlů a rozmístění komponent v uzlech. sts adela Oracle 8 Oracle 8i Lokální síť BE-371 * BE-372 * JDeveloper Developer 2000 Developer 2000 pcdtp Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 15

Návrhové vzory - vzorová řešení opakujících se témat Př) komunikace objektů v jednom procesu s objekty jiném (možná vzdáleném) bez nutnosti hledat objekty v síti Subject +request() <<method>> realsubject.request() Real subject +request() 1 Proxy +request() - bližší informace např. http://www.hillside.net/patterns Jaroslav Zendulka: Projektování programových systémů - 12 Návrh programového vybavení 16