S KONFIGURACÍ POVOLENÝCH KOMBINACÍ DĚDICŮ
|
|
- Dalibor Hruda
- před 9 lety
- Počet zobrazení:
Transkript
1 VZOR HETEROGENNÍ SEZNAM S KONFIGURACÍ POVOLENÝCH KOMBINACÍ DĚDICŮ RNDr. Ilja Kraval, září ÚVOD Jak známo, v CLASS DIAGRAMU se dělí vztahy do dvou základních typů: Buď se jedná o asociaci anebo o generalizaci. Zatímco asociace vede ve svém důsledku v instanční rovině ke vztahu mezi instancemi, generalizace vyjadřuje interakci použití pouze mezi třídami, tj. jedná se o použití mezi typy, které se neprojeví jako vztah mezi instancemi. Záměna těchto dvou typů interakce patří k velmi hrubým chybám při návrhu IS a bohužel tyto chyby jsou velmi časté. Z toho důvodu se vysvětlení obou vztahů a jejich rozdílu věnuje velká pozornost v našich školeních Pobytový kurz OOP a UML anebo distanční e-kurz Kurz profesního růstu analytika od základů. Dá se říci, že znalost fungování těchto dvou vztahů patří opravdu k elementární gramotnosti při návrhu IS. Syntaxe CLASS DIAGRAMU je samozřejmě platná pro všechny úrovně abstrakce včetně analytického modelování. V této fázi existuje naštěstí několik málo základních situací, tj. analytických vzorů, které vedou k použití generalizace. Je opravdu dobré všechny tyto situace znát. Jedním z takových často opakujících se řešení je vzor HETEROGENNÍ SEZNAM. VZOR HETEROGENNÍ SEZNAM Jedná se o velmi častý případ, kdy přistupujeme k seznamu z prvků a přitom v daném seznamu se vyskytují prvky různých typů. Je třeba zdůraznit, že daný seznam prvků chápeme jako jeden seznam a nikoliv jako dva seznamy nebo více seznamů typově odlišných prvků. Abychom mohli takovýto typově heterogenní seznam zavést, musíme zavést společného předka generalizace, neboli laicky řečeno, obecnější pojem. Hovoříme totiž o seznamu daného pojmu na vyšší úrovni generalizace, ale máme přitom na mysli instance seznamu z konkrétních podtypů.
2 strana 2 Paradoxně laik tuto na první pohled složitou situaci chápe velmi dobře, jenom ji neumí vyjádřit pomocí syntaxe UML. Popisuje ji pomocí vlastních slov při použití zdravého selského rozumu. Představme si následující příklad: V realitě, například u domu na dvorku, vidíme několik psů a několik koček, jak se prohánějí. Znamená to, že některé prvky na dvoře jsou typu Pes a některé prvky na dvoře jsou typu Kočka. Pokud bychom chtěli tuto situaci vyjádřit pomocí CLASS DIAGRAMU, tj. zobecnit situaci na dvoře do jakéhosi obecného pravidla, tj. zobecnit situaci do tzv. meta pravidla všech budoucích instancí dvorků, potom se nabízejí dvě možná řešení: 1. Pro skupinu psů zavedeme seznam psů na dvorku a pro skupinu koček zavedeme seznam koček na dvorku. Všimněme si, že jsme na dvorku zavedli dva seznamy, jeden pro psy a jeden pro kočky. Pokud chceme obsloužit nějakým příkazem jak psy, tak kočky, musíme obsloužit dva vedle sebe stojící seznamy, tj. pracovat se psy zvlášť a s kočkami zvlášť. 2. Druhou možností je využít generalizace. Zavedeme obecnější pojem v generalizaci (tj. obecnější třídu v generalizaci), nazvěme ji Zvíře, a zavedeme její podtypy v generalizaci jako typ Pes a typ Kočka. Díky kompatibilitě zespodu nahoru, což je základní vlastnost generalizace (podrobně viz uvedená školení), se kdekoliv na konci asociace tam, kde je uvedena třída Zvíře, může v dané roli vyskytovat instance potomka, tedy instance buď typu Pes anebo instance typu Kočka. V tomto řešení díky tomu zavádíme pouze jeden seznam a to seznam zvířat, který je definován jako seznam s asociací prvku typu Dvůr na typ Zvíře, ale konkrétně se v seznamu vyskytují prvky neboli instance více speciálních podtypů Pes nebo Kočka. Znamená to, že na rozdíl od předešlého případu dvorek, drží jeden seznam, a to seznam zvířat a v něm se vyskytují jak psi, tak kočky. První řešení bez generalizace bychom mohli znázornit v UML takto: strana 2
3 strana 3 Pes Dv ur Kočka Obrázek 1 Řešení bez generalizace Druhé řešení by mohlo být znázorněno pomocí UML takto: Dv ur Zvíře Pes Kočka Obrázek 2 Generalizace v kombinaci s agregací, heterogenní seznam Rozdíl mezi oběma řešeními 1 a 2 na předešlých obrázcích se nezdá až tak velký, protože v instancích jsou si velmi podobné. Instančně se dokonce mohou jevit až jako shodné: Představme instanci dvora (konkrétní dvůr), označme jej jako Dvur1 a na něm jsou tři kočky K1, K2, K3 a dva psi P1, P2. Namalujme linky mezi prvky takto: strana 3
4 strana 4 K1 Dv ur1 K2 P1 K3 P2 Obrázek 3 Instanční model psů a koček na dvorku Když se podíváme na předešlý obrázek, existují dva možné pohledy na linky (spojnice mezi instancemi): 1. Linky jako spojnice mezi instancí Dvur1 na jedné straně a K1, K2, K3 na straně druhé patří do jednoho seznamu a současně všechna spojení mezi Dvur1 a P1, P2 patří do druhého seznamu. Zvolili jsme tímto řešení bez generalizace se dvěma asociacemi, tj. máme dva seznamy, jeden pro psy, druhý pro kočky. Tomu odpovídá Obrázek Úplně všechny linky na obrázku, tj. na jedné straně spojnice Dvur1 a na straně druhé K1, K2, K3, P1, P2 spadají pod jeden vztah asociace a jsou všechny jeho realizací (tj. realizovány jeho instanciováním). Protože prvky K1, K2, a K3 patří do jedné třídy Kočka a P1, P2 do druhé třídy Pes, musí být tento společný vztah realizován přes předka, nazvěme tuto třídu Zvíře. Zvolili jsme tímto řešení s generalizací a s jednou asociací, tj. máme jeden seznam zvířat a v něm figurují jak kočky, tak psi. V tomto případě tomuto řešení odpovídá Obrázek 2. Rozdíl mezi oběma řešeními je důležitý hlavně ze dvou hledisek: Za prvé z pohledu analytické přehlednosti a za druhé z hlediska typové flexibility. 1. ANALYTICKÁ PŘEHLEDNOST. U druhého řešení s generalizací i laik hovoří o seznamu zvířat a rozumí mu. Například jsou srozumitelné a jasné věty typu vyhnali strana 4
5 strana 5 jsme všechna zvířata ze dvorku, sečteme počet zvířat ve dvorku, všechna zvířata ve dvorku vydávají jako reakci na podnět zvuk, ale každý podle svého typu (pozn.: Všimněme si, že se jedná o laickou, ale přesně vyjádřenou vlastnost polymorfního chování), to vše je laikovi jasné. Stejně jednoduše to funguje i v UML, jedná se jen o grafický zápis těchto vět a úvah nad nimi. 2. TYPOVÁ FLEXIBILITA. Pokud u řešení s generalizací přidáme nový druh zvířete jako nový podtyp zvířete (například typ Kachna jako další dědic typu Zvíře ), tak do předešlých vět předešlého odstavce nemusíme vůbec zasahovat. Ten, kdo obsluhuje seznam zvířat, se nestará o podtypy typu Zvíře. Pokud bychom však použili první řešení bez generalizace (viz Obrázek 1), tj. pro každý typ zvířete bychom zavedli pokaždé nový seznam zvlášť, museli bychom přidat nový seznam v dvorku k již hotovým seznamům a překopat tak strukturu dvorku. Uvedené řešení našeho dvorku s generalizací pomocí pojmu Zvíře zobecníme do vzoru HETEROGENNÍ SEZNAM. V mnoha případech se i v evidenci setkáváme s podobným problémem. Všude tam, kde hovoříme o seznamu z obecnějších pojmů (zde seznam zvířat), ale přitom máme na mysli prvky z konkrétních podtypů (zde konkrétní kočky a konkrétní psi), tam se hodí použít vzor HETEROGENNÍ SEZNAM, jehož strukturu bychom mohli vyjádřit takto: X A A1 A2 An... Obrázek 4 Obecný vzor heterogenní seznam Popis vzoru: Nějaký obecný prvek X drží seznam z A, což mohou být A1, A2,...až An. strana 5
6 strana 6 Možné varianty vzoru HETEROGENNÍ SEZNAM: 1. Agregací může být buď kompozice anebo sdílená agregace. 2. Třída A bývá většinou abstraktní. Uveďme příklady použití: Hovoříme o seznamu přijatých zpráv různého typu, o zpracování dokladů různého typu, o seznamu bankovních služeb různého typu atd. Uvedený vzor ještě není předmětem tohoto článku, je probrán jako základní látka uvedených dvou školení (školení viz Pobytový kurz OOP a UML a distanční e-kurz Kurz profesního růstu analytika od základů ). ZADÁNÍ PROBLÉMU POVOLENÝCH KOMBINACÍ V HETEROGENNÍM SEZNAMU V jedné firmě při školení OOP a UML se právě při probírání vzoru HETEROGENNÍ SEZNAM vynořil zajímavý problém k řešení. Protože školení má i konzultační charakter, také jsme jej hned u tabule vyřešili. Jak zadání problému, tak i řešení mne natolik zaujalo, že jej předkládám v tomto článku. Otázka problému k řešení zněla: Co kdybychom potřebovali instančně omezit resp. naopak instančně povolit některé kombinace možných zrodů instancí z podtypů daného použití vzoru? Zní to sice složitě, a proto si vše vysvětlíme na příkladu s našimi zvířaty: Existovaly by různé druhy dvorků podle povolených kombinací, jak se mohou rodit instance z potomků (tj. různé kombinace omezení počtů koček a psů). Například v prvním druhu dvorku by byla povolena pouze existence kombinace právě jeden pes a právě jedna kočka a nic víc. V druhém druhu dvorku by bylo povoleno jeden pes a koček kolik chceš. V dalším druhu dvorku by byla povolena kombinace kolik psů chceš, ale jen právě dvě kočky atd. Tyto kombinace by si zadávala obsluha a zakládala by tak povolené možné druhy dvorků. Takovýto požadavek může vzniknout v evidenci IS: Například určitému klientovi daného typu můžeme dát úvěr jenom jednou, ale ostatní služby má bez omezení apod., ale jiný klient jiného typu může mít úvěrů kolik chce. Nebo jiný příklad: Určitý druh zprávy může mít pouze jednu informaci typu 1, ale N informací typu 2. Jiný druh zprávy může mít N informací typu 1 a právě dvě informace typu 2 atd. Všimněme si nejprve, že na úrovni tříd jsou všechny uvedené kombinace v modelu Obrázek 2 povoleny, ale nikoliv omezeny. Znamená to, že model tříd Obrázek 2 povoluje všechny vyslovené kombinace v předešlém odstavci, ale současně nevymezuje, že za daných okolností musí nastat právě jedna z nich. Například z modelu Obrázek 2 plyne, že můžeme instančně vytvořit seznam o dvou zvířatech, první bude pes a druhé bude kočka. Tím jsme vytvořili jednu ze zmíněných kombinací jeden pes a jedna kočka, ale zadání zní jinak: Potřebujeme omezit, že pokud zvolíme druh dvorku s omezením jeden pes a jedna kočka, strana 6
7 strana 7 nedovolí se u tohoto dvorku založit jiná kombinace, než jeden pes a jedna kočka. Model Obrázek 2 však nyní dovoluje založit libovolnou kombinaci ze všech podtypů. Model na zmíněném obrázku má vlastně jakoby implicitně přiřazenu kombinaci kolik koček chceš a kolik psů chceš a to bez omezení. Instančně si tedy zadání problému můžeme představit takto: Máme dán model tříd zvířat na dvorku, viz Obrázek 2. Jsou zadány povolené kombinace zrodu instancí, například takto: Kombinace 1 = (pes 1, koček ) Kombinace 2 = (pes, koček 2) atd. Přiřadíme jednu z těchto kombinací jako vlastnost danému dvorku při jeho zrodu, tj. řekneme při zrodu dvorku: Jsi tohoto druhu povolené kombinace a on bude rodit v seznamu zvířat kočky a psy omezeně podle této kombinace. Jinému dvorku dáme do vínku jinou kombinaci a máme dvorek s jinou povolenou kombinací. Potom budou nastávat požadované situace, kdy jeden konkrétní dvorek může mít pouze jednoho psa a jednu kočku, jiný konkrétní dvorek může mít N psů a právě dvě kočky atd. (viz předešlé kombinace). Jak navrhnout model tříd, který toto bude podporovat? Zatím v modelu toto řešení nemáme K řešení musíme znát ještě jeden analytický vzor, který je také součástí výkladu obou školení (viz Pobytový kurz OOP a UML a distanční e-kurz Kurz profesního růstu analytika od základů ). Tento vzor se nazývá DISKRIMINÁTOR. O něm a o řešení příkladu bude pojednáno příště Pokračování příště strana 7
NAUČTE SE MALOVAT SI INSTANCE!
NAUČTE SE MALOVAT SI INSTANCE! část 2. RNDr. Ilja Kraval, září 2009 http://www.objects.cz ÚVOD V předešlém článku jsme otevřeli jeden ze základních problémů, který musí analytik řešit: Jak vypadá skladba
Druhá část odpovědi na mail ohledně zpracování případů užití
Druhá část odpovědi na mail ohledně zpracování případů užití Autor RNDr. Ilja Kraval leden 2008 www.objects.cz Úvod Tento článek navazuje jako pokračování na článek předešlý. Minule jsme si vysvětlili,
Úvod do principů objektově orientovaného programování
OBSAH DISTANČNÍHO E-LEARNINGOVÉHO KURZU PROFESNÍ RŮST ANALYTIKA OD ZÁKLADŮ (BASE) ÚVOD DO TECHNOLOGIÍ INFORMAČNÍCH SYSTÉMŮ Jak funguje počítač na základní úrovni Základy HTML Skripty ve webovských technologiích
ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH
ROZDÍL MEZI VZTAHEM EXTEND A INCLUDE V USE CASE DIAGRAMECH 3. část RNDr. Ilja Kraval, srpen 2009 http://www.objects.cz ÚVOD Tento článek je pokračováním předešlých článků. Článek vysvětluje použití vztahu
Odpověď na dotaz ohledně asociační třídy v modelu měření
Odpověď na dotaz ohledně asociační třídy v modelu Část 4. Tento článek navazuje na předešlé články jako jejich pokračování autor RNDr. Ilja Kraval, http://www.objects.cz září 2007 firma Object Consulting
1. Dědičnost a polymorfismus
1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář
Třetí část odpovědi na mail ohledně zpracování případů užití, aneb jak je to s číslováním pořadí případů užití
Třetí část odpovědi na mail ohledně zpracování případů užití, aneb jak je to s číslováním pořadí případů užití autor RNDr. Ilja Kraval leden 2008 www.objects.cz Úvod Tento článek navazuje jako pokračování
Problém identity instancí asociačních tříd
Problém identity instancí asociačních tříd Autor RNDr. Ilja Kraval Ve školeních a také následně po jejich ukončení se stále častěji objevují dotazy, které se týkají tzv. identity instancí asociační třídy.
JEDNODUCHÁ A PRAKTICKÁ METODA ODHADU PRACNOSTI PROJEKTU (S UTILITOU KE STAŽENÍ ZDARMA)
JEDNODUCHÁ A PRAKTICKÁ METODA ODHADU PRACNOSTI PROJEKTU (S UTILITOU KE STAŽENÍ ZDARMA) 2. část autor: RNDr. Ilja Kraval, červenec 2010 http://www.objects.cz ÚVOD V minulém článku bylo pojednáno o složitosti
Jak funguje element deep history v UML
Jak funguje element deep history v UML autor RNDr. Ilja Kraval, http://www.objects.cz březen 2007 firma Object Consulting s.r.o. Úvod Již několikrát jsem v internetových diskusích a při školeních narazil
Čtvrtá část odpovědi aneb jak je to vlastně s interakcí <<include>>
Čtvrtá část odpovědi aneb jak je to vlastně s interakcí autor RNDr. Ilja Kraval leden 2008 www.objects.cz Úvod Tento článek navazuje jako pokračování na články předešlé. Minule jsme si zde
Odpověď na dotaz ohledně asociační třídy v modelu měření
Odpověď na dotaz ohledně asociační třídy v modelu měření Část 3. Tento článek navazuje na předešlé články jako jejich pokračování autor RNDr. Ilja Kraval, http://www.objects.cz srpen 2007 firma Object
VYHLEDÁVÁNÍ PRVKŮ ACTOR A PROCESNÍ MODELOVÁNÍ
VYHLEDÁVÁNÍ PRVKŮ ACTOR A PROCESNÍ MODELOVÁNÍ Část 3 Tento článek je pokračováním předešlých článků RNDr. Ilja Kraval, duben 2009 http://www.objects.cz ÚVOD V předešlých článcích jsme se seznámili s použitím
Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů
Proč je analytický model IS nutným předpokladem pro zabránění tvorbě molochálních systémů Část 1 autor RNDr. Ilja Kraval, http://www.objects.cz březen 2007 firma Object Consulting s.r.o. Úvod V reakci
Jak správně psát scénáře k případům užití?
Jak správně psát scénáře k případům užití? Autor RNDr. Ilja Kraval 2007 http://www.objects.cz K napsání tohoto článku mne inspiroval tento mail: Dobrý den pane Kravale, chci Vás poprosit o radu, která
Jedna z velmi častých a závažných chyb při návrhu IS aneb jak vznikají tzv. molochální systémy
Jedna z velmi častých a závažných chyb při návrhu IS aneb jak vznikají tzv. molochální systémy Část druhá autor RNDr. Ilja Kraval, http://www.objects.cz červenec 2006 (pozn.: článek navazuje na první část
Nutnost použití vzoru OBSERVER pro zamezení nepříjemných efektů zpětných funkcionálních vazeb mezi objekty
Nutnost použití vzoru OBSERVER pro zamezení nepříjemných efektů zpětných funkcionálních vazeb mezi objekty autor RNDr. Ilja Kraval, http://www.objects.cz únor 2007 firma Object Consulting s.r.o. Úvod V
12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ
56 12 DYNAMIKA SOUSTAVY HMOTNÝCH BODŮ Těžiště I. impulsová věta - věta o pohybu těžiště II. impulsová věta Zákony zachování v izolované soustavě hmotných bodů Náhrada pohybu skutečných objektů pohybem
11 Diagram tříd, asociace, dědičnost, abstraktní třídy
11 Diagram tříd, asociace, dědičnost, abstraktní třídy Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost diagramům tříd, asociaci,
3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda
1. Lze vždy z tzv. instanční třídy vytvořit objekt? 2. Co je nejčastější příčinou vzniku chyb? A. Specifikace B. Testování C. Návrh D. Analýza E. Kódování 3. Je defenzivní programování technikou skrývání
Kurz Postupy návrhu IS pomocí UML a OOP (5 dnů, in-house)
Kurz Postupy návrhu IS pomocí UML a OOP (5 dnů, in-house) přednáší RNDr. Ilja Kraval pořádá firma OBJECT CONSULTING Obsah: Kurz Efektivní postupy návrhu IS pomocí UML a OOP (5 dnů, in-house)... 1 1. Jak
Rady pro tvorbu USE CASE MODELU, rada první: Jak pracovat s pojmy ve scénářích UC
Rady pro tvorbu USE CASE MODELU, rada první: Jak pracovat s pojmy ve scénářích UC Úvod Před nedávnem jsem obdržel trochu delší mail tohoto znění: Dobrý den pane Kravale, před časem jsem absolvoval vaše
OOT Objektově orientované technologie
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
Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů
Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,
DBS Konceptuální modelování
DBS Konceptuální modelování Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze Michal.Valenta@fit.cvut.cz c Michal Valenta, 2010 BIVŠ DBS I, ZS 2010/11 https://users.fit.cvut.cz/
Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová
Objektově orientované technologie Business proces Diagram aktivit Daniela Szturcová Osnova Bysnys proces pojmy metody, specifikace pomocí diagramů Modelování pomocí aktivitního diagramu prvky diagramu
Jazyk UML - přehled. diagram hierarchie procesů. IS firmy. podpora řízení. evidence zaměstnanců. pokladny. výroba. diagram procesních vláken
Jazyk UML - přehled Unified Modeling Language jazyk pro popis objektově orientované analýzy a návrhu aplikací slouží k vzájemné komunikaci mezi zadavatelem a návrhářem systému má několik částí, není nutné
Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března
Polymorfismus Cíle lekce Cílem lekce je vysvětlit význam pojmu polymorfismus jako základní vlastnosti objektově orientovaného programování. Lekce objasňuje vztah časné a pozdní vazby a jejich využití.
O JEDNÉ ČASTÉ CHYBĚ PŘI ROZKLADU PROCESŮ PODNIKU ANEB KDY MÁME UKONČIT ROZKLAD PROCESŮ PODNIKU?
O JEDNÉ ČASTÉ CHYBĚ PŘI ROZKLADU PROCESŮ PODNIKU ANEB KDY MÁME UKONČIT ROZKLAD PROCESŮ PODNIKU? RNDr. Ilja Kraval, říjen 2008 http://www.objects.cz AKTÉROVÁ ŠKOLA Jak známo, informační systémy obsahují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 24. Otázka : Implementační fáze. Postupy při specifikaci organizace softwarových komponent pomocí UML. Mapování modelů na struktury programovacího
UML. Unified Modeling Language. Součásti UML
UML Unified Modeling Language 1995 počátek 1997 verze 1.0 leden dnes verze 2.0 (vývoj stále nedokončen) Standardní notace OMG podpora velkých firem (Microsoft, IBM, Oracle, HP ) popisuje struktury popisuje
PV167 Projekt z obj. návrhu IS. 26. března 2008
Analytický model tříd - 1. část PV167 Projekt z obj. návrhu IS B. Zimmerová 26. března 2008 PV167 Projekt z obj. návrhu IS Analytický model tříd - 1. část 26. března 2008 1 / 8 Diagram tříd - opakování
Mocniny. Nyní si ukážeme jak je to s umocňováním záporných čísel.
Mocniny Mocnina je matematická funkce, která (jednoduše řečeno) slouží ke zkrácenému zápisu násobení. Místo toho abychom složitě psali 2 2 2 2 2, napíšeme jednoduše V množině reálných čísel budeme definovat
Delphi - objektově orientované
Kapitola 6 Delphi - objektově orientované programování Objektově orientované programování (zkracováno na OOP, z anglického Object oriented programming) je metodika vývoje softwaru, založená na těchto myšlenkách,
6 Objektově-orientovaný vývoj programového vybavení
6 Objektově-orientovaný vývoj programového vybavení 6.1 Co značí objektově-orientovaný - organizace SW jako kolekce diskrétních objektů, které zahrnují jak data tak chování objekt: OMG: Objekt je věc (thing).
Objekty, třídy, vazby 2006 UOMO 30
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í
Lingebraické kapitolky - Analytická geometrie
Lingebraické kapitolky - Analytická geometrie Jaroslav Horáček KAM MFF UK 2013 Co je to vektor? Šipička na tabuli? Ehm? Množina orientovaných úseček majících stejný směr. Prvek vektorového prostoru. V
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Analýza a modelování dat. Helena Palovská
Analýza a modelování dat Helena Palovská Analýza a modelování pro SW projekt Strukturovaný přístup Dynamická část (procesy, aktivity, funkce) Statická část (data) Objektově orientovaný přístup use case
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
Principy UML. Clear View Training 2005 v2.2 1
Principy UML Clear View Training 2005 v2.2 1 1.2 Co je touml? Unified Modelling Language (UML) je univerzálníjazyk pro vizuální modelování systémů Podporuje všechny životní cykly Mohou jej implementovat
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.
1. Zapouzdření Cíl látky Tento blok nejdříve přiblíží zásadu zapouzdření a odpoutání kódu a po té na relacích, jako jsou asociace, agregace a kompozice, vysvětlí jak lze objektový zdrojový kód zapouzdřovat
Úvod do objektově orientovaného programování s použitím jazyka C# pro střední školy
Úvod do objektově orientovaného programování s použitím jazyka C# pro střední školy Učebnice je určena pro střední školy k volnému šíření (FREE) autor RNDr. Ilja Kraval, 2006-2007, www.objects.cz Tato
Šumperský efekt rozmnožení případů užití
Šumperský efekt rozmnožení případů užití Ilja Kraval, 2007 http://www.objects.cz Článek pojednává o jednom velmi nepříjemném efektu bobtnání projektu. 1. Odhad velikosti a rozsahu informačního systému
Slučování tabulek. Sloučení dvou tabulek
Slučování tabulek Newsletter Statistica ACADEMY Téma: Příprava dat Typ článku: Návody Máte informace ve více tabulkách a chcete je sloučit dohromady? Pak je tento článek právě pro Vás. Vysvětlíme, jaké
Objektově orientované technologie. Daniela Szturcová
Objektově orientované technologie Cvičení 5 - Tvorba třídního diagramu Daniela Szturcová 1 5 Tvorba třídního diagramu Cíl cvičení Vyhledat třídy, jejich atributy a operace. Navrhnout vazby mezi třídami.
3 druhy UML diagramů
UML grafický jazyk se pro vizualizaci, specifikaci, navrhování a dokumentaci programových systémů zjednodušuje komunikaci mezi zadavatelem a řešitelem projektu UML podporuje objektově orientovaný přístup
Funkční objekty v C++.
Funkční objekty v C++. Funkční objekt je instance třídy, která má jako svou veřejnou metodu operátor (), tedy operátor pro volání funkce. V dnešním článku si ukážeme jak zobecnit funkci, jak používat funkční
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 23. Otázka : Problematika analýzy a návrhu softwarového systému. Sestavení UML diagramů popisující statickou i dynamickou část díla. Problematika návrhových
odboru dozoru a kontroly veřejné správy Ministerstva vnitra č. 29/2007
S t a novisko odboru dozoru a kontroly veřejné správy Ministerstva vnitra č. 29/2007 Označení stanoviska: Trvalé označování psů a evidence označených psů a jejich chovatelů Právní předpis: Ustanovení:
fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu http://akademie.ldf.mendelu.cz/cz (reg. č. CZ.1.07/2.2.00/28.
Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem
MS SQL Server 2008 Management Studio Tutoriál
MS SQL Server 2008 Management Studio Tutoriál Vytvoření databáze Při otevření management studia a připojením se ke konkrétnímu sql serveru mám v levé části panel s názvem Object Explorer. V tomto panelu
Vyřešené teoretické otázky do OOP ( )
Vyřešené teoretické otázky do OOP (16. 1. 2013) 1) Vyjmenujte v historickém pořadí hlavní programovací paradigmata a stručně charakterizujte každé paradigma. a) Naivní chaotičnost, špatná syntaxe a sémantika
Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19
Programování II Abstraktní třída Vícenásobná dědičnost 2018/19 Osnova přednášky Polymorfismus - důsledky. Abstraktní třída. Vícenásobná dědičnost. Polymorfismus - důsledky Polymorfismus Polymorfismus je
Návrhové vzory OMO, LS 2014/2015
Návrhové vzory OMO, LS 2014/2015 Motivace Cílem objektového návrhu je strukturu aplikace navrhnout tak, aby splňovala následující kritéria: snadná rozšiřitelnost účelnost testovatelnost dokumentovatelnost
Databázové systémy. Ing. Radek Holý
Databázové systémy Ing. Radek Holý holy@cvut.cz Literatura: Skripta: Jeřábek, Kaliková, Krčál, Krčálová, Kalika: Databázové systémy pro dopravní aplikace Vydavatelství ČVUT, 09/2010 Co je relační databáze?
Že tuto definici znáte, ale stále přesně nevíte, jak funkci chápat? Ukážeme si konkrétní příklad. 1 2 3 4 5 Definiční obor (množina A)
Funkce úvod Co je funkce Funkce je předpis, který číslu z množiny A přiřazuje právě jedno číslo z množiny B. Množina A je definiční obor funkce a množina B je obor hodnot funkce. Že tuto definici znáte,
7.5 Diagram tříd pokročilé techniky
7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem
LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25
Základy lineárního programování Vyšší matematika, Inženýrská matematika LDF MENDELU Podpořeno projektem Průřezová inovace studijních programů Lesnické a dřevařské fakulty MENDELU v Brně (LDF) s ohledem
Množiny, relace, zobrazení
Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,
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.
3. ročník Dědičnost seskupování tříd do hierarchie nadtyp-podtyp potomek získá všechny vlastnosti a metody kromě označených jako private provádí se pomocí dvojtečky za názvem třídy Polymorfismus všude
Příklad z učebnice matematiky pro základní školu:
Příklad z učebnice matematiky pro základní školu: Součet trojnásobku neznámého čísla zvětšeného o dva a dvojnásobku neznámého čísla zmenšeného o pět se rovná čtyřnásobku neznámého čísla zvětšeného o jedna.
VÍŠ, CO JE TO BANKA?
VÍŠ, CO JE TO BANKA? Plán vyučovací hodiny (č. 5) TÉMA VYUČOVACÍ HODINY: Víš, co je to banka? VĚK ŽÁKŮ: využití podle úrovně žáků (doporučení 6. až 8. třída) ČASOVÁ DOTACE: 45 minut POTŘEBNÉ MATERIÁLY:
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.
Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi
1 Co jsou lineární kódy
1 Žádný záznam informace a žádný přenos dat není absolutně odolný vůči chybám. Někdy je riziko poškození zanedbatelné, v mnoha případech je však zaznamenaná a přenášená informace jištěna přidáním dat,
Diagram výskytů a vztahů
Diagram výskytů a vztahů Nepoužívá se pro modelování. Pomůcka pro pochopení kardinalit a parcialit. KINO Blaník Vesna Mír Domovina Květen MÁ_NA_PROGRAMU FILM Černí baroni Top gun Kmotr Nováček Vzorec Vetřelec
Kapitola 1: Reálné funkce 1/20
Kapitola 1: Reálné funkce 1/20 Funkce jedné proměnné 2/20 Definice: Necht M R. Jestliže každému x M je přiřazeno jistým předpisem f právě jedno y R, říkáme, že y je funkcí x. x... nezávisle proměnná (neboli
Principy OOP při tvorbě aplikací v JEE. Michal Čejchan
Principy OOP při tvorbě aplikací v JEE Michal Čejchan Témata přednášky Principy OOP - připomenutí Úvod - co nás vede k používání OOP Reálný svět - jak (ne)používáme OOP Nedostatky na úrovni programovacích
ŘADY KOMPLEXNÍCH FUNKCÍ
ŘADY KOMPLEXNÍCH FUNKCÍ OBECNÉ VLASTNOSTI Řady komplexních čísel z n byly částečně probírány v kapitole o číselných řadách. Definice říká, že n=0 z n = z, jestliže z je limita částečných součtů řady z
Analytické modelování informačních systémů
Ilja Kraval Analytické modelování informačních systémů pomocíumlvpraxi Object Consulting 2010 Anotace: V knize je popsán obecný přístup k analýze informačního systému, respektive vytvoření analytického
UML úvod. Zdroje: Kanisová Hana, Müller Miroslav: UML srozumitelně, Computer Press 2007
UML úvod Kapitola má seznámit se základy modelovacího jazyka UML. Klíčové pojmy: UML, CASE nástroje, procesní modelování, případy užití, role, diagram tříd, diagram objektů, sekvenční diagramy, digram
Náhodné jevy. Teorie pravděpodobnosti. Náhodné jevy. Operace s náhodnými jevy
Teorie pravděpodobnosti Náhodný pokus skončí jedním z řady možných výsledků předem nevíme, jak skončí (náhoda) příklad: hod kostkou, zítřejší počasí,... Pravděpodobnost zkoumá náhodné jevy (mohou, ale
Matematická logika. Miroslav Kolařík
Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
MAXScript výukový kurz
MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...
Třída. Atributy. Operace
Class Diagrams Třída Atributy Operace Třída Třída je jakýsi prototyp objektů. Za třídou si můžeme představit množinu jejích instancí. Každý objekt dané třídy má stejnou množinu atributů (proměnných) a
FUNKCE POJEM, VLASTNOSTI, GRAF
FUNKCE POJEM, VLASTNOSTI, GRAF Zavedení pojmu funkce funkce Funkce f na množině D R je předpis, který každému číslu x z množiny D přiřazuje právě jedno reálné číslo y z množiny R. Množina D se nazývá definiční
Závěr č. 88 ze zasedání poradního sboru ministra vnitra ke správnímu řádu ze dne
Příloha č. 2 k zápisu z 26. 3. 2010 MINISTERSTVO VNITRA Poradní sbor ministra vnitra ke správnímu řádu Závěr č. 88 ze zasedání poradního sboru ministra vnitra ke správnímu řádu ze dne 26. 3. 2010 - Výklad
1 Strukturované programování
Projekt OP VK Inovace studijních oborů zajišťovaných katedrami PřF UHK Registrační číslo: CZ.1.07/2.2.00/28.0118 1 Cíl Seznámení s principy strukturovaného programování, s blokovou strukturou programů,
6 Lineární geometrie. 6.1 Lineární variety
6 Lineární geometrie Motivace. Pojem lineární varieta, který budeme v této kapitole studovat z nejrůznějších úhlů pohledu, není žádnou umělou konstrukcí. Příkladem lineární variety je totiž množina řešení
Unifikovaný modelovací jazyk UML
Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li
Práce se styly 1. Styl
Práce se styly 1. Styl Styl se používá, pokud chceme, aby dokument měl jednotný vzhled odstavců. Můžeme si nadefinovat styly pro různé úrovně nadpisů, jednotlivé popisy, charakteristiky a další odstavce.
6.1.2 Operace s komplexními čísly
6.. Operace s komplexními čísly Předpoklady: 60 Komplexním číslem nazýváme výraz ve tvaru a + bi, kde a, b jsou reálná čísla a i je číslo, pro něž platí i =. V komplexním čísle a + bi se nazývá: číslo
Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.
Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických
Nové výsledky o zlomkových kuželosečkách v rovině a prostoru
Michal Řepík ZS 0/0 Nové výsledky o zlomkových kuželosečkách v rovině a prostoru Michal Řepík Pedagogická fakulta, Univerzita Karlova v Praze, BM, ZS 0/0, m.repik@email.cz Abstrakt Tato seminární práce
Limita a spojitost funkce. 3.1 Úvod. Definice: [MA1-18:P3.1]
KAPITOLA 3: Limita a spojitost funkce [MA-8:P3.] 3. Úvod Necht je funkce f definována alespoň na nějakém prstencovém okolí bodu 0 R. Číslo a R je itou funkce f v bodě 0, jestliže pro každé okolí Ua) bodu
11.5.2012. 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
Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií
Základní pojmy matematické logiky
KAPITOLA 1 Základní pojmy matematické logiky Matematická logika se zabývá studiem výroků, jejich vytváření a jejich pravdivostí. Základním kamenem výrokové logiky jsou výroky. 1. Výroková logika Co je
Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu
VÝROKOVÁ LOGIKA Matematická logika se zabývá studiem výroků, jejich vytváření a jejich pravdivostí. Základním kamenem výrokové logiky jsou výroky. Co je výrok nedefinujejme, pouze si řekneme, co si pod
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.
INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ107/2200/280141 Soustavy lineárních rovnic Michal Botur Přednáška 4 KAG/DLA1M: Lineární
O JEDNÉ ZÁLUDNOSTI INTERAKCE «INCLUDE» V MODELU PŘÍPADŮ UŽITÍ
O JEDNÉ ZÁLUDNOSTI INTERAKCE «INCLUDE» V MODELU PŘÍPADŮ UŽITÍ 2. část RNDr. Ilja Kraval, květen 2010 http://www.objects.cz ÚVOD V předešlém článku jsme nastínili problém, který vzniká v souvislosti s hledáním
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová
Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová Osnova Modelování interakcí mezi objekty modelování zpráv (mapování zpráv na operace), vytváření a
Pravděpodobnost a statistika
Pravděpodobnost a statistika 1 Náhodné pokusy a náhodné jevy Činnostem, jejichž výsledek není jednoznačně určen podmínkami, za kterých probíhají, a které jsou (alespoň teoreticky) neomezeně opakovatelné,
Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace
RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,
4. Kombinatorika a matice
4 Kombinatorika a matice 4 Princip inkluze a exkluze Předpokládejme, že chceme znát počet přirozených čísel menších než sto, která jsou dělitelná dvěma nebo třemi Označme N k množinu přirozených čísel
7.5 Diagram tříd pokročilé techniky
7.5 Diagram tříd pokročilé techniky Stereotypy - jeden ze základních prostředků rozšiřitelnosti UML - pro modelovací konstrukce neexistující v UML, ale podobné předdefinované v UML definované uživatelem