Objektově orientovaný přístup (úvod)

Slides:



Advertisements
Podobné prezentace
Normalizace Řada analytiků se mylně domnívá, že pro každý objekt existuje jedno jediné univerzálně použitelné nejlepší řešení bez ohledu na řešený problém.
Advertisements

(instance konkrétní třídy)
Stručný úvod do UML.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Přednáška č. 5 Proces návrhu databáze
ÚVOD DO CPP 7 Dědičnost - pokračování
BLIŽŠÍ POHLED NA TŘÍDY, DĚDIČNOST - úvod
Historie UML Bc. Lukáš Ščurek. Historie UML 70. léta Vznik prvních objektově orientovaných jazyků První objektově orientové metody anylýzy a návrhu Polovina.
Doporučená literatura: *HUŠEK, R., LAUBER, J.: Simulační modely.. SNTL/Alfa Praha,1987. * NEUSCH L, S. A KOLEKTIV: Modelovanie a simulacia.. SNTL Praha,
Otázky k absolutoriu HW 1 - 5
Databázové systémy II Přednáška č. 6 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Čtvrté cvičení Objektové programování Objektový model v Javě
Přínosy a druhy počítačových sítí. Jednou z nejvýznamnějších technologií používaných v oblasti výpočetních systémů jsou již řadu let počítačové sítě.
Metody zpracování vybraných témat (projektů)
the Unified Modeling Language
Jiří Mašek BIVŠ Praha Obecný popis SCA Podporuje modelování aplikací a komponent v rámci celého životního cyklu. Modelování podnikových procesů.
Základní číselné množiny
Busines Object Relation Modeling Přednáška 8
ÚČEL AUTOMATIZACE (c) Tralvex Yeap. All Rights Reserved.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
1IT S ÍŤOVÝ DATOVÝ MODEL Ing. Jiří Šilhán. S ÍŤOVÝ DATOVÝ MODEL Je historicky nejstarším datovým modelem. Jeho základem jsou vzájemně propojené množiny.
Vizuální modelování Vlastnosti “Informace v obrázcích”
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
KONCEPTUÁLNÍ MODELOVÁNÍ
13AMP 6. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled Synchronizace procesů Synchronizace procesů Producent-Konzument Producent-Konzument.
Přehled současných způsobů tvorby programů
Modelovací jazyk UML. Jazyk UML je víceúčelový modelovací jazyk, který byl vyvinut speciálně pro účely softwarového inženýrství. Obsahuje formalizovaný.
Objektové programování
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
6. cvičení Polymorfismus
Možnosti modelování požadavků na informační systém
B. Miniberger, BIVŠ Praha 2009
Dokumentace objektů a zveřejnění funkcí
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Algoritmizace a programování Objektově orientované programování - 16 Mgr. Josef Nožička IKT Algoritmizace a programování
Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB – Technická univerzita Ostrava
IB111 Programování a algoritmizace
JavaScript Funkce.
Dědičnost - inheritance dědičnost je jednou z forem znovupoužitelnosti dědičnost je jednou z forem znovupoužitelnosti B A Třída A je předkem třídy B Třída.
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ FAKULTA STROJNÍ ÚSTAV PŘÍSTROJOVÉ A ŘÍDICÍ TECHNIKY ODBOR AUTOMATICKÉHO ŘÍZENÍ A INŽENÝRSKÉ INFORMATIKY Aplikace objektově.
Ukládání heterogenních dat pomocí rozvolněných objektů Michal Žemlička.
Přednáška č. 1 Proces návrhu databáze
Databázové modelování
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Databázové systémy Informatika pro ekonomy, př. 18.
Výpočty tiskových sestav Průvodce problematikou tiskových sestav.
© Doc. Miniberger, BIVŠ UML modelování Webové služby představují sadu standardů umožňující komunikaci aplikací bez ohledu na platformu, na které jsou provozovány.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Databázové systémy Datové modely.
David Osička OSI011 UML – přehled, notace VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a Informatiky Katedra Informatiky.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
Informatika. Cíle výuky informatiky Studenti se mají seznámit se základními pojmy, problémy, postupy, výsledky a aplikacemi informatiky tak, aby je dokázali.
České vysoké učení technické v Praze Fakulta dopravní Ústav dopravní telematiky Geografické informační systémy Doc. Ing. Pavel Hrubeš, Ph.D.
A jeho praktická aplikace Štěpán Vacek Univerzita Hradec Králové Liberecké informatické fórum 2010.
SOFTWAROVÁ PODPORA PRO VYTVÁŘENÍ FUZZY MODELŮ Knihovna fuzzy procedur Ing. Petr Želasko, VŠB-TU Ostrava.
Vývojová prostředí Objektově Orientované Programování OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
Úvod do C# - OOP Jaroslav BURDYS 4IT.
IS
Dobývání znalostí z databází znalosti
Operační systémy 9. Spolupráce mezi procesy
Tradiční metodiky vývoje softwaru
Informatika pro ekonomy přednáška 8
Busines Object Relation Modeling
Geografické informační systémy
Tradiční metody vývoje softwaru
UML teorie k zápočtovému testu a ke zkoušce IT
Transkript prezentace:

