OOT Objektově orientované technologie

Podobné dokumenty
Objektově orientované technologie Logická struktura systému Objektový diagram. Pavel Děrgel, Daniela Szturcová

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

3 druhy UML diagramů

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

OOT Objektově orientované technologie

Objektově orientované technologie. Daniela Szturcová

OOT Objektově orientované technologie

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

7.3 Diagramy tříd - základy

7.3 Diagramy tříd - základy

1. Dědičnost a polymorfismus

Diagramy tříd - základy

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

Principy UML. Clear View Training 2005 v2.2 1

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

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

Objekty, třídy, vazby 2006 UOMO 30

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

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

Tvorba informačních systémů

7.5 Diagram tříd pokročilé techniky

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

Objektově orientované technologie Dynamický náhled Stavový diagram. Pavel Děrgel, Daniela Ďuráková

Diagram tříd (class diagram)

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

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

7.5 Diagram tříd pokročilé techniky

Objektově orientovaný přístup

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

Úvod do softwarového inženýrství IUS 2009/2010 p.1/42

Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit (entitní množiny) Atributy

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

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

Třída. Atributy. Operace

DBS Konceptuální modelování

Unifikovaný modelovací jazyk UML

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

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

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

EXTRAKT z české technické normy

7 Jazyk UML (Unified Modeling Language)

OOT Objektově orientované technologie

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

OOT Objektově orientované technologie

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

Tvorba informačních systémů

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 Jazyk UML (Unified Modeling Language)

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

UML. Unified Modeling Language. Součásti UML

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Analýza. Pracovní postup Analýza

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

RELACE, OPERACE. Relace

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

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

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Databázové systémy. Vztahy a relace. 3.přednáška

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Základy objektové orientace I. Únor 2010

Výčtový typ strana 67

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

Diagramy chovaní jazyka UML

Programování II. Dědičnost změna chování 2018/19

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

IS pro podporu BOZP na FIT ČVUT

Dědičnost. seskupování tříd do hierarchie. potomek získá všechny vlastnosti a metody. provádí se pomocí dvojtečky za názvem třídy.

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

Matematika I (KMI/PMATE)

Programování II. Úvod do dědičnosti 2018/19

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

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

UML diagram tříd - hledání analytických tříd, relací, atributů. Martin Komárek

EXTRAKT z české technické normy

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

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

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

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

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

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

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

Karta předmětu prezenční studium

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

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

EXTRAKT z mezinárodní normy

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

Deskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157

Business Process Modeling Notation

Objektově orientované technologie. Daniela Szturcová

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

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

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

Jiří Mašek BIVŠ V Pra r ha

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

Informační systém pro podporu organizace dětských táborů

State. Známý jako. Účel. Použitelnost. Stav, Object for States. umožňuje objektu měnit svoje chování v závislosti na stavu objekt mění svou třídu

Transkript:

OOT Objektově orientované technologie Logická struktura systému (Diagram tříd) Daniela Szturcová Institut geoinformatiky, HGF

Osnova Třídy Statický pohled na systém Atributy a operace, řízení přístupu Vazby mezi třídami

Definice třídy Třída je popis množiny objektů mající společnou strukturu, chování, vztahy a sémantiku [Vondrák 2004]. Objektům vytvořeným podle tohoto popisu (šablony) se říká instance. Vždy platí, že objekt může být instancí maximálně jedné třídy. Třída je jakási šablona pro tvorbu objektů.

Třída filosoficky Třídu můžeme definovat extenzivně, nebo intenzivně Výčtem vlastností (extenzivně). Výčtem objektů (intenzivně). Například: třídu všech koček můžeme definovat buď pomocí vlastností savec, 4 nohy, mňouká, hodně spí, atd..., nebo tak, že vyjmenujeme všechny kočky Míca, Mourek, Zrzek, Májový,...

Třídní diagram Popisuje typy objektů a vazby mezi nimi. Zachycuje: vlastnosti třídy, operace třídy, } feature omezení plynoucí ze vztahů.

Třída grafický zápis Třída se zakresluje obdélníkem s třemi oblastmi název třídy, seznam atributů, seznam operací (metod).

Jak vypadá třída? Název třídy Atributy Operace

Název třídy Je důležitý pro pochopení smyslu třídy. Obvykle se vyjadřuje podstatným jménem (Místo, Událost, Zaměstnanec atd.). Nikdy se nesnažíme do názvu vpašovat vlastnosti třídy: ZaměstnanecNaPůlÚvazku, PropuštěnýZaměstnanec - to jsou většinou atributy. Rovněž se vyhýbáme názvům, které reprezentují nějaké činnosti: Jízda, Pohyb, AktualizaceÚčtu to vyjadřujeme operacemi.

Atributy vlastnosti třídy Popisují informace o třídě. Plná syntaxe: [viditelnost][/] název [:typ][násobnost]

Viditelnost atributů Existují 4 základní typy viditelnosti: soukromé atribut je viditelný pouze pro členy téže třídy (mohou ho využívat jen operace dané třídy). veřejné atribut je viditelný v rámci celého systému. chráněné atribut je viditelný v rámci téže třídy a všech potomků. v rámci balíčku viditelný v rámci jednoho balíčku tříd.

Viditelnost (atributů, metod) Viditelnost Symbol Soukromý - Veřejný + Chráněný # V rámci balíčku ~

Zachycení vlastností

Operace Definují chování a služby, které objekt poskytuje. Operace poskytuje všechny informace potřebné ke spuštění daného chování. Implementace operace (která se nemodeluje diagramem tříd) se nazývá metoda. (Tyto pojmy se často zaměňují).

Operace syntaxe Syntaxe: [viditelnost] název ([seznam_parametrů]) ':' [návratová hodnota] Příklady: +sečti(int a, int b) : int -zvyšpočetčlenůfk() +zjistizustatek(): double Popis operace (název, parametry, návratová hodnota atd.) se nazývá signatura.

Viditelnost operací Typy viditelnosti operací jsou stejné jako u atributů a vztahují se na ně stejná pravidla: veřejné soukromé chráněné viditelné v rámci balíčku

Příklad třídy Název třídy se obvykle zapisuje s velkým počátečním písmenem. Doporučeno užívat CamelCase přístup. Atributy i metody začínají malým písmenem. camelcase označení

Vztahy mezi třídami Asociace definuje, v jakém vzájemném vztahu se nacházejí dvě třídy. Generalizace zobecnění. Třídy s podobnými vlastnostmi je možné zobecnit a vytvořit nadtřídu (rodičovskou třídu). Závislost určuje vztah, kdy třídy jsou na sobě závislé a změna v jedné třídě způsobí změnu ve druhé. Může také vyjadřovat dočasný vztah mezi třídami (jedna třída využije funkci druhé).

Účel asociace Smyslem asociace je popsat důvod, proč dvě třídy (objekty) musí o sobě vzájemně vědět. Asociace rovněž popisuje typ vztahu mezi třídami.

Modelování asociací Prvním krokem je identifikace tříd, které jsou vůči sobě v nějakém vztahu. binární asociace vztah se týká pouze dvou tříd. n-ární asociace vztah se může týkat několika tříd.

Názvy asociací Názvy asociací jsou velmi důležité, mohou ovlivňovat sémantický význam vazby. Obvykle je názvem nějaké sloveso, nebo slovesné spojení. Může mít směr (označuje se šipkou).

Názvy asociací Pokud je mezi dvěma třídami více typů vztahu, je nutné výstižně pojmenovat každý z nich.

Role Účelem rolí je vysvětlit, význam objektu v daném vztahu. Důležité pro generování kódu.

Násobnost asociací Násobnost asociací popisuje počet objektů, které se mohou této asociace účastnit.

Reflexivní asociace Asociace mezi objekty téže třídy. Příklad k rozmyšlení rodinné vztahy mezi Osobami téže třídy.

Obousměrná asociace Jedná se o inverzní vztah, tedy jde o obousměrnou vlastnost. < >

Asociační třída Nepopisuje pouze vztah mezi dvěma třídami, ale navíc i vlastnosti tohoto vztahu (např. kdy končí platnost asociace?, kdy začala? Podmínky platnosti asociace? atd.). Je to běžná třída, může být propojena s dalšími třídami.

N-ární asociace Modeluje vztah, do kterého vstupuje více než dvě třídy. Většinou je přehlednější použít několik binárních asociací.

Agregace Speciální typ asociace. Modeluje hierarchický vztah, kdy jeden objekt objekt se skládá z jiných objektů (Celek komponenty). Celek funguje jako jeden objekt. Komponenty mohou existovat samostatně (slabé spojení).

Kompozice Speciální typ agregace. Komponenta může být součástí pouze jednoho celku. Komponenta nemůže existovat samostatně mimo celek (pevné spojení).

Generalizace Generalizace (zobecnění) je proces sdružování množin objektů podle podobných vlastností nebo účelu (opak je specializace). Například jablka, hrušky a švestky je možné generalizovat a říkat jim Ovoce. Naopak speciálním typem Ovoce jsou jablka, hrušky, švestky apod.

Generalizace Hierarchie může mít libovolné množství úrovní (do hloubky i do šířky).

Generalizace Generalizace není asociace. Není nutné popisovat role, násobnosti, omezení apod. Každý potomek může mít pouze jednoho rodiče (rodič může mít více potomků).

Příklady

Rozhraní Je seznam operací, které definují chování tříd implementujících toto chování. Nelze vytvořit instanci rozhraní. Třída, která implementuje rozhraní musí obsahovat implementaci definovaných metod. Tento princip umožňuje systému pracovat s rozhraním nezávisle na implementaci třídy.

Rozhraní

Použité zdroje Tom Pender.: UML Bible Jim Arlow, Ila Neustadt.: UML2 a unifikovaný proces vývoje aplikací. Fowler, M: Destilované UML přednášky P. Děrgela

Děkuji za pozornost