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

Podobné dokumenty
7.5 Diagram tříd pokročilé techniky

7.5 Diagram tříd pokročilé techniky

7.6 Další diagramy UML

7.6 Další diagramy UML

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

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

Objekty, třídy, vazby 2006 UOMO 30

7 Jazyk UML (Unified Modeling Language)

Principy UML. Clear View Training 2005 v2.2 1

7 Jazyk UML (Unified Modeling Language)

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

UML. Unified Modeling Language. Součásti UML

OOT Objektově orientované technologie

Unifikovaný modelovací jazyk UML

1. Dědičnost a polymorfismus

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

7.3 Diagramy tříd - základy

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í.

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

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

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

PŘÍLOHA C Požadavky na Dokumentaci

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux.

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

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

3 druhy UML diagramů

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

7.3 Diagramy tříd - základy

Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

Diagramy tříd - základy

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

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

Základní informace. Modelování. Notace

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

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

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

Metody popisu systému, základy UML

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

Business Process Modeling Notation

Třída. Atributy. Operace

Diagram tříd (class diagram)

Analýza. Pracovní postup Analýza

Softwarové komponenty a Internet

Základy objektové orientace I. Únor 2010

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

Jazyk UML Unified Modeling Language

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

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

Analýza a Návrh. Analýza

Jazyk UML VST (Velmi stručný tutorial) verze 1.0

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

Základy analýzy. autor. Jan Novotný února 2007

7.2 Model použití (jednání) (Use Case)

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

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

11 Diagram tříd, asociace, dědičnost, abstraktní třídy

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky

OOT Objektově orientované technologie

OOT Objektově orientované technologie

Tvorba informačních systémů

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

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

PB161 Programování v jazyce C++ Přednáška 7

Obsah. Zpracoval:

PB161 Programování v jazyce C++ Přednáška 7

Kurz Postupy návrhu IS pomocí UML a OOP (5 dnů, in-house)

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Modelování požadavků

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

7.2 Model použití (jednání) (Use Case)

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

KTE / ZPE Informační technologie

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

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

Problémové domény a jejich charakteristiky

Analýza problémové domény

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

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

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

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

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

DBS Konceptuální modelování

Úvod do MS Access. Modelování v řízení. Ing. Petr Kalčev

Modelování procesů (1) Procesní řízení 1

Roční periodická zpráva projektu

UML: Unified Modeling Language

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

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

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

A7B36SI2 - Řízení SW projektů. Smart-Fine. Systém evidence parkovacích lístků pomocí chytrých telefonů. Analýza (v. 3)

Dalším příkladem může být například výstup dat na různá zařízení, souborů, grafických rozhraní, sítě atd.

PV207. Business Process Management

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

Dolování v objektových datech. Ivana Rudolfová

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

Modelování procesů (2) Procesní řízení 1

Transkript:

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

Využití jazyka UML při vývoji IS na příkladu jednoduché aplikace pro evidenci knih Model IS Modelování případů užití Diagram případů užití Modelování procesní struktury Diagram aktivit Modelování logické struktury Diagram tříd

Techniky pro modelování IS a systémů Při tvorbě systému se používá široké spektrum technik pro různé fáze životního cyklu vývoje: od čistě formálních (např. Petriho sítí), jejichž cílem je jednoznačnost a úplnost, přes poloformální techniky (např. jazyk UML - standardní jazyk pro zobrazení, specifikaci, konstrukci a dokumentaci prvků systémů nejčastěji se softwarovou charakteristikou), až po neformální techniky (textový popis).

Model IS Model je abstrakce reálné věci Model je zjednodušení reality Potřebujeme jazyk pro popis modelu Modelovací jazyk: kód programovacího jazyka, obrázky, diagramy, dlouhé textové popisy, cokoliv, co pomůže popsat systém

Modelovací jazyk a meta-model jazyka Notace: prvky, které tvoří modelovací jazyk Sémantika modelovacího jazyka: Popis, co znamená notace Meta-model jazyka: Obsahuje kompletní sémantiku jazyka

UML Unified Modeling Language Výhody: Formální jazyk každý prvek má přesný význam (přesná notace) Stručný jednoduchá grafická notace Obsažný popisuje všechny důležité aspekty systému Škálovatelný Vytvořen na základě zkušeností Standard verze 2.0

Modelem řízená architektura (MDA Model-Driven Architecture) vývoje IS UML může být základem vývoje IS řízeného modelem: Na základě modelu je generován systém Snaha o efektivní vývoj Upřednostňována definice modelu IS (v UML) před specifikací algoritmů Algoritmy standardní (parametrizovány) Model-driven engineering

Pohledy na model IS Logický Procesní Případy užití (požadavky) Fyzický Vývojový

Pohledy na model IS Případy užití (Use Case): Funkcionalita systému z vnějšího pohledu Případ užití uživatelský příběh (User Story) Logický pohled: Abstraktní popis částí systému objekty, třídy objektů Procesní pohled: Diagramy aktivity Fyzický pohled: Diagramy nasazení Vývojový pohled: Diagramy komponent

Diagram případů užití Systém pro evidenci knih Vypůjčit knihu Knihovník

Diagram případů užití Aktor (Actor herec): Modeluje okolí systému Aktor: 1. osoba interagující se systémem 2. nebo něco, co nelze ovlivnit v návrhu systému << actor>> Knihovník Knihovník

Vztahy mezi případy užití Zahrnutí případu užití (<<include>>) Specializace případu užití Rozšíření případu užití (<<extend>>)

Vložení případu užití <<include>> Strukturování případů užití do samostatných částí Include = obsahovat, zahrnovat Podpora opakovaně použitelného kódu V programovacích jazycích jsou podprogramy nebo v některých (jazyk C) funkce

Použití <<include>> Aplikace pro správu interní knihovny Vložit novou knihu <<include>> Zkontrolovat identitu Knihovník Vyřadit knihu <<include>>

Detailní popis případu užití Název případu užití Vazba na požadavky K.1 Cíl (v kontextu) Předpoklady Úspěšný koncový stav Neúspěšný koncový stav Primární aktor Sekundární aktor Start Vložit nového čtenáře Knihovník vytváří záznam nového čtenáře Knihovník je identifikován a autorizován pro vkládání záznamů Záznam nového čtenáře je vytvořen Záznam čtenáře již existuje Knihovník Není Čtenář, který dosud nemá záznam v seznamu čtenářů, si chce vypůjčit knihu

Specializace případu užití Aplikace pro správu interní knihovny Vložit novou knihu Vložit tištěnou knihu Vložit e-knihu Knihovník

Specializace případu užití Vložit knihu Vložení všech údajů společných tištěným knihám i e- knihám Vložit tištěnou knihu Vložit údaj, zda se jedná o brožovanou nebo vázanou knihu Vložit e-knihu Vložit údaj o formátu e-knihy (PDF, epub, AmazonKindle, Nook, )

Rozšíření případu užití <<extend>> Aplikace pro správu interní knihovny Vložit novou knihu <<extend>> Ohlásit chybu v evidenci knih Knihovník Vyřadit knihu <<extend>> Ohlásit chybu v evidenci knih: Vkládaná kniha už existuje nebo vyřazovaná kniha neexistuje

Rozšíření případu užití <<extend>> Obohacení případu užití o chování jiného případu užití, které nenastane vždy Na rozdíl od rozšíření <<extend>> zahrnutí <<include>> nastává vždy

Příklad diagramu případů užití Systém pro evidenci knih Vložit novou knihu <<include>> Knihovník Vyřadit knihu <<include>> Odeslat upomínku emailem Zkontrolovat identitu <<include>> Čtenář Najít knihu v evidenci

Pohledy na model IS Logický Procesní Případy užití (požadavky) Fyzický Vývojový

Procesní pohled: Diagram aktivity Případy užití specifikují CO má systém dělat Diagram aktivity specifikuje JAK to dělá

Diagram aktivity Diagram aktivity se zvláště hodí pro modelování podnikových procesů (Business Processes) Diagramy aktivit využívají nástroje pro BPM (Business Processes Management) Diagram aktivity vychází z: vývojových diagramů, diagramu datových toků a Petriho sítí

Diagram aktivity případu užití Rozhodnutí Vložit název knihy [kniha neexistuje] Počáteční uzel diagramu aktivity [kniha už existuje] Poznám ka Vložit autora a další údaje o knize Odmítnout vložit knihu Akce Hrana Spojen í Koncový uzel diagramu aktivity

Základní prvky diagramu aktivity Počáteční uzel (Initial node) Koncový uzel (Final node) Nestandardní konec

Základní prvky diagramu aktivity Vložit název knihy Akce (Action) Rozhodnutí (Decision) nebo spojení (Merge) Hrana (Edge) Poznám ka Poznámka

Akce a aktivity Aktivita: obvykle odpovídá případu užití Akce: Aktivní kroky v procesu aktivity

Více aktivit v jednom diagramu Jméno aktivity Rámec aktivity Umýt auto Šamponov at Kartáčovat Sprchovat Sušit Akce

Rozhodnutí (Decision) a sloučení (Merge) Výstupní hrany Vstupní hrana [kniha už existuje] [kniha neexistuje] Hlídací (guard) podmínky

Rozhodnutí a sloučení Rozhodnutí (Decision) [PočetAutorů=0] Sloučení (Merge) [PočetAutorů=1] Vložit jednoho autora [PočetAutorů>1] Vložit víc autorů

Paralelní akce Větvení (Fork) a spojení (Join) Větvení (Fork) Spojení (Join) Výměna kol Doplnění paliva

Časové události Časová událost Odeslat zboží Čekat 3 dny Fakturova t

Vstup do a výstup z aktivity Vstup do aktivity Výstup z aktivity Umýt auto Špinavé auto Šamponova t Kartáčova t Sprchovat Sušit Čisté auto

Pohledy na model IS Logický Procesní Případy užití (požadavky) Fyzický Vývojový

Modelování logické struktury Případy užití popisují: chování systému jako množinu aktivit Třídy (Classes) popisují: typy objektů, které jsou potřebné k tomu, aby systém byl schopen vykonávat tyto aktivity

Třídy a objekty Objekt: kombinuje data a funkce do jediné soudržné jednotky ukrývá svoje data za vrstvu funkcí Objekt má: Stav: hodnoty atributů Chování: operace, které popisují chování objektu implementace (realizace) operace se nazývá metoda metody zpravidla mění stav (atributy) objektu Identitu objektu

Třídy a objekty Třídy Zapouzdření (Encapsulation) Objekt jako černá skříňka, která s okolím komunikuje prostřednictvím metod Snadno lze změnit chování třídy a nemá to vliv na okolí

Třídy a objekty

Třídy a objekty Objekt: Třída Osobní automobil typ: Škoda Octavia barva: červená RZ: 4J0 3695 Osobní automobil Popisuje atributy (typ, barva,rz) a chování všech osobních automobilů

Diagramy tříd (Classes) Možnosti zobrazení třídy v UML Jméno třídy Jméno třídy Jméno třídy Jméno třídy Atribut Atribut Atribut Atribut Atribut Atribut Operace Operace Operace Operace

Viditelnost atributů a operací Znak před atribute m nebo operací Viditelno st Viditelno st anglicky Atribut nebo operace jsou viditelné pro: + veřejný Public všechny třídy # chráněný Protected třídu, kde je deklarován, a třídy, které dědí z této třídy ~ - balíčková Package všechny třídy z balíčku privátní Private jen třída, kde je deklarován

Atributy třídy Datové položky, které reprezentují stav objektu Inline atributy Viditelnost Kniha +nazevknihy: String -cena: Currency Atribut formou asociace 1 * +autori 1 1 +vydavatel Autor Vydavatel Jméno atributu Typ atributu

Atributy třídy: asociace tříd Asociaci je možno kvůli přehlednosti řešit i takto Kniha +nazevknihy: String +autori: Autor +vydavatel: Vydavatel -cena: Currency

Atributy třídy Jména: neobsahují české znaky Jména tříd: Např. začíná velkým písmenem Jméno atributu: Např. začíná malým písmenem, další slova začínají velkým písmenem Typ atributu: Např. String, Integer, Float, Boolean, Char, Currency (měna) inspirace z konkrétního jazyka, který se bude používat (Java, C++, Objective C)

Chování třídy: operace Operace Kniha +nazevknihy: String +autori: Autor +vydavatel: Vydavatel -cena: Currency +vlozitknihu(nazev:string, autor: Autor, vydavatel: Vydavatel) : Kniha +najitknihu(nazev: String): Kniha +vyraditknihu(): void

Parametry a výsledek operace +najitknihu(nazev: String): Kniha Jméno operace Jméno parametru Typ parametru Typ výsledku +vlozitknihu(nazev:string, autor: Autor, vydavatel: Vydavatel) : Kniha +vyraditknihu(): void Více parametrů Typ výsledku - prázdný

Vztahy mezi třídami Závislost (Dependency) Asociace (Association) Agregace (Aggregation) Kompozice (Composition) Generalizace/Dědičnost (Generalization/Inheritance)

Závislost Třída potřebuje jinou třídu pro svoji činnost Nejslabší vazba mezi třídami Šipka znázorňující závislost UzivatelskeRozhran i Kniha Aby bylo možno zobrazit objekt Kniha prostřednictvím uživatelského rozhraní, musí toto rozhraní rozumět třídě Kniha

Asociace Třída obsahuje odkaz na objekt jiné (asociované) třídy Asociační čára Jméno asociace (nepovinně) Kniha +nazevknihy: String -cena: Currency 1 má * +autori Autor

Agregace Silnější vazba než asociace Třída vlastní a může sdílet objekty jiné třídy Agregační diamant Knihovna -knihy vlastní 1 * Kniha

Kompozice Silnější vazba než agregace Objekt třídy se skládá z objektů tříd, které tvoří kompozici a nemají samostatně smysl Kompoziční diamant ObsahKnihy 1 1 Uvod 1 * Kapitola 1 1 Rejstrik

Generalizace (Dědičnost) Vztah vyjadřuje, že třída je typem jiné třídy Kniha Obecnější třída (rodičovská třída) TistenaKniha EKniha Šipka generaliza ce Konkrétnější třída (dětská třída)

Generalizace a dědění atributů a metod Dětská třída dědí a znovu používá všechny atributy a metody rodičovské třídy, které jsou pro ni viditelné viditelnost Public, Protected a Package, pokud je definována ve stejném balíčku Dětská třída samozřejmě obsahuje další atributy a metody

Násobná dědičnost (Multiple inheritance) Dětská třída může dědit atributy a metody od více rodičovských tříd SouborOS Kniha Rodičovské třídy EKniha Dětská třída