Architektura softwaru Logická architekura a UML Package Diagramy. 02-2007 David Toth



Podobné dokumenty
Analýza a Návrh. Analýza

Úvodní studie (pokraov

MVC (Model-View-Controller)

Architektura softwarových systémů

Architektura softwarových systémů

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

Obsah. Zpracoval:

7 Jazyk UML (Unified Modeling Language)

Internetový mapový server Karlovarského kraje

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

Design systému. Komponentová versus procesní architektura

11 Návrh programového vybavení

Modelování řízené případy užití

Architektury informačních systémů

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

7 Jazyk UML (Unified Modeling Language)

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

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

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

Architektury informačních systémů

Každý datový objekt Pythonu má minimáln ti vlastnosti. Identitu, datový typ a hodnotu.

Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika

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

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

Architektura. Vedení sesterské dokumentace

X36SIN: Softwarové inženýrstv. enýrství. Notace modelu jednání (UML) Chyby v modelu jednání. Píklad: e-obchod. úvodní studie

Novinky v UML 2.5 a agilní modelování

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

Budování architektury pomocí IAA

Dominik Vymětal. Informační technologie pro praxi 2009, Ostrava

Tvorba informačních systémů

Unifikovaný modelovací jazyk UML

Komunikace. Úrovová architektura protokol. Úrovová architektura protokol (2) Pednášky z distribuovaných systém

EXTRAKT z české technické normy

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

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

Mobile application developent

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

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

Dodatek dokumentace KEO-Moderní kancelá verze 7.40

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

Jak správně psát scénáře k případům užití?

Tvorba informačních systémů

POPIS TESTOVACÍHO PROSTEDÍ 1 ZÁLOŽKA PARSER

Tvorba informačních systémů

Obsah Úvod...2 Slovníek pojm Popis instalace...3 Nároky na hardware a software...3 Instalace a spouštní...3 Vstupní soubory

Prezentaní program PowerPoint

Michal Krátký, Miroslav Beneš

Aplikační Dokumentace Standardy ICT MPSV

Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)

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

Komponentový návrh SW

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

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

Object-oriented Analysis & Design. Requirements Analysis

Geografické informační systémy p. 1

Metodika analýzy. Příloha č. 1

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

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

7.6 Další diagramy UML

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

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

7.6 Další diagramy UML

Návrh - návrhové třídy a vzory

ORACLE MANUFACTURING SCHEDULING ORACLE HLAVNÍ PLÁNOVÁNÍ VÝROBY

Úvod do principů objektově orientovaného programování

Architektura aplikace

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

Návrh programu v Black Box Component Builderu s využitím architektury Model View Controller

MS Outlook konektor. Každý jsme hlava na nco jiného. My jsme hlavy na IT. Miloslav Záleský Patrik Šolc Jan Matuš

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

PÍRUKA A NÁVODY PRO ÚELY: - RUTINNÍ PRÁCE S DATY

Sem vložte zadání Vaší práce.

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

Projekt Kreslítko X36ASS

UML. Unified Modeling Language. Součásti UML

ZÁKLADNÍ INFORMACE O LÉB INFORMATIKY

Návrh softwarových systémů - architektura softwarových systémů

9. Může dojít k situaci, že ZP je nutno aktualizovat (změna vzhledu, změna příjmení, změna -1- dále ZP).

Usage of modular scissors in the implementation of FEM

KUSOVNÍK Zásady vyplování

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

Správa obsahu ízené dokumentace v aplikaci SPM Vema

Principy UML. Clear View Training 2005 v2.2 1

9. Kombinatorika, pravd podobnost a statistika

Redakní systém (CMS) OlomouckéWeby.cz

Neskutené skuteno. Co je virtuáln. lní realita? Virtuální realita virtuální = fiktivní, neskutený, zdánlivý realita = skutenost, pravost

CineStar Černý Most Praha

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

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

PŘÍLOHA C Požadavky na Dokumentaci

Vazba (volná, těsná) - míra znalosti jedné třídy*komponenty o druhé.

1. Integrační koncept

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

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

Základy MIDI komunikace

Architektura v organizaci

3 druhy UML diagramů

5. Metody návrhu uživatelského rozhraní

modelu MVC pro tvorbu aplikací

Transkript:

Architektura softwaru Logická architekura a UML Package Diagramy 02-2007 David Toth

Pechod od analýzy k návrhu Od specifikace požadavk (požadavky v rzných modelech a na rzných úrovních rzného typu, pro rzné typy uživatele systému) (c) David Toth 2

Architektura systému Analýza Návrh Stanovení základní podoby systému Rozlenní požadavk podle souvisejících funkcí Rozdlení systému na logické jednotky jednotky nazýváme vrstvy strukturní vzor vrstev robustnost, rozšiitelnost, udržovatelnost (c) David Toth 3

