Jedna z velmi častých a závažných chyb při návrhu IS aneb jak vznikají tzv. molochální systémy
|
|
- Dalibor Prokop
- před 8 lety
- Počet zobrazení:
Transkript
1 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, červenec 2006 (pozn.: článek navazuje na první část také volně ke stažení) Ve školeních OOP a UML věnujeme velmi velkou pozornost jednomu ze základních pojmů v návrhu IS - principu úrovní abstrakce: jaké poslání mají analýza, design a kód. Prakticky se jedná o návod, jak správně navrhnout analytický modelu, jak od něj odvodit technologický návrh a kód. Přitom probíráme několik ukázkových příkladů z praxe, mezi nimi řešíme jako příklad analytický model a technologický návrh evidence hypotetické firmy, která dodává na trh výrobky z porcelánu. Druhy výrobků této firmy jsou členěny tak, že některé jsou základní, jsou dále nedělitelné a jediná možnost, jak jej rozdělit, je rozbít výrobek ( ale pak jsou již neprodejné ). Výrobky určitých druhů jsou oproti tomu složené z jiných výrobků (složeniny). Toto skládání nemusí být pouze jednoúrovňové. Například firma dodává na trh šálek A, dále konvici B (oba druhy patří do nedělitelných druhů), dodává také servis C, který je složen z jedné konvice B a šesti šálku A, a také dodává servis D, který je složen ze dvou servisů C atd. Úkolem cvičení na úrovně abstrakce je předložit analytický model tříd evidence dodávaných druhů výrobků a provést následný technologický návrh. Smyslem příkladu je ukázat, jak uvažuje analytik a jak uvažuje designér, tj. jak spolu souvisí analytický model a následný model designu.
2 Existuje několik možných řešení tohoto příkladu (o všech známých je podáno ve výkladu ve cvičení), což pro tento článek není až tak důležité. My se pro účely článku soustředíme na jedno z řešení, viz následující model: +element rozkladu Složený Element +položky Položka Elementu * - počet: int obrázek Jedno z možných řešení evidence skládaných výrobků - Kusovník Princip evidence je poměrně jednoduchý: Existují dvě konkrétní třídy evidující druhy výrobků: Třída pro nedělitelné druhy a třída Složený Element pro prvky dále složené. Prvky z třídy Složený Element mají navíc tzv. položky, které udávají kolik a z čeho je prvek složen. Je třeba zdůraznit, že na konci asociace v roli element rozkladu může být jak prvek ze třídy, tak prvek ze třídy Složený Element. (Poznámka: Někdy se podobné evidenci také říká Kusovník). Ještě jednou upozorňuji, že existují velmi blízká, ale odlišná řešení, například čistější řešení, které zavádí horní abstraktní třídu Element a teprve ta má dva dědice - konkrétní třídy a Složený Element. V tom případě je řešení velmi podobné jako vzor COMPOSITE s tím rozdílem, že u Kusovníku dochází ke skládání složeniny přes položky obsahující počet prvků ( grupování přes počet). Všimněme si, že již zde na několika málo třídách může vzniknout molochální systém díky chybě nečistoty analytického návrhu. Pokračujme v tomto příkladu stejně jako ve cvičení, kdy je předloženo další zadání: Příklad pokračuje: Uživatel si přeje evidovat také množství výrobků na skladě. Navrhněte řešení, zaveďte evidenci množství výrobků daného druhu na skladě! Tady je malý logický háček (malý chyták), který nesouvisí ani tak s UML, ale s logickým myšlením analytika. Pokud budoucí uživatel vznese takovýto požadavek s evidencí výrobků na skladě, musí logicky následovat proti-dotaz od analytika: Jak jsou výrobky uskladněny? Jsou složené výrobky na skladě již složeny anebo se skládají až při vyskladnění? Povaha skládání výrobků metodou přímo na skladě strana 2
3 nebo metodou až po vyskladnění totiž předurčuje algoritmus evidence množství na skladě. Odpověď budoucího uživatele zní: Na skladě jsou pouze nedělitelné výrobky, nikoliv složené. Složené výrobky se skládají až po vyskladnění. Ale přejeme si, abychom vždy věděli, kolik se dá čeho složit. Je zřejmé, že tímto musíme nejprve zavést evidenci základních elementů (nikoliv složených), následně evidence množství složených výrobků bude dáno jako virtuální výpočet udávající kolik se dá z dané skutečně fyzické evidence složit. Jako příklad je zřejmé, že pokud budeme mít v evidenci základních elementů tisíc šálků A a jednu konvici B, složíme pouze jeden servis C a nesložíme ani jeden servis D. Soustřeďme se tedy nejprve pouze na evidenci množství u prvků typu Základní element. A nyní přichází jádro pudla našeho výkladu: Kam toto množství prvků na skladě u základních Elementů vlastně umístit? Školsky řečeno, tady se může udělat opravdu vážná hrubka. Někteří účastníci školení navrhovali umístit množství prvků Základních elementů přímo do třídy Základní element jako atribut takto: - množství na skladě: int obrázek 2 Jedno z možných řešení množství na skladě V prvé řadě je třeba poznamenat, že toto řešení je funkční, ale chybné ( jak záludné!), protože tímto řešením máme zaděláno na problém Všimneme si nejprve jedné teoretické záležitosti: Prvek již není pouze označením druhu výrobku, ale nese také současně informaci o množství na skladě daného druhu. Došlo ke smíchání dvou pojmů, druh a množství na skladě jsou v jedné entitě. To se negativně projeví ve vazbách: Cokoliv, co se týká množství se projeví také v druhu. A nutno poznamenat, že znakem molocha je, že u něj opravdu vše souvisí se vším. Takto navrženým řešením je položen první základní kámen molochálního systému. Záludnost této chyby spočívá v tom, že toto řešení splňuje zadání a dokonce funguje dobře. Jaké je tedy dobré řešení? Správně má být množství na skladě daného druhu v použití obráceně, tj. množství má použít prvek a tím se udává, jakého druhu je dané množství, např. takto: strana 3
4 modul druhy výrobku Množství ZE - množství: int +element rozkladu Složený Element +položky Položka Elementu * - počet: int obrázek 3 Lepší řešení pro množství prvků na skladě Jednoduchým argumentem, který osvětluje, proč je toto řešení lepší, vystihuje vyznačená hranice pro modul druhů výrobku. Tento modul (nebo obecně oblast řešení) stojí samostatně, do něj již problém skladu nezasahuje, do něj se pouze ukazuje, tj. tato oblast je v použití a sama nepoužívá. Vidíme, že sklad používá druhy a nikoliv naopak. Dovedu si představit, že skupina tříd v zeleném poli bude umístěna do jednoho prvku Package v UML (např. CONTROL PACKAGE v EA) a následně po mapování do designu do jedné komponenty (resp. skupiny komponent), v datech do jedné skupiny tabulek. Uveďme si jednoduchý a názorný příklad, který okamžitě osvětlí, proč je toto řešení správnější než předešlé chybné molochální. Nechť uživatel přijde časem s novým požadavkem: Nemáme již pouze jeden sklad, ale zavedli jsme N skladů A ihned vidíme problém s naším atributem! Budeme nuceni překopávat modul druhů, pokud jsme množství umístili jako jednoduchý atribut do druhů výrobků (a to určitě nevede k příjemnému pocitu ). Jednoduchou větu ve smyslu co se stane s entitou Y, pokud se změní entita X použijte vždy, pokud máte pochybnosti o čistotě pojmů v modelu. Uvedená jednoduchá věta totiž odhaluje směr závislosti (Dependency) mezi entitami, což je právě pro chybu zavlečení nečistoty charakteristické. Pomocí této jednoduché věty je tato chyba snadno viditelná. Jak by vypadal analytický model pro zadání zaveďte N skladů v případě odčlenění skladu od druhu, tj. při správném nemolochálním řešení? Jednoduše rozvineme myšlenku skladu nezávisle na druzích výrobků např. takto: strana 4
5 modul sklad Sklad modul druhy výrobku * Množství ZE - množství: int +element rozkladu Složený Element +položky Položka Elementu * - počet: int obrázek 4 Rozvíjení problému skladu - modul druhů je na něm nezávislý Mohu z vlastní několikaleté zkušenosti na mnoha projektech potvrdit, že chyba nečistoty pojmů a následný moloch patří k nejčastějším chybám při návrhu systému a mívá katastrofické následky už pro jenom malinko větší systémy (řádově od 50 entit výše, o stovkách entit ani nemluvě!). Při konzultacích a školeních jsem měl možnost vidět přímo extravagantní ukázkové molochy, například vzpomínám na jeden systém, kde všechny business třídy byly umístěny do jedné obrovské komponenty. A přitom bylo použito pro použití komponentní technologie velmi prostředí JAVA (!), které přímo vybízí k rozsekání systému na menší části (totéž platí i pro.net) Jako další klasické příklad zavedení molocha nečistotou pojmů mohu uvést velmi častou chybu nesprávného použití modulu Osob (tj. modul pro Fyzické a Právnické osoby apod.). Vážnou chybou je, pokud se do těchto entit evidujících osoby počnou cpát všechny možné údaje, které správně patří jinam, například údaje dodavatele a odběratele, údaje o živnosti, údaje čtenáře, pacienta atd. Přitom je evidentní, že směr použití je přesně naopak: Uvedené entity (tj. dodavatel, živnostník, čtenář apod.) obalují jádro osoby a používají jej. strana 5
6 Není bez zajímavosti, že této chyby se nejčastěji dopouštějí tzv. dataři, kteří bez analytického modelu rovnou navrhují tabulky. Mnohem méně se této chyby dopouštějí vývojáři, kteří používají objektové technologie a objektové programování. Osobně se domnívám, že důvod tohoto rozdílu spočívá v tom, že vývojáři znalí OOP mnohem více dbají na směrovost vazeb, tj. sledují kdo koho má ve svém držení a použití. Objekty k tomuto náhledu více nabádají díky své přesné definici vnitřních struktur včetně vazeb, u kterých je ihned vidět nežádoucí vnitřní strukturu. Bráno čistě teoreticky, chyba nečistoty pojmů spočívá v zanedbávání vztahu závislostí v asociacích, konkrétně v zanedbání vlastnosti IsNavigable na koncích asociací. Tam je totiž schováno jádro pudla: Slangově řečeno, je vždy důležité vědět, kdo koho vidí, řečeno odborněji, je dobré znát, který typ (třída) musí použít který jiný typ (třídu) v jakém směru. V relačních databázích je udávání směru vazby bezpředmětné a proto se chybně zanedbává. V samotném programu je však směrovost velmi důležitá, ať už je program napsán objektově anebo nikoliv. V souvislosti s tímto postřehem se musíme zmínit o jednom drobném technickém detailu. Mnohdy se při školeních vysloví otázka: Pokud však zavedeme takovouto směrovou vazbu (viz předešlý obrázek), tak mi není jasné, jak potom můžeme dostat odpovídající prvek množství na skladě při zadaném, vybraném, fečnutém druhu výrobku? Druh výrobků přece o množství neví, a tedy z druhu výrobku se k množství nedostaneme, protože v tomto směru není viditelnost, není tam směr použití. Tato úvaha v sobě obsahuje malý chyták: Funkcionalita nalezení daného množství na skladě při zadaném druhu výrobku není vlastností (není funkcionalitou) druhu výrobku, a je zřejmé, že při správném rozvrstvení aplikace ani být nesmí (všimněte si chybného směru vazby při takto zavedeném řešení). Pokud se podíváme na předešlý obrázek, tak funkcionalita Dej množství na skladě pro vybraný druh (tj. v designu funkce nebo metoda objektu) musí být umístěna do modulu vlevo, tj. do modulu skladu a nikoliv do modulu druhu. Přitom údaj vybraný druh výrobku se stává vstupním parametrem takového výběru. Vyhledává se takový prvek z množství na skladě, který má vazbu na vybraný prvek druh výrobku Bohužel mohu z několikaleté zkušeností konzultanta a školitele potvrdit, že zavlečení nečistoty pojmů s následnými nerozvrstvenými aplikacemi molochálního typu je při návrhu IS až příliš častou chybou. Povahou se jedná o stále stejnou chybu: Nečistotou pojmů vznikají dále od sebe neodseknutelné a nedělitelné celky (kočkopsi a nikoliv psi a kočky), systém následně vykazuje vlastnost totálního provázání všeho se vším. Zdánlivě ušetřený počet entit (tabulek) vede k nežádoucímu propletení informací mezi sebou. V takto navrženém systému vznikají enormně velká kusiska kódu, která principielně nelze rozdělit na menší části. Jak vidět, jedná se o cestu přesně proti modernímu trendu komponentní technologie, který zní: Rozděl kód na menší části a linkuj je. Tímto postupem rozděl a panuj máš vládu nad libovolně rozsáhlým projektem. Jenomže pokud chceme dodržovat toto rozumné pravidlo, je třeba velmi přesně dbát na směry vazeb mezi částmi kódu, jinak je toto pravidlo nepoužitelné --- konec článku --- strana 6
S KONFIGURACÍ POVOLENÝCH KOMBINACÍ DĚDICŮ
VZOR HETEROGENNÍ SEZNAM S KONFIGURACÍ POVOLENÝCH KOMBINACÍ DĚDICŮ RNDr. Ilja Kraval, září 2008 http://www.objects.cz ÚVOD Jak známo, v CLASS DIAGRAMU se dělí vztahy do dvou základních typů: Buď se jedná
VíceProč 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
VíceJak 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á
VíceOdpověď 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
VíceÚ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
VíceTř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í
VíceKurz 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
VíceNAUČ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
VíceŠ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
VíceObsah. Zpracoval:
Zpracoval: houzvjir@fel.cvut.cz 03. Modelem řízený vývoj. Doménový (business), konceptuální (analytický) a logický (návrhový) model. Vize projektu. (A7B36SIN) Obsah Modelem řízený vývoj... 2 Cíl MDD, proč
VíceDruhá čá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,
VíceNutnost 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
VíceJEDNODUCHÁ 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
VícePrincipy 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
VíceVYHLEDÁ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
VíceTÉ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
Více1. 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ář
VíceVyř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
VíceProblé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.
Více10 Balíčky, grafické znázornění tříd, základy zapozdření
10 Balíčky, grafické znázornění tříd, základy zapozdření 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 příkazům balíčkům, grafickému
VícePB161 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
VíceOdpověď 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
VícePB161 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
VíceAnalýza a Návrh. Analýza
Analysis & Design Návrh nebo Design? Design = návrh Není vytváření použitelného uživatelského prostředí (pouze malinká podmnožina celého návrhu) Často takto omezeně chápáno studenty nedokáží si představit,
VíceROZDÍ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
VíceÚvod do databázových systémů
Úvod do databázových systémů Databáze je dnes velmi často skloňovaným slovem. Co se pod tímto termínem skrývá si vysvětlíme na několika následujících stranách a cvičeních. Databáze se využívají k ukládání
VíceFunkč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í
VíceDiagnostika regrese pomocí grafu 7krát jinak
StatSoft Diagnostika regrese pomocí grafu 7krát jinak V tomto článečku si uděláme exkurzi do teorie regresní analýzy a detailně se podíváme na jeden jediný diagnostický graf. Jedná se o graf Předpovědi
VíceProblémové domény a jejich charakteristiky
Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 02 1/16 Problémové domény a jejich charakteristiky Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta
VícePrimární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace
Téma 2.2 Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace Obecný postup: Každá tabulka databáze by měla obsahovat pole (případně sadu polí), které jednoznačně identifikuje každý
VíceO 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í
VíceMOJE-PROJEKTY.CZ. Změny v aplikaci k Verze: 1.1
MOJE-PROJEKTY.CZ Změny v aplikaci k 19.12.2015 Verze: 1.1 Obsah Přehled výdajů dle středisek... 3 Hlídání termínu jednotlivých částí projektu... 3 Potvrzování dokončení části projektu... 4 Přehled opožděných
VíceJak 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
VíceVztah typu Extend v UML a jeho zvláštnosti
Vztah typu Extend v UML a jeho zvláštnosti RNDr. Ilja Kraval 2007 Object Consulting s.r.o. http://www.objects.cz objects@objects.cz Do diskusního fóra na Pandoře (http://pandora.idnes.cz/conference/objcon/)
VíceMetodika sestavení případu hospitalizace 010
Metodika sestavení případu hospitalizace 010 Verze 010 (doplnění vyznačeno červeně) 1 / 6 NÁRODNÍ REFERENČNÍ CENTRUM 1a. Definice případu hospitalizace Časové vymezení Hospitalizační případ 1 je pro potřeby
VíceVzor OBSERVER a jeho zajímavá varianta v kombinaci se vzorem ADAPTER Část 2
Vzor OBSERVER a jeho zajímavá varianta v kombinaci se vzorem ADAPTER Část 2 autor RNDr. Ilja Kraval, http://www.objects.cz únor 2007 firma Object Consulting s.r.o. Úvod V předešlé části článku jsme si
VíceAlgoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
VíceRelační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:
Relační databáze Pojem databáze, druhy databází Databází se myslí uložiště dat. V době začátků využívání databází byly tyto členěny hlavně hierarchicky, případně síťově (rozšíření hierarchického modelu).
Víceprogramátor vs. vývojář
programátor vs. vývojář... Michał Weiser @michal_weiser linkedin.com/in/michalweiser https://kahoot.it QUIZ Jarda vzdělání Bc. Informační technologie, VUT FIT jazyky čeština nativní angličtina - B2 zkušenosti
VíceJak mluvit s roboty. Dokážeš naprogramovat robota tak, aby postavil kelímky ve správnou stavbu?
Jak mluvit s roboty Dokážeš naprogramovat robota tak, aby postavil kelímky ve správnou stavbu? Témata: Algoritmy, Debuggování (opravy chyb) Během této hodiny se žáci naučí, jak předávat pokyny robotovi
VíceVývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Znalosti Schopnosti Cvičení
VíceČ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
Více7.2.1 Vektory. Předpoklady: 7104
7..1 Vektory Předpoklady: 7104 Některé fyzikální veličiny (například rychlost, síla) mají dvě charakteristiky: velikost, směr. Jak je znázornit? Jedno číslo (jako například pro hmotnost m = 55kg ) nestačí.
VíceTEORIE ZPRACOVÁNÍ DAT
Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta
VíceÚvodem... 4 Co je to vlastně formulář Co je to šablona dokumentu Jak se šablona uloží Jak souvisí formulář se šablonou...
Obsah Úvodem... 4 Co je to vlastně formulář... 5 Co je to šablona dokumentu... 5 Jak se šablona uloží... 6 Jak souvisí formulář se šablonou... 7 Jak se formulář vytváří... 8 Návrh formuláře... 8 Co jsou
VíceArchitektura softwarových systémů
Architektura softwarových systémů Ing. Jiří Mlejnek Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Jiří Mlejnek, 2011 jiri.mlejnek@fit.cvut.cz Softwarové
VíceObjektově orientované programování v jazyce Python
Objektově orientované programování v jazyce Python Základní pojmy objektově orientovaného programování Objekt vychází z reálného světa. Má dva charakteristické rysy. Všechny objekty mají stav Všechny objekty
VíceStefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Logika pro každodenní přežití Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
VíceCopyright 2013 Martin Kaňka; http://dalest.kenynet.cz
Copyright 2013 Martin Kaňka; http://dalest.kenynet.cz Popis aplikace Aplikace Pattern Constructor je navržena pro tvorbu osové souměrnosti tak, aby odpovídala úrovni dovedností dětí. Tím, že mohou jednoduše
VíceZvířata jakožto věci nalezené, opuštěné a ztracené.
1 DOBROVOLNÝ EKOLOGICKÝ SPOLEK ochrana ptactva Záchranná stanice živočichů Plzeň Zábělská 75 312 00 Plzeň Zvířata jakožto věci nalezené, opuštěné a ztracené. Jak postupovat když? Karel Makoň, Mgr. Jana
VíceKONTROLNÍ SEZNAM PRO SESTAVENÍ ÚLOŽNÉ KRABICE
KONTROLNÍ SEZNAM PRO SESTAVENÍ ÚLOŽNÉ KRABICE pro sestavení úložné krabice Kontrolní seznam doprovázející test "SESTAVENÍ ÚLOŽNÉ KRABICE" je seznam složený z popisné části zkušebního postupu a vybraných
VíceVývoj a ověřování metodiky výuky programování
Copyright Rudolf Pecinovský, Soubor: 2016_INF_Architecture First.doc, verze 1.00.2413, uloženo út 19.1.2016 10:03 1 z 11 Vývoj a ověřování metodiky výuky programování Rudolf Pecinovský Informatika XXIX
VíceDOTAZNÍK PRO URČENÍ UČEBNÍHO STYLU
DOTAZNÍK PRO URČENÍ UČEBNÍHO STYLU Projekt MOTIVALUE Jméno: Třida: Pokyny Prosím vyplňte vaše celé jméno. Vaše jméno bude vytištěno na informačním listu s výsledky. U každé ze 44 otázek vyberte a nebo
VíceTypy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu
StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již
VíceRady 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
VíceObjektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová
Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová Osnova K čemu slouží diagram komponent obsah komponent závislosti rozhraní
VíceNOVÉ GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ (GUI)
NOVÉ GRAFICKÉ UŽIVATELSKÉ ROZHRANÍ (GUI) UŽIVATELSKÁ PŘÍRUČKA TYP DOKUMENTU: NÁVOD VYHOTOVIL: PETR VONDRÁČEK DATUM VYHOTOVENÍ: 29.3.2012 PLATNOST OD: 29.3.2012 CÍLOVÁ SKUPINA: UŽIVATELÉ B2B PORTÁLU GROW
VíceAnalýza a modelování dat. Přednáška 4
Analýza a modelování dat Přednáška 4 Objektově orientovaný přístup Strukturovaný přístup starší přístup analýzy modelování dat typický zástupce: E-R model prvky reálného světa zobrazujeme do předem připravených
VíceNávrh databázového modelu
Návrh databázového modelu Informační a znalostní systémy 1 2 Konflikty 3 návrh musí pokrývat požadavky zadavatele návrhbyměl reflektovat i možné budoucí poslání návrh od shora dolů zdola nahoru Vývoj modelu
VíceMetodika sestavení případu hospitalizace
Metodika sestavení případu hospitalizace 009.2012 1 / 6 NÁRODNÍ REFERENČNÍ CENTRUM 1a. Definice případu hospitalizace Časové vymezení Hospitalizační případ 1 je pro potřeby DRG časově vymezen pobytem nemocného
VíceVývoj informačních systémů. Přehled témat a úkolů
Vývoj informačních systémů Přehled témat a úkolů Organizace výuky doc. Mgr. Miloš Kudělka, Ph.D. EA 439, +420 597 325 877 homel.vsb.cz/~kud007 milos.kudelka@vsb.cz Přednáška Teorie Praxe Cvičení Diskuze
VíceVýhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.
Kapitola Reprezentace grafu V kapitole?? jsme se dozvěděli, co to jsou grafy a k čemu jsou dobré. rzo budeme chtít napsat nějaký program, který s grafy pracuje. le jak si takový graf uložit do počítače?
VíceMinerva TPV+ TPV funkcionalita v QAD. David Pochman Senior konzultant
Minerva TPV+ TPV funkcionalita v QAD David Pochman Senior konzultant 13.6.2012 Minerva TPV+ Využití moderních technologií.net Framework Plná integrace s QAD eb2.1.net UI verze 2.8.1 Snadné uživatelsky
VíceObjektově orientované programování v jazyce Python
Objektově orientované programování v jazyce Python Co to je objektově orientované programování Python není přímo objektově orientovaný jazyk, ale podporuje nejdůležitější části objektově orientovaného
Více2. Modelovací jazyk UML 2.1 Struktura UML 2.1.1 Diagram tříd 2.1.1.1 Asociace 2.1.2 OCL. 3. Smalltalk 3.1 Jazyk 3.1.1 Pojmenování
1. Teoretické základy modelování na počítačích 1.1 Lambda-kalkul 1.1.1 Formální zápis, beta-redukce, alfa-konverze 1.1.2 Lambda-výraz jako data 1.1.3 Příklad alfa-konverze 1.1.4 Eta-redukce 1.2 Základy
VíceI. JAK SI MYSLÍM, ŽE MOHU BÝT PRO TÝM PROSPĚŠNÝ:
Test týmových rolí Pokyny: U každé otázky (I - VII), rozdělte 10 bodů mezi jednotlivé věty podle toho, do jaké míry vystihují vaše chování. V krajním případě můžete rozdělit těchto 10 bodů mezi všechny
VíceKolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín
Kolekce ArrayList napsal Pajclín Tento článek jsem se rozhodl věnovat kolekci ArrayList, protože je to jedna z nejpoužívanějších. Tento článek není kompletním popisem třídy ArrayList, ale budu se snažit
VíceÚloha - rozpoznávání číslic
Úloha - rozpoznávání číslic Vojtěch Franc, Tomáš Pajdla a Tomáš Svoboda http://cmp.felk.cvut.cz 27. listopadu 26 Abstrakt Podpůrný text pro cvičení předmětu X33KUI. Vysvětluje tři způsoby rozpoznávání
VíceMetodika sestavení případu hospitalizace 012.001
Metodika sestavení případu hospitalizace 012.001 Verze 012.001_návrh (doplnění pro verzi 012 zvýrazněno červeně) 1 / 7 NÁRODNÍ REFERENČNÍ CENTRUM 1a. Definice případu hospitalizace Časové vymezení Hospitalizační
VíceSada 1 - Základy programování
S třední škola stavební Jihlava Sada 1 - Základy programování 01. Základní pojmy a principy programování Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284
VíceČíselné soustavy - Teorie
153 ( = 1 8 2 + 5 8 1 + 3 8 0 Číselné soustavy - Teorie Napsal/a: Žirafka Datum zveřejnění: : 17. 10. 2008 v 18:59 Dnešní povídání začnu několika jednoduchými rovnicemi: 11110011 = 243 10101010 = 170 9
VíceINVESTICE 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 CZ.1.07/2.2.00/28.0141 Relace, zobrazení, algebraické struktury Michal Botur Přednáška
VíceDatabáze Bc. Veronika Tomsová
Databáze Bc. Veronika Tomsová Databázové schéma Mapování konceptuálního modelu do (relačního) databázového schématu. 2/21 Fyzické ik schéma databáze Určuje č jakým způsobem ů jsou data v databázi ukládána
VíceO 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
Více06/03/15. Exekuce ios. Deliverable 01. Vojtěch Micka mickavoj Naim Ashhab ashhanai
[BIS-EXE] Deliverable 01 06/03/15 Exekuce ios Deliverable 01 Vojtěch Micka mickavoj Naim Ashhab ashhanai [BIS-EXE] Deliverable 01 Zadání Migrace části webové aplikace Lustrátor (lustrator.bisnode.cz) od
VíceUživatelský manuál: Modul Nové kontakty
Uživatelský manuál: Modul Nové kontakty Se zapnutím nových kontaktů souvisí nasazení nové aplikace Těžká podatelna a nový formulář pro evidenci externí písemnosti (dokumentu). Zapnutí nových kontaktů lze
VíceArchitektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura
Dílčí architektury Informační systémy - dílčí architektury - EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu 1 Globální Funkční Procesní Datová SW Technologická HW Aplikační
Vícecvičení (pro nalezení vztahu ke své sadě a pro pochopení struktury tarotu) praktické procvičování metody + cvičení na procvičení významu karet
KORESPONDENČNÍ emailový KURZ 6 lekcí, cena 1800Kč. Lekce: 1. výběr sady, struktura tarotu, postup výkladu krok za krokem cvičení (pro nalezení vztahu ke své sadě a pro pochopení struktury tarotu) 2. metoda,
VíceMODUL 1 ZAČÍNÁME S BLOGEM
MODUL 1 ZAČÍNÁME S BLOGEM V prvním modulu se dozvíte, jak vám blog může ve vašem podnikání pomoci. Stanovíte si téma blogu, jeho cíl a také cílového návštěvníka, kterému budete přizpůsobovat obsah na vašem
VíceAlgebraické struktury s jednou binární operací
16 Kapitola 1 Algebraické struktury s jednou binární operací 1.1 1. Grupoid, pologrupa, monoid a grupa Chtěli by jste vědět, co jsou to algebraické struktury s jednou binární operací? No tak to si musíte
Více1 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)
VíceProgramování v C++ VI
Programování v C++ VI Konstruktory, destruktory a dědičnost Konstruktory a dědičnost I když jsme se bavili o dědičnosti, trochu jsme zapomněli na konstruktory to se ale nevyplácí, vzpomeňte si, jak důležitý
VíceTESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ VIDEO PŘEHRÁVAČE VLC
TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ VIDEO PŘEHRÁVAČE VLC Semestrální práce předmětu Tvorba uživatelského rozhraní Y39TUR Vypracoval: Kontakt: Obsah Popis aplikace... 3 Cílová skupina... 3 Testované případy
VíceDatabázové systémy. Vztahy a relace. 3.přednáška
Databázové systémy Vztahy a relace 3.přednáška Terminologie - vztahy Účastníci vztahu Stupeň vztahu počet relací účastnících se na vztahu Unární Binární Ternární Terminologie - vztahy Kardinalita vztahu
VíceAnalýza a návrh webových aplikací 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
Analýza a návrh webových aplikací 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 Osnova dnešní přednášky Proč tento předmět vlastně existuje? Proč nestačí standardní metodiky SI? Co standardním
VíceAnalýza a design na reálném projektu. Richard Michalský
Analýza a design na reálném projektu Richard Michalský Agenda o Role analytika o Dokumentace (analytická) o Sběr a analýza požadavků o Fixace rozsahu Role analytika o Tvůrce požadavků o Zákazník zná své
VíceÚvod do programovacího jazyka Python
Úvod do programovacího jazyka Python Co je to Python? Python je objektově orientovaný programovací jazyk, který se může využít v mnoha oblastech vývoje softwaru. Nabízí významnou podporu k integraci s
VíceVíce než 60 novinek, změn a vylepšení
Více než 60 novinek, změn a vylepšení Nová řada programu 2HCS Fakturace Vám nabízí více než 60 novinek, změn a vylepšených funkcí. Zde je jejich seznam, pro Vaši lepší orientaci rozdělený podle jednotlivých
VíceObjekty, 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í
VíceInformační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika
2 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk UML, základní modely, diagramy aktivit, diagramy entit.
VíceUnity a Objekty (NMIN102) RNDr. Michal Žemlička, Ph.D.
Unity a Objekty Programování 2 (NMIN102) RNDr. Michal Žemlička, Ph.D. Větší programy Časté problémy: Ve více programech by se nám hodilo využít stejné řešení nějakého podproblému dalo by se vyřešit překopírováním
VíceINFORMATIKA MS WORD TVORBA VLASTNÍHO STYLU
Škola: Autor: DUM: Vzdělávací obor: Tematický okruh: Téma: Masarykovo gymnázium Vsetín Mgr. Petr Koňařík MGV_VT_SS_1S3-D10_Z_WORD_VL_STYL.docx Informatika MS Word Styly, tvorba vlastního stylu INFORMATIKA
VíceSpecializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.
Návrhář software Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů. Odborný směr: Informační technologie Odborný podsměr: nezařazeno do odborného podsměru
VíceČeská zemědělská univerzita v Praze
Česká zemědělská univerzita v Praze Provozně ekonomická fakulta Katedra informačních technologií Teze diplomové práce Operační systém Google Android Petr Koula 2011 ČZU v Praze Souhrn Diplomová práce zahrnuje
VíceHromadná korespondence
Kapitola dvanáctá Hromadná korespondence Učební text Mgr. Radek Hoszowski Hromadná korespondence Hromadná korespondence Představíme si jednoduchý nástroj, který nám může ušetřit velké množství práce. Je
VíceParalelní programování
Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =
VíceS databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:
Úvod do databází Základní pojmy Databáze je množina záznamů, kterou shromažďujeme za nějakým konkrétním účelem. Databáze používáme zejména pro ukládání obsáhlých informací. Databázové systémy jsou k dispozici
VíceVývoj IS - strukturované paradigma II
Milan Mišovič (ČVUT FIT) Pokročilé informační systémy MI-PIS, 2011, Přednáška 05 1/18 Vývoj IS - strukturované paradigma II Prof. RNDr. Milan Mišovič, CSc. Katedra softwarového inženýrství Fakulta informačních
VíceHromadná korespondence
Hromadná korespondence Teoretická část: Typickým příkladem použití hromadné korespondence je přijímací řízení na školách. Uchazeči si podají přihlášku, škola ji zpracuje a připraví zvací dopis k přijímací
Více