Objekty, třídy, vazby 2006 UOMO 30

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

1. Dědičnost a polymorfismus

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

OOT Objektově orientované technologie

7.5 Diagram tříd pokročilé techniky

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

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

7.5 Diagram tříd pokročilé techniky

Základy objektové orientace I. Únor 2010

Objektové programování

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

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

Objektově orientovaný přístup

Principy UML. Clear View Training 2005 v2.2 1

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

DATOVÉ MODELOVÁNÍ ER MODEL

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

7.3 Diagramy tříd - základy

Objektově orientované technologie. Daniela Szturcová

7 Jazyk UML (Unified Modeling Language)

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

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

Tvorba informačních systémů

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

7 Jazyk UML (Unified Modeling Language)

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

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

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

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

Unifikovaný modelovací jazyk UML

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

Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Sada 1 - Základy programování

DBS Konceptuální modelování

Programování II. Návrh programu II

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19

Třída. Atributy. Operace

Programování II. Modularita 2017/18

3 druhy UML diagramů

7.3 Diagramy tříd - základy

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

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

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

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

UML. Unified Modeling Language. Součásti UML

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

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

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

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

Diagramy tříd - základy

Návrhové vzory OMO, LS 2014/2015

Metody popisu systému, základy UML

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

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

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

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

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

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

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

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

Diagram tříd (class diagram)

Java/QE Akademie - Osnova

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

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

Problém identity instancí asociačních tříd

OOT Objektově orientované technologie

Programovací techniky

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

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

PŘIJÍMACÍ TEST z informatiky a matematiky pro navazující magisterské studium Fakulta informatiky a managementu Univerzity Hradec Králové

GIS Geografické informační systémy

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

Usage of modular scissors in the implementation of FEM

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

OOT Objektově orientované technologie

EXTRAKT z technické specifikace ISO

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

Příloha: Dodatečné informace, včetně přesného znění žádosti dodavatele o dodatečné informace

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

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

Kolaborativní aplikace

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

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

Tvorba informačních systémů

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

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

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

2. přednáška z předmětu GIS1 Data a datové modely

OOT Objektově orientované technologie

Objektově orientované programování v jazyce Python

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

EXTRAKT z mezinárodní normy

Architektura softwarových systémů

POPIS STANDARDU CEN TC278/WG12. draft prenv ISO TICS AVI/AEI architektura a terminologie intermodální dopravy zboží. 1 z 5

Teoretické minimum z PJV

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

GIS Geografické informační systémy

Programovací techniky

Transkript:

Objekty, třídy, vazby 2006 UOMO 30

Osnova Vymezení pojmu objekt Objekt a základní objektové koncepty Třídy, třída vs. objekt Vztahy mezi objekty, vazby mezi třídami Polymorfismus 2006 UOMO 31

Vymezení pojmu objekt Data s metodami Objekt je něco, co lze zřetelně identifikovat (Coleman et al.) Objekt je charakteristický množinou operací a stavem, který si pamatuje působení operací (Jacobson) Objekt má stav, chování a identitu (Booch) Jednoznačně identifikovatelná, zřetelně ohraničená, smyslově vnímatelná část reality nebo myšlenkově manipulovatelná část našeho vědomí, která tvoří v jistém smyslu a pro daný účel ucelenou množinu charakteristik stavu a chování a vyznačuje se vlastní existencí v čase. 2006 UOMO 32

Objekty Člověk vnímá okolní svět jako objekty Objekt je vždy v nějakém stavu stav se Vyznačují se stavem a chováním Stav je dán vlastnostmi resp. hodnotami jednotlivých vlastností (věk:26, váha:56) Chování je dáno tím co objekt dělá resp. jak přechází z jednoho stavu do druhého resp. jak mění hodnoty svých vlastností v čase (běží, jde, jí) Každý objekt má svou identitu a je jedinečný (Jan Novák, toto auto, atd.) All objects are created unequal (Thomas Kühne) 2006 UOMO 33

Vlastnosti Charakteristika struktury (StructuralFeature) Pojmenovávají vztah objektu a hodnoty nebo objektu a kolekce hodnot Vlastnost je abstrakcí konkrétní podoby stavu nebo hodnoty, jejíž identita nás nezajímá konkrétní stav: 21 let - > abstrakce daného stavu tj. vlastnost: věk Vlastnost se podílí na identitě a jednoznačnosti objektu, se kterým je spojena 2006 UOMO 34

Operace Charakteristiky chování (BehavioralFeature) popisují určitý aspekt chování objektu Nenáhodná posloupnost změn stavu objektu vyvolaná na základě zaslané zprávy resp. požadavku Operace deklarují na jaké požadavky umí objekt reagovat Metoda konkrétní způsob provedení operace; operace deklaruje co se bude dít (analytický koncept); metoda specifikuje jak se to bude dít (návrhový koncept) 2006 UOMO 35

Základní objektové koncepty Abstrakce Zapouzdření Dědičnost Polymorfizmus Komunikace (zasílání zpráv) Asociace Agregace (a kompozice) 2006 UOMO 36

Abstrakce = Separování důležitých rysů entity od těch nedůležitých v závislosti na kontextu modelování Příklad: Kalkulačka z hlediska studenta Významné rysy: Rozsah a přesnost čísel Počet a typ operací Zda se dá maskovat při písemce Nevýznamné: Počet součástek na systémové desce Typ procesoru kalkulačky Algoritmy početních operací 2006 UOMO 37

