TECHNICKÁ UNIVERZITA V LIBERCI
|
|
- Marta Bartošová
- před 6 lety
- Počet zobrazení:
Transkript
1 TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií BAKALÁŘSKÁ PRÁCE Liberec 2011 Jan Žmolík
2 TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Studijní program: B2646 Informační technologie Studijní obor: 1802R007 Informační technologie Návrhové vzory pro WWW aplikace Design patterns for web applications Bakalářská práce Autor: Vedoucí práce: Jan Žmolík Mgr. Jiří Vraný, Ph.D. V Liberci 10. května 2011
3
4
5 Prohlášení Byl(a) jsem seznámen(a) s tím, že na mou bakalářskou práci se plně vztahuje zákon č. 121/2000 Sb. o právu autorském, zejména 60 školní dílo. Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé bakalářské práce pro vnitřní potřebu TUL. Užiju-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto případě má TUL právo ode mne požadovat úhradu nákladů, které vynaložila na vytvoření díla, až do jejich skutečné výše. Bakalářskou práci jsem vypracoval(a) samostatně s použitím uvedené literatury a na základě konzultací s vedoucím bakalářské práce. Datum Podpis 3
6 Poděkování Děkuji Mgr. Jiřímu Vranému, Ph.D. za vedení bakalářské práce a za podnětné konzultace. Dále děkuji všem, kteří mě při tvoření této práce podporovali. 4
7 Abstrakt Tato práce se zabývá návrhovými vzory a jejich využitím v oblasti webových aplikací. Práce je rozdělena do dvou hlavních částí. První část obsahuje seznámení s vybranými návrhovými vzory a jejich principy. V druhé části je využití těchto vzorů demonstrováno na webové aplikaci. Závěr práce obsahuje shrnutí poznatků z praktické části a uvádí výhody a nevýhody užití návrhový vzorů při tvorbě webových aplikací. Aplikace, na které je předvedeno použití návrhových vzorů, je obsažena na přiloženém CD. Abstract This work deals with design patterns and their use in Web applications. The work is divided into two main parts. The first part includes introduction with the chosen design patterns and principles. The second part demonstrates using of these models on a web application. The conclusion summarizes the findings from the practical part and gives the advantages and disadvantages of using design patterns for creating web applications. Application, which shows using of design patterns, is included on the CD. Klíčová slova Návrhové vzory, webové aplikace, PHP, objektově orientované programování Keywords Design patterns, web applications, PHP, object-oriented programming 5
8 Obsah Prohlášení 3 Poděkování 4 Abstrakt 5 Obsah 6 Seznam obrázků 7 1 Úvod 8 2 Cíle práce 9 3 Představení nástrojů Návrhový vzor PHP 10 4 Návrhové vzory Prvky vzorů Základní rozdělení vzorů Vybrané vzory MVC Pattern (Model-View-Controller) Strategy Pattern State Pattern Factory Pattern Singleton Pattern Další vzory 20 5 Aplikace návrhových vzorů MVC Pattern (Model-View-Controller) Strategy Pattern State Pattern Factory Pattern Singleton Pattern 30 6 Závěr 32 Literatura 33 Obsah přiloženého CD 35 6
9 Seznam obrázků Obr. 1 MVC Pattern 12 Obr. 2 Strategy Pattern 14 Obr. 3 State Pattern 15 Obr. 4 Factory Pattern 1 17 Obr. 5 Factory Pattern 2 18 Obr. 6 Singleton Pattern 19 Obr. 7 Nastavení metody zpracující formulář 23 Obr. 8 Metoda zpracujvysledky() 24 Obr. 9 Metoda getdata() 25 Obr. 10 Třída Concrete Strategy 26 7
10 1 Úvod V dnešní době vzniká velmi mnoho různých softwarových aplikací. Během návrhu softwaru jsou vývojáři nuceni řešit netriviální problémy, které se obvykle opakují. Návrhové vzory nabízí doporučené obecné řešení těchto často se vyskytujících problémů. Dle [1] na straně 34 se dají návrhové vzory přirovnat k matematickým vzorcům. Zásadním rozdílem však je, že místo čísel se do návrhových vzorů dosadí třídy, objekty a rozhraní. Návrhové vzory mají za účel usnadnit návrh aplikace a zlepšit její přehlednost. To je vhodné především pro komunikaci ve skupinách, jelikož je daleko jednodušší popsat řešení jedním nebo dvěma slovy, než složitě vysvětlovat řešení vlastní. Vzory také počítají s budoucím rozšiřováním aplikace. V současnosti, kdy je internet téměř v každé domácnosti, je značný zájem o webové aplikace. Při jejich vytváření je možné využít návrhových vzorů. Tato práce by měla ukázat využití vybraných návrhových vzorů v jazyce PHP. První část práce osahuje úvod do problematiky návrhových vzorů a podrobnější seznámení s pěti vybranými návrhovými vzory, popis jejich principu a problémy, které je vhodné pomocí nich řešit. Další návrhové vzory vhodné pro webové aplikace jsou uvedeny v krátké rešerši na konci první části. Druhá část práce obsahuje předvedení vlastní implementace návrhových vzorů a shrnuje výhody a nevýhody práce s nimi v jazyce PHP. Práce z části navazuje na ročníkový projekt. Zadáním tohoto projektu bylo vytvořit komunitní web, který obsahoval databázi hudebních nahrávek. Registrovaní uživatelé měli možnost tyto nahrávky bodově hodnotit a přidávat k nim komentáře. Původní kód, ve kterém se prolínalo HTML a PHP byl značně nečitelný. V rámci praktické části bakalářské práce bylo tedy využito teoretických poznatků k přepsání aplikace za pomocí návrhových vzorů. 8
11 2 Cíle práce Cílem práce je seznámení s problematikou návrhových vzorů v prostředí webových aplikací. Řešitel provede výběr nejpoužívanějších a nejvhodnějších návrhových vzorů pro webové aplikace. Tyto představí a popíše jejich principy chování a fungování. Popíše při tom, také situace kdy je vhodné využít návrhových vzorů a jaké jsou jejich přednosti. Tyto poznatky následně vhodně využije při tvorbě vlastní webové aplikace. V podobě krátké rešerše uvede další návrhové vzory použitelné pro webové aplikace. Teoretické poznatky řešitel vhodně využije a implementuje vybrané návrhové vzory při vytváření webové aplikace. Na této aplikaci by měl demonstrovat výhody a nevýhody, které použití návrhových vzorů v jazyce PHP přináší. 9
12 3 Představení nástrojů 3.1 Návrhový vzor Návrhový vzor je obecný předpis řešení netriviálního opakujícího se problému. Vzory mají usnadnit již návrh aplikace a následnou implementací zlepšit přehlednost kódu a v mnoha případech zajistit rozšiřitelnost aplikace. Návrhové vzory jsou úzce spjaty s problematikou objektově orientovaného programování, protože popisují řešení právě pomocí tříd a objektů. OOP je metodika vývoje softwaru, která se snaží popsat reálné prvky pomocí objektů a jejich metod. V OOP se využívá principů, jako je zapouzdření, dědičnost nebo polymorfismus. Návrhové vzory velkou mírou využívají těchto vlastností OOP. Vzory jsou obvykle popisovány jazykem UML. UML je jazyk pro popis architektury, která využívá OOP. K vytvoření UML diagramů v této práci byly využity předdefinované šablony v softwaru Enterprise Architect 8.0 ve verzi trial. 3.2 PHP PHP je skriptovací programovací jazyk. V dnešní době patří k nejpopulárnějším jazykům v oblasti webových aplikací. Má značnou podporu ze strany hostingů a pokročilejší programátoři mohou sáhnout po některém z mnoha PHP frameworků, které si kladou za cíl usnadnit vývoj. Pro podrobnější informace je možné navštívit oficiální stránku, viz. [2]. Pro napsání vlastní aplikace a demonstraci vzorů byl využit framework Nette ve verzi 2.0-aplha. Jedná se o český framework pro tvorbu webových aplikací v PHP 5. Mezi hlavní předností patří dle [3] zaměření na bezpečnost aplikace, využívání technologií AJAX, SEO nebo MVC nebo vnitřní ladící nástroje. Framework byl zvolen z důvodu existence mnoha jednoduchých návodů, které umožnily rychlé nastudování základů frameworku. Dále je také vhodné zmínit velkou a aktivní komunitu v ČR. Více informací lze získat na oficiální stránce, viz. [4]. 10
13 4 Návrhové vzory 4.1 Prvky vzorů V této práci budou návrhové vzory specifikovány názvem, řešeným problémem, podmínkami, za kterých je možné vzor použít, řešením a výsledkem. Konkrétní příklady řešení budou uvedeny v praktické části práce. 4.2 Základní rozdělení vzorů Vzory jsou dle [5] obvykle rozdělovány do tří základních skupin: Creational Patterns vzory ovlivňující vytváření objektů. Tato skupina vzorů řeší výběr vhodných tříd pro vytvoření objektů. Také jsou zodpovědné za správný počet vytvořených objektů. Structural Patterns vzory ovlivňující uspořádání tříd a komponent. Tato skupina vzorů má za účel zpřehlednění aplikace. Behavioral Patterns vzory ovlivňující chování systému. Tato skupina vzorů řeší výběr správné činnosti systému na základě stavu systému. 4.3 Vybrané vzory Dle názvů a obsahu článků [10] a [12], lze následující návrhové vzory označit, jako jedny z nejběžněji používaných vzorů při psaní webových aplikací MVC Pattern (Model-View-Controller) MVC architektura má za úkol oddělit od sebe aplikační logiku, grafické prostředí aplikace a data. Rozděluje tedy vlastní aplikaci na tři samostatné moduly: datový model, řídící logiku a uživatelské rozhraní. Toto rozdělení je výhodné, protože velkou mírou přispívá k zpřehlednění kódu. Pokud je projekt rozsáhlejší a pracuje na něm více programátorů zároveň, je výhoda rozdělení ještě silnější. 11
14 Řešení Obr. 1 MVC Pattern Model: má přímý přístup k datům (obvykle k databázi) a umožňuje manipulaci s těmito daty. View: zajišťuje prezentaci dat na straně uživatele (obsahuje grafické uživatelské prostředí) Controller: komunikuje s Modelem a View. Předává mezi nimi data a zajišťuje správnou reakci na požadavky View (obvykle ze strany uživatele) a také správné chování View a Modelu. Dle [6] se dá popsat cyklus probíhající v MVC architektuře následujícími kroky: Klient provede ve view akci Controller přebere informace a eventuelně data od View a předá je správnému Modelu Model na základě těchto informací a dat provede potřebné operace a změní svůj stav Controller informuje View o změně stavu Modelu a zadá View pokyn k vykreslení aktualizovaného Modelu View obdrží aktuální data a zobrazí je Po vykreslení View čeká na další akci ze strany klienta, po této akci se cyklus opakuje 12
15 Takto navržená architektura zajišťuje jednoduchou možnost úprav nebo rozšíření aplikace v budoucnu. Také umožňuje samostatný vývoj všech tří vrstev. Návrh aplikace bude flexibilnější a robustnější a bude snazší ho udržovat Strategy Pattern Řešený problém V [7] je uvedeno, že tento návrhový vzor umožňuje zapouzdřit algoritmy do samostatných objektů a jejich následnou záměnu. To, který algoritmus bude vybrán, je ovlivněno volbou klienta. Samotný výběr je ovšem řešen zcela nezávisle na klientovi. Podmínky Hlavní podmínkou pro použití tohoto vzoru je existence více podobných řešení jednoho problému. Jedná se o rodinu algoritmů, které rozdílným způsobem řeší stejnou funkci programu. Vzor má také zajistit znovu použitelnost algoritmů. Vzhledem k tomu, že algoritmy jsou implementovány jako jednotlivé objekty, je možné obejít se bez implementace jedné velké části kódu, která by obsahovala mnoho podmínek. Tím se zvyšuje čitelnost a právě znovu použitelnost jednotlivých algoritmů. V praxi se tento vzor dá využít například implementací různých řadících algoritmů s tím, že si klient vybere, kterým algoritmem budou data seřazena. Dalším rozšířením může být možnost seřazení těchto dat sestupně nebo vzestupně. 13
16 Řešení Obr. 2 Strategy Pattern Klient komunikuje s objektem Context. Ten obsahuje odkaz na objekt typu Strategy definující rozhraní, které implementují ConcreteStrategy. Díky polymorfismu se pak v odkazu, který obsahuje Context nachází některá z ConcreteStrategy. Ta se postará o správné zpracování požadavku od klienta. Obvykle je výběr ConcreteStrategy proveden na základě požadavku od klienta. V tomto případě většinou klient předává Contextu samotnou ConcreteStrategy, její název nebo nějaký speciální, programátorem definovaný, identifikátor. Je možné i druhé řešení výběru ConcreteStrategy, kdy Context sám vybere ConcreteStrategy, která je nejvhodnější pro zpracování požadavku. Rozhraní třídy Strategy je navrženo tak, aby pomocí něj Context mohl používat ConcreteStrategy. Dle [7] vzor funguje tak, že klient si vybere ConcreteStrategy, kterou předá Contextu. Context si uloží odkaz na ConcreteStrategy a umožní klientovi volání metod této strategie. V případě, že ke správnému vykonání algortimu jsou potřeba externí data od klienta, předá je ConcreteStrategy právě Context. 14
17 Výsledek NV Strategy prakticky odděluje data (obsažená v Contextu) a logiku algoritmů (obsažené v jednotlivých ConcreteStrategy objektech). Data jsou následně použita pro zvolený algoritmus jako vstupní. Způsob, jakým je tento vzor navržen, umožňuje jednoduché rozšíření aplikace o nové algoritmy přidáním nových ConctreteStrategy objektů. Toto rozšíření má vliv pouze na vlastní výběr algoritmu, kdy je nutné přidat možnost výběru nového objektu. Netýká se Contextu ani původních strategií State Pattern Řešený problém [8] uvádí, že vzor je zaměřen na řešení problému, kdy je chování objektu závislé na jeho vnitřním stavu. Podmínky Je dán objekt, který má různé chování. Změny tohoto chování jsou závislé na vnitřním stavu daného objektu. V případě implementace sledování změn těchto stavů a následného výběru správného chování dochází k velkému nárůstu monolitické části kódu. Ten musí obsahovat mnoho podmínek a stává se tak nepřehledným. Vzor se snaží o zefektivnění tohoto řešení - vytváří třídy, které obsahují rozdílné chování objektu v závislosti na jeho aktuálním stavu. Řešení Obr. 3 State Pattern 15
18 Vzor funguje na podobném principu ovládání jako Strategy Pattern. To znamená, že Context je objekt se kterým komunikuje klient. Obsahuje v sobě odkaz na objekt typu ConcreteState. Tím je určeno, který z ConcreteState objektů je aktivní a v jakém vnitřním stavu se objekt Context nachází. Třída State obsahuje rozhraní, které je implementováno ve třídách ConcreteState. Ve třídách ConcreteState je zapouzdřeno a definováno rozdílné chování objektu Context, v závislosti na jeho stavu. Context tak funguje jako prostředník mezi klientem a objektem ConcreteState. Výsledek Použitím NV State lze vytvořit systém, který zajistí rozdílné chování objektu v závislosti na stavu, v kterém se nachází. Tyto stavy jsou zapouzdřeny do samostatných tříd a díky tomu je kód významně zpřehledněn a přidání další Concrete State třídy je jednoduché. Dle [8] je další výhodou jasné určení třídy zodpovědné za chování. To vyplývá ze stavu objektu Factory Pattern Řešený problém Vzor řeší problém, kdy je nutné rozhodnout o vytvoření instance konkrétní třídy až během vykonávání programu. Podmínky Dle [9] je základním předpokladem pro užití tohoto vzoru existence více různých tříd, které jsou většinou odvozeny od společného předka. Tyto třídy pak vykonávají nad daty rozdílné služby. Tovární metoda umožňuje za běhu programu zvolit jednu z těchto tříd, od které se vytvoří instance. [9] dále uvádí, že je nutné rozhodnout, na jakém principu se bude vybírat třída, která je následně instanciována. Je tedy třeba definovat objekt, který je zodpovědný za způsob vytvoření instancí podřízených tříd. 16
19 Řešení Obr. 4 Factory Pattern 1 NV Factory, lze řešit dvěma způsoby. První (jednodušší) způsob naznačený na Obr. 4 obsahuje třídy Creator, obecnou třídu Product a od ní odvozené třídy ConcreteProduct. Třída Product definuje rozhraní, které je implementováno odvozenými třídami. Klient nekomunikuje přímo s produktem nebo konkrétními produkty, ale s třídou Creator. Ve chvíli, kdy klient zažádá třídu Creator o instanci Productu, Creator, na základě předaných parametrů a logiky, kterou má naimplementovanou, vybere nejvhodnější třídu Concrete Product a od té vrátí klientovi nově vytvořenou instanci. Klient tak vůbec neřeší výběr správné konkrétní třídy produktu a ve chvíli, kdy dostane odkaz na instanci ani neví jakého je typu a ani to pro něj není důležité z hlediska jeho dalšího fungování v systému. 17
20 Obr. 5 Factory Pattern 2 Druhý způsob vyobrazený na Obr. 5 rozšiřuje ten první tak, že je použit jeden obecný Creator a od něj jsou v systému odvozeny třídy ConcreteCreator. Klient v tomto případě komunikuje s jednou ze tříd ConcreteCreator. Rozdíl oproti prvnímu řešení je, že v případě, kdy máme produkty rozděleny do skupin podle nějakého hlediska, mohou být ConcreteCreatory přidruženy právě k těmto skupinám. ConcreteCreator 1 pak vrací některý z ConcreteProductů ze skupiny 1. Je možné, aby každý z Creatorů vracel všechny ConcreteProducty, ale pak je výhodnější použít spíše první způsob. Výsledek Návrhový vzor zajišťuje odstínění klienta od logiky vytváření konkrétních objektů, se kterými pak klient dál pracuje. Tovární metoda, také může mít naimplementovanou logiku, která zajistí, předání již existujícího nevyužívaného objektu a nevytváří tak nový. V [9] je dále uvedeno, že vzor Factory zajišťuje uzavření vytvářející logiky do jedné třídy a zvyšuje tím tak flexibilitu aplikace. Jakákoliv změna vytvářejících tříd se pak řeší na jednom místě, což je třída Product. 18
21 4.3.5 Singleton Pattern Řešený problém Vzor zajišťuje vytvoření a následnou existenci pouze jediné instance určené třídy. Také zajišťuje globální přístup k této instanci. Podmínky Vlastní implementace návrhového vzoru Singleton je značně závislá na možnostech zvoleného programovacího jazyka. Je nezbytné při návhru a během implementace tohoto vzoru vzít v potaz všechny možnosti a omezení, které zvolený jazyk nabízí. Řešení Jedním z možných řešení tohoto návrhového vzoru může být postup, kdy třída obsahuje privátní statickou proměnnou uniqueinstance, která bude stejného typu jako daná třída a bude obsahovat referenci na jedinou instanci. Dále je potřeba nastavit konstruktor třídy jako privátní a vytvořit statickou metodu Obr. 6 Singleton Pattern vracející referenci obsaženou v proměnné uniqueinstance. Tato metoda zajistí vytvoření nové instance nebo v případě, že instance již byla vytvořena a uložena do proměnné uniqueinstance, tak vrátí referenci na tuto instanci. Toto řešení je výhodně i z toho důvodu, že k vytvoření instance dojde až ve chvíli, kdy je skutečně potřeba. Dalším možným řešení je, že vytvoříme třídu, která bude final a její metody budou statické. Nastavením třídy jako final docílíme toho, že od třídy nebude možné dále dědit odvozené třídy. Vytvořením statických metod pak dosáhneme možnosti přistupovat k metodám přímo, aniž by bylo třeba vytvářet instanci. Nevýhodou tohoto způsobu ovšem je, že není vytvořena žádná instance a třída si tak nemůže zapamatovat svůj vnitřní stav a reagovat dle něj na chování programu. Výhodou tohoto řešení je, že se nemusíme starat o to, zda je vytvořena právě jedna instance žádná se totiž nevytváří 19
22 a pracuje se přímo se statickou třídou a ta je, díky tomu že je final, v aplikaci právě přesně jednou. Výsledek Jelikož NV Singleton je možné implementovat různými způsoby, je nutné vybrat si takový, který vyhovuje konkrétně řešenému problému a potřebám vlastní aplikace. Také by neměl zvyšovat složitost samotné aplikace. Nabízí jednoduché řešení v případech, kdy se připojujeme k databázi, přihlášení uživatele do systému, nebo v případě kdy je v objektu typu Singleton uloženo globální nastavení celé aplikace. 4.4 Další vzory V této části jsou popsány obecné principy dalších pěti vzorů. Vzhledem k faktu, že při vývoji aplikace v praktické části nevnikly vhodné podmínky k užití těchto vzorů, jsou uvedeny pouze touto kratší formou. Observer Pattern [10] uvádí, že návrhový vzor Observer umožňuje předejít úzkému propojení mezi jednotlivými komponentami. Vzor funguje tak, že definuje objekt, který je označen jako pozorovaný. Ten obsahuje metodu, pomocí které se může jiný objekt zaregistrovat jako pozorovatel. V případě, že se pozorovaný objekt změní, odešle všem svým zaregistrovaným pozorovatelům zprávu o této změně. To, jak naloží pozorovatelé s touto informací, je pro pozorovaný objekt nepodstatné. Výsledkem je způsob, kdy objekty mohou komunikovat mezi sebou a při tom nemusí nutně znát důvody vzniku této komunikace. [11] také uvádí, že tento vzor je možné prakticky použít při implementaci MVC architektury. Chain-Of-Command/Chain-Of-Responsibility Pattern V [10] je napsáno, že tento vzor slouží ke zpracování zprávy, příkazu, žádosti nebo jiných požadavků pomocí sady objektů, které jsou v určené posloupnosti. Požadavek je předán prvnímu objektu v posloupnosti. Ten v případě, že může tento požadavek vykonat nebo obsloužit, ho vykoná a proces je zastaven. V opačném případě, je předán v posloupnosti následujícímu objektu. Ten obvykle má nadefinována vyšší 20
23 práva k manipulaci s požadavkem. A opět se opakuje situace, kdy je buď požadavek vykonán a proces ukončen, nebo je předán následujícímu objektu. Vzor umožňuje přidání nebo odebrání objektů z posloupnosti, aniž by tím byly ovlivněny ostatní objekty. Adapter Pattern Návrhový vzor Adapter slouží podle [12] k převedení objektu jednoho typu na objekt jiného typu. V [1] je na straně 261 uvedeno, že konverze proběhne způsobem, kdy je použito třídy Adapter ke změně rozhraní adaptovaného objektu na rozhraní, které očekává jiný objekt, případně klient. Klient pak může s objektem bez problémů komunikovat. Vzor je vhodné použít například v situaci, kdy aplikace používá funkce externí knihovny. V případě, že je tato knihovna aktualizována dodavatelem na novou verzi a ta má jiné komunikační rozhraní, než verze používaná v naší aplikaci, vytvoříme pro část naší aplikace používající tuto knihovnu třídu Adapter. Iterator Pattern Jedná se o třídu, která zajistí průchod přes všechny prvky v sekvenčně uspořádaném seznamu. Třída Iterator přitom nezná implementaci jednotlivých prvků nebo samotného seznamu. Dle [1] na straně 204 obvykle Iterator nabízí dvě metody pro práci se seznamem. Jedna metoda vrací další prvek, druhá metoda zjišťuje, zda ještě nějaký další prvek existuje. Může také obsahovat další metody, například pro ovlivnění směru iterace, přesun ukazatele na jiný prvek, přidání nebo odebrání prvku. Decorator Pattern Návrhový vzor Decorator řeší dle [13], problém, kdy je třeba přidat nebo změnit instanci některé třídy vlastnosti a nevytvářet při tom novou třídu odvozením. Tímto způsobem se dá dynamicky skládat chování objektů. [1] na straně 345 uvádí, že vzor funguje na principu,,obalení jednoho objektu druhým. Konstruktor Decoratoru obdrží v parametru objekt, který je třeba rozšířit o nové funkce. Klient pak komunikuje s takto vytvořeným novým objektem. V případě, že volá metodu původního objektu, Decorator přenechá vykonání požadavku na původním objektu, naopak ve chvíli, kdy je třeba volat přidanou nebo změněnou funkci, vykonává jí právě Decorator. 21
24 5 Aplikace návrhových vzorů Tato část práce obsahuje popis vlastní implementace vybraných návrhových vzorů, uvedení konkrétních problémů a zhodnocení výhod a nevýhod v těchto konkrétních případech. Aplikace je komunitním web, který obsahuje informace o hudebních interpretech. Registrovaní uživatelé mají možnost hodnotit a komentovat nahrávky interpretů. Zdrojové soubory jsou na přiloženém CD v adresáři BPAplikace\app. Zde se nachází adresářová struktura rozdělující jednotlivé části dle architektury MVP (viz. níže). Jde o následující složky: models obsahuje všechny modely (*.php soubory) presenters obsahuje všechny presentery (*.php soubory) templates obsahuje což je View pro základní vzhled aplikace. Dále obsahuje složky, které mají stejné pojmenování jako názvy Presenterů každá složka obsahuje sadu příslušných View (*.latte soubry) pro daný Presenter. Na webové adrese je možné si aplikaci vyzkoušet. Pro přihlášení do administrátorské sekce lze použít přihlašovací jméno,,admin a jako heslo,,heslo. 5.1 MVC Pattern (Model-View-Controller) Popis problému Pokud vyvíjíme aplikaci, která je ovládána pomocí grafického rozhraní, vzniká potřeba jednoznačně oddělit logiku aplikace od grafického prostředí. Začínající programátor v PHP, obvykle sáhne po některém ze starších, nicméně stále funkčních tutoriálů na výuku základů jazyka PHP. Nešvarem těchto výukových materiálů je, že jsou většinou psány stylem, který kombinuje HTML a PHP kód v jednom monolitickém celku. Potenciální student si pak obvykle tento návyk osvojí a kód, který vytvoří je pak hůře čitelný a špatně se v něm orientuje. MVC architektura nabízí řešení, jak oddělit právě grafické prostředí a aplikační logiku. Navíc ještě také odděluje datovou část, tzn. reprezentaci dat v rámci aplikace. 22
25 Tímto oddělením značně zpřehlední kód eliminace jednolitého celku kódu. Bude pak snazší kód číst a upravovat. Použití vzoru [14] uvádí, že framework Nette implementuje MVC v podobě MVP, kde P označuje Presenter. Nejzásadnějším rozdílem mezi MVC a MVP je podle [15] ten, že u MVC se o zachytávání uživatelského vstupu stará Controller, kdežto u MVP se o toto stará View, který obvykle po kliknutí myši volá některou z metod Presenteru. V Presenteru je pro každý vykreslitelný pohled (View) definována metoda s názvem renderxxx(), kde XXX značí název aktuálního View. V případě, že uživatel chce zobrazit daný pohled je zavolána metoda z příslušného Presenteru, což zajistí framework. Jako konkrétní příklad lze uvést sekci vyhledávání. V té je uživateli vykreslen formulář, pomocí něhož lze vyhledávat v databázi interprety a nahrávky. Poté co uživatel zadá vyhledávaný řetězec a stiskne tlačítko Odeslat je předán signál od View HomepagePresenteru, respektive jeho metodě. Tato metoda je definována u formuláře (viz. soubor HomepagePresenter.php, řádek 266 a Obr. 7). Obr. 7 Nastavení metody zpracující formulář Na Obr. 8 lze vidět, že metoda zpracujvysledky() předá data modelu VyhledavaniStrategyContextModel, který se postará o komunikaci s databází a vyhledaná data předá zpět HomepagePresenteru. 23
26 Obr. 8 Metoda zpracujvysledky() Data jsou uložena do session a je proveden redirect na metodu rendervysledky() téhož Presenteru, viz. Obr. 8. Protože se jedná o renderovací metodu, je předán příkaz View vysledky, že má být vykreslen. Metoda zajistí předání dat z databáze. Předání probíhá pomocí přiřazení do proměnné v Presenteru (soubor HomepagePresenter.php) na řádku 309 je vidět předání proměnné s daty. Ve View k nim přistupujeme pomocí proměnné $data (soubor vysledky.latte, řádek 6). View se postará o to, aby data byla vykreslena správně, a nezajímá se, jaké byly výsledky hledání. Zhodnocení Využít MVC architekturu u webové aplikace je výhodné, pokud je vytvářen větší projekt a existuje předpoklad, že v budoucnu bude aplikace značně rozvíjena. Navíc pokud se programátor rozhodne využít některý z frameworků pro webové aplikace, obvykle se setká s tím, že je tato architektura již implementována v rámci frameworku. Menší komplikace, v podobě prodloužení práce, může nastat v případě, kdy se programátor teprve s koncepcí MVC seznamuje. Je tedy nutné zohlednit vlastní schopnosti a při přechodu na MVC architekturu se nesnažit psát hned rozsáhlé projekty, kde může neznalost základní koncepce přinést zbytečné chyby, ale začít na jednodušších aplikacích. V případě webových aplikací je nutné počítat s omezením plynoucím z komunikace pomocí HTTP (hypertext transfer protocol komunikační protokol, pro 24
27 přenos webových stránek). Jelikož je tento protokol bezestavový, webová aplikace si nemůže předávat proměnné z jedné stránky na druhou. Je nutné zajistit toto předávání, aby bylo možné využít principů návrhových vzorů. V této práci byla zvolena metoda, přenášení proměnných a objektů pomocí session. 5.2 Strategy Pattern Popis problému Klient (uživatel) má možnost vyhledání záznamu v databázi. Má na výběr tři kritéria, dle kterých může vyhledávat: jméno nahrávky, jméno interpreta a země původu interpreta. Klient napíše do formuláře řetězec nebo část řetězce, který chce vyhledat a z roletkového menu zvolí kritérium, podle kterého chce výraz vyhledat. Následně je klientovi zobrazen výsledek hledání, což jsou nalezená data, nebo oznámení, že hledaný řetězec se v databázi nenachází. Použití vzoru Jelikož je zvolení kritéria vyhledávání ponecháno na klientovi a vyhledávání se pokaždé řeší trošku jiným způsobem, nabízí se právě pro tento účel návrhový vzor Strategy. V případě, že se klient rozhodne vyhledávat, je mu zobrazen formulář, do kterého zadá vyhledávaný řetězec a zvolí kritérium, jaký typ dat chce vyhledat. Po odeslání jsou tyto informace předány metodě HomepagePresenteru zpracujvysledky(). Ta zajistí vytvoření instance modelu VyhledavaniStrategyContextModel. Jak je vidět v souboru HomepagePresenter.php na řádku 281 jsou konstruktoru předány informace, které zadal klient. V souboru VyhledavaniStrategyContextModel.php lze vidět od řádku 17, jak je proveden výběr a uložení správné strategie, na základě požadavku klienta. Odkaz na objekt obsahující zvolenou strategii si kontext uloží do privátní proměnné $strategy. Obr. 9 Metoda getdata() V HomepagePresenteru je zavolána metoda kontextu getdata(). V souboru VyhledavaniStrategyContextModel.php je na řádku 39 vidět (také viz. Obr. 9), že metoda getdata(), vrací sadu dat, kterou získá od uložené strategie, kdy je 25
28 zavolána metoda najdi(). Ta provede příkaz na databázi, který vyhledá řetězec zadaný uživatelem. Na Obr. 10 lze vidět ukázku jedné třídy Concrete Strategy. Její metoda najdi() se postará o vyhledání záznamů v databázi a vrátí tento výsledek. Obr. 10 Třída Concrete Strategy Poté, co tímto způsobem obdrží HomepagePresenter výsledky, odešle View vysledky příkaz k vykreslení a data z databáze. Tento pohled zobrazí klientovi nalezená data. To zda bylo něco nalezeno či nikoliv již není starost vzoru Strategy, ale samotného View. Při přesměrování na pohled vykreslující nalezená data instance Kontextu zaniká a při novém vyhledávání je tedy celá procedura opakována od začátku. Původní návrh vyhledávání počítal s implementací tří konkrétních strategií, aby každá mohla obsluhovat jedno kritérium. Během dalšího vývoje aplikace bylo třeba v administrátorské sekci vypisovat všechny nahrávky, jejichž názvy začínají stejným písmenem. Jelikož tato funkce odpovídá vyhledávání, nabízelo se jednoduché řešení vytvořit instanci kontextu vzoru Strategy a vyhledat pomocí něj potřebná data. ConcreteStretegy, která je zde kontextu předána byla implementována dodatečně a lze tím demonstrovat snadnou rozšiřitelnost aplikace o nové strategie. Aby kontext o této strategii,,věděl bylo třeba pouze malé úpravy v jeho konstruktoru, přidáním case větve od řádku 30 v souboru VyhledavaniStrategyContextModel.php. Zhodnocení Takto implementovaný návrhový vzor Strategy nepočítá se znovupoužitím instance Kontextu, ta totiž zaniká při přesměrování na View s výsledky a při dalším vyhledávání se vytváří instance nová. Tímto způsobem nelze dynamicky přepínat mezi 26
29 strategiemi, což ovšem v tomto konkrétním případě nevadí. Ovšem ve chvíli, kdy by bylo třeba strategii změnit, bude nutné kontext zachovat a předat (např. session), protože jinak by docházelo ke stálému vytváření nových instancí. V případě, kdy je nutné zachovat kontext, je nezbytné doimplementovat do kontextu jednoduchou metodu, která změní strategii na základě předaného parametru. Takovýto postup bude vhodný především v případě, že s výsledky hledání rovnou zobrazíme i formulář pro nové vyhledávání. Nebylo by již třeba vytvářet novou instanci kontextu, ale stačilo by pouze zavolat metodu setnewstrategy() a předat jí jako parametr novou strategii. Je tedy třeba dát pozor především na to, jak a kde chceme tento vzor používat. Je nutné dopředu počítat s použitím prostředku pro předávání kontextu, i kdyby to nakonec nebylo nezbytné. Je nutné uvést také poznámku o dynamickém a slabém typování jazyka PHP. Na základě těchto vlastností totiž není nezbytné definovat konkrétním strategiím společného předka a aplikace přesto bude fungovat. PHP umožňuje do proměnné $strategy třídy VyhledavaniStrategyContextModel vložit bez problémů prakticky cokoliv. To znamená, že nejen odkaz na některou z konkrétních strategií, ale třeba textový řetězec nebo číslo. Je nutné toto brát v potaz a v případě práce na projektu ve více lidech zajistit, aby nemohl být obsah proměnné změněn,,někým z venku. 5.3 State Pattern Popis problému Klient, v tomto případě uživatel s právy administrátora, má přístup do administrační části aplikace. V této sekci má možnost editovat informace v databázi. Může editovat nahrávky, interprety a některé vlastnosti u uživatelů (například přidělení vyšších práv, omezení přístupu, vygenerování nového hesla). Pokaždé se jedná o úpravu dat v databázi, ale vždy o data jiného typu. Bude tedy vhodné využít jednoho objektu, který nabídne klientovi metody ke správě databázových dat. Tímto objektem je kontext z návrhového vzoru State, u kterého bude stav dynamicky měněn podle toho, která data zrovna administrátor/klient potřebuje upravit. Klient se tedy vůbec nezajímá o to, jak je zařízeno, že jsou vždy provedeny operace nad správnými daty. Toto je prováděno automaticky při přechodu do jiného stavu, právě změnou stavu v kontextu. 27
30 Použití vzoru Pokud administrátor vstoupí do administrační sekce je mu jako úvodní nabídka zobrazena editace interpretů. V této části je v AdminPresenteru vytvořena instance objektu AdministraceStateContextModel (viz. soubor AdminPresenter.php, řádek 39). Instance kontextu je uložena do session aby ji bylo možné přenášet mezi jednotlivými částmi administrace. Třída AdministraceStateContextModel je implementována jako Singleton, což je rozvedeno dále v části Singleton PatternSingleton. Pomocí metody setstate() je nastaven výchozí stav, který odpovídá editaci interpretů. To znamená, že metodě byla předána v parametru instance objektu CStateInterpret. V případě, že administrátor chce editovat nahrávky nebo uživatele, klikne na příslušný odkaz v menu. Tím předá řízení jiné metodě z AdminPresenteru. V této metodě je kontextu nastaven požadovaný stav a tím se změní jeho funkce. Poté když admin bude upravovat některý záznam, budou volány metody odpovídajícího stavu. Pokud tedy přejde na administraci nahrávek, bude u kontextu zavolána opět metoda setstate(). V parametru bude předána instance třídy CStateAlba (viz. soubor AdminPresenter.php, řádek 73). V každé sekci má administrátor možnost nechat si vypsat seznam záznamů, které mají stejné počáteční písmeno. V případě interpretů je tak zobrazena tabulka a u každého záznamu nabídnuta možnost smazání z databáze. Ve chvíli, kdy uživatel zadá volbu Smazat u některého ze záznamů je zavolána metoda AdminPresenteru actiondelete(), která zpracuje požadavek (soubor AdminPresenter.php, řádek 126). V metodě je otevřena session, která obsahuje kontext s aktuálním stavem a je zavolána metoda kontextu smaz(). Zde volání metod kontextu funguje na stejném principu jako u vzoru Strategy. To znamená, že v metodě kontextu je volána adekvátní metoda uloženého objektu stavu. Po vykonání akce je proveden redirect na původní výpis interpretů. Nyní se již smazaný záznam v databázi nenachází, a proto není ani ve výpise. Zhodnocení U tohoto vzoru v podstatě platí stejné výhody a nevýhody jako u předchozího vzoru Strategy Pattern. Rozdíl je v tom, že u tohoto vzoru je potřeba kontext předávat neustále, což u vzoru Strategy nebylo ve výše uvedeném případě nezbytné. Pokud by nebyl kontext vzoru State předáván, popřel by touto implementací princip a nebude 28
31 využit správným způsobem, kdy je stav měněn dynamicky za běhu programu u stejné instance. V takovém případě by byla instance vytvářena neustále a stav by byl nastavován pokaždé prakticky pouze jednou jakožto výchozí. Stejně jako u vzoru Strategy je nutné díky slabému a dynamicky typovanému PHP zajistit, aby kontext vždy obsahoval referenci na správný typ objektu tedy některý z konkrétních stavů. 5.4 Factory Pattern Popis problému U interpreta je na základě dat v databázi zobrazena jeho aktivita (rok založení, rok ukončení, a zda hraje, či nikoliv). Před samotným načtením dat z databáze a před vykonáním programového kódu, není možné určit, jakým způsobem má být naloženo s informacemi z databáze jaká je má zpracovat třída. Je proto vhodné tyto informace předat tovární metodě třídy AktivitaFactoryModel, která na základě těchto dat vybere správný objekt a předá mu data k následnému zpracování. Použití vzoru V případě, že uživatel zadá příkaz k vykreslení stránky s interpretem je předáno řízení aplikace metodě renderinterpret() HomepagePresenteru. Zde jsou od modelu InterpretModel zprostředkovávajícího komunikaci s databází přebrány data o interpretovi na základě jeho id. Informace o aktivitě interpreta jsou následně předána jako parametr tovární metodě třídy AktivitaFactoryModel. Tovární třída vyhodnotí obdržená data a zvolí správný objekt, kterému předá informace ke zpracování. K dispozici jsou tři třídy odvozené od společného předka. Třídy stalehraje a nehraje zpracují data a vrátí správný údaj o aktivitě interpreta. V případě, že se v databázi nachází chybná data, zvolí tovární metoda třídu chybadat. Ta předá textový řetězec s informací, že v databázi jsou chybová data a proto nemůže být aktivita zobrazena. Zhodnocení Funkce vzoru Factory je vhodné využít v případě, kdy před začátkem vykonávání programu nevíme, z jakých dat budeme objekt tvořit a co od něj následně budeme očekávat. 29
32 V tomto případě využití je objekt vytvořený tovární metodou využit jednou a následně zaniká. Není tedy možnost využít další funkci tohoto vzoru, která umožňuje vrátit vhodný objekt, který již v paměti existuje, ale není právě nijak využíván. Pokud by bylo třeba tuto funkci využít, bude nutné nějakým způsobem uchovávat instance tvořených objektů (například pomocí serializace s použitím databáze) a k těm umožnit tovární metodě přístup. 5.5 Singleton Pattern Popis problému Jak již bylo naznačeno v části State Pattern, je jeho kontext implementován zároveň jako Singleton. V administrační části je vhodné vytvořit pro administrátora (klienta) pouze jednu instanci kontextu, se kterou bude komunikovat po celou dobu editací a tím vytvořit jeden přístupový bod do administrace. Toho dosáhneme použitím vzoru Singleton. Použití vzoru Jelikož předávání kontextu ze vzoru State je zajištěno pomocí session, vytváří se instance pouze na jednom místě, a to v metodě renderinterpreti() AdminPresenteru. V souboru AdminPresenter.php na řádku 39 je vidět, že instance je vytvářena pomocí tovární metody getinstance() třídy AdministraceStateContextModel a ne pomocí konstruktoru. Ta zjistí zda-li již instance kontextu nebyla vytvořena dříve a klient se pouze do této sekce nevrátil (soubor AdministraceStateContextModel.php, řádek 19). Pokud ne je v této metodě vytvořena instance Kontextu a ta je zároveň uložena do proměnné $uniquecontext (soubor AdministraceStateContextModel.php, řádek 13). Metoda vrátí instanci AdminPresenteru, kde s ní je dále pracováno. Objekt implementovaný jako Singleton je nutné předávat pomocí session. V případě, že vytvoříme instanci v jedné sekci a objekt nepředáme, tak se bude opět vytvářet nová, jelikož ta původní po vykreslení View souvisejícím s aktuální metodou Presenteru zaniká. Jiná metoda, která používá stejný objekt, by tak nevěděla o tom, že již nějaká instance dříve existovala. Došlo by tím tak k neustálému vytváření nových instancí, což neodpovídá funkci návrhového vzoru Singleton. 30
33 Zhodnocení U tohoto vzoru je třeba zajistit předávání vytvořené instance mezi jednotlivými částmi aplikace, například pomocí session. V případě, že nebudeme předávat instanci, ale pokaždé volat metodu getinstance(), nebude fungovat návrhový vzor správně. Místo toho, aby zajistil jednu jedinou instanci daného objektu v celé aplikaci, bude pokaždé vytvářet instanci novou. Pokud toto dodržíme, je možné následně používat Singleton k účelům, kdy je potřeba pouze jediné instance objektu. V tomto případě byl návrhový vzor Singleton užit v kombinaci s kontextem návrhového vzoru State Pattern. Tím bylo zajištěno, že v administraci nevznikne více než jedna instance kontextu. Je nutné se opět zmínit o typování PHP. Jelikož je odkaz na instanci ukládán do proměnné $uniqueinstance, je nezbytné opět zajistit nemožnost modifikace této proměnné. 31
34 6 Závěr Jak je patrné z dílčích zhodnocení v předchozí části, návrhové vzory jsou v prostředí webových aplikací užitečné. V případě, že si programátor zvolí jazyk PHP, je nutné dát pozor na jistá omezení a vlastnosti tohoto jazyka, stejně jako protokolu HTTP. V první řadě se jedná o fakt, že HTTP je bezestavový a nedokáže tak přenášet mezi jednotlivými částmi aplikace proměnné, objekty a další stavové informace. Toto omezení je možné překonat pomocí nástrojů jazyka PHP, které umožňují práci s cookies nebo session. Další z možností, jak přenášet data je ukládání do databáze nebo do souboru. V této práci byla zvolena metoda předávání proměnných a objektů pomocí session, aby bylo možné aplikovat uvedené poznatky nezávisle na volbě případného frameworku, nebo i v případě, že žádný framework nepoužijeme. Druhý problém může nastat v případě slabého a dynamického typování v jazyce PHP. Jak bylo uvedeno v částech Strategy Pattern a State Pattern, je nutné zajistit, aby proměnné, ve kterých se nachází odkazy na objekty, nemohly být volně měněny. V případě, kdy by toto nebylo zajištěno, může nastat situace, kdy bude obsah proměnné přepsán a nejen že proměnná již nebude obsahovat instanci některého z objektů, ale může dokonce obsahovat jednoduchý datový typ. Tím by byla značně narušena funkčnost aplikace a ve chvíli, kdy bude nutné zavolat metodu příslušného objektu, skončí vykonávání programu chybou. Jestliže budeme brát zřetel na tyto dvě výrazné nevýhody, již od začátku návrhu aplikace, mohou být návrhové vzory využity stejně jako u klasických desktopových aplikací. Využití návrhových vzorů ve vhodných situacích s sebou přinese zpřehlednění a lepší čitelnost kódu a případné rozšiřování aplikace v budoucnu bude jednodušší. 32
35 Literatura [1] PECINOVSKÝ, Rudolf. Návrhové vzory. Vydání první. Brno : Computer Press, s. ISBN [2] PHP : Hypertext Preprocessor [online].the PHP Group, 2001, Last updated: Sun May 15 13:02: [cit ]. Dostupné z WWW: < [3] GRUDL, David. Nette Framework [online] , [cit ]. Hlavní přednosti. Dostupné z WWW: < [4] Nette Framework [online].nette Foundation, , [cit ]. Dostupné z WWW: < [5] DVOŘÁK, Miloš. Objekty [online] , Naposledy upraveno [cit ]. Základní návrhové vzory. Dostupné z WWW: < [6] SEVRJUKOV, Alexandr. PHP MVC framework [online] [cit ]. Co je Model View Controller?. Dostupné z WWW: < [7] DVOŘÁK, Miloš. Objekty [online] , Naposledy upraveno [cit ]. Strategy Pattern. Dostupné z WWW: < [8] DVOŘÁK, Miloš. Objekty [online] , Naposledy upraveno [cit ]. State Pattern. Dostupné z WWW: < [9] DVOŘÁK, Miloš. Objekty [online] , Naposledy upraveno [cit ]. Factory Pattern. Dostupné z WWW: < [10] HERRINGTON, Jack D. DeveloperWorks [online]. 18 Jul 2006 [cit ]. Five common PHP design patterns. Dostupné z WWW: < [11] DVOŘÁK, Miloš. Objekty [online] , Naposledy upraveno [cit ]. Observer Pattern. Dostupné z WWW: < 33
36 [12] GOOD, Nathan A. DeveloperWorks [online]. 25 Mar 2008 [cit ]. Five more PHP design patterns. Dostupné z WWW: < [13] DVOŘÁK, Miloš. Objekty [online] , Naposledy upraveno [cit ]. Decorator Pattern. Dostupné z WWW: < [14] GRUDL, David. Nette Framework [online] , [cit ]. Model-View-Presenter (MVP). Dostupné z WWW: < [15] BERNARD, Borek. Zdroják [online] [cit ]. Prezentační vzory z rodiny MVC. Dostupné z WWW: < 34
37 Příloha A Obsah přiloženého CD Adresář BP2011 Obsahuje vlastní text bakalářské práce ve formátu pdf Adresář BPAplikace Obsahuje zdrojové kódy webové aplikace 35
Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.
Jakub Klemsa Jan Legerský Objektově orientované programování klemsjak@fjfi.cvut.cz jan.legersky@gmail.com 30. října 2012 návrhový vzor (design pattern) obecné řešení problému, které se využívá při návrhu
PHP framework Nette. Kapitola 1. 1.1 Úvod. 1.2 Architektura Nette
Kapitola 1 PHP framework Nette 1.1 Úvod Zkratka PHP (z anglického PHP: Hypertext Preprocessor) označuje populární skriptovací jazyk primárně navržený pro vývoj webových aplikací. Jeho oblíbenost vyplývá
IS pro podporu BOZP na FIT ČVUT
IS pro podporu BOZP na FIT ČVUT Závěrečná zpráva pro 2. iteraci 21. dubna 2011 Zadavatel: Ing. Jiří Chludil Řešitelský tým: Jiří Kopecký Jan Kratochvíl Milan Matějček Štefan Pinďák Kristýna Streitová Úvod
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
Reranking založený na metadatech
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Reranking založený na metadatech MI-VMW Projekt IV - 1 Pavel Homolka Ladislav Kubeš 6. 12. 2011 1
1 Webový server, instalace PHP a MySQL 13
Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Nemocnice. Prvotní analýza a plán projektu
Nemocnice Projekt do předmětu AIS Prvotní analýza a plán projektu Lukáš Pohl, xpohll00, xkosti03 Jan Novák, xnovak79 2009/2010 1 Neformální specifikace FN potřebuje informační systém, který bude obsahovat
Maturitní projekt do IVT Pavel Doleček
Maturitní projekt do IVT Pavel Doleček CO FILMBOOK JE Filmbook je uzavřená webová aplikace pro celkovou správu informací a dat souvisejících se sledováním filmů. Primárně je zaměřen na uchovávání a spravování
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
Snadný vývoj webových aplikací s Nette. Lukáš Jelínek
Snadný vývoj webových aplikací s Nette Lukáš Jelínek Proč framework? ušetří spoustu práce (implementace, úpravy) vývoj = co udělat, ne jak to udělat bezpečnost štábní kultura prostředky pro ladění podpora
Common Object Request Broker Architecture
Common Object Request Broker Architecture Tvorba aplikací, jejichž komponenty budou komunikovat přes počítačovou síť Programátor jedné aplikace volá metody vzdálených objektů podobně jako u sebe lokální
Postupy práce se šablonami IS MPP
Postupy práce se šablonami IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Postupy práce se šablonami IS MPP Modul
Redakční systém Joomla. Prokop Zelený
Redakční systém Joomla Prokop Zelený 1 Co jsou to red. systémy? Redakční systémy (anglicky Content Management System - CMS) jsou webové aplikace používané pro snadnou správu obsahu stránek. Hlavním cílem
Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku
Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250
ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB
ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB Správce výrobce verze 1.0 1 z 24 Obsah 1. Seznam zkratek... 3 2. Přehled změn manuálu... 3 3. Úvod... 4 4. Popis Registru OZO... 5 4.1. Uživatelské
Aplikační vrstva. Úvod do Php. Ing. Martin Dostal
Aplikační vrstva Úvod do Php Ing. Martin Dostal Co to je PHP? php soubory se nekompilují, interpret je spouští přímo bez překladu php běží na serveru php soubor je.txt soubor obsahující php kód: Zkrácený
Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni
Webové aplikace Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni Harmonogram Dopolední blok 9:00 12:30 Ing. Dostal Úvod, XHTML + CSS Ing. Brada,
TÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 29. Otázka : Zpracování událostí: mechanismus událostí a jejich zpracování (Event/Listener), nepřímá invokace (Observer/Observable). Obsah : 1. Mechanisums
STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE
STŘEDNÍ ŠKOLA INFORMAČNÍCH TECHNOLOGIÍ A SOCIÁLNÍ PÉČE WEBOWÉ STRÁNKY TŘÍD KAMIL POPELKA ZÁVĚREČNÁ MATURITNÍ PRÁCE BRNO 2011 Prohlášení Prohlašuji, že maturitní práce je mým původním autorským dílem, které
Programování II. Třídy a objekty (objektová orientovanost) 2018/19
Programování II Třídy a objekty (objektová orientovanost) 2018/19 Osnova přednášky Objektový přístup (proč potřebujeme objekty). Třídy, objekty,... Příklad. Proč potřebujeme objekty? Udržovatelnost softwaru
Vý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í
Průvodce aplikací FS Karta
Průvodce aplikací FS Karta Základní informace k Aplikaci Online aplikace FS Karta slouží k bezpečnému ukládání osobních údajů fyzických osob a k jejich zpracování. Osobní údaje jsou uloženy ve formě karty.
INFORMAČNÍ SYSTÉMY NA WEBU
INFORMAČNÍ SYSTÉMY NA WEBU Webový informační systém je systém navržený pro provoz v podmínkách Internetu/intranetu, tzn. přístup na takový systém je realizován přes internetový prohlížeč. Použití internetového
Formy komunikace s knihovnami
Formy komunikace s knihovnami Současné moderní prostředky Jiří Šilha a Jiří Tobiáš, Tritius Solutions a.s., Brno Osnova Základní požadavky na komunikaci s knihovnami Historie komunikace s knihovnami Confluence
Projekt: Internetové stránky obce Modletice
Projekt: Internetové stránky obce Modletice Verze 2 - upravené požadavky na základě finančních možností www.modletice.cz Cíl projektu Cílem projektu je vytvoření nových reprezentativních internetových
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
Profesis on-line 20.1.2015. Obrázky v prezentaci byly upraveny pro potřeby prezentace.
Profesis on-line 20.1.2015 Obrázky v prezentaci byly upraveny pro potřeby prezentace. Adresa systému: www.profesis.cz Údaje nutné pro přihlášení: - přihlašovací jméno: sedmimístné číslo autorizace (včetně
Semestrální práce 2 znakový strom
Semestrální práce 2 znakový strom Ondřej Petržilka Datový model BlockFileRecord Bázová abstraktní třída pro záznam ukládaný do blokového souboru RhymeRecord Konkrétní třída záznamu ukládaného do blokového
OVLÁDÁNÍ PROGRAMU Obsah
OVLÁDÁNÍ PROGRAMU Obsah 1. Všeobecný přehled... 2 2. Základní navigační tlačítka... 2 3. Uživatelské nastavení... 3 3.1. Nastavení seznamu... 3 3.1.1. Nastavení zobrazovaných sloupců... 3 3.1.2. Nastavení
C. 3. Vytvoření metodiky práce s implementovaným IS včetně jeho naplnění daty relevantních procesů a způsobů jejich vyhodnocování
Název příjemce podpory: MĚSTO VESELÍ NAD MORAVOU tř. Masarykova 119 698 13 Veselí nad Moravou IMPLEMENTACE PROCESNÍHO ŘÍZENÍ V OBLASTI SAMOSTATNÉ PŮSOBNOSTI MĚSTA VESELÍ NAD MORAVOU C. 3. Vytvoření metodiky
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ
MATLABLINK - VZDÁLENÉ OVLÁDÁNÍ A MONITOROVÁNÍ TECHNOLOGICKÝCH PROCESŮ M. Sysel, I. Pomykacz Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky Nad Stráněmi 4511, 760 05 Zlín, Česká republika
PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě
PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Informační systém pro e-learning manuál
Informační systém pro e-learning manuál Verze 1.00 Úvod Tento dokument popisuje způsob práce s informačním systémem pro elektronické vzdělávání. Systém je určený pro vytvoření elektronického kurzu a jeho
PRACUJEME S TSRM. Modul Samoobsluha
PRACUJEME S TSRM Modul Samoobsluha V této kapitole Tato kapitola obsahuje následující témata: Téma Na straně Přehled kapitoly 6-1 Užití modulu Samoobsluha 6-2 Přihlášení k systému 6-3 Hlavní nabídka TSRM
Obsah. 1.1 Práce se záznamy... 3 1.2 Stránka Dnes... 4. 2.1 Kontakt se zákazníkem... 5
CRM SYSTÉM KORMORÁN UŽIVATELSKÁ PŘÍRUČKA Obsah 1 Základní práce se systémem 3 1.1 Práce se záznamy................................. 3 1.2 Stránka Dnes.................................... 4 1.3 Kalendář......................................
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
Profesis KROK ZA KROKEM 2
Profesis KROK ZA KROKEM 2 Adresa systému: www.profesis.cz Údaje nutné pro přihlášení: - přihlašovací jméno: sedmimístné číslo autorizace. Včetně nul na začátku např.: 0000001 - heslo: na štítku DVD Profesis
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:
DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP Maturitní projekt Vypracoval: Denis Ptáček Třída: 4B Rok: 2014/2015 Obsah 1. Použité nástroje... 3 1.1 NetBeans
Průzkumník IS DP. Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o.
Průzkumník IS DP Návod k obsluze informačního systému o datových prvcích (IS DP) vypracovala společnost ASD Software, s. r. o. dokument ze dne 13. 09. 2018, verze 1.00 Průzkumník IS DP Návod k obsluze
UŽIVATELSKÁ PŘÍRUČKA UČITEL
VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA UŽIVATELSKÁ PŘÍRUČKA UČITEL INFORMAČNÍ SYSTÉM PRO ZÁKLADNÍ ŠKOLU LOŠTICE Radek ZIMMERMANN Obsah 1 Úvod... 3 2 Přístup... 3 3 Přihlášení do systému... 4
Vý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
Uživatelem řízená navigace v univerzitním informačním systému
Hana Netrefová 1 Uživatelem řízená navigace v univerzitním informačním systému Hana Netrefová Abstrakt S vývojem počítačově orientovaných informačních systémů je stále větší důraz kladen na jejich uživatelskou
ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA
ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity
Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )
Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor ) DATASYS s.r.o., Jeseniova 2829/20, 130 00 Praha 3 tel.: +420225308111, fax: +420225308110 www.datasys.cz Obsah 1.1 Historie
Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /
Outdoor Expert Uživatelský manuál Verze aplikace: 1.0 28. 12. 2014 OutdoorExpert_Manual.docx 1 / 35 2015-01-01 Obsah 1 ÚVOD... 3 2 POPIS FUNKČNOSTÍ APLIKACE... 3 2.1 SPUŠTĚNÍ APLIKACE... 3 2.2 ZALOŽENÍ
Profilová část maturitní zkoušky 2017/2018
Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2017/2018 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 78-42-M/01 Technické lyceum Předmět: TECHNIKA
ČNHP. Příručka pro pacienty. Institut biostatistiky a analýz. Vytvořil:
ČNHP Vytvořil: Institut biostatistiky a analýz OBSAH. VSTUP DO REGISTRU... 3. ZAPOMENUTÉ HESLO... 3 2. ZÁKLADNÍ OKNO REGISTRU... 4 3. VYHLEDÁVÁNÍ PACIENTA... 5 3. NAPOSLEDY OTEVŘENÍ PACIENTI... 5 4. PRÁCE
ANOTACE vytvořených/inovovaných materiálů
ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a
Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362
Vypracoval: Antonín Krumnikl Email: antonin.krumnikl@ha-velfamily.cz Mob.: 606 778 713 Tel.: 552 302 362 Stránka 1 z 21 Obsah 1. Co je systém HELPdesk?... 2 2. Možnosti využití systému HELPdesk:... 2 3.
Bridge. Známý jako. Účel. Použitelnost. Handle/Body
Bridge Bridge Známý jako Handle/Body Účel odděluje abstrakci (rozhraní a jeho sémantiku) od její konkrétní implementace předchází zbytečnému nárůstu počtu tříd při přidávání implementací používá se v době
MANUÁL PRO UŽIVATELE WEBU ADRESÁŘ DESIGNÉRŮ
MANUÁL PRO UŽIVATELE WEBU ADRESÁŘ DESIGNÉRŮ Verze 1.0 ČESKÁ AGENTURA NA PODPORU OBCHODU Dittrichova 21, 128 01 Praha 2 Zelená linka pro export: 800 133 331, fax: 224 907 503 e-mail: info@czechtrade.cz
Novinky verze 2.3.0 systému Spisové služby (SpS) e-spis LITE
ICZ a.s. Správa a řízení dokumentů Na hřebenech II 1718/10 147 00 Praha 4 Tel.: +420-222 271 111 Fax: +420-222 271 112 Internet: www.i.cz Novinky verze 2.3.0 systému Spisové služby (SpS) e-spis LITE Vypracoval
Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2008 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 24
Seminář Java Návrhové vzory Radek Kočí Fakulta informačních technologií VUT Duben 2008 Radek Kočí Seminář Java Návrhové vzory 1/ 24 Znovupoužitelnost Dědičnost implementace třídy pomocí jiné (již existující)
E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka
E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka Anotace V rámci projektu FRVŠ jsme připravili webovou e-learningovou aplikaci, která je implementována v jazyce Java v rozšířené
Obsah. 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č
Objektově 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
Na vybraném serveru vytvoříme MySQL databázi. Soubory scratch.jpa, kickstart.php a en-gb.kickstart.ini nahrajeme na vybraný server.
1 Práce se systémem Tento dokument popíše způsob instalace a základy práce se systémem Joomla!, ve kterém je učebnice jazyka Scratch vytvořena. Podrobný návod k systému Joomla! je popsán v dokumentaci
1. Pro přihlášení k odběru novinek klikněte na tlačítko Registrace nového uživatele.
1. Vstup do aplikace Na adrese: http://i.statnisprava.cz 2. První stránka aplikace 1. Pro přihlášení k odběru novinek klikněte na tlačítko Registrace nového uživatele. 2. Poté budete přesměrováni na stránku
PŘÍLOHA C Požadavky na Dokumentaci
PŘÍLOHA C Požadavky na Dokumentaci Příloha C Požadavky na Dokumentaci Stránka 1 z 5 1. Obecné požadavky Dodavatel dokumentaci zpracuje a bude dokumentaci v celém rozsahu průběžně aktualizovat při každé
DUM 06 téma: Tvorba makra pomocí VBA
DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie
Modul IRZ návod k použití
Modul IRZ návod k použití Verze: 2 Datum: 26. 2. 2016 Tento dokument představuje stručný návod na použití modulu IRZ v programu EVI 8. Modul IRZ je určen na evidenci odpadů pro IRZ provozovny a hlášení
Personální evidence zaměstnanců
Mendelova univerzita v Brně Provozně ekonomická fakulta Personální evidence zaměstnanců Uživatelská dokumentace Bc. Petr Koucký Bc. Lukáš Maňas Bc. Anna Marková Brno 2015 1 Popis funkcionality Námi řešená
ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB
ISPOP 2019 MANUÁL PRO PRÁCI V REGISTRU ODBORNĚ ZPŮSOBILÝCH OSOB Odborně způsobilá osoba verze 1.0 1 z 19 Obsah 1. Seznam zkratek...3 2. Přehled změn manuálu...3 3. Úvod...4 4. Popis Registru OZO...5 4.1.
Uživatelská příručka pro respondenty
Uživatelská příručka pro respondenty Statistický informační systém Českého statistického úřadu Subsystém DANTE WEB Funkční blok Objednavatel: Český statistický úřad Na padesátém 81, 100 82 Praha 10 Dodavatel:
Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework
Web Jaroslav Nečas Obsah přednášky Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework Co to je web HTTP protokol bezstavový GET POST HEAD Cookies Session HTTPS
PROFI TDi s.r.o. 696 37, Želetice 40 www.profi-tdi.cz info@profi-tdi.cz. Návod k používání systému OTDI.CZ
Návod k používání systému OTDI.CZ Vážený kliente. Děkujeme za projevený zájem o náš on-line systém evidence kontrol, určený speciálně pro účely dozorů staveb. Systém OTDI.CZ nabízí svým uživatelům zejména:
1 Příručka používání Google Apps
1 Příručka používání Google Apps Tento manuál vznikl pro účel seznámení se základní funkčností balíku Google Apps a má za úkol Vás seznámit s principy používání jednotlivých služeb (Gmail, Kalendáře, Disk).
JUDr. Štěpán Kalamár, Ph.D.
Elektronická podpora výuky a vědeckého působení v oblasti práva a bezpečnosti 1. část - registrace do systému JUDr. Štěpán Kalamár, Ph.D. Anotace: Příspěvek čtenáři poskytuje úvodní seznámení s výstupem
Semin aˇr Java N avrhov e vzory Radek Ko ˇc ı Fakulta informaˇcn ıch technologi ı VUT Duben 2009 Radek Koˇc ı Semin aˇr Java N avrhov e vzory 1/ 25
Seminář Java Návrhové vzory Radek Kočí Fakulta informačních technologií VUT Duben 2009 Radek Kočí Seminář Java Návrhové vzory 1/ 25 Znovupoužitelnost Dědičnost implementace třídy pomocí jiné (již existující)
Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7
Modul Ankety verze 1.11 pro redakční systém Marwel 2.8 a 2.7 postupy a doporučení pro práci redaktorů Ivo Vrána, červen 2011 Podpora: e-mail: podpora@qcm.cz tel.: +420 538 702 705 Obsah Modul Ankety...3
Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.
Zdokonalování gramotnosti v oblasti ICT Kurz MS Excel kurz 6 1 Obsah Kontingenční tabulky... 3 Zdroj dat... 3 Příprava dat... 3 Vytvoření kontingenční tabulky... 3 Možnosti v poli Hodnoty... 7 Aktualizace
Lukáš Peterka vedoucí projektu. Registr hnojiv na eagri - uživatelská příručka. 25. 08. 2011, Brno
Lukáš Peterka vedoucí projektu Registr hnojiv na eagri - uživatelská příručka 25. 08. 2011, Brno Omezující podmínky pro zveřejnění, poskytnutí údajů: Tento dokument obsahuje informace důvěrného charakteru.
Roční periodická zpráva projektu
WAK-1F44C-2005-2 WAK System Název projektu: Automatizovaná výměna dat mezi informačními systémy krizového řízení v dopravě s jednotným univerzálním a implementovaným rozhraním založeným na standardu webových
Evidence požadavků uživatelů bytů a nebytových prostor
Evidence požadavků uživatelů bytů a nebytových prostor Úvod Pro zjednodušení a zprůhlednění Vaší komunikace se správní firmou (dále jen SF ), která má na starost objekt, v němž se nachází bytový či nebytový
WAK INTRA. Ovládání systému. internetový informační systém. účinný nástroj pro vedení firemních agend.
WAK INTRA účinný nástroj pro vedení firemních agend internetový informační systém Ovládání systému Jak na to? Tato prezentace poskytuje základní návod jak pracovat v systému WAK INTRA. Jednotlivé kroky
DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA
DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA Obsah Obsah... 4 Pinya CMS... 5 Přihlášení do systému... 6 Položky v menu administrace... 7 Uživatelé... 8 Správa uživatelů... 8 Nový uživatel... 9 Role... 10 Vytvoření
Uživatelský manuál. Obsah
Uživatelský manuál Obsah Úvodní stránka a horní menu Registrace uživatele Registrace studenta Registrace pedagoga Registrace firmy Přihlášeni do systému Obnovení zapomenutého hesla Nastavení uživatelského
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.
2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena. GEOVAP, spol. s r. o. Čechovo nábřeží 1790 530 03 Pardubice Česká republika +420 466 024 618 http://www.geovap.cz V dokumentu použité názvy programových
Analýza Systém Správce
Analýza Systém Správce Toto je analýza aplikace Systém Správce, která slouží k alokaci zaměstnanců vedených v databázi do týmů. Jedná se o pomůcku projektových manažerů. Rozbor požadavků Funkční požadavky
Přebírání okrsků v aplikaci Wanas
Přebírání okrsků v aplikaci Wanas Odkaz naleznete na těchto stránkách: http://mbcr.nature.cz/. Zde sekce stav okrsku. 1. Základní informace Stránka slouží k předávání informací o aktuálním stavu rozpracovanosti
Registr práv a povinností
Registr práv a povinností Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP list č.1/20 OBSAH 1 Úvod... 3 2 Doporučené nastavení prohlížeče... 4 2.1 Problém s certifikátem...
Akceptační test. Úvod
Verze 1.5 Akceptační test Úvod Tento dokument popisuje postup ověření softwaru, ohledně pokrytí požadavků. Obsahuje vstupní a výstupní parametry pro každý test. Testy Aplikace je napsána pro více uživatelských
Externí Helpdesk Uživatelská příručka. verze 1.00
Externí Helpdesk Uživatelská příručka verze 1.00 Externí Helpdesk uživatelská příručka k webovému prostředí Copyright 2011 Triada, spol. s r. o. Triada, spol. s r. o. U svobodárny 1110/12 190 00 Praha
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ář
Uživatelská příručka
Uživatelská příručka 1 Obsah 1 Obsah... 2 2 Uživatelská příručka... 3 2.1 Správce aplikace... 3 Menu správce aplikace... 4 Správa uživatelských účtů... 4 2.2 Ředitel turnaje... 4 Menu ředitele turnaje...
Registr práv a povinností
Registr práv a povinností Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP Doporučené postupy a nastavení internetového prohlížeče pro práci v aplikaci AIS RPP v4.0
Dobrý SHOP Popis produktu a jeho rozšíření
Dobrý SHOP Popis produktu a jeho rozšíření 501M012.N01 11/11/2011 www.dlaex.cz info@dlaex.cz OBSAH 1 Úvod...3 2 Účel produktu...3 3 Vlastnosti produktu...3 3.1 Koncepce...3 3.2 Základní y...3 3.3 Doplňkové
Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 3 a novější
Manuál PVU zadavatel Platnost pro elektronický nástroj X-EN verze 3 a novější 1 Vytvoření profilu zadavatele... 2 1.1 Doplnění identifikátoru profilu zadavatele ve VVZ... 2 2 Správa profilu... 3 2.1 Vytvoření
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy
ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy Bc. Petr Pokorný Letní semestr 2009/2010 1 Obsah 1 Úvod... 3 2 Workflow... 3 3 Workflow
Geis Point Plugin Map
Str. 1/5 Geis Point Plugin Map Rozhraní pro vložení výdejního místa do objednávky na e-shopu Str. 2/5 Obsah 1. Co je Geis Point Plugin Map?... 3 2. Jak to funguje?... 3 3. Obecný postup nasazení... 3 4.
Národní elektronický nástroj. Import profilu zadavatele do NEN
Národní elektronický nástroj Import profilu zadavatele do NEN V 1.2 2014 Obsah 1 Cíl...... 2 2 Nutné podmínky k umožnění importu profilu zadavatele...... 2 3 Povinnosti zadavatele dle metodiky k vyhlášce
Modul pro PrestaShop 1.7
Obsah Modul pro PrestaShop 1.7 1 Instalace...2 1.1 Nahrání modulu do PrestaShopu...2 1.2 Komunikační adresy...3 1.3 Nastavení...4 1.4 Stavy objednávek...6 1.5 Jazykové verze...8 1.6 Kontrola funkčnosti...9
Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9
Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého
EndNote Web. Stručné informace THOMSON SCIENTIFIC
THOMSON SCIENTIFIC EndNote Web Stručné informace Web je webový nástroj navržený tak, aby poskytoval studentům a výzkumníkům pomoc při psaní výzkumných prací. Databáze ISI Web of Knowledge a nástroje EndNote
DoplněkCite While You Write pro aplikaci Microsoft Word
DoplněkCite While You Write pro aplikaci Microsoft Word Díky doplňku Cite While You Write pro nástroj EndNote Web máte možnost reference a formátované citace či bibliografie při psaní vaší práce v aplikaci
Systémové elektrické instalace KNX/EIB (16. část) Ing. Josef Kunc
Systémové elektrické instalace KNX/EIB (16. část) Ing. Josef Kunc Projektování systémové elektrické instalace KNX/EIB nastavení ETS a komunikace Dříve, než zahájíme vlastní projektovou činnost, je vhodné
Tvorba internetových aplikací s využitím framework jquery
Tvorba internetových aplikací s využitím framework jquery Autor Michal Oktábec Vedoucí práce PaedDr. Petr Pexa Školní rok: 2009-10 Abstrakt Tato práce se zabývá využití frameworku jquery pro vytváření