KRITIKA NĚKTERÝCH VÝKLADŮ OBJEKTOVĚ ORIENTOVANÉHO PARADIGMATU

Podobné dokumenty
ZÁSADY KONCEPTUÁLNÍHO TOTÁLNĚ OBJEKTOVĚ ORIENTOVANÉHO MODELOVÁNÍ

Klasické metodiky softwarového inženýrství 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 - 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

OBJEKTOVÉ METODOLOGIE JEJICH UŽITÍ A VÝKLAD

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

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

UML NĚKOLIK KRITICKÝCH POZNÁMEK

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

2 UML-BASED WEB ENGINEERING (UWE)

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

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

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

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

MODELOVÁNÍ DAT V INFORMAČNÍCH SYSTÉMECH. Jindřich Kaluža Ludmila Kalužová

DBS Konceptuální modelování

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

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

Unifikovaný modelovací jazyk UML

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

1. Dědičnost a polymorfismus

Tvorba informačních systémů

Principy UML. Clear View Training 2005 v2.2 1

Tvorba informačních systémů

POROVNÁNÍ RELAČNÍHO A OBJEKTOVÉHO DATOVÉHO MODELU V KONSTRUKCI DATABÁZOVÝCH SYSTÉMŮ

OBJEKTOVÝ PŘÍSTUP V DATABÁZOVÉ TECHNOLOGII

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

UML. Unified Modeling Language. Součásti UML

7.5 Diagram tříd pokročilé techniky

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

UML - Unified Modeling Language

POKROČILÉ POUŽITÍ DATABÁZÍ

4IT218 Databáze. 4IT218 Databáze

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

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

TEORIE ZPRACOVÁNÍ DAT

Úvod do databázových systémů

Konceptuální modelování. Pavel Tyl

ROZDÍLY V NÁVRZÍCH RELAČNÍCH A OBJEKTOVÝCH DATABÁZÍ A JEJICH DŮSLEDKY PRO TRANSFORMACI MODELŮ

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

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

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

Diagram výskytů a vztahů

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

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

Hierarchický databázový model

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Objekty, třídy, vazby 2006 UOMO 30

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

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

8.2 Používání a tvorba databází

NÁSTROJE PRO DATOVÉ MODELOVÁNÍ

7.5 Diagram tříd pokročilé techniky

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Objektově orientovaný přístup

7 Jazyk UML (Unified Modeling Language)

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

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

7.3 Diagramy tříd - základy

Obsah. Zpracoval:

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

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

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

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

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

IMPLEMENTACE USE CASE POMOCÍ NÁVRHOVÉHO VZORU CONTROLLER

SEZNÁMENÍ SE STANDARDEM STEP A JEHO OBJEKTOVĚ ORIENTOVANÝM JAZYKEM EXPRESS

NĚKOLIK POZNÁMEK K FORMÁLNÍM TECHNIKÁM NÁVRHU OBJEKTOVÝCH DATABÁZÍ COMMENTS TOWARDS THE FORMAL TECHNIQUES OF THE OBJECT DATABASE DESIGN

7 Jazyk UML (Unified Modeling Language)

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

WebML Objektově orientovaná metodika pro tvorbu webových sídel

TRANSFORMACE RELAČNÍHO DATOVÉHO MODELU NA OBJEKTOVÝ TRANSFORMATION OF RELATIONAL TO OBJECT DATA MODEL

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

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

Analýza a Návrh. Analýza

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

Databáze. Logický model DB. David Hoksza

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

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

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

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

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

Metodika návrhu databáze

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

Metody popisu systému, základy UML

INFORMATIKA. Jindřich Kaluža. Ludmila Kalužová

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

Databázové systémy úvod

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

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

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

Databázové patterny. MI-DSP 2013/14 RNDr. Ondřej Zýka,

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.

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

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

Segmentace bankovních zákazníků algoritmem k- means

Třída. Atributy. Operace

SQL - trigger, Databázové modelování

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

Relace x vztah (relationship)

Transkript:

KRITIKA NĚKTERÝCH VÝKLADŮ OBJEKTOVĚ ORIENTOVANÉHO PARADIGMATU Martin Molhanec České vysoké učení technické FEL, K-313, Technická 2, 166 27 PRAHA 6, Dejvice, Česká republika, tel.: (++420) 2 2435 2118 mailto: molhanec@fel.cvut.cz, http://martin.feld.cvut.cz/~molhanec Abstrakt Obsahem příspěvku je kritický pohled autora na výklad objektového paradigmatu, tak jak se s ním měl možnost setkat v pracích svých studentů, kolegů i v odborných publikacích. Speciálně bude kritice podroben chybný výklad objektového a entitě-vztahového paradigmatu, chápání u analytického a implementačního, atd. 1. Úvod Tento příspěvek navazuje na moje předchozí příspěvky na této konferenci v minulých letech 1 a 2. Zdrojem všech mých příspěvků je moje nespokojenost s výkladem objektového paradigmatu a to zejména při výkladu objektově orientované metodiky, ale i při interpretaci klasických datově orientovaných principů. Nebezpečí vidím zejména u studentů, kteří nesprávným pochopením paradigmatu získávají nesprávné návyky a bude pak déle trvat nežli se jich zbaví. Netvrdím, že má tvrzení jsou vždy správná, ale i tak doufám, že možná vyvolají určitou reakci a diskuzi této problematiky. 2. Oblasti mé kritiky Jaké jsou vlastně mnou kritizované oblasti? Pokusím se je nyní trochu neutříděnou formou naznačit. Co je to vlastně analýza Velké množství studentů stále ve své podstatě nechápe co je to vlastně analýza! Ano, ač většina z nich projde předměty Softwarové inženýrství, které také učím, stále se setkávám se skutečností, že mnozí studenti mají představu, že analýza je zbytečný výmysl (zejména s rozvojem tzv. extrémního programování, se tento trend stále zřetelněji objevuje), že jsou to jen nějaké obrázky, které dokumentují jejich programátorskou práci. Student prostě uvažuje takto, analýza jsou nějaké obrázky. Dobře udělám tedy nejdříve program a podle toho programu udělám obrázky, které po mne chce můj pedagog a ty mu předložím jako výsledek! Tento přístup má pochopitelně dva zásadní nedostatky: za prvé je obráceno časové pořadí, nejprve se dělá program a pak analýza a za druhé výsledné diagramy popisují implementaci nikoliv konceptuální pohled na problém! Zakotvení v implementaci Student je stále svým myšlením zakotven v implementaci. Přestože se tváří, že dělá analýzu a on si ovšem doopravdy myslí, že analýzu dělá, je myšlenkově stále pevně zakotven ve své implementační představě objektově orientovaném programování v nějakém konkrétním jazyce, například C++, Smalltalku anebo ve využití nějaké 163

konkrétní relační či objektově orientované databáze. Proto je stále nucen si analytický obohacovat konstrukty pro vyjádření svých implementačních nástrojů a nechápe, že v analytické oblasti jsou nepotřebné ba naopak nežádoucí! Pochopení klasických datových ů Existují také chybné představy o entitě-vztahovém ování (ERM: entityrelationship ). Důvod je ten, že se při vysvětlování ERM, ale i relačního databázového u (RDM: relational database ), pro lepší pochopení těchto datových paradigmat, využívají pojmy jako tabulka a řádek v tabulce, přestože se jedná o pojmy, které se v těchto paradigmatech nevyskytují! Proto je většina studentů a nejen studentů přesvědčena, že ERM je o nějakých tabulkách! Stejně dobře bych mohl tvrdit, že objektově orientovaný (OOM: object oriented ), je o ukazatelích (pointer)! 3. Evoluce konceptuálních ů dle Molhance Vzhledem k tomu, že mezi mými studenty, ale i některými kolegy, panuje dle mého názoru nesprávný vhled na jednotlivé y, se kterými se běžně při konceptuální analýze pracuje, pokusím se v této kapitole tyto názory dle svého přesvědčení definovat a utřídit. Především mluvme o konceptuálním ování (CM: conceptual ) a nikoliv o datovém ování (DM: data ). Důvod je ten, že CM je obrazem světa, který uje v jeho celé úplnosti. Konstrukty CM odpovídají skutečnostem ve světě kolem nás. DM je však obrácen k tomu, jak jsou uspořádána a strukturována data v některé datové implementaci (databázi), která se běžně využívá, například relační či objektově orientované databázi. Co z toho plyne? Konceptuální je světa okolo nás. Datový je uspořádání dat v databázi. V žádném konceptuálním u není konstrukt tabulka! Známé konceptuální y využívají konstrukty: entita a třída. Pokusím se výše uvedené teze vyjádřit uspořádáním všech zmíněných pojmů v následující tabulce. zkratka CM ERM XERM pojem česky Konceptuální Entitě-vztahový Rozšířený entitěvztahový pojem anglicky Conceptual Model Entity-Relationship Model Extended Entity-Relationship Model výklad Konceptuální je odrazem skutečného (reálného nebo abstraktního) světa kolem nás. V současné době se běžně využívají dva konceptuální y: ERM a OOM. Entitě vztahový podle Chena a dalších autorů. Původně vznikl na podporu datového ování. Používá následující základní konstrukty: Entita Atribut Vztah Rozšířený ERM rozeznává navíc dva typy vztahů: Obecný Specializace (dědičnost) Tento například používá metodika IDEF1X a jiné. poznámka Zkratka není běžně zavedena. Zkratka není běžně zavedena. 164

PERM Fyzický ERM Physical ERM ERM omezený pouze na konstrukty, které se skutečně vyskytují v relační databázi OOM Objektově orientovaný Object Oriented Model Konceptuální inspirovaný vznikem objektově orientovaného programování. Jeho základní konstrukty jsou: Zkratka není běžně zavedena. Třída Objekt Atribut Metoda Vztah Rozpoznává několik typů vztahů: Obecný Skládání (kontejner, kompozice, agregace) Dědičnost (specializace) Využívají ho například následující metodiky: OOA/OOD, OMT, UML, aj. DM Datový Data Model Model, který zachycuje vztahy mezi daty vzhledem k jejich konkrétní implementaci. RDM Relační datový OODM Objektově orientovaný datový Relational Data Model Object Oriented Data Model. Datový podle Codda. Jedná se o vysoce abstraktní určený pro ování relačních databází. Využívá základní konstrukty: Relace Atribut Doména Funkční závislost Datový určený pro ování objektově orientovaných databází. Tab. 1 Zkratka není běžně zavedena. Zkratka není běžně zavedena. Rád bych upozornil na některé důležité skutečnosti. Je rozdíl mezi pojmy Relation a Relationship! První pojem je nutné překládat do češtiny jako relace zatímco druhý pojem jako vztah! Tento rozdíl je naprosto zásadní pro pochopení rozdílu mezi ERM a RDM! Je také důležité pochopit, že pojem entita nerovná se pojmu tabulka! Entita je, podobně jako třída, množina objektů stejného typu! Pouze u PERM můžeme mluvit o tom, že entita tabulka. Pokusím se popsat význam výše uvedených pojmů v následující přehledné tabulce. 165

pojem česky Vztah pojem anglicky Relationship nebo také Association výklad Vztah je nějaká souvislost mezi objekty konceptuálního u. Různé CM rozpoznávají různé typy vztahů. Relace Relation Jedná se o konstrukt RDM. Podle obvyklé definice: databázová relace je matická relace Entita Entity Entita je základní konstrukt ERM. Podle obvyklé definice: Entita je množina objektů stejného typu. Třída Class Třída je základní konstrukt OOM. Podle obvyklé definice: Třída je množina objektů stejného typu. Atribut Attribute Tento pojem se používá v RDM, ERM i OOM přibližně ve stejném smyslu, představuje datovou složku relace, entity nebo třídy. Metoda Method Pojem používaný v OOM, kde představuje funkční složku třídy. Objekt Object Jedna konkrétní instance třídy. Používá se v OOM. poznámka Skutečnost, že několik anglických pojmů se překládá do českého jazyka jako jeden pojem přináší problémy při překladu! Pozor neplést s pojmem relationship! Definice entity a třídy jsou ve své podstatě totožné. Rozdíl je ten, že ERM se zajímá pouze o data, OOM se zabývá i funkcionalitou. U ERM mluvíme o tzv. výskytu entity, protože ERM nemá pojem podobný pojmu objekt. Tab. 2 Opět považuji za vhodné upozornit na: Entita i třída jsou definovány jako množiny objektů stejného typu, zatímco databázová relace je definována jako matematická relace, nicméně i tak se vždy jedná o množiny. Všimněme si, že RDM odpovídá relační implementaci. Nikoliv však ERM! Souvislosti mezi pojmy u různých ů snad lépe objasní následující tabulka a Obr. 1. ERM XERM PERM OOM RDM Entita Entita Tabulka Třída Relace Vztah (relationship) Vztah (relationship) Vztah (relationship) Vztah (relationship) Funkční závislost Obecný vztah (relationship) Obecný vztah (association) Funkční závislost Vztah skládání (kontejner, kompozice, agregace) (container, composition, aggregation) Vztah dědičnosti (inheritance, specialization) Vztah dědičnosti (inheritance, specialization) Výskyt entity Výskyt entity Řádek tabulky (raw) Objekt (object) n-tice Metoda (method) Tab. 3 166

XERM OOM ERM RDM FUNKCE DATA Obr. 1 4. Množiny, které se příliš množí Tato část mého příspěvku je reakcí na koncepci mého váženého kolegy Vojty Merunky 3, který si začal do svých diagramů kreslit konstrukt množiny a zastává názor, že se jedná o významný krok vpřed. A nejenže si konstrukt množiny kreslí on sám, ale ještě to učí své studenty! Podívejme se nejprve na jeden jeho diagram (Obr. 2). Jedná se implementační diagram objektově datového u (dle notace kolegy Merunky), který odpovídá mému OODM v Tab. 1. patient 1 Visitations Visitation visitdate diagnosis * doctor Person firstname surname address birthdate age Patients visitations 1 Doctor specialization Doctors Obr. 2 Jak je zřejmé, množiny jsou znázorněny pomocí šestiúhelníků. Připomeňme si však následující skutečnosti. Klasický výklad konstruktu entita a třída v diagramech, které jsou používány v ERM a OOM je ten, že daný konstrukt představuje, jak definici daného konstruktu, tak i množinu jeho instancí. Koneckonců, toto je naprosto přirozený výklad. Je zřejmé, že samotná definice je nepotřebná, pokud neuvažuji o jejím zpředmětnění 167

prostřednictvím jejích instancí. A pokud si vytvářím nějaké instance, tak jenom proto, abych s nimi pracoval v rámci nějaké množiny. V souvislostech výše uvedeného výkladu je dle mého názoru zřejmé, že pokud každé entitě nebo třídě náleží právě jedna množina, není nutné si tuto defaultní množinu nikterak zakreslovat. Ostatně i v PERM bychom mohli uvažovat tak, že ke každé entitě přísluší jedna tabulka a diagram si tak kreslit! Domnívám se, že jeden důvod pro kreslení množin je dán tím, že při objektovém databázovém přístupu je v některých nástrojích (například Smalltalk DB, který používá kolega Merunka) oddělena definice a realizace datového úložiště. Nicméně v obvyklých relačních databázích je definice a realizace datového úložiště obsažena v jediném SQL příkazu CREATE TABLE, proto zřejmě datově orientovaní áři nikdy neuvažovali, že by si měli ke každé konceptuální entitě kreslit její relační implementaci - tabulku. Může být ovšem namítnuto, že výše uvedené zdůvodnění neplatí pro vztah mezi třídou Doctor a množinou Patients. Pokud se ovšem zamyslíme nad způsobem, jak rozumně pracovat s dědičností, je nasnadě, že pokud je třída Doctor specializací třídy Person, ukládání potomků do množiny, která mu přináleží a současně do množiny, která přináleží jeho předku je opět defaultní. Na základě výše uvedené úvahy je možné odstranit i tento vztah a výsledný diagram nebude obsahovat žádné zbytečné množiny a to je to, co jsem chtěl dokázat! Podobné úvahy je možné uskutečnit i s ohledem na ování dalších typů vztahů (obecný vztah a skládání). Nechci, aby tato kapitola vyzněla jako absolutní kritika zavádění konstruktu množina do objektově orientovaného datové u. Pokusím se vyslovit následující teze. V úrovni konceptuálního ování není konstrukt množina zapotřebí, protože se jedná o implementační konstrukt. V úrovni ování struktury dat v objektově orientované databázi je nepotřebný pokud předpokládáme defaultní implementaci. Uznávám ovšem, že můj výše uvedený důkaz není zcela jistě úplný a bude tedy jistě podroben vášnivé kritice. Vzhledem k tomu, že některé konceptuální vztahy je možné v OODBMS implementovat více možnými způsoby 6, a to způsobem relačním nebo objektovým, a nebo je možné realizovat i množiny, které jsou nad rámec defaultních množin, je způsob kreslení diagramů, který navrhl kolega Merunka, jistě užitečný! Nicméně si nejsem jist, zdali je tento návrh kompatibilní se stávajícím standardem UML 4 a 5. Bohužel, bez využití současných mezinárodně přijatých standardů nelze očekávat úspěšné všeobecné přijetí navrhované notace. 5. Normalizace je stará dobrá známá B A X V této krátké kapitole chci upozornit na jednu skutečnost, která na první pohled není zřejmá, ale měla by na ní být upřena pozornost. V oblasti teorie databázových systému (RDM) je normalizace obsáhlá a poměrně náročná látka, která vychází z koncepce funkčních vztahů. Jejím cílem je navrhnout správné relace bez nadbytečných (redundantních) atributů. Hovoříme pak o 1. až 5. normální C Obr. 3 168

formě a několika dalších. Za správně navrženou databázi se pak běžně považuje databáze v 3. normální formě, protože dosažení vyšších normálních norem je již prakticky obtížně dosažitelné. Ale je tomu tak i u objektových databází? Existují i pro ně normální formy? A jsou vůbec potřebné? Já i můj kolega Merunka se domníváme, že ano! Ukažme si základní problém normalizace na jednoduchém příkladě, který je na Obr. 3. Vidíme, že existují tři třídy objektů: A, B a C. Vztah mezi třídami A a B je vztah kontejneru a mezi třídami B a C taktéž. Každá třída má k sobě odpovídající množinu do které ukládá své objekty. Vzhledem k tomu, že se jedná o vztah kontejneru (skládání) jsou množiny pro třídy B a C zakresleny uvnitř tříd A a B. To je vše v pořádku. Nicméně programátor se rozhodl, že pro rychlejší přístup k objektům třídy C bude je ukládat taktéž do množiny X, která je uvnitř třídy A! Je jasné, že se jedná o nadbytečnost, ale na straně druhé tato nadbytečnost může funkci programu s touto strukturou dat významně urychlit při některých operacích! U klasické relační implementace bychom věděli, že podobná struktura odporuje některé normální formě a že by to tak být nemělo! Ale co o tom praví teorie objektových databází? Naštěstí existují pokusy, nicméně nepříliš známé a všeobecně zatím neuznávané o vyřešení problému normalizace v OODBMS, například 7. 6. Příklady studentských chyb Na závěr svého článku uvedu několik diagramů z diplomových prací, ve kterých shledávám chyby. U každého příkladu velice stručně vyjmenuji, které skutečnosti považuji za chybné. Obr. 4 169

Vztah se šipkou mezi PenezniDenik a Stav je podivný. V konceptuálním diagramu se přeci žádné šipky nepoužívají. Je to vliv četby špatných knížek o UML 2. Vztah mezi SkladovaKarta a Polozka je obráceně. Zřejmě nepozornost studenta. Nadbytečný vztah mezi Sklad a SkladovýDoklad. Typický problém normalizace, tak jak byla diskutována v kap. 5. Obr. 5 Obr. 6 170

Na prvním diagramu se vyskytuje nesmyslné množství vztahu (například: zveřejňuje, stahuje, ukládá, odstraňuje), které nemají žádné opodstatnění. Nejedná se o vztahy, ale o stavy, funkce nebo práva. Z druhého diagramu je zřejmé, že vztahy na prvním diagramu byly nesmyslné, protože se na něm nevyskytují. Druhý diagram není evolucí, upřesněním ani rozumnou transformaci prvého. Obr. 7 Obr. 8 171

První diagram je naprosto nedostatečný. Diagram, kde není zakreslena kardinalita a parcialita, vypovídá o polovině skutečností! Ve druhém diagramu se nám najednou vztahy upřesňují. Dle autora se jedná o vztah kontejneru, ale je nakreslen obráceně! 7. Shrnutí Přestože je objektově orientované paradigma známo již delší dobu (od počátku 80 let a jeho rozkvět nastal v 90 letech), nejsou stále vyřešeny všechny jeho aspekty. Vznik a používání OODBMS vede k úvahám o normalizaci v objektově orientované oblasti. Jak je z mého článku patrné, neexistují ani stejné názory na souvislosti mezi jednotlivými konceptuálními y a mnozí autoři je používají velmi rozdílně. Můj článek se zabývá pouze některými oblastmi OO paradigmatu, které mne v poslední době zaujaly. Celé obrovské oblasti, například souvislost mezi funkčním a konceptuálním em, nebyly v tomto článku vůbec zmíněny natož diskutovány. Podobně byly naznačeny pouze některé chyby, které při práci s OOM vytvářejí studenti. Velice slabě byly naznačeny příčiny těchto chyb. Je ovšem těžké vytýkat chyby, když ani mezi autory nejsou na některé aspekty stejné názory. Nicméně existují určité základní skutečnosti, které by měly být vykládány vždy stejně a studenti by jim měli správně rozumět. Doufám, že můj článek bude příspěvkem do odborné debaty o všech aspektech objektově orientovaného paradigmatu. Literatura: 1. Molhanec, Martin: Objektové metodologie jejich užití a výklad, Tvorba software 2003, TANGER, Ostrava 2003 On line: http://martin.feld.cvut.cz/~mmm/vav/files/publik/2003/ookrit-co.pdf 2. Molhanec, Martin: UML několik kritických poznámek, Tvorba software 2002, TANGER, Ostrava 2002 On line: http://martin.feld.cvut.cz/~mmm/vav/files/publik/2002/uml.pdf 3. Merunka, Vojtěch: Objektový přístup v databázové technologii, Tvorba software 2004, TANGER, Ostrava 2004 4. Booch, G., Jacobson, I., Rumbaugh, J.: The Unified Modeling Language Reference Manual. ADDISON-WESLEY, 1999. ISBN 0-201-30998-X 5. Booch, G., Jacobson, I., Rumbaugh, J.: The Unified Modeling Language User Guide. ADDISON-WESLEY, 1999. ISBN 0-201-57168-4 6. Kroha P.: Objects and Databases. McGraw Hill, London 1995, ISBN 0-07-707790-3 7. Dobbie Gillian: Towards normalization in object-oriented databases, Technical Report CS-TR-96/16. Victoria University of Wellington, Department of Computer Science. On line: http://www.mcs.vuw.ac.nz/comp/publications/archive/cs-tr-96/cs-tr-96-16.pdf 172