7.3 Diagramy tříd - základy



Podobné dokumenty
7.3 Diagramy tříd - základy

Diagramy tříd - základy

7.5 Diagram tříd pokročilé techniky

7.5 Diagram tříd pokročilé techniky

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

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

UML. Unified Modeling Language. Součásti UML

OOT Objektově orientované technologie

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

7 Jazyk UML (Unified Modeling Language)

7.4 Diagramy interakce (základy)

7.4 Diagramy interakce (základy)

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

Objektově orientované technologie. Daniela Szturcová

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

1. Dědičnost a polymorfismus

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

7 Jazyk UML (Unified Modeling Language)

2 Konceptuální modelování a návrh databáze

2 Konceptuální modelování a návrh databáze

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

7.6 Další diagramy UML

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

7.6 Další diagramy UML

Unifikovaný modelovací jazyk UML

Třída. Atributy. Operace

3 druhy UML diagramů

9 Strukturovaná analýza

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

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

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

Konceptuální datové modely používané při analýze

Analýza a modelování dat. Helena Palovská

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

DATOVÉ MODELOVÁNÍ ER MODEL

Základy objektové orientace I. Únor 2010

Programování v C++ 3, 3. cvičení

Tvorba informačních systémů

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

DBS Konceptuální modelování

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

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

9 Strukturovaná analýza

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

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

Principy UML. Clear View Training 2005 v2.2 1

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

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

Databázové modelování. Analýza Návrh konceptuálního schématu

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.

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

KTE / ZPE Informační technologie

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Úvod do databázových systémů 6. cvičení

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

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

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

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

Dědění, polymorfismus

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

Objekty, třídy, vazby 2006 UOMO 30

Úvod do programovacích jazyků (Java)

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

20. Projekt Domácí mediotéka

Úvod do programovacích jazyků (Java)

1. Programování proti rozhraní

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

Tvorba informačních systémů

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

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

Výčtový typ strana 67

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

SW_02. Diagram případu užití Use Case Diagram

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

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

PŘETĚŽOVÁNÍ OPERÁTORŮ

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

IRAE 07/08 Přednáška č. 1

2. Konceptuální model dat, E-R konceptuální model

Funkční schéma Datové schéma Integrita modelu s realitou

Programování v C++ 2, 4. cvičení

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

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

Modelování IS Strukturovaný a objektově orientovaný přístup (UML)

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

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

Abstraktní datové typy: zásobník

typová konverze typová inference

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

Unifikovaný modelovací jazyk UML 1

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

Viditelnost (práva přístupu) Tomáš Pitner, upravil Marek Šabo

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

Objektově orientovaný přístup

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Kolaborativní aplikace

Diagram výskytů a vztahů

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Databázové systémy. Ing. Radek Holý

Transkript:

7.3 Diagramy tříd - základy - popisuje typy objektů a statické vztahy mezi nimi Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý' then Objednávka.předplacena musí být 'true'} Generalizace Omezení Zákazník -jméno -adresa +charakteristika(): String Agregace Atributy Operace Smluvní zákazník -jménokontaktu -charakteristika -limit +pošlinabídku() +pošliměsíčníúčet(integer) Individuální zákazník -číslokarty {charakteristika() vrací 'nejistý'} Položka objednávky -množství: Integer -cena: Money -uspokojena: Boolean Jméno Násobnost týká se Asociace Role objednané zboží 0.. prodejce Zaměstnanec Produkt Třída J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) Tři pohledy na systém při použití diagramu tříd Konceptuální koncepty aplikační domény, bez vztahu k implementaci, jazykově nezávislá. Specifikační pohled na program, specifikace rozhraní bez specifikace implementace. Implementační je vidět implementace - hranice nejsou ostré, UML podporuje všechny tři pohledy Asociace - reprezentuje statické vztahy (spojení) mezi instancemi tříd Př) Položka objednávky - Produkt - Konceptuální pohled - reprezentuje konceptuální vztah mezi třídami - vlastnosti asociace stupeň asociace binární (včetně reflexivní), ternární, zakončení (role) - jméno role - násobnost (kardinalita) dolní a horní mez počtu objektů, které mohou být ve vztahu daného typu s jedním objektem protější J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 22