Objektově orientovaný přístup (úvod)

Objektově orientovaný přístup (úvod) Proč objekty? Objektový přístup umožňuje lepší využití kódu než knihovny procedur, možnost znovupoužití. Elegantně se zvládnou prostředky pro okenní rozhraní systémů. Dávkové úlohy se staly interaktivními (objekt reaguje na více podnětů, na každý jinak). Metodický faktor (mnoho dřívějších doporučení je nyní skryto v definici tříd a objektovém přístupu). Definice Objekt je cokoliv, jakákoliv věc, stavební jednotka, která modeluje nějakou část světa (člověk, tiskárna, kamera, faktura, hotelový pokoj, pacient, diagnoza,…) Objekty (pohromadě jsou zde uzavřena data i jejich vlastnosti a chování) jednoho systému jsou propojené vazbami a působí na sebe navzájem.

Objekt v OOP Základní vlastnosti objektu – struktura objektu Objekt obsahuje 1. vnitřní paměť (má vlastnost něco si pamatovat) - atributy objektu, zvenčí je objektu nepřístupná, je jeho soukromou záležitostí, co si objekt pamatuje a jak. Představuje stav objektu. Stav objektu se mění podle chování objektu. Stav objektu je definován hodnotami všech atributů v daný okamžik. 2. metody objektu (procedury a funkce, obecněji posloupnost kódu pgmu, které vykonávají nějakou činnost nad vnitřní pamětí). Opět zvnějšku neviditelné a nepřístupné. Představuje chování objektu, schopnost objektu něco dělat. 3. jiné objekty, kterým je schopen poslat zprávy a tak řídit jejich činnost.

Objekt v OOP Obr. 2x obecný objekt 4. schopnost přijmout a zpracovat zprávu (požadavek) zvnějšku. Každý objekt obsahuje tzv. protokol zpráv v rozhraní (přiřazení zprávy metodě objektu). Každá zpráva může mít vstupní a výstupní parametry, jediná možnost, jak spolupracovat s objektem, je poslat mu zprávu. Lze také říci, že zpráva slouží k „vybírání“ údajů z objektů resp. k „zapisování“ údajů do objektů, také ke spouštění dalších operací. Protokol je množina všech zpráv, které je možné objektu poslat. Bez znalosti protokolu uživatelé s objekty nemohou pracovat, nevědí, co objekty umějí udělat. Obr. 2x obecný objekt

Objekt v OOP - zprávy Zpráva je komunikační jednotka mezi dvěma objekty, která umožňuje, aby funkce SW aplikace byla výsledkem spolupráce skupiny objektů. Zprávy jsou tvořeny kombinací řídících a datových toků. Typy zpráv Konstruktor pro tvorbu objektů. Destruktor pro rušení objektů. Modifikátor pro modifikaci stavu objektů. Selektor vrací info o stavu objektu. Iterátor pro prohlížení obsahu datové struktury. Typy přenosu zpráv Jednoduchý přenos Synchronizovaný přenos Asynchronní přenos

Objekt v OOP- odvozené vlastnosti Odvozené vlastnosti objektu Používání abstrakce Existence objektů Definování tříd objektů Zapouzdření (nejdůležitější princip OOP) Ukrývání implementace Komunikace objektů Polymorfismus Dědičnost

Objekt v OOP- odvozené vlastnosti Abstrakce (proces vytváření jednoduché reprezentace složité reality). Objekty a třídy (objekt má atributy, chování, vztahy s jinými objekty, třída je abstrakce objektů se stejnými vlastnostmi). Zapouzdření (encapsulating) data a funkce s nimi pracující jsou spojeny do jednoho objektu, data jsou skryta před ostatními objekty a lze k nim přistupovat pouze pomocí metod objektu. Výhody: data jsou chráněna před narušením zvenku, ostatní objekty nemusí znát vnitřní strukturu dat, realizace změny v datech je jednodušší, projeví se jen v jedné třídě. Ukrývání implementace (možnost používat metody objektů bez znalosti jejich implementace).

Objekt v OOP- pohledy Pozn. OO programátor je buď tvůrce třídy nebo klientský programátor. Na objekt se díváme dvěma pohledy a) objekt, který použijeme v programu již jako hotový, naprogramovaný, zajímají nás veřejná data a operace, b) objekt, který máme za úkol zhotovit nebo opravit. Ad a) zajímá nás popis zpráv a co se voláním těchto zpráv děje, tedy zajímáme se o chování objektu (pro klientské programátory). Ad b) zajímají nás všechny vlastnosti, objekt musíme otevřít a zpracovat jeho vnitřek, vždy na úrovni, kde je to třeba (pro programátory tvůrce).

Objekt v OOP- odvozené vlastnosti Komunikace objektů (aby existovala, musí mít jeden objekt přístup k druhému – musí mít odkaz na druhý objekt). Dědičnost (vlastnost tříd viz dále). Polymorfismus (stejná zpráva může vyvolávat různé operace) Pokud mají různé objekty shodné protokoly, nemusí to znamenat, že mají stejnou datovou strukturu a stejné metody. Objekty různých tříd mají metodu se stejným jménem, přičemž její implementace se v jednotlivých třídách může lišit. Tj. dva různé objekty mohou přijmout tutéž zprávu a každý z nich na základě této zprávy vyvolá jinou metodu (operace “zobraz” vyvolaná zasláním zprávy jednou zobrazí text a jednou obrázek). Jinými slovy jedna zpráva - dva různé objekty - dvě různé metody - dvojí reakce na tutéž zprávu.

Objekt v OOP- odvozené vlastnosti

Třída v OOP - vlastnosti Třída je předpis pro budoucí objekt (abstrakce), ale samotnou realizací pro řešení analytického problému je objekt jako instance třídy. Merunka: “Třída objektů slouží k tomu, abychom mohli strukturu dat a množinu metod patřících jednomu druhu objektu jednoduše popsat společně pro všechny objekty, které do daného druhu patří. Na třídy v OOP vlastně nahlížíme jako na popis toho, jaké druhy objektů v systému potřebujeme. Pro každou třídu pak definujeme, jakou budou mít její objekty strukturu a metody.” Platí: objekt je instance třídy, objekt přebírá vlastnosti třídy, třída má deklaraci, výčet atributů, metody, objekt má hodnoty atributů a nemůže mít jiné metody než jeho třída.

Třída v OOP - vlastnosti Dědičnost - sdílení kódu je znovupoužitelnost na úrovni deklarace třídy, dědění je vztah mezi třídami nikoli mezi jejich objekty, třída, ze které se dědí je předek (nadtřída), třída, která dědí je potomek (podtřída). odvozená třída obsahuje všechny datové položky třídy předka a kopíruje rozhraní předka, tj. zprávy, které můžeme poslat objektům předka můžeme poslat i objektům potomka. Objekty potomka dědí i chování předka, ale chceme-li, aby potomek měl jiné chování, můžeme přidat novou metodu nebo změnit metodu předka překrytím, zastíněním – overriding viz předchozí obr. existují dva projevy dědění: generalizace (navrhnu objekty (třídy), k nim rodiče), specializace (navrhnu třídu, z ní potomky).

Specifikace třídy Specifikace třídy obsahuje Jméno třídy Atributy třídy Operace, které jsou platné pro všechny objekty třídy. Viditelnost atributů a operací Private - neviditelné, důsledně zapouzdřené části třídy Protected - viditelné pouze z dané třídy odvozeným objektům Public – jsou viditelné všem objektům třídy

Další pojmy v OOP Zpráva - požadavek, který jeden objekt posílá druhému. Link - spojení mezi objekty, realizováno tak, že procedura jednoho objektu volá proceduru druhého objektu. Asociace - spojení mezi třídami, které může a nemusí být realizováno linkem - zobecnění linku. Každý objekt má svou identitu. Každý objekt má odpovědnost za svou činnost. ”Objekt má chování” znamená, že objekt vlastní metody, které toto chování zajistí.

Objektově-orientovaný přístup obecně Výhody: znovupoužitelnost a snadná lokalizace změn a chyb, oddělení detailů od celku, rozšiřitelnost a sémantická bohatost, snadnější popis rozhraní s vnějškem, snazší definování celého systému, zdůrazňujeme to, co objekt je a ne jak je užit - objektové aplikace bývají stabilnější. Nevýhody: objektově-orientovaný kód není efektivní, nová metodika si vyžádá zaškolení pracovníků, neexistují efektivní nástroje pro OOA.

Objektově-orientovaný přístup obecně OOA Object Oriented Analysis vychází z objektově-orientovaného programování, pohled na svět jako na soustavu spolupracujících objektů kvalitativní změna myšlení při návrhu systémů, blízké přirozenému lidskému chápání, překonání semantické mezery objekty v pojetí uživatelů a pgmátorů znamenají totéž. Naučit se objektově programovat znamená naučit se objektově myslet. Prakticky objektově myslet znamená prakticky používat nějakou školu objektového modelování. Pgmátor si nejprve musí svůj pgm nějak představit a namalovat a teprve poté může tvořit kód (Kraval).

Vizuální modelování Vlastnosti Model je zjednodušení reality. “Informace v obrázcích” Prostředek komunikace (modely, diagramy) Zachycuje obch. procesy, věcnou problematiku, architekturu systému Je podporováno silnou notací a metodologiemi Metodologie Booch, Coad,Yourdon OMT (Object Modeling Technik), Rumbaugh OOSE (Object-Oriented Software Engineering) Jacobson (scénáře Use Case) Modely vytváříme proto, že nejsme schopni plně pochopit komplexní systém jako celek. Model je zjednodušení reality. Díky modelům vizualizujeme stávající nebo vytvářený systém, specifikujeme strukturu nebo chování systému, získáváme základ pro konstrukci systému a dokumentujeme rozhodnutí o systému.

UML Unified Modeling Language UML poskytuje pravidla pro pojmenování, rozsah platnosti, rozsah viditelnosti, omezení, provedení modelu různé specifikace rozšiřitelnost jako jsou stereotypy, dodané hodnoty přestože je nejčastěji spojován s modelováním OO SW díky rozšířením má mnohem širší využití, je to pouhá notace, syntaxe (standard pro zobrazení a popis modelů), nikoliv metodika modelování. Součásti UML Definice notace UML (syntaxe) Metamodel UML (sémantika) Jazyk OCL pro popis omezení v modelech Specifikace převodu do výměnných formátů (CORBA, IDL,XML)