Zapouzdření (Encapsulation) = data a operace objektu tvoří nedělitelný celek. Data (vlastnosti, stav) objektu a operace se přímo ovlivňují a jsou na sobě závislé. Řada rysů objektu je před okolím ukrytá (skrývání informací) vede ke zjednodušení z pohledu okolních objektů Zajišťuje konsistenci objektů objekty se nedostávají do stavů, které neodpovídají realitě 2006 UOMO 38

Skrývání informací Každý objekt může mít privátní elementy, které nelze pozorovat či přímo ovlivňovat z okolí objektu (Information hiding). Tyto elementy jsou ukryty za tzv. veřejným rozhraním objektu, kterým mohou být nepřímo zprostředkovány okolnímu světu. Dle objektového paradigmatu by měly být atributy privátní (zapouzdřené a z okolí nepřístupné). 2006 UOMO 39

Identifikace objektů Přemýšlíme o zkoumané oblasti Zapisujeme si důležité poznatky a postupy. Podstatná jména pak mohou představovat objekty, které se v problému vyskytují Slovesa označují operace (chování) každého takového objektu Objekty, které nemají z hlediska řešení problematiky zásadní význam, vyřadíme. Identifikovaným objektům přiřadíme atributy definující jejich stav (jméno, rodné číslo, atd.) 2006 UOMO 40

Třída = množina objektů, které mají stejnou strukturu a chování Abstraktní datový typ popisuje interní strukturu skupiny objektů z určitého úhlu pohledu Šablona pro objekty Obsahuje deklarace atributů a operací Každý objekt z dané třídy má uvedené operace a atributy 2006 UOMO 41

Objekt vs Třída Třída popis (deklarace) Konkrétní objekt seznam atributů jméno výška váha barva konkrétní hodnoty Alík 1 m 40 kg černobílá 2006 UOMO 42

UML Unified Modeling Language Grafický jazyk pro modelování Značky pro třídu a objekt Třída Objekt Auto Auto Barva Kubatura Startuj() Rozsviť() atributy (data) metody (operace) MojeAuto:Auto 2006 UOMO 43

Vztahy mezi objekty Dědičnost vztah vycházející z různých úrovní abstrakce použitých na objekty stejného typu Asociace jednoduché spojení dvou objektů Agregace - vztah vycházející z různých úrovní abstrakce použitých na celek resp. jeho části Kompozice speciální typ agregace 2006 UOMO 44

Dědičnost (gen/spec) = vztah, kdy jedna třída sdílí část struktury a chování deklarované v jiné třídě a má zároveň část struktury a nebo chování, která se liší Umožňuje definovat nové objekty pomocí již definovaných objektů Umožňuje sdružovat objekty podle své příslušnosti do vyšších celků (předků) tj. generalizovat Potomek dědí všechny vlastnosti a operace z předka a doplňuje je o speciální vlastnosti a operace Umožňuje znovupoužití (reuse) v modelování a programování Přehlednost není nutné opakovat co již bylo deklarováno Jednoduché změny změny v nadtřídě se projeví do všech podtříd 2006 UOMO 45

Dědičnost (notace) Předek (nadtřída) Vozidlo specializace generalizace Autobus Potomek (podtřída) 2006 UOMO 46

Asociace = fyzické nebo logické spojení mezi dvěma objekty vymezuje účastníky určitého vztahu umožňuje spolupráci objektů pomocí asociace jeden objekt může využívat služeb jiného objektu charakteristiky vztahu: multiplicita říká kolik objektů jedné třídy může komunikovat s kolika objekty druhé třídy 1:1 1:N N:N role v jaké objekt v daném vztahu vystupuje 2006 UOMO 47

Agregace & Kompozice = vztah, který spojuje objekt představující celek s objektem části vzniká použitím různých úrovní abstrakce resp. detailnosti pohledu silná agregace (kompozice) celek má exklusivní vztah s objekty reprezentující části vztah kompozice je použit u třídy a jejích atributů rozlišení agregace kompozice má dopad v programování (při vytváření nebo destrukci objektu, při využívání služeb částí objektu) 2006 UOMO 48

Agregace vs. Kompozice Aspekt další označení vztah k celku Agregace silná asociace, slabá agregace, sdílená agregace sdílený Kompozice silná agregace, composite aggregation exkluzivní (vlastnění) přítomnost části pro fungování celku životnost části zodpovědnost za tvorbu a destrukci části delegování zpráv příklad žádoucí / volitelná nezávisí (vyskytuje se i nezávisle) není řečeno část přijímá zprávy Firma - Osoby (Zaměstnanci) nutná / nezbytná závisí (samostatně nemůže existovat) celek zprávy přijímá celek a deleguje části Člověk - Orgány 2006 UOMO 49

Zasílání zpráv Objekty spolu komunikují pomocí mechanismu zasílání zpráv Pro zaslání zprávy musí být objekty v určitém vztahu tj. musí existovat spojení nebo závislost (dependency) Zaslání zprávy iniciuje u přijímacího (cílového) objektu určitou operaci Mechanismu zasílání zpráv se v programování říká volání metod 2006 UOMO 50

Polymorfismus = (více) mnohotvarost Reakce na stejnou zprávu se u různých objektů liší. Ten kdo zprávu zasílá neví, jak bude provedena -> odstínění od vlastní implementace dané zprávy. 2006 UOMO 51

Postupy dekompozice Směry abstrakce: objekty <-> třída klasifikace/instanciace celek <-> části agregace/dekompozice specifický <-> obecný generalizace/specializace jedinec <-> skupina seskupování/individualizace 2006 UOMO 52