třídy nejčastější případy:, 0.., (0..nekonečno, M (many)), obecně seznam celých čísel a rozsahů Př) Student navštěvuje Předmět garantuje Ústav - Specifikační pohled - reprezentuje zodpovědnost (za dostupnost informace) Př) Co navštěvuje daný student, kdo navštěvuje daný předmět, kdo garantuje předmět - existují-li konvence pro pojmenování takových operací, lze usoudit, jak bude vypadat rozhraní Př) class Predmet { public Set getstudent(); public Ustav getustav(); - rovněž zodpovědnost za aktualizaci vztahu Př) Zápis studenta do předmětu, zrušení registrace - zodpovědnost neimplikuje datovou strukturu pro implementaci (jen rozhraní) Př) ukazatel, OID, množina ukazatelů, množina OID, dotazovací funkce, J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 33 - Implementační pohled vidí implementaci Př) class Predmet { private Set Studenti; class Student { private Set Predmety; - asociace může být orientovaná - ukazuje navigovatelnost (jednosměrná/obousměrná asociace) Př) viz další strana - význam pro specifikační (zodpovědnost) a implementační diagramy - podle UML neorientovaná asociace znamená buď obousměrnou nebo nerozhodnutá potřeba dohodnout význam - omezení plynoucí z obousměrné asociace (dvě inverzní navigace) - pojmenování asociací: sloveso jméno role J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 44

- není nutné pojmenovávat vždy (srozumitelnost), zavedení konvencí (jméno role je jméno třídy) - asociace je statickým vztahem (existuje po celou dobu života objektů), zasílání zpráv a závislost se modelují jiným způsobem Objednávka -datumpřijetí -předplacena -číslo -cena +vyřiď() +uzavři() {if Objednávka.zákazník.charakteristika = 'nejistý' then Objednávka.předplacena musí být 'true'} -jméno -adresa Zákazník +charakteristika(): String Položka objednávky -množství: Integer -cena: Money -uspokojena: Boolean Smluvní zákazník -jménokontaktu -charakteristika -limit +pošlinabídku() +pošliměsíčníúčet(integer) objednané zboží 0.. Zaměstnanec Produkt Individuální zákazník -číslokarty {charakteristika() vrací 'nejistý'} J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 55 Atributy - vlastnost, jejíž hodnotu objekt nese Př) Student - jméno - Konceptuální pohled student má jméno - Specifikační pohled objekt třídy Student má přístupnou hodnotu jména - Implementační pohled každý objekt třídy student má pole (instanční proměnná, datový člen) pro uložení jména - syntax podle UML (v závislosti na míře detailů): viditelnost jméno: typ = implicitní_hodnota - rozdíl mezi asociací a atributem? - konceptuální různá notace pro totéž - specifikační a implementační atribut v sobě zahrnuje navigaci, kopie objektu hodnota, ne reference Operace - procesy, které umí třída provádět - syntax podle UML (v závislosti na míře detailů): viditelnost jméno (parametry): návrat_hodnoty - viditelnost: public (+), protected (#), private (-), případně další J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 66

- parametry: seznam směr jméno: typ = implicitní_hodnota - návrat_hodnoty: seznam návratových hodnot (zpravidla jedna) - Typy operací: - dotaz, zpřístupňující (getting) nemění stav - modifikátor, nastavující (setting) může měnit stav - vztah operace metoda (vlastní terminologie programovacích jazyků (C++: členská funkce) - operace a atributy třídy (class scope) - podtržené x : Integer y : Integer znacka : Ikona Bod pozicex() : Integer pozicey() : Integer posun(dx : Integer, dy : Integer) J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 77 Generalizace - třídy s řadou společných vlastností a některými odlišnými zobecňující třída Př) Smluvní zákazník, Individuální zákazník Zákazník - Konceptuální pohled: všechny instance podtypu jsou také instancemi nadtypu (s danými atributy, operacemi, asociacemi). - Specifikační pohled: rozhraní podtypu musí zahrnovat všechny prvky rozhraní nadtypu. Princip nahraditelnosti (substituability): všude, kde se počítá s objektem nadtypu, lze použít objekt podtypu (není třeba si dělat starosti s rozdíly rozhraní je stejné). - Implementační pohled: souvisí s dědičností v programovacích jazycích - podtřída dědí všechny metody a pole atributů, metody může předefinovat. Omezení (constraint) - důležitá úloha diagramu - řada omezení vyjádřena prvky diagramu (asociace násobnost, atribut podtypu odlišnost) - notace pro obecná omezení v UML: {popis_omezení} J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 88

- slovní popis, formule, OCL, Kdy použít diagramy tříd? - základ většiny OO metod - problém bohatosti výrazových prostředků Tipy: - nesnažit se použít veškerou dostupnou notaci - přizpůsobit pohled etapě projektu: analýza: konceptuální pohled návrh: specifikační + implementační - koncentrovat se na klíčové oblasti, raději méně aktuálních diagramů - nezabřednout brzy do implementačních detailů J. Zendulka: Projektování programových systémů - - 7 Jazyk UML (Unified Modeling Language) 99