SW architektura Vytváí se na základ nefunkních požadavk UP artefakt Supplementary Specification Je popsána v SAD (SW Arch. Doc.) Klíové aspekty architektury Architekturních rozhodnutí (c) David Toth 4

(c) David Toth 5

Architektura Logická UML Package diagramy Organizace myšlenek Fyzická UML Package a Deployment diagramy Organizace fyzických souástí systému V Jav postaí pouze Package Diagramy (c) David Toth 6

Co je Logická Architektura SW? Organizace SW tíd do vyšších celk balíky, subsystémy, vrstvy Platformová nezávislost OS, HW, síové protokoly tato rozhodnutí pináležejí do fyzické architektury (c) David Toth 7

(c) David Toth 8

Co je to vrstva? Sjednocení SW tíd, podsystém, balík Shlukování prvk/element podle funkcionality Pedstavuje pohled na ást systému, která logicky souvisí (c) David Toth 9

Vrstvy nižší a vyšší Nižší vrstvy jsou blíže HW (vrstvy: Foundation, Technical Services) Vyšší vrstvy jsou blíže uživateli (vrstvy: UI, Aplikaní, Doménová) (c) David Toth 10

Základní 3 vrstvy UI Doménová konceptuální objekty Technické služby napojení do DB, logging, (c) David Toth 11

Striktn vrstvená architektura Každá vrstva smí komunikovat, resp. vidt pouze objekty z nejbližší vrstvy nižší a vyšší Návrh komunikaních protokol ISO OSI (c) David Toth 12

Relaxovaná architektura Vyšší vrstva komunikuje s nkolika vrstvami nižšími Reáln použitelný model pro návrh IS (c) David Toth 13

SW architektura Souhrn podstatných rozhodnutí o organizaci SW systému Výbr strukturních element + rozhraní Chování element popsáno interakcí Hierarchická kompozice Architekturní styl Obecn: Pohled z vyšší perspektivy (c) David Toth 14

balíek Vysoko-úrovová jednotka organizace sys UML Package je nadmnožinou Java Pack Balíek shrnuje SW tídy Další balíky Subsystémy Cokoli speciáln vylenného (c) David Toth 15

Jmenný prostor Balíek reprezentuje namespace, proto více tíd (obecn nižší element) mže mít stejné jméno, ale v rzných kontextech (balících) je od sebe bude možné odlišit Každou tídu je možné pln kvalifikovat :: Nap.: java::util::vector na rozdíl od zápisu v Jav, kde se píše java.util.vector UML Balíek se používá pro reprezentaci vrstev (c) David Toth 16

Layer pattern Rozlenit systém do ástí z vyšší perspektivy Vybrat logickou strukturu systému Nesouvisející oddlit Nižší vrstvy odpovídají nízko-úrovovým (HW) službám Vyšší vrstvy pedstavují abstrakci pijatelnou pro lovka (c) David Toth 17

Vrstvy: dobrý návrh Vrstvy propojujeme odshora dol Opanému propojení se snažíme vyhnout Existují rzné metody, jak na to (Observer) Výsledkem je vrstvená architektura Aplikace, kde nejsou vrstvy, je bu specializovaná nebo naivní (c) David Toth 18

(c) David Toth 19

Výhody vrstev Oddlení nesouvisejících ástí a pidružení souvisejících k sob Srozumitelnost Chyba je lokalizovaná, nešíí se Aplikaní logika a uživatelské rozhraní mohou být oddleny více GUI pro jednu aplikaci Vyšší znovu-využitelnost nízko-úrovových služeb: z nich se skládá aplikace stále dokola Výhodné rozdlení práce mezi vývojáe (c) David Toth 20

(c) David Toth 21

ješt k výhodám vrstev Nkterá implementace vrstvy mže být nahrazena jinou implementací Nkteré vrstvy mohou být distribuované Tvorba aplikace: Propojení vrstev nižších do vyšších abstraktních celk (c) David Toth 22

Odpovdnosti ve vrstvách Odpovdnosti prvk (objekt) ve vrstvách by mly být co nejpodobnjší V rzných vrstvách by mly být umístny objekty s rznými odpovdnostmi (c) David Toth 23

Základní architekturní principy Separation of concerns High cohesion (Low Coupling) Model-view(-controller) (c) David Toth 24

OOD: návrh SW Pokusíme se podat odpov na otázku: Jak provést pechod od analýzy k návrhu? Co je a jak má být proveden objektový návrh? Návrh by mohl být proveden tak, že by Jediná tída realizovala celou aplikaci. 2 tídy realizovaly celou aplikaci. Kolik se má tedy použít tíd a jak mají vypadat? (c) David Toth 25

Snižování sémantické mezery Vytvoit objekty se jménem podle skutené vci subjektu obsahem podle reality atributy pedstavují informaci o daném objektu tmto objektm piadit odpovdnosti na základ podstaty ešeného problému Tyto objekty budou spadat do doménové vrstvy aplikace: doménové objekty (c) David Toth 26

Doménový model a vrstva DM je shrnutí a visualisací podstatných koncept problémové domény modeluje skutenost je konceptuální perspektivou souást analytické dokumentace Dom. vrstva je souástí SW obsahuje SW tídy podle nich se vytváejí objekty DV se Inspiruje z DM (c) David Toth 27

(c) David Toth 28

Mezera v reprezentaci Na jedné stran zákazník potebuje IS pro zaznamenávání prodej Na druhé stran tento SW je pedstavován njakými napovými hodnotami, 0 a 1, kvantovými jevy, Objektová orientace mezi tmito svty vytváí most snadnji uchopitelný a rychleji realizovatelný (c) David Toth 29

Tier a Layer Tier byl díve velmi používaným a citovaným termínem pvodn byl pojímán jako logickáást SW posléze se tém výhradn stal fyzickým oznaením (pro client/server/db node) Dnes se používá Layer a v UML node V literatue o architektue SW se vtšinou používá termín tier (c) David Toth 30

Layer a partition Pojmem Layer se rozumí vertikálníást architektury SW Pojmem partition se naproti tomu vtšinou rozumí horizontálníást SW architektury To jsou paralelní podsystémy v jedné vrstv (c) David Toth 31

(c) David Toth 32

Nezobrazujte externí zdroje ve spodní vrstv logické architektury Namísto toho celý systém se svými vrstvami v UML Package diagramech zapouzdete jako komponentu a nechte ji v UML Deployment diagramu interagovat s dalšími komponentami (UML components) Použijte UML component diagramu pro fyzické rozlenní systémových ástí popis fyzické architektury systému (c) David Toth 33

(c) David Toth 34

Architekturní princip MV(C) Strukturní (architekturální) vzor Princip oddlení modelu od pohledu eší dílí otázky Jaký druh viditelnosti by mly mít balíky komunikující s UI? Jak by mly komunikovat ne-okenní tídy s oknami? (c) David Toth 35

Princip MV UI objekty a ne-ui objekty nesmí být pímo propojeny Oddlením modelu a pohledu na nj dovolíme: Vytváet nkolik pohled na jeden model (www, swing, PDA) Zmna v GUI neovlivní modelovaný problém (c) David Toth 36

UI objekty Samy nevykonávají vlastní práci Pouze delegují (žádosti) práci do modelu Slouží výhradn ke komunikaci s uživatelem Nemají vedlejší funkce: zápis do DB, (c) David Toth 37

MV: model Model je synonymem pro doménovou vrstvu, jak byla pedstavena Komunikace Model Pohled GoF vzor Observer (je vysvtlen v dalších kapitolách OOD) Pohled (View) je synonymem pro vrstvu UI UI objekty: window, frame, button, textarea (c) David Toth 38

Výhody použití vzoru MV Podpora vývoje aplikaní logiky na rozdíl od zamování se na UI, které mže být znovu-využito Model a UI mže být vyvíjen oddlen: rozhraní Minimalizuje se nutnost vyhledáváníástí kódu, které bude teba upravit pi zmn požadavk na aplikaci Pidání vzhledu, aniž by bylo nutné zasahovat do kódu aplikaní logiky Více pohled jedné aplikace runtime skin changing Podpora spuštní vrstvy modelu bez souasného používání vrstvy UI (nap. vzdálen) Snadnjší portování vrstvy modelu na odlišný uživatelský framework (c) David Toth 39

Vzor MVC: historie Smalltalk, 1980tá léta Z pvodn jednoduchého principu oddlení modelu od pohledu se vyvinul dlouho používaný návrhový vzor ve Smalltalku Ten se pak zjednodušil, zobecnil a zaal se používat jako sturkturální vzor pi použití vrstev (c) David Toth 40

SSD: souvislosti Bhem analýzy byly vytvoeny SSD (System Sequence Diagrams: Sekvenní Diagramy Systémových Operací) Vytváejí se pro vybrané scénáe nkterých uc Tím byly identifikovány vstupní události systému od externích aktér Systémové operace (c) David Toth 41

SSD: zobrazují systémové operace V SSD jsou zobrazeny externí aktéi a systém jako celek, píp. jeho nejvýznamnjší podásti V SSD je UI skryto Práv UI to bude, které bude komunikovat s uživatelem a bude jeho požadavky delegovat doménové vrstv (DV) Zprávy delegované od UI k DV budou práv ty, které jsou zobrazeny v SSD (c) David Toth 42

(c) David Toth 43

Konec Zdroje: Larman, C.: Applying UML and patterns: introduction to object-oriented analysis and design and iterative development, PTR, 2004 (c) David Toth 44