Generování SQL ze specikace v UML a OCL. Jan Donátek. ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Katedra po íta.

Rozměr: px
Začít zobrazení ze stránky:

Download "Generování SQL ze specikace v UML a OCL. Jan Donátek. ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Katedra po íta."

Transkript

1 ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Katedra po íta Bakalá ská práce Generování SQL ze specikace v UML a OCL Jan Donátek Vedoucí práce: Richta Karel Doc.Ing., CSc. Studijní program: Elektrotechnika a informatika, strukturovaný, Bakalá ský Obor: Výpo etní technika 24. kv tna 2011

2 iv

3 v Pod kování Touto cestou bych cht l pod kovat mému vedoucímu doc. Ing. Karlu Richtovi, CSc., který byl se mnou vºdy ochoten dannou problematiku konzultovat a byl vºdy k dispozici. Mé díky také pat í rodi m, kte í mi umoºnili proºít studium aº do te jako jednu velkou párty a vºdy m podporovali. Díky!!

4 vi

5 vii Prohlá²ení Prohla²uji, ºe jsem práci vypracoval samostatn a pouºil jsem pouze podklady uvedené v p iloºeném seznamu. Nemám závaºný d vod proti uºití tohoto ²kolního díla ve smyslu Ÿ60 Zákona. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o zm n n kterých zákon (autorský zákon). V A²i dne

6 viii

7 Abstract Programming trends are heading towards higher eectivity. For these purposes dierent kinds of code generators have been created. This way one can save a lot of time when managing projects and more importantly a programmer can concentrate on the scope. MDD (Model Driven Development) is going even further with it [8]. It tries to use the model itself for code generation. The model may be used for generating of a skeleton solution and data structure - Forward Engineering. By Reverse Engineering we can obtain documentation of a ready-made project. Nowadays, the most used tool for such documentation is UML (Unied Modeling Language). UML by itself is not capable of creating a full-edged model. In order to get such a model it is necessary to add descriptions of dierent integrity constraints. For this case UML has got an Object Constraint Language (OCL). However, there is no CASE tool nowadays that would be capable of generating these constraints to SQL. In this study I would like to demonstrate possibilities that one can use to construct SQL from an existing UML/OCL. Abstrakt Trendy v programování sm ují k vy²²í efektivit psaní kódu. Za tímto ú elem jsou vytvá- eny r zné generátory kódu. Tímto zp sobem se u²et í mnoho asu p i vytvá ení projekt a hlavn se programátor m ºe koncentrovat na problém samotný. MDD (Model Driven Development) jde v tomto sm ru je²t dále [8]. Snaºí se vyuºívat pro generování samotný model. Model m ºe být pouºit pro generování kostry e²ení a struktury dat, tzv. Forward Engineering. Reverzním inºenýrstvím m ºeme naopak získat dokumentace k hotovému projektu pro ix

8 x jeho snaº²í pochopení. Nejvíce vyuºívaným nástrojem sou astnosti pro vytvá ení takové dokumentace je standard UML (Unied Modeling Language). UML sám o sob je²t nevytvá í plnohodnotný model. Aby se tak stalo, je t eba doplnit modely o popisy r zných integritních omezení. Pro tento ú el obsahuje UML jazyk OCL (Object Constraint Language). V sou asné dob neexistuje ºádný CASE nástroj, který by um l spolehliv vygenerovat tato ingritní omezení do SQL. V této návrhové práci se budu zabývat moºnostmi, které lze pouºít ke konstrukci SQL z existujícího UML dopln ného o OCL.

9 Obsah 1 Úvod do modelem ízeného vývoje Motivace Modelem ízený vývoj UML a CASE nástroje Jazyk OCL Syntaxe OCL P evod OCL do SQL Základní p evody Kolekce Analýza moºností Enterprise Architect Add-ins Architektura addin Lad ní dopl k MDA transformace XMI Návrh e²ení Pouºitý programovací jazyk - Groovy Struktura knihovny Struktura exportovaného XMI z EA Nalezení cizích klí Contraints - Integritní omezení Atributy SQL parser Struktura tabulek P idání cizích klí Integritní omezení Podobné systémy Dresden OCL Jak Dresden OCL funguje Dal²í podobné systémy xi

10 xii OBSAH 6 Záv r 29 A Seznam pouºitých zkratek 33 B Instala ní a uºivatelská p íru ka 35 B.1 INSTALACE B.2 AKTIVACE V PROJEKTU B.3 UKÁZKOVÉ PROGRAMY C Obsah p iloºeného CD 37

11 Seznam obrázk 2.1 Doménový model Rela ní model po transformaci z doménového modelu Architektura Add-in v EA MDA transformace v EA Architektura návrhu e²ení R zné formy zápisu cizích klí C.1 Seznam p iloºeného CD xiii

12 xiv SEZNAM OBRÁZK

13 Seznam tabulek 2.1 UNIQUE PRIMARY KEY FOREIGN KEY CHECK xv

14 xvi SEZNAM TABULEK

15 Kapitola 1 Úvod do modelem ízeného vývoje 1.1 Motivace Pouºívání model p i vytvá ení komplexních systém je vyºadováno ve v²ech tradi ních in- ºenýrských disciplínách[9]. Nikdo by si dnes nep edstavil, ºe n jaký tým smontuje auto nebo postaví most aniº by nejd íve nesestavili specializované modely. Modely nám pomáhají porozum t sloºitosti problému a nalézt potencionální e²ení skrze abstrakci. A koliv je vyvíjení softwaru také jistou abstrakcí k reálnému systému, tato abstrakce m ºe být také zachycena modelem a vývojá i z n j mohou jen protovat. V²e samoz ejm musí být provád no v rozumné mí e. P edstavme si p ípad, kdy vyvíjíme produkt bez pouºití modelování [7]. Výhodou se m ºe zdát, ºe tímto postupem u²et íme as, který bychom v novali modelování. Neprovádíme ºádné aktivity, které by nevedly p ímo k tvorb produktu. Nevytvá ejí se ºádné vedlej²í produkty a artefakty, výsledkem je katalog poºadavk a kód. Hotový program se p edá rm. Problém nastává v okamºiku, kdy od zákazníka p ijde poºadavek na zm nu i p ídání nové funk nosti. Nová osoba nebo autor sám se musí znovu seznámit s kódem a to, co jsme u²et ili na za átku o to nyní p ijdeme. V opa ném p ípad by se analytik ke skute nému programování ani nedostal a tak by ani ºádný kód nevznikl. Zabýval by se pouze vytvá ením model. Ani jedna situace není optimální, ale jsou známé metodiky, které této absence modelování a vytvá ení dokumentace vyuºívají (ExtremeProgramming) a dokun ují projekty úsp ²n. Ty ale v budoucnu nemusejí nutn znamenat úsporu, vzhledem k tomu, jak se zlep²ují generátory kód z model. Zatím je na úváºení manaºera týmu, kdy jakou metodiku zvolit. Rozumným kompromisem je vytvo it jen takový model, který pom ºe p i analýze, návrhu, implementaci, testování a údrºb produktu, a který navíc z stane rm k dispozici pro dal²í zm ny. Pokud je model udrºován sou asn s produktem, m ºe takto poslouºit po celý jeho ºivotní cyklus. 1.2 Modelem ízený vývoj Modelem ízený vývoj (Model Driven Development), téº známý jako MDE (Model Driven Engineering) i MDA (Model Driven Architecture), vychází z Doménového modelu. Tento 1

16 2 KAPITOLA 1. ÚVOD DO MODELEM ÍZENÉHO VÝVOJE p ístup byl odstartován OMG (Object Management Group[14] 1 ) v roce OMG samotné implementaci neposkytuje. Vypisuje specikace a o implementaci samotnou se starají soukromé rmy nebo Open Source skupiny. Dle OMG [16] MDA je separována bussiness a aplika ní logika od cílové platformy. Jde tedy o PIM (Platfom Independent Model), model nezávislý na platform. Tyto platform nezávislé modely dokumentují funkcionalitu a chování aplikace nezávisle na specickém kódu. Pomocí transformací vytvo íme PSM (Platform Specic Model) daný PDM (Platform Denition Model). Tedy vytvo íme model ve specickém kódu i platform, nap C++, Java, DDL. Pokud se v tomto textu budu dále vyjad ovat o transformacích, bude my²lena transformace z PIM do PSM DDL (Data Denition Language), nap. MySQL. MDD je úzce spojována s dal²ími standardy jako Unied Modeling Language (UML), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC) a dal²í. S UML i XMI se v textu seznámíme podrobn ji pozd ji. 1.3 UML a CASE nástroje Unied Modeling Language ([4]) jak název napovídá je jazyk vytvo ený sjednocením n kolika grackých jazyk, které se pouºívaly v pr b hu 80. a 90. let minulého století. Jazyk UML za ali vyvíjet roku 1994[13] Grady Booch a Jim Rumbaugh z rmy Rational Software Corporation. Verze UML 1.0 byla ociáln spu²t na v roce 1997 [2]. Od té doby jej udrºuje skupina OMG. Jazyk UML je souhrn p edev²ím grackých notací k vyjád ení analytických a návrhových model. Pouºívá se k dorozumívání mezi programátory, jelikoº umoº uje modelovat aplikace pomocí stejné formální syntaxe. Celý model systému se skládá z n kolika logicky odd lených model. V mé práci budu dále pracovat s doménovým modelem. Velkým pomocníkem p i vývoji model jsou CASE (Computer Aided Software Engineering) nástroje. CASE nástroje jsou nástroje pro podporu analýzy a návrhu aplikací. V sou- astnosti v t²ina objektov orientovaných CASE nástroj vychází z UML. Mezi nejznám j²í pat í Enterprise Architect od SparxSystems a Visio od Microsft. Mezi freeware licencemi lze nalézt r zné pluginy nap. do Eclipse. Existují ale i mnohem sostikovan j²í nástroje neº je Visio a Enterprise Architect, jejich cena ale m ºe být aº desetinásobn vy²²í (Rational Rose od Rational, Select Component Architect od Select Business Solutions). 1.4 Jazyk OCL Aby byl model vyjád ený v UML úplný je t eba zapsat jej i s integritními omezeními. Integritní omezení se zapisují do sloºených závorek ({}). Lze je zapsat v p irozeném jazyce nebo formálním jazyce UML Object Constraint Language (OCL). [2] Pouºíváním OCL se vyhneme ²patným interpretacím zp sobeným nejednozna ností p irozeného jazyka. Nadruhou stranu podstupujeme riziko, ºe tená ani analytik nemusejí správn ovládat OCL. [7] Jazyk OCL pochází p vodn z metodiky Syntropy (IBM). Je to ist funkcionální jazyk - vyhodnocení výrazu je bez vedlej²ích efekt - neexistuje tedy ºádná globální pam. Stejná funkce se stejnými argumenty dává vºdy stejný výsledek. OCL není programovací jazyk, je to 1 Originál p ísp vek OMG jiº není funk ní.

17 1.4. JAZYK OCL 3 specika ní jazyk. Zápisy v OCL je t eba chápat jako specikaci pro programy, které budou odpovídající integritní omezení zaji² ovat. Pro je vlastn d leºité vytvo it generátor kódu pro p evod OCL do SQL, kdyº v dne²ní dob existují r zné techniky, které zajistí integritu dat? Integritu lze [3] zajistit uº p ímo v uºivatelském rozhraní nebo ji manuáln vloºit do aplika ní vrstvy nebo napsat SQL dotazy, které budou kontrolovat integritu v perzistentní vrstv. V²echny tyto p ístupy svou funkci spl ují, ale mají také spole nou nevýhodu. Není moºné u nich automaticky p enést omezení specikovaná v OCL z návrhu do implementace systému Syntaxe OCL Zápis v jazyce OCL má jednotný tvar[7]: context <jméno> [inv pre post] <název omezení>:<výraz> <název omezení> je volitelný. Jako odkaz na kontext pro <výraz> slouºí klí ové slovo context. Vezm me v úvahu nap. zápis: context Student inv:<výraz> ozna uje, ºe uvedený výraz se vztahuje na v²echny instance t ídy Student. Pokud chceme pracovat pouze s konkrétní instancí, pouºijeme klí ové slovo self. Klí ová slova inv, pre a post zastupují stereotypy: inv (invariant) - obecn platné tvrzení pre (precondition) - vstupní podmínky operace post (postcondition) - podmínka, která po vykonání operace M jme nap. zápis obecn platné tvrzení (invariantu): context Student inv: self.v k > 17 Tento zápis vyjad uje, ºe kaºdá instance t ídy Student, musí mít v k vy²²í 17 let. Studenty niº²ího v ku nelze v daném systému zaevidovat. Pro popis metody m ºeme pouºít zápis, kde nám vstupní podmínka nakazuje, ºe nelze zapsat p edm t s mén jak 3 kredity: context Student::zapi²PovinnýP edm t( po etkredit :Integer, název:string ) pre : po etkredit >= 3

18 4 KAPITOLA 1. ÚVOD DO MODELEM ÍZENÉHO VÝVOJE

19 Kapitola 2 P evod OCL do SQL Syntaxi jazyka SQL[8] m ºeme rozd lit do 5-ti kategorií. <SQL statement> ::= <QUERY> <DML> <DDL> <TCL> <DCL> Pro generování vyuºíváme p íkazy kategorie DDL (Data Denition Language). T mito p íkazy se vytvá ejí základní rela ní objekty. V tomto textu se budu zabývat pouze tabulkami, nebo práv tyto jsou generovány p i transformaci v EA z PIM do PSM-DDL. Hlavním problémem p i transformaci UML/OCL do SQL je nejednozna nost p evodu, r zný p ístup r zných analytik v návrhu a nedostate ná analýza sloºit j²ích situací (p evody kolekcí). Následující seznam problém 1 s kterými se m ºeme setkat p i p evodu vychází z [1]: Základní datové typy OCL (real, integer,...) jsou rovnou p evád ny do datových typ SQL. Mohou ale nastat problémy pokud takový datový typ neexistuje. To je t eba v SQL typ INTERVAL. I zdánliv jednoduché p evody t ída-tabulka mají svá úskalí. Existuje nekompatibilita mezi objekty a rela ními modely. Rela ní databáze jsou zaloºeny na p esném matematickém principu teorie mnoºin, kdeºto objekty vznikly empiricky, praxí. Integritní omezení v t²inou nebývají svázány pouze s jedním objektem, ale se skupinou objekt a vztah. Je sice moºné skrze r zné asociace v modelu dojít ke správným dotaz m, ty ale asto bývají velmi sloºité a výpo etn náro né. Auto i tohoto seznamu do²li ve své studii k zajímavému záv ru. UML roz²í ené o OCL omezení dokáºe vystihnout p esný konceptuální (doménový) model. Takové modely se v²ak v praxi pro generování kódu nepouºívají. EA a dal²í CASE nástroje dokáºí generovat rela ní schéma, ale omezení zapsaná do PSM modelu jsou dostupné jen na specické platform (SQL, Oracle,..). V XMI souboru, který EA generuje, lze snadno p istoupit jak k omezením zapsaným v konceptuálním modelu, tak k integritním omezením, které zapsal analytik v modelu PSM DDL. 1 Zabývám se pouze e²ením invariant, atribut z tabulek a kolekcemi. Dal²ími problémy jsou problémy s denováním pohled (Views) a konstrukty r zných poddotaz a sjednocení. 5

20 6 KAPITOLA 2. P EVOD OCL DO SQL K p evodu OCL do SQL lze pouºít 2 p ístupy: transformaci p es metamodely (metamodelbased transformation) a nebo transformaci denovanou vzorci (pattern-based transformation). Budu dále rozebírat jen druhou zmín nou, kterou pouºívám i v návrhu. P i p evád ní OCL/UML na SQL p evedeme t ídy na tabulky, atributy na sloupce, vztahy 1:N jsou vytvo eny pomocí primárních a cizích klí, vztahy M:N se realizují pomocí vztahové tabulky. Tyto transformace za nás vytvo í EA p i p echodu z doménového modelu do PSM DDL ( p ed transformací - 2.1, po transformaci - 2.2). Obrázek 2.1: Doménový model

21 7 Obrázek 2.2: Rela ní model po transformaci z doménového modelu Pokud jde o omezení samotné, lze pouºít 2 techniky p evodu. Pozm nit tabulku o omezení a vyuºít SQL constraint CHECK. OCL: context T inv IOT: <výraz>

22 8 KAPITOLA 2. P EVOD OCL DO SQL SQL: Uvaºme nap íklad integritní omezení: ALTER TABLE T ADD CONSTRAINT IOT CHECK ( SQL2OCL<výraz> ) context Student inv IO1: ( self.max_vek < 26 ); Které nahradíme v SQL dotazem: ALTER TABLE Student ADD CONSTRAINT IO1 CHECK ( max_vek < 26 ); Druhým zp sobem je vytvo it pohledy (VIEW), jeº ur í, která data nespl ují podmínky sémantické datové integrity. CREATE VIEW "IOT"AS ( SELECT * FROM "T"AS "T-alias" WHERE NOT ( SQL2OCL<výraz> ) ); Formáln jsou oba p ístupy správné, ale v praxi lze (alespo zatím) pouºít jen pohledy. Constraint CHECK v praxi nelze pouºít nebo se v n m v r zných implementacích SQL nep ipou²tí dotaz nad stejnou tabulkou. Norma ji v²ak p ipou²tí. 2.1 Základní p evody Richta se ve svém lánku [? ] v nuje tzv. okruºní jízd (round-trip). V kapitole "P evod SQL do UML/OCL"(tedy p evod z PSM do PIM) m ºeme nalézt základní transforma ní vzorce. Popí²i zde opa ný postup - z PIM do PSM. Funkci OCL isunique(), která se volá nad sloupcem vyjád íme v SQL jako integritní omezení UNIQUE. (tab. 1) OCL context T inv : self.<sloupec> -> isunique() SQL create table T ( <sloupec> <typ> UNIQUE ); Tabulka 2.1: UNIQUE

23 2.1. ZÁKLADNÍ P EVODY 9 Kombinace funkcí isunique() a isdened() denuje v SQL primární klí. OCL context T inv : self.<sloupec> -> isunique() and isdened() SQL create table T ( <sloupec> <typ> PRIMARY KEY ); Tabulka 2.2: PRIMARY KEY Z diagramu t íd pouºijeme vztah mezi tabulkou T a referencovaným objektem, který se jmenuje <FK> pro vyjád ení cizího klí e v SQL. OCL context T inv : self.<sloupec> -> exists( x:<tabulka> x.<nazev> = self. <FK> ) SQL create table T ( <sloupec> <typ> CONSTRAINT <FK> REFERENCES <nazev>(<tabulka>) ); Tabulka 2.3: FOREIGN KEY OCL funkce forall() se vyjád í v SQL jako integritní omezení CHECK. OCL context T inv : self.<sloupec> -> forall( x:t <výraz> ) SQL create table T ( <sloupec> <typ> CHECK(<výraz>) ); Tabulka 2.4: CHECK Pokud se omezení týká více typ, je nutné je vyjmenovat v prexu a explicitn denovat jména prom nných odpovídajících typ : context v1 : T1,..., vn : Tn inv: <výraz> Takovýto zápis není moºné rovnou p evést do SQL. Nejprve je t eba jej interpretovat jako posloupnost OCL p íkaz. Tento nový zápis nýám íká, ºe <výraz> platí pro v²echny instance v²ech odpovídajících typ. T1.allInstances->forAll(v1:T1.... Tn.allInstances->forAll(vn:Tn <výraz>)...)

24 10 KAPITOLA 2. P EVOD OCL DO SQL Nyní m ºeme jiº tato omezení transormovat na sadu dotaz v SQL, které zavád jí omezení pro v²echny zú astn né tabulky. ALTER TABLE T1 ADD CONSTRAINT IOT1 CHECK (OCL2SQL(<výraz>));. ALTER TABLE Tn ADD CONSTRAINT IOTn CHECK (OCL2SQL(<výraz>)); Výraz <výraz> je rela ní výraz s b ºnými rela ními operátory. Má tvar: <výraz><rela ní-operátor><výraz> Jeho p eklad bude: OCL2SQL(<výraz><rela ní-operátor><výraz>) = OCL2SQL(<výraz>)OCL2SQL(<rela ní-operátor>)ocl2sql(<výraz>) nebo OCL2SQL(<výraz><operátor><výraz>) = OCL2SQL(<výraz>)OCL2SQL(<operátor>)OCL2SQL(<výraz>) V SQL také existují unární operátory, které provád jí operaci pouze nad jedním výrazem jakéhokoli numerického datového typu. V SQL dialektech bývají nej ast ji implementovány tyto: Unární plus: numerická hodnota je pozitivní Unární minus: numerická hodnota je negativní logické NOT: Logické NOT provád né bit po bitu. Nemá ekvivalent v OCL. Výraz s unárním operátorem má v OCL tvar: <unární-operátor><výraz> Jeho p eklad potom bude: OCL2SQL(<unární-operátor><výraz>) = OCL2SQL(<unární-operátor>)OCL2SQL(<výraz>)

25 2.2. KOLEKCE Kolekce Jazyk OCL pracuje s kolekcemi a má denovánu sadu operací pro práci s takovými kolekcemi. Nap.test na prázdnost kolekce má operátor isempty(): OCL2SQL(<kolekce> -> isempty()) ::= (SELECT COUNT(*) FROM <kolekce>) = 0 Funkce size() vrací po et prvk mnoºiny: OCL2SQL(<kolekce> -> size()) ::= SELECT COUNT(*) FROM <kolekce> Pot ebujeme-li sekven n projít kolekci pouºijeme funkci iterate() [7] - nap.chceme-li se íst po et ú astník dle zadané podmínky. V OCL zápisu zastupuje prom nná v1 iterátor a v2 akumulátor. Nejprve se v2 nastaví na hodnotu výrazu <výraz1>. Poté se pro kaºdý prvek vyhodnotí výraz <výraz2>. P i sekven ním procházení kolekce je po adáí ur eno jen u uspo ádaných kolekcí. U neuspo ádaných je po adí náhodné. V SQL vzníkne výraz <výraz22> substitucí výrazu<výraz1> za v2 v <výraz2>: OCL2SQL(<kolekce> -> iterate(v1;v2=<výraz1> <výraz2>)) ::= SELECT v1 FROM (SELECT * FROM <kolekce> WHERE <výraz22>) Funkcí exists() ov íme, zda v dané kolekci existuje testovaný element: OCL2SQL(<kolekce> -> exists(v1 <výraz>)) ::= SELECT TRUE FROM <kolekce> WHERE EXISTS <výraz> Univerzálním kvantikátorem v OCL je forall(), kde výraz <výraz1> zastupuje n jakou podmínky, jeº musí v²echny prvky kolekce splnit: OCL2SQL(<kolekce> -> forall(v1 <výraz>)) ::= SELECT TRUE FROM <kolekce> WHERE NOT EXISTS NOT(<výraz>) Pro výb r prvk dle n jakého kritéria slouºí select(): OCL2SQL(<kolekce> -> select(v1 <výraz>)) ::= SELECT v1 FROM <kolekce> WHERE <výraz> Opakem select() je reject(), kterou "zavrhneme"necht né prvky. Kombinací t chto 2 funkcí m ºeme nap. vybrat studenty dle v ku z n jakého intervalu: OCL2SQL(<kolekce> -> reject(v1 <výraz>)) ::= SELECT v1 FROM <kolekce> WHERE NOT <výraz> Pokud chceme ov it, zda kolekce zahrnuje ur itý prvek, pouºijeme iselement(): OCL2SQL(<kolekce> ->iselement(v1 <výraz>)) ::= (SELECT COUNT(*) FROM <kolekce> WHERE <výraz> LIMIT 1) = 1

26 12 KAPITOLA 2. P EVOD OCL DO SQL

27 Kapitola 3 Analýza moºností 3.1 Enterprise Architect Tato kapitola je celá v nována tomuto CASE nástroji, který jsem si vybral pro jeho zna nou roz²í enost jako zástupce mezi CASE nástroji a také, protoºe je jeho licence na na²í fakult pro studenty voln k dispozici. Pro EA jsem nakonec vytvo il i návrh. 3.2 Add-ins Enterprise Architect (dále jen EA) poskytuje uºivatel m moºnost roz²i ování funk nosti pomocí add-in - v podstat jde o plugin. Add-iny jsou ActiveX COM objekty ([10]), které vyuºívají Automation Interface ke skriptování na Windows OLE. Napojit na Automation Interface se m ºe jakékoliv vývojové prost edí, které m ºe vytvá et ActiveX Com objekty. Lze tedy pouºít nap íklad Visual C# 2010 Express. K naprogramování zásuvného modulu lze mimo C# pouºít také Microsoft Visual Basic 6.0, Borland Delphi 7.0 a Javu Architektura addin Rozchození nového addinu není v EA zcela triviální, proto vysv tlím jejich architekturu (obr. 3.1, [12] ). Jakmile nastartujeme EA, za ne íst z registr na adrese HKEY_CURRENT_USER\ Software\SparxSystems\EAAddins. Kaºdý z klí v tomto umíst ní p edstavuje jeden zásuvný modul, který bude na ten do aplikace. Kaºdý klí se skládá z názvu add-inu a jeho t ídy odd lených te kou - MyAddin.MyAddinClass. EA se tedy dotáºe na umíst ní Addinu v COM databázi (COM codebase entries), který vrátí správný plugin. 13

28 14 KAPITOLA 3. ANALÝZA MOšNOSTÍ Obrázek 3.1: Architektura Add-in v EA Lad ní dopl k Hlavním problémem p i vyvíjení pluginu do EA je velmi ²patná podpora pro debugování 1 a testování samotné aplikace. To byl také hlavní d vod, pro jsem od tohoto zp sobu e²ení ustoupil. Dal²ím z d vod byla nedostate ná dokumentace. Nejv t²ím problém totiº p i vývoji pluginu iní, ºe jakmile objevíme bug nebo chceme doplnit novou funk nost, zkompilujeme projekt a vysko í chyba. Chyba vznikne, protoºe add-in pouºívá EA a nem ºe tedy být p epsán na²ím IDE. Takºe musíme zav ít EA, znovu zkompilovat celý projekt, opravit bug, nahodit EA a celý postup znovu opakovat. Tento cyklus má samoz ejm velký dopad na produktivitu. 3.3 MDA transformace MDA transformace [17] neboli Model Driven Architecture transformace velice p íspívají k produktivit. Jde v podstat o p evedení platform nezávislého modelu (PIM) do platform specického modelu (PSM) (3.2). 1 Menu a submenu lze debugovat i za b hu EA.

29 3.4. XMI 15 Obrázek 3.2: MDA transformace v EA Transformace jsou denovány ve skriptech psaných v template jazyce (template language). Bohuºel k t mto se mi nepoda ilo najít v bec ºádnou dokumentaci ani na internetu ani v dokumentaci k EA. A koliv tento zp sob by byl pravd podobn nejsnaº²í pro zpracovávání OCL do SQL. EA nabízí n kolik zabudovaných typ transformací: C#, datový model do ERD, DDL, EJB entity a n kolik dal²ích. Pro p evod z UML/OCL do SQL se pouºívá DDL (Data Denition Language) transformace, která transformuje platform nezávislé t ídy do platform specických tabulek. Bohuºel EA netransformuje v²echny vlastnosti element modelu. Jednou z takových vlastností jsou omezení (constraints). I pokud je v nov vytvo- eném modelu dodenujeme, generátor kódu 2 je ve výsledném kódu nezahrne (ani ve form komentá ). 3.4 XMI XMI je zkratka pro XML Metamodel Interchange. Jde o otev ený standard formátu soubor, který spravuje OMG a slouºí pro vým nu informací mezi modely a nástroji. Nejb ºn ji se vyuºívá pro UML modely. Poslední verze ISO je z ervence 2005 ([6]), XMI Tato verze v²ak není EA podporována. EA podporuje pouze verze 1.1, 1.2 a 2.1. Verze 1.* podporují pouze UML verze 1.3. Pro návrh jsem vybral XMI 2.1, který má podporu pro UML 2.0 a UML 2.1. XMI má p isp t ke snadnému exportu model z jednoho CASE nástroje do jiného. Bohuºel vým na diagram a pouºití univerzálního generátoru tém není moºná, kv li r zné implementaci spole ností, které s XMI pracují. 2 Generátor kódu se pouºívá k dal²ímu navý²ení produktivity. Existuje globální prom nná $constraint, z které by m lo být moºné p istoupit k obsahu omezení, ale je vºdy prázdná.

30 16 KAPITOLA 3. ANALÝZA MOšNOSTÍ

31 Kapitola 4 Návrh e²ení Jako nejlep²í návrh se nakonec, dle mého názoru jeví, pouºít pro generování z UML/OCL do SQL formát XMI. D vod je z ejmý. Export z XMI obsahuje údaje o v²ech modelech a v²ech jejich vlastnostech vytvo ených v rámci projektu a navíc je moºné, ºe v budoucnu se jednotlivý prodejci software sjednotí ve formátech XMI a bude moºné vytvo it obecné e²ení. Pro na²e ú ely budeme vyuºívat doménový model a model po transformaci na DDL. Pro správnou funkci je tedy nutné mít vytvo ený projekt v EA, který obsahuje minimáln tyto dva specické modely a exportovat celý projekt ve formátu XMI 2.1. Práce s EA XMI bohuºel není zcela pr hledná, jelikoº se asto objevují zcela identické t ídy li²ící se pouze v nic ne íkajícím id a také názvy atribut ne zcela vºdy korespondují s názvy v EA, ba asto jsou názvy zavád jící. 4.1 Pouºitý programovací jazyk - Groovy Programovací jazyk Groovy je vytvo en nad Java Virtual Machine. Kompiluje t ídy do Java bytekódu, takºe m ºe být pouºit kdekoliv spolu s Javou. Navíc bezproblému integruje v²echny existující Javovské t ídy a knihovny. Vysledná knihovna m ºe být tedy pouºita v Java projektu. Groovy jsem si vybral pro implentaci hlavn pro jeho velmi snadnou práci s XML soubory - XMI je vlastn soubor v XML formátu. P ístup k jednolivým uzl m a atribut m je v Groovy zcela triviální a lze tak i dob e sledovat strukturu XMI. Dále také pro jeho velkou p ehlednost v napsaném kódu. Velmi jsem vyuºíval jeho nativní podporu pro kolekce a hash-mapy. K urychlení práce a v t²í p ehlednosti kódu také velmi p ispivají "closures" ( eský ekvivalent mi není znám). 4.2 Struktura knihovny Hlavní t ídy pro zpracování p evodu jsou Xmi_processing.groovy, Table.groovy a MySqlParser.groovy (4.1). Table.groovy - je entitní t ída, která obsahuje v²echny informace nutné k vytvo ení struktury databáze v n jakém dialektu SQL. 17

32 18 KAPITOLA 4. NÁVRH E ENÍ Xmi_processing.groovy - vytahuje informace z exportu projektu v XMI. Ty ukládá v instancích Table. MySqlParser.groovy - Vytvo í z instancí Table soubor *.sql a ze statického atributu "[] constraints"(integritní omezení nejsou vºdy svázána pouze s jednou tabulkou, proto je kolekce statická) p idá za pomoci n jaké knihovny t etí strany pro p evod OCL do SQL integritní omezení. Obrázek 4.1: Architektura návrhu e²ení 4.3 Struktura exportovaného XMI z EA V komponent Xmi_processing.groovy pracuji s exportovaným XMI. T ída má denovány atributy, kterými p istupuji k jednotlivým logickým ástem dokumentu. Jejich lokaci popí²i v duchu Groovy, tedy uzel a jeho potomek jsou odd leni te kou a uzav en do <>. Atribut uzlu je název atributu>=<hodnota>". "xml"zna í root dokumentu. classes ::= <xml.extension.elements.element xmi:type=uml:class>

33 4.4. NALEZENÍ CIZÍCH KL̓ 19 sql_classes ::= classes && <classes.code gentype=sql 1 > ddl_classes ::= <xml.model.packagedelement.packagedelement.packagedelement.packagedelement name=ddl> && <xml.model.packagedelement.packagedelement.packagedelement.packagedelement. packagedelement xmi:type=uml:class> connectors ::= <xml.extension.connectors.connector> K tomu, aby bylo moºné vytvo it kompletní strukturu v SQL, je nutné dostat správná data z XMI. Proto nyní vysv tlím, v jaké ásti lze jednotlivé atributy tabulek, jejich vlastnosti a integritní omezení nalézt. N které vlastnosti lze nalézt na více umíst ních. Omezím se pouze na ty, pot ebné pro návrh. Uvedu "název atributu v Table"/ "Umíst ní v XMI".@"název atributu". Operace bude mít "název operace"/""umíst ní v XMI".@"název atributu". * zna í divokou kartu: název tabulky (table_name) / ddl_classes.@name id / ddl_classes.@xmi:id atributy (attrs) / sql_classes.attributes.attribute Základní vlastnosti atribut - datový typ, délka,... atributy (attrs) / ddl_classes.ownedattribute Dal²í vlastnosti a omezení atribut - NOT NULL, zda jde o derivovaný atribut,... cizí klí e (FK) / ddl_classes.@name=fk_* primární klí e (PK) / ddl_classes.@name=pk_* unikátní (UQ) / ddl_classes.@name=uq_* 4.4 Nalezení cizích klí Operace s kterými pracuji jsou typu FK, PK, UQ. Primární a unikátní klí e jsou jasn denovány p edponami "PK_"a "UQ_". V p ípad cizích klí se situace trochu komplikuje. Jediným ukazatelem "cizosti"není jen p edpona "FK_". Operace cizího klí e m ºe existovat i bez této p edpony. Není to zp sobeno pouze p ípadem, kdy by uºivatel p epsal generovaný kód. Tato situace m ºe nastat také pokud existuje vztah 1:N mezi 2 entitami, pak EA vygeneruje p i transformaci do PSM nové jméno sloºené z "FK_", "názvu zdrojové tabulky"a "názvu cílové tabulky". Pokud bychom navíc m li pojmenovanné asociace, p ejme operace cizího klí e práv toto jméno. Kv li této nejednotnosti jmen operací, je sloºité nalézt tabulky, kde se tento klí nachází jako primární. Na obrázku (4.2) lze jasn vid t n které varianty, které mohou nastat. 1 hodnota zde záleºí na vybraném dialektu SQL - MySql, Oracle SQL,...

34 20 KAPITOLA 4. NÁVRH E ENÍ Obrázek 4.2: R zné formy zápisu cizích klí Neprovedl jsem kompletní analýzu v²ech t chto p ípad, protoºe pro nalezení operace cizího klí e v dokumentu XMI jich není zapot ebí. M ºeme si v²imnout, ºe v diagramech není ºádný problém cizí klí e nalézt, a uº mají jakýkoliv název. Bohuºel, jejich itelnost v XMI jiº tak p ímo ará není. V XMI nalezneme v²echny operace i s jejich parametry a p i adíme je k jejich tabulce. Mnoºinovým rozdílem 2 odstraníme v²echny primární a unikátní klí e. Získáme tak pouze cizí klí e, ale je²t nám zbývá zjistit, vzhledem k jaké tabulce jsou tyto klí e cizí. Pak budeme porovnávat parametry operací FK s parametry operací PK. Existuje-li 2 Ten je v implementaci návrhu proveden p es ltrování p edpon.

35 4.5. CONTRAINTS - INTEGRITNÍ OMEZENÍ 21 shoda, nalezli jsme zdrojovou tabulku. Nutnou pro podmínkou pro funk nost této metody je, aby se parametry cizích i primárních klí jmenovaly stejn a zárove, aby neexistovaly 2 identické primární klí e. Tato podmínka je p i transformaci spln na. K nespln ní by mohlo dojít v p ípad, kdy uºivatel pojmenuje jinak názvy parametr cizího klí e. To ale z hlediska návrhu nemá ºádný smysl. 4.5 Contraints - Integritní omezení V EA lze zapisovat OCL do komentá a nebo do li²ty "constraints", kde nám ov í i správnou syntaxi OCL. Jak sem se jiº zmínil v úvodu textu, ani p i generování ani p i transformaci generátor kódu s "constraints"nepracuje. Pokud chceme generovat SQL kód, posta í pouze pouºít omezení zapsaná v PSM DDL. Pokud budeme chtít proces co nejvíce zautomatizovat, jeví se jako rozumné pouºít omezení zapsaná v konceptuálním modelu (PIM) a ne vytvá et pro kaºdou transformaci omezení nová. Proto v návrhu zpracovávám jak omezení zapsaná v doménovém modelu, tak v transformovaném DDL modelu. V t chto dvou modelech nalezneme 5 typ omezení - omezení zapsaná u t ídy, jejich atribut a konektor v diagramu t íd a u tabulek a konektor v DDL modelu. Chceme-li zpracovat údaje o omezeních pot ebujeme znát následující atributy - kontext (context), název omezení (pod kterým bude uveden VIEW i ALTER TABLE), typ (zda jde o OCL) a výraz. Zápis v jazyce OCL má vºdy jednotný tvar: [7] context <jméno> [inv pre post]: <výraz> Informace pro jednotlivé typy omezení jsou: Pro t ídy z "Class diagramu"a tabulky z "DDL"existuje stejná cesta a stejný atribut. Li²í se pouze v p i azeném id. umíst ní: xml/extension/elements/element(xmi:type="uml:class"name=název tabulky/t ídy>")/constraints/constraint(name) struktura: <constraint name=""type=""status=""weight=""description=""/> name - název omezení type - typ omezení; { Invariant Post-condition Pre-condition Process OCL }, pro nás je d leºité, aby byl typ nastaven na OCL status - { Approved Build Implemented Mandatory Proposed Validated } weight - je reálné íslo. Ur uje po adí v jakém jsou zobrazeny omezení v záloºce "constraints" description - výraz kontext: sql_classes(name) Pro atributy z "Class diagramu". umíst ní: xml/extension/elements/element(xmi:type="uml:class"name=název tabulky/t ídy>")/ struktura: <Constraint 3 name=""type=""notes=""/> 3 Zde jsem narazil na bug v nativní knohovn Groovy XmlSlurper. Neumí si poradit s uzly pojmenovanými na za átku velkým písmenem. Proto je v implementaci sice funkce pro nalezení omezení u atribut nakódována, ale není nikde pouºita, jelikoº hlásí chybu.

36 22 KAPITOLA 4. NÁVRH E ENÍ notes - výraz kontext: sql_classes(name) Pro konektory z "Class diagramu"i "DDL". umíst ní: connectors(xmi:idref)/constraints/constraint(name) struktura: <constraint name=""type=""description=" kontext: connectors/source/model(name) ; Jako kontext je pouºita zdrojová t ída/tabulka 4.6 Atributy Základní vlastnosti atribut získáme z umíst ní sql_classes/attributes/attribute/properties. EA v tomto uzlu generuje i jiné vlastnosti, ale pro mou práci nejsou d leºité. <properties type="" length="" precision="" scale=" type - SQL datový typ length - pouºívá se u datových typ CHAR, NCHAR, VARCHAR, NVARCHAR pro vyjád ení, kolik znak se má uloºit. Také se pouºívá pro FLOAT, kde ur uje po et bit v mantise. Hodnoty pro length pak jsou {1, 2,..., 53}. precision, scale - precision je po et digit v ísle. Scale je po et digit napravo od desetinné árky. Je ur en pro datové typy DECIMAL, DOUBLE, DOUBLE PRECISION, NUMERIC a REAL. Zbylé vlastnosti a omezení získáme z umíst ní ddl_classes/ownedattribute. V tomto uzlu lze nalézt n které zajímavé vlastnosti, jako nap íklad visibility (public, protected, private) i zda jde o derivovaný atribut. <ownedattribute name=""isunique=" name - název atributu isunique - nabývá hodnot { true false }. Název je dosti zavád jící. O ekával jsem, ºe ur uje unikátnost atributu (UNIQUE). Jde ale o omezení NOT NULL, pokud je atribut isunique nastaven na "false". 4.7 SQL parser P i vytvá ení parseru jsem se snaºil napodobit strukturu *.sql souboru jako ji vytvá í EA. Soubor lze tedy rozd lit do 3 ástí - vytvo ení struktury tabulky, p idání cizích klí a p idání omezení.

37 4.7. SQL PARSER Struktura tabulek V²echna data pot ebná pro vytvo ení struktury tabulek jsou uloºena v instancích Table.groovy. Struktura vypadá následovn : CREATE TABLE <název tabulky>( <atributy> PRIMARY KEY (<primární klí e), UNIQUE ( <unikátní atributy> ), KEY 4 ( <cizí klí e> ) ); P idání cizích klí Cizí klí e jsou denovány jako integritní omezení a p idány do tabulky aº po jejím vytvo ení. ALTER TABLE <název tabulky> ADD CONSTRAINT <název operace> FOREIGN KEY ( <parametr operace - alias primárního klí e zdrojové tabulky> ) REFERENCES <zdrojová tabulka> ( < primární klí zdrojové tabulky>); Integritní omezení Pro zápis integritních omezení jsem zvolil výraz CHECK. Sice ºádný poskytovatel databází s ním neumí pracovat nad více tabulkami, ale jde o prototyp generování SQL z OCL a formáln je CHECK zcela správn. Pro výraz z OCL do SQL je t eba pouºít knihovnu pro tento ú el ur enou. ALTER TABLE <kontext> ADD CONSTRAINT <název omezení> CHECK ( <výraz z OCL v SQL> ); 4 Jelikoº jsem unit testoval sql soubory vzhledem k sql vygenerovaným EA, zvolil jsem zp sob denování cizího klí e také p es ALTER TABLE. Nena²el jsem jaký má tento zp sob (ne)výhody. Jinak bych generoval cizí klí e rovnou v CREATE TABLE pomocí operace FOREIGN KEY.

38 24 KAPITOLA 4. NÁVRH E ENÍ

39 Kapitola 5 Podobné systémy 5.1 Dresden OCL Aplikací pro p evod OCL/UML do SQL není mnoho. V t²inou jde o pluginy, vyjime n o standalone aplikaci, ale nesetkal jsem se s ºádnou organizací, která by poskytovala samostatnou knihovnu a to ani v komer ní oblasti. Nejzajímav j²í je práce na²ich n meckých soused z univerzity v DrẠanech. Jde o projekt Dresden OCL [11]. Poslední stabilní verzí je Dresden OCL a podporuje OCL 2.2. Práce na projektu zapo ala jiº v roce Systém je udrºován p eváºn studenty a v dci ze Software Technology Group na Technické Univerzit DrẠany. Dresden OCL je zaloºen na Eclipse SDK a vydáván jako set plug-in pro Eclipse. Eclipse verze po krátkém otestování vypadá na slibný a robustní nástroj. Vydávájí také v distribuci samotnou Javovskou knihovnu. Není s ní nijak jednoduché pracovat a navíc je provázána s GUI a ani její chod není bezchybný. Naobranu v²ak musím dodat, ºe standalone verze jiº není déle udrºována Jak Dresden OCL funguje Hlavní rozdíl mezi mím návrhem a DrẠanským spo ívá v p ístupu k XMI. Abyste vygenerovali SQL soubor, je zapot ebí mít exportovaný model v XMI a samostatný soubor s omezeními v OCL *.ocl. Pokud tedy navrhneme model, musíme navíc zapsat dal²í soubor s omezeními. Omezení tak nemáme synchronizována s modelem. Pokud by existoval generátor OCL z UML integrovaný v daném analytickém prost edí, pak by toto zas aº takový problém nebyl. Ani EA od SparxSystems ani Rational Rose od IBM v²ak takovou funkci nepodporují. Pro samotné p evád ní omezení OCL invariant se pouºívají v SQL pohledy. Následující p íklad je uveden v dokumentaci tohoto produktu a má demonstrovat, jak se z jednoduchého OCL omezení vygeneruje velmi sloºitý SQL dotaz. Ten, jak jsem psal d íve, má samoz ejm dopad na výkon. Omezení context Student inv tudoclinv2: self.supervisor.grade.value > self.grade.value 25

40 26 KAPITOLA 5. PODOBNÉ SYSTÉMY je transformováno do SQL dotazu: CREATE OR REPLACE tudoclinv2 AS ( SELECT * FROM OV_Student AS ALIAS2 WHERE NOT ( ( ( SELECT value FROM OV_Grade AS foo WHERE PK_Grade IN ( SELECT FK_grade FROM OV_Person AS foo WHERE PK_Person IN ( SELECT FK_supervisor FROM OV_Student AS foo WHERE PK_Person = ALIAS2.PK_Person ) ) ) > ( SELECT value FROM OV_Grade AS foo WHERE PK_Grade IN( SELECT FK_grade FROM OV_Person AS foo WHERE PK_Person = ALIAS2.PK_Person ) ) ) ) ); 5.2 Dal²í podobné systémy Dal²ím zajímavým projektem v této oblasti se mohl stát compiler studenta Renata Miceliho [5], ke kterému neexistuje tém ºádná dokumentace (pouze v kódu a navíc v t²inou v ital²tin ). Podle code.google je v²ak jiº aktivita na projektu nulová. Poslední zaznamenaný commit je z Tipuji tuto práci na semestrální projekt, jelikoº stránka byla zaloºena v kv tnu spole n s prvními commity. To je pravd podobn také d vod ukon ení. Jedná se o kompilátor OCL do SQL také z XMI souboru. Projekt Octopus má domovskou stránku na [15]. Na stránce lze nalézt jen velmi málo informací, protoºe celý projekt je²t kompletn nemigrovali a p vodní web je jiº nefunk ní. Výjá ský tým, podle domény, pochází z Holandska. Octopus je plug-in pro Eclipse. Sice negeneruje kód v SQL, ale auto i se zam ili také na podoboný úkol - p evod z PIM do PSM

41 5.2. DAL Í PODOBNÉ SYSTÉMY 27 - p evod z UML/OCL do JAVA. Tento generátor tým vytvo il jako d kaz vize MDA, ºe "lze vytvo it aplikaci modelováním PIM a jeho následnou transformací do platform závislého modelu PSM". Zatím jde pouze o prototyp. Projekt byl naposledy updatován v roce 2006, takºe uº je pravd podobn také ukon en (by neociáln ). V ím, ºe existují i dal²í obdobné projekty, ty se mi v²ak nepoda ilo nalézt. Je vid t, ºe tato oblast MDD je teprve v za átcích.

42 28 KAPITOLA 5. PODOBNÉ SYSTÉMY

43 Kapitola 6 Záv r Mím úkolem bylo navrhnout moºnosti generování kódu ze specikace pomocí diagramu t íd UML v kombinaci s popisem OCL do SQL. B hem studia jsem asto slýchával pojmy jako je OCL a to m dovedlo k p edstav, ºe jde o beºný nástroj s kterým vývoja i b ºn pracují. ƒekal jsem, ºe naleznu v²ude plno dostupných materiálu a tutoriál, ve kterých bude jednodu²e vysv tleno, jak p evád t OCL do SQL. Skute nost je naprosto opa ná. O OCL se sice hodn mluví, ale konretní postupy zatím nejsou. Strávil jsem mnoho hodin studováním materiál a manual o transformacích a generování script pro v Enterprise Architect. Velmi m p ekvapilo, ºe SparxSystems nedali k dispozici dokumentaci. Je sice, ºe v manuálech jsou popsána 4 transforma ní makra, ale chybí mnoho v cí, na které lov k musí p ijít sám. Toto byl m j první pokus a zárove první slepá uli ka. Studiem add-in sem také nestrávil málo asu. Kdyº porovnám vývoj pluginu pro Enterprise Architect s vývojem pluginu pro Netbeans IDE, vyvíjet pro "Netbeany"je nesrovnateln jednodu²²í. Je k dispozici kompletní dokumentace, GUI builder, mnoºství tutoriál a alespo malá komunita programátor. Tak jsem se pokusil o dal²í e²ení, které nem lo konce. Cíl bakalá ské práce jsem splnil. Prozkoumal jsem r zné moºnosti. Jedinou smysluplnou se ukázalo zpracování XMI souboru. Takové projekty jiº sice existovaly, ale na trochu jiné bázi. Negenerují omezení p ímo z XMI, musí se jim dodat je²t samostatný soubor s omezeními. V ím, ºe jsem správn zdokumentoval ásti XMI d leºité pro zpracování OCL. Rád bych pokra oval v této práci, nap íklad jako téma pro diplomovou práci. Zam il bych se spí²e na univerzáln j²í generování neº jen pro Enterprise Architect. Byl bych rád, kdyby tento projekt z stal pouze jako knihovna s funkcemi pro zpracování XMI a generování OCL/UML do SQL, jelikoº takový produkt jsem nena²el. 29

44 30 KAPITOLA 6. ZÁV R

45 Literatura [1] ARMONAS, A. NEMURAITE, L. PATTERN BASED GENERATION OF FULL- FLEDGED RELATIONAL SCHEMAS FROM UML/OCL MODELS. INFORMATION TECHNOLOGY AND CONTROL. 2006, 35, 1, s [2] FOWLER, M. UML Distilled - Third Edition. Addison-Wesley [3] HEIDENREICH, F. WENDE, C. DEMUTH, B. A Framework for Generating Query Language Code from OCL Invariants. Electronic Communications of the EASST. 2008, 9, s [4] KANISOVá, H. MüLLER, M. UML srozumiteln. Computer Press, Brno [5] MICELI, R. ocl2sqlcompiler. stav ze [6] OMG. XML Metadata Interchange Specication, Version ISO/IEC 19503:2005(E) [7] RICHTA, K. Jazyk OCL a modelem ízený vývoj. Moderní databáze 2010, Nesuchyn, str [8] RICHTA, K. Rekonstrukce OCL z SQL. DATAKON 2010, Mikulov, ISBN: , str [9] SELIC, B. The Pragmatics of Model-Driven Development. IEEE SOFTWARE. 2003, 20, 5. [10] web:addins. Enterprise Architect Add-In Model. stav z [11] web:dresdenocl. Dresden OCL. stav z [12] web:rstaddin. Tutorial: Create your rst C-Sharp Enterprise Architect addin in 10 minutes. stav ze

46 32 LITERATURA [13] web:historyuml. History of UML. stav z [14] web:mddarchitecture. Model-driven architecture. stav z [15] web:octopus. Octopus: OCL Tool for Precise Uml Specications. stav z [16] web:omgmda. OMG Model Driven Architecture. stav z [17] web:transformace. MDA Transformations. stav ze!

47 P íloha A Seznam pouºitých zkratek MDD Model Driven Development MDA Model Driven Architecture MDE Model Driven Engineering OMG Object Management Group PIM Platform Independent Model PSM Platform Specic Model PDM Platform Denition Model DDL Data Denition Language XMI XML Metadata Interchange UML Unied Modeling Language CASE Computer Aided Software Engineering OCL Object Constraint Language EA Enterprise Architect 33

48 34 P ÍLOHA A. SEZNAM POUšITÝCH ZKRATEK

49 P íloha B Instala ní a uºivatelská p íru ka Knihovna na CD se nachází na nal-xmi-to-sql/dist. Soubor se jmenuje lib-xmi-to-sql.jar. B.1 INSTALACE P idání knihovny z terminálu: 1. javac -classpath.:/pathtojar/jarname.jar ClassName.java 2. java -classpath.:/pathtojar/jarname.jar ClassName P idání knihovny v Netbeans IDE: 1. V Netbeans klikneme na Tools/Libraries a vytvo íme novou knihovnu "New Library..." 2. Jako jméno knihovny uvedeme "xmi-to-sql" a zkontrolujeme, zda je typ nastaven na "Class Libraries". Formulá potvrdíme. 3. V ásti "Libraries" ozna íme na²í knihovnu, v záloºce "Classpath" klepneme na "Add JAR/Folder" a najdeme "lib-xmi-to-sql.jar". 4. Potvrdíme "OK" 5. Nyní vybereme n jaký Java/Groovy projekt a pravým tla ítkem my²i otev eme vlastnosti "Properties" 6. V ásti "Categories" vybereme "Libraries". 7. V záloºce "Compile" p idáme knihovnu kliknutím na "Add Library...", kde vybereme "xmi-to-sql" B.2 AKTIVACE V PROJEKTU Pouºití v Java/Groovy projektu: 1. Pro základní funk nost je nutné importovat následující balíky: import bak.xmi.to.sql.xmi.*; import bak.xmi.to.sql.parser.*; 35

50 36 P ÍLOHA B. INSTALAƒNÍ A UšIVATELSKÁ P ÍRUƒKA 2. Pro validaci xmi souboru se musí je²t doplnit: import bak.xmi.to.sql.file.validator.*; 3. Pro generování je nutné pouºít tuto deklaraci, kde nahradíme pouze prom nnou "xmipath" námi zvolenou cestou ke xmi souboru: Xmi_processing mp = new Xmi_processing( xmipath ); Parser parser = new MySqlParser( mp.createtables(), Table.constraints ); 4. Chceme-li si ov it, zda ze zadaného xmi souboru lze vygenerovat sql, p idáme je²t následující ádek: filevalidator2sql validator = new filevalidator2sql( xmipath ); B.3 UKÁZKOVÉ PROGRAMY Ob ukázky jsou jiº zkompilované knihovnou xmi-to-sql. Sta í je pouze spustit z p íkazové ádky z adresá e, kde se nachází.jar soubor p íkazem: java -jar název_ukazky.jar 1. Test knihovny v shell-aplikaci: test-xmi-to-sql/dist/test-xmi-to-sql.jar Tato aplikace p edpokládá, ºe v ko enovém adresá i CD bude existovat examples/student_predmet_zkouska.xmi. Výsledný sql soubor se uloºí do sloºky "examples". 2. Test knihovny v GUI prost edí: test-gui-xmi-to-sql/dist/test-gui-xmi-to-sql.jar V ko enovém adresá i CD existuje sloºka "examples", kde si lze ov it funk nost na 2 xmi souborech. Generované.sql se uloºí na Vámi vybranou pozici. Program funguje pouze pod Windows, jelikoº vyuºívá nativní prvky prost edí. Pozn.: Zdrojové soubory si lze prohlédnout ve sloºce projektu pod sloºkou "src"

51 P íloha C Obsah p iloºeného CD 37

52 38 P ÍLOHA C. OBSAH P ILOšENÉHO CD Obrázek C.1: Seznam p iloºeného CD

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13 Seminá e Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11, sem.

Více

Konceptuální modelování

Konceptuální modelování Konceptuální modelování Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS

Více

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1 Úvod, terminologie Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11,

Více

e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody

e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody V praxi se asto setkávame s p ípady, kdy je pot eba e²it více rovnic, takzvaný systém rovnic, obvykle s více jak jednou neznámou.

Více

Databázové a informační systémy

Databázové a informační systémy Databázové a informační systémy 1. Teorie normálních forem Pojem normálních forem se používá ve spojitosti s dobře navrženými tabulkami. Správně vytvořené tabulky splňují 4 základní normální formy, které

Více

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9 Transformace ER SQL Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11,

Více

Integrování jako opak derivování

Integrování jako opak derivování Integrování jako opak derivování V tomto dokumentu budete seznámeni s derivováním b ºných funkcí a budete mít moºnost vyzkou²et mnoho zp sob derivace. Jedním z nich je proces derivování v opa ném po adí.

Více

Vektory. Vektorové veli iny

Vektory. Vektorové veli iny Vektor je veli ina, která má jak velikost tak i sm r. Ob tyto vlastnosti musí být uvedeny, aby byl vektor stanoven úpln. V této ásti je návod, jak vektory zapsat, jak je s ítat a od ítat a jak je pouºívat

Více

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů Datový typ soubor Soubory a databáze Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů Záznam soubor se skládá ze záznamů, které popisují

Více

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Pátá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Pátá přednáška SQL - DDL - dokončení SQL - DCL Vlastnosti relačních databázových systémů. Princip

Více

BOZP - akcepta ní testy

BOZP - akcepta ní testy BOZP - akcepta ní testy Kristýna Streitová Zadavatel: Ing. Ji í Chludil 13. prosince 2011 Obsah 1 Úvod 2 1.1 Popis test....................................... 2 2 Testy 3 2.1 ID - 1 P ihlá²ení do systému.............................

Více

Skalární sou in. Úvod. Denice skalárního sou inu

Skalární sou in. Úvod. Denice skalárního sou inu Skalární sou in Jedním ze zp sob, jak m ºeme dva vektory kombinovat, je skalární sou in. Výsledkem skalárního sou inu dvou vektor, jak jiº název napovídá, je skalár. V tomto letáku se nau íte, jak vypo

Více

Limity funkcí v nevlastních bodech. Obsah

Limity funkcí v nevlastních bodech. Obsah Limity funkcí v nevlastních bodech V tomto letáku si vysv tlíme, co znamená, kdyº funkce mí í do nekone na, mínus nekone na nebo se blíºí ke konkrétnímu reálnému íslu, zatímco x jde do nekone na nebo mínus

Více

DeepBurner (testování UI)

DeepBurner (testování UI) ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Semestrální práce DeepBurner (testování UI) Blaºej, Friebel, Olexová, Volf P edm t: Testování uºivatelských rozhraní Obor: Softwarové inºenýrství

Více

P íklad 1 (Náhodná veli ina)

P íklad 1 (Náhodná veli ina) P íklad 1 (Náhodná veli ina) Uvaºujeme experiment: házení mincí. Výsledkem pokusu je rub nebo líc, ºe padne hrana neuvaºujeme. Pokud hovo íme o náhodné veli in, musíme p epsat výsledky pokusu do mnoºiny

Více

Uºivatelská p íru ka Octopus

Uºivatelská p íru ka Octopus Uºivatelská p íru ka Octopus Jan Bojko 11. prosince 2014 Abstrakt Uºivatelská p íru ka k aplikaci Octopus. Obsah 1 Úvod 2 2 P ihlá²ení 2 3 Naviga ní menu 2 4 Práce s tabulkou 3 5 Editace 6 5.1 Nový záznam.............................

Více

SQL - úvod. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 6

SQL - úvod. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 6 SQL - úvod Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS ZS 2010/11, P

Více

Binární operace. Úvod. Pomocný text

Binární operace. Úvod. Pomocný text Pomocný text Binární operace Úvod Milí e²itelé, binární operace je pom rn abstraktní téma, a tak bude ob as pot eba odprostit se od konkrétních p íklad a podívat se na v c s ur itým nadhledem. Nicmén e²ení

Více

Aplikace počítačů v provozu vozidel 9

Aplikace počítačů v provozu vozidel 9 Aplikace počítačů v provozu vozidel 9 2 Databázové systémy Rozvoj IS je spjatý s rozvojem výpočetní techniky, především počítačů. V počátcích se zpracovávaly velké objemy informací na jednom počítači,

Více

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Uložené procedury Úvod ulehčit správu zabezpečení rychleji Uložené procedury Úvod Uložená procedura (rutina) je sada příkazů SQL, které jsou uložené na databázovém serveru a vykonává se tak, že je zavolána prostřednictvím dotazu názvem, který jim byl přiřazen

Více

Vektor náhodných veli in - práce s více prom nnými

Vektor náhodných veli in - práce s více prom nnými Vektor náhodných veli in - práce s více prom nnými 12. kv tna 2015 N kdy k popisu n jaké situace pot ebujeme více neº jednu náhodnou veli inu. Nap. v k, hmotnost, vý²ku. Mezi t mito veli inami mohou být

Více

Rekonstrukce OCL z SQL *

Rekonstrukce OCL z SQL * Rekonstrukce OCL z SQL * Karel RICHTA 1 1 Katedra softwarového inženýrství, MFF UK Praha Malostranské nám. 25, 118 00 Praha karel.richta@mff.cuni.cz Abstrakt. Jednou z často citovaných zkratek poslední

Více

Pravd podobnost a statistika - cvi ení. Simona Domesová místnost: RA310 (budova CPIT) web:

Pravd podobnost a statistika - cvi ení. Simona Domesová místnost: RA310 (budova CPIT) web: Pravd podobnost a statistika - cvi ení Simona Domesová simona.domesova@vsb.cz místnost: RA310 (budova CPIT) web: http://homel.vsb.cz/~dom0015 Cíle p edm tu vyhodnocování dat pomocí statistických metod

Více

Pr b h funkce I. Obsah. Maxima a minima funkce

Pr b h funkce I. Obsah. Maxima a minima funkce Pr b h funkce I Maxima a minima funkce V této jednotce ukáºeme jak derivování m ºe být uºite né pro hledání minimálních a maximálních hodnot funkce. Po p e tení tohoto letáku nebo shlédnutí instruktáºního

Více

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java 3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java Studijní cíl V tomto bloku navážeme na konec předchozího bloku a seznámíme se s vývojovými prostředími, které se nejčastěji používají

Více

Modelem řízený vývoj. SWI 1 Jan Kryštof

Modelem řízený vývoj. SWI 1 Jan Kryštof Modelem řízený vývoj SWI 1 Jan Kryštof Související zkratky MDA ~ Architecture formální vymezení MDD ~ Development aktivita SW vývojářů MDG, MDE,... UML ~ Unified modeling language OMG ~ Object Management

Více

DUM 05 téma: Základy obsluha Gimp

DUM 05 téma: Základy obsluha Gimp DUM 05 téma: Základy obsluha Gimp ze sady: 02 tematický okruh sady: Bitmapová grafika ze šablony: 09 Počítačová grafika určeno pro: 2. ročník vzdělávací obor: 18-20-M/01 Informační technologie - Aplikace

Více

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL 4 Vysoká škola báňská Technická univerzita Ostrava Fakulta strojní, Katedra automatizační techniky a řízení 2008/2009 Radim Farana 1 Obsah Jazyk SQL, datové typy, klauzule SELECT, WHERE, a ORDER BY. Doporučená

Více

Dotazování nad stromem abstraktní syntaxe

Dotazování nad stromem abstraktní syntaxe Fakulta jaderná a fyzikáln inºenýrská ƒeské vysoké u ení technické v Praze 3.6.2010 Osnova while 1 Reprezentace programu 2 AST a Java 3 Vyhledávání v AST 4 Aplikace body if expr Jak reprezentovat program

Více

Prohlá²ení. V Praze dne 18. dubna 2010...

Prohlá²ení. V Praze dne 18. dubna 2010... ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Katedra po íta Bakalá ská práce Studentova Berli ka III - Jádro aplikace Jaromír Van k Vedoucí práce: Ing. Ji í Chludil Studijní program: Softwarové

Více

Algoritmus (nebo dřívějším pravopisem algorithmus)

Algoritmus (nebo dřívějším pravopisem algorithmus) Algoritmus (nebo dřívějším pravopisem algorithmus) o přesný návod či postup, kterým lze vyřešit daný typ úlohy. Pojem algoritmu se nejčastěji objevuje při programování, kdy se jím myslí teoretický princip

Více

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné Analyzujte, navrhněte a implementujte aplikaci pro sledování spánku dětí Chůvička pro telefony na platformě Android. Od existujících aplikací se bude aplikace odlišovat tímto: funkční na dual-sim telefonech

Více

Android Elizabeth. Verze: 1.3

Android Elizabeth. Verze: 1.3 Android Elizabeth Program pro měření mezičasů na zařízeních s OS Android Verze: 1.3 Naposledy upraveno: 12. března 2014 alesrazym.cz Aleš Razým fb.com/androidelizabeth Historie verzí Verze Datum Popis

Více

Kelvin v kapkový generátor

Kelvin v kapkový generátor Kelvin v kapkový generátor Kry²tof Kadlec 1, Luká² Kune² 2, Luká² N me ek 3 1 Gymnázium Franti²ka Palackého, Vala²ské Mezi í í, krystoof.2@seznam.cz 2 Gymnázium, Zlatá stezka 137, Prachatice, kunamars@seznam.cz

Více

T i hlavní v ty pravd podobnosti

T i hlavní v ty pravd podobnosti T i hlavní v ty pravd podobnosti 15. kv tna 2015 První p íklad P edstavme si, ºe máme atomy typu A, které se samovolným radioaktivním rozpadem rozpadají na atomy typu B. Pr m rná doba rozpadu je 3 hodiny.

Více

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ

Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ Obsah 1. Úvod 2. Kontaktní logické řízení 3. Logické řízení bezkontaktní Leden 2006 Ing.

Více

Termíny zkoušek Komise Komise. subkomise 1 (obhaj.) :30 B subkomise 2 (obhaj.) :30 B8 120

Termíny zkoušek Komise Komise. subkomise 1 (obhaj.) :30 B subkomise 2 (obhaj.) :30 B8 120 Základní informace o struktu e dat: Komise (nadkomise) obsahují leny schválené VR (po jejich identifikaci v SIS, p íp. dopln ní budou obsahovat všechny schválené leny, po novém za azení se vyplní datum

Více

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal Databázové systémy - SQL * definice dat * aktualizace * pohledy Tomáš Skopal Osnova přednášky definice dat definice (schémat) tabulek a integritních omezení CREATE TABLE změna definice schématu ALTER TABLE

Více

Operace nad celými tabulkami

Operace nad celými tabulkami 10 Operace nad celými tabulkami V předchozích kapitolách jsme se převážně zabývali sloupci tabulek. V této kapitole se naučíme provádět některé operace, které ovlivňují tabulky jako celek. Probereme vlastnosti

Více

M. Balíková, R. Záhořík, NK ČR 1

M. Balíková, R. Záhořík, NK ČR 1 M. Balíková, R. Záhořík, NK ČR 1 Geolink.nkp.cz Prototyp aplikace obohacení geografických autorit o údaje souřadnic s následným zobrazením dané lokality na mapě - kartografické matematické údaje v záznamech

Více

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash 4900 - Vibrio

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash 4900 - Vibrio Aplikační list Vyvažování tuhého rotoru v jedné rovině přístrojem Adash 4900 - Vibrio Ref: 15032007 KM Obsah Vyvažování v jedné rovině bez měření fáze signálu...3 Nevýhody vyvažování jednoduchými přístroji...3

Více

Derivování sloºené funkce

Derivování sloºené funkce Derivování sloºené funkce V tomto letáku si p edstavíme speciální pravidlo pro derivování sloºené funkce (te funkci obsahující dal²í funkci). Po p e tení tohoto tetu byste m li být schopni: vysv tlit pojem

Více

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B

Oborové číslo Hodnocení - část A Hodnocení - část B Hodnocení - část A+B PŘIJÍMACÍ TEST Z INFORMATIKY A MATEMATIKY NAVAZUJÍCÍ MAGISTERSKÉ STUDIUM V OBORU APLIKOVANÁ INFORMATIKA FAKULTA INFORMATIKY A MANAGEMENTU UNIVERZITY HRADEC KRÁLOVÉ ČÁST A Oborové číslo Hodnocení - část

Více

Výzva k podání nabídek (zadávací dokumentace)

Výzva k podání nabídek (zadávací dokumentace) Výzva k podání nabídek (zadávací dokumentace) 1.Číslo zakázky 2.Název programu: 3.Registrační číslo projektu 4.Název projektu: 5.Název zakázky: Operační program Vzdělání pro konkurenceschopnost CZ.1.07/1.1.07/02.0129

Více

Odpov di na dotazy uchaze k ve ejné zakázce. 25/

Odpov di na dotazy uchaze k ve ejné zakázce. 25/ Odpov di na dotazy uchaze k ve ejné zakázce. 25/2016-53-56 Rámcová smlouva o vývoji a údržb aplika ního programového vybavení pro oblast D chodové dávky - II Jaká konkrétní dokumentace pro jednotlivé moduly

Více

Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace

Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace Franti²ek N mec (xnemec61) xnemec61@stud.t.vutbr.cz 1 Úvod Úkolem tohoto projektu bylo vytvo it aplikaci, která bude demonstrovat

Více

Knihovna QT4 a moºnosti jejího vyuºití

Knihovna QT4 a moºnosti jejího vyuºití Fakulta jaderná a fyzikáln inºenýrská ƒeské vysoké u ení technické v Praze 2.6.2010 Osnova 1 Úvod 2 Seznámení s Qt4 3 Prost edí QtCreator 4 Vyuºití v praxi Problém Aplikace pro ovládání realtime PCR za

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování V algoritmizaci a programování je důležitá schopnost analyzovat a myslet. Všeobecně jsou odrazovým můstkem pro řešení neobvyklých, ale i každodenních problémů. Naučí nás rozdělit

Více

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem.

Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem. Nadpis kapitoly Cílem kapitoly je seznámit studenta se strukturou programu a jeho překladem. Klíčové pojmy: Překladač, editor, compiler, linker. Úvod Abychom mohly využívat našich napsaných programů, musíme

Více

EXTRAKT z české technické normy

EXTRAKT z české technické normy EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. ICS 03.220.20, 35.240.60 Elektronický výběr mýtného Výměna ČSN EN informací mezi

Více

Mendelova zemědělská a lesnická univerzita v Brně Agronomická fakulta Ústav techniky a automobilové techniky

Mendelova zemědělská a lesnická univerzita v Brně Agronomická fakulta Ústav techniky a automobilové techniky Mendelova zemědělská a lesnická univerzita v Brně Agronomická fakulta Ústav techniky a automobilové techniky Měření fyzikálních veličin Bakalářská práce Vedoucí práce: Vypracoval: doc. Ing. Josef Filípek,

Více

Sazba zdrojových kód. Jakub Kadl ík 20. 03. 2014

Sazba zdrojových kód. Jakub Kadl ík 20. 03. 2014 Sazba zdrojových kód Jakub Kadl ík 20. 03. 2014 1 Obsah 1 Základní prost edí verbatim 3 2 Balí ek listings 3 3 Sazba kódu z externího souboru 5 4 Téma Solarized 5 4.1 Solarized light.............................

Více

Novinky verzí SKLADNÍK 4.24 a 4.25

Novinky verzí SKLADNÍK 4.24 a 4.25 Novinky verzí SKLADNÍK 4.24 a 4.25 Zakázky standardní přehled 1. Možnosti výběru 2. Zobrazení, funkce Zakázky přehled prací 1. Možnosti výběru 2. Mistři podle skupin 3. Tisk sumářů a skupin Zakázky ostatní

Více

Návod k použití aplikace MARKETINGOVÉ PRŮZKUMY.CZ

Návod k použití aplikace MARKETINGOVÉ PRŮZKUMY.CZ www.marketingovepruzkumy.cz Návod k použití aplikace MARKETINGOVÉ PRŮZKUMY.CZ 28.4.2011 Miloš Voborník Obsah 1. Uživatelská příručka... 1 1.1. Běžný uživatel... 1 1.1.1. Celkové rozvržení, úvodní strana...

Více

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE 2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE Studijní cíl Tento blok je věnován základní syntaxi příkazu SELECT, pojmům projekce a restrikce. Stručně zde budou představeny příkazy

Více

Rozšířená nastavení. Kapitola 4

Rozšířená nastavení. Kapitola 4 Kapitola 4 Rozšířená nastavení 4 Nástroje databáze Jak již bylo zmíněno, BCM používá jako úložiště veškerých informací databázi SQL, která běží na všech lokálních počítačích s BCM. Jeden z počítačů nebo

Více

Státnice - Rekurzivní a rekurzivn spo etné mnoºiny

Státnice - Rekurzivní a rekurzivn spo etné mnoºiny Kapitola 1 Státnice - Rekurzivní a rekurzivn spo etné mnoºiny 1.1 Rekurzivn spo etné mnoºiny Denice (Rekurzivní a rekurzivn spo etná mnoºina) Charakteristická funkce mnoºiny M ozna uje charakteristickou

Více

CASE nástroje. Jaroslav Žáček

CASE nástroje. Jaroslav Žáček CASE nástroje Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within

Více

WinCC V7.3. SIMATIC Logon. Siemens, s.r.o., Digital Factory 2015 Všechnapráva vyhrazena. Strana1 2015-05 Ladislav Plachý / RC-CZ DF SUP

WinCC V7.3. SIMATIC Logon. Siemens, s.r.o., Digital Factory 2015 Všechnapráva vyhrazena. Strana1 2015-05 Ladislav Plachý / RC-CZ DF SUP WinCC V7.3 SIMATIC Logon Strana1 2015-05 Ladislav Plachý / RC-CZ DF SUP Sou ást Siemens industrial security konceptu Ochrana proti neautorizovanému p ístupu s využitím Windows mechanism Pro WinCC to znamená

Více

Specifikace systému ESHOP

Specifikace systému ESHOP Nabídka: Specifikace systému ESHOP březen 2009 Obsah 1 Strana zákazníka 1 1.1 Nabídka produkt, strom kategorií..................... 1 1.2 Objednávka a ko²ík.............................. 1 1.3 Registrace

Více

Uºivatelská p íru ka k programu SlaFoR verze 1.0

Uºivatelská p íru ka k programu SlaFoR verze 1.0 1 Uºivatelská p íru ka k programu SlaFoR verze 1.0 Toto je manuál k programu SlaFoR 1.0 (Slab Forces & Reinforcement), který byl vytvo en v rámci bakalá ské práce na kated e betonových a zd ných konstrukcí

Více

Pokusné ověřování Hodina pohybu navíc. Často kladené otázky

Pokusné ověřování Hodina pohybu navíc. Často kladené otázky MINISTERSTVO ŠKOLSTVÍ, MLÁDEŽE A TĚLOVÝCHOVY ČESKÉ REPUBLIKY Karmelitská 7, 118 12 Praha 1 - Malá Strana Pokusné ověřování Hodina pohybu navíc Často kladené otázky Dotazy k celému PO: Dotaz: Co to přesně

Více

Charakteristika kurzu BE4

Charakteristika kurzu BE4 CZ.1.07/3.2.03/04.0040 - Partnerská síť Aktivní angličtina s online lektory strana 1 z 6 Charakteristika kurzu BE4 Aktualizace: 31. 3. 2015 Kurz vytvořil: Jazyková škola ATHENA s.r.o. Kurz ověřil: Jazyková

Více

PRAVIDLA soutěže COOP DOBRÉ RECEPTY Jarní probuzení

PRAVIDLA soutěže COOP DOBRÉ RECEPTY Jarní probuzení PRAVIDLA soutěže COOP DOBRÉ RECEPTY Jarní probuzení s konáním 1. 4. 2016 30. 6. 2016 v ČR (www.coopdobrerecepty.cz) 1. Organizátor soutěže a soutěžní období Organizátor soutěže, společnost CCV, s.r.o.,

Více

VYKAZOVÁNÍ VÝSLEDKŮ VÝZKUMU A VÝVOJE

VYKAZOVÁNÍ VÝSLEDKŮ VÝZKUMU A VÝVOJE VYKAZOVÁNÍ VÝSLEDKŮ VÝZKUMU A VÝVOJE I. Úvodní informace Vedení fakulty upozorňuje akademické pracovníky a doktorandy na následující skutečnosti: V souvislosti s probíhající reformou výzkumu a vývoje v

Více

Jak na KOTLÍKOVÉ DOTACE? JEDNODUCHÝ RÁDCE PRO ZÁKAZNÍKY

Jak na KOTLÍKOVÉ DOTACE? JEDNODUCHÝ RÁDCE PRO ZÁKAZNÍKY Jak na KOTLÍKOVÉ DOTACE? JEDNODUCHÝ RÁDCE PRO ZÁKAZNÍKY KOTLÍKOVÉ DOTACE pokračují! Máte doma starý kotel na uhlí, dřevo a jiná tuhá paliva? Pak jsou kotlíkové dotace určeny právě pro Vás! Pokud máte doma

Více

IP kamerový systém Catr - uºivatelský návod k obsluze

IP kamerový systém Catr - uºivatelský návod k obsluze IP kamerový systém Catr - uºivatelský návod k obsluze Obsah P ipoj se k nám! Úvod 3 P ístup do systému 3 Po íta s Windows 3 Prvotní instalace 3 Ovládání kamerového systému na po íta i 5 šivý náhled...................................................

Více

PŘIJÍMACÍ ŘÍZENÍ. Strana

PŘIJÍMACÍ ŘÍZENÍ. Strana PŘIJÍMACÍ ŘÍZENÍ Strana Vyhledávání textu - přidržte klávesu Ctrl, kurzor umístěte na příslušný řádek a klikněte levým tlačítkem myši. 1. Právní předpisy upravující přijímací řízení ke studiu ve střední

Více

Řízení kalibrací provozních měřicích přístrojů

Řízení kalibrací provozních měřicích přístrojů Řízení kalibrací provozních měřicích přístrojů Přesnost provozních přístrojů je velmi důležitá pro spolehlivý provoz výrobního závodu a udržení kvality výroby. Přesnost měřicích přístrojů narušuje posun

Více

Konzistence databáze v nekonzistentním světě

Konzistence databáze v nekonzistentním světě Konzistence databáze v nekonzistentním světě Radim Bača Katedra informatiky Fakulta elektrotechniky a informatiky VŠB Technická univerzita Ostrava ŠKOMAM 2012-1- 2/2/2012 Obsah Vysvětĺıme si, co je transakce

Více

ízení Tvorba kritéria 2. prosince 2014

ízení Tvorba kritéria 2. prosince 2014 ízení. prosince 014 Spousta lidí má pocit, ºe by m la n co ídit. A n kdy to bývá pravda. Kdyº uº nás my²lenky na ízení napadají, m li bychom si poloºit následující t i otázky: ídit? Obrovskou zku²eností

Více

Dotazovací jazyk SQL I

Dotazovací jazyk SQL I Dotazovací jazyk SQL I Historický vývoj I IBM - 70. léta - prototyp relačního DBMS - System R 80. léta - základ 2 komerčních DBMS: SQL/DS, DB2 SQL jako standard Standardizační instituce ANSI: American

Více

Uživatelská nápověda k systému factinfo.net

Uživatelská nápověda k systému factinfo.net Tento materiál vznikl v rámci projektu č. CZ.2.17/3.1.00/30225 s názvem FYZIKOU A CHEMIÍ K TECHNICE, který je spolufinancován z Evropského sociálního fondu, státního rozpočtu ČR a rozpočtu hlavního města

Více

ICT plán školy 2015/2016

ICT plán školy 2015/2016 Základní škola s rozšířeným vyučováním informatiky a výpočetní techniky ICT plán školy 2015/2016 1. Základní údaje o škole Název školy: Základní škola s rozšířeným vyučováním informatiky a výpočetní techniky

Více

Rovnice a nerovnice. Posloupnosti.

Rovnice a nerovnice. Posloupnosti. .. Veronika Sobotíková katedra matematiky, FEL ƒvut v Praze, http://math.feld.cvut.cz/ 30. srpna 2018.. 1/75 (v reálném oboru) Rovnicí resp. nerovnicí v reálném oboru rozumíme zápis L(x) P(x), kde zna

Více

The University of Plymouth

The University of Plymouth The University of Plymouth Jmenuji se Lukáš Widomski, je mi 19 let a tento rok jsem udělal maturitu na SPŠ EI Kratochvílova 7. Označil bych se jako průměrný, cílevědomý student, který vzal osud do svých

Více

AutoCAD Architecture 2008

AutoCAD Architecture 2008 AutoCAD Architecture 2008 AutoCAD Architecture 2008 (dále jen ACA2008) je nová verze (a nový název) známého a oblíbeného stavařského programového balíku Architectural Desktop (ADT). Je speciálně navržený

Více

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: e-mail: jan.skrbek@tul.cz tel.: 48 535 2442 Konzultace: úterý 14 20-15 50

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: e-mail: jan.skrbek@tul.cz tel.: 48 535 2442 Konzultace: úterý 14 20-15 50 Informační systémy 2 Data v počítači EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu Spojení: e-mail: jan.skrbek@tul.cz tel.: 48 535 2442 Konzultace: úterý 14 20-15 50 18.3.2014

Více

Transak ní zpracování I

Transak ní zpracování I Transak ní zpracování I Ing. Michal Valenta PhD. Katedra softwarového inºenýrství Fakulta informa ních technologií ƒeské vysoké u ení technické v Praze c Michal Valenta, 2010 Databázové systémy BI-DBS

Více

Národního registru u ivatel léka sky indikovaných substitu ních látek (papírové hlá enky)

Národního registru u ivatel léka sky indikovaných substitu ních látek (papírové hlá enky) PRAVIDLA A FORMULÁ E PRO ZAVÁD NÍ/RU ENÍ U IVATEL do Národního registru u ivatel léka sky indikovaných substitu ních látek (papírové hlá enky) 1 ZAVÁD NÍ NOVÝCH U IVATEL 1.1 Zpravodajské jednotky (Zdra

Více

ÚVOD DO GEOGRAFICKÝCH INFORMA NÍCH SYSTÉM

ÚVOD DO GEOGRAFICKÝCH INFORMA NÍCH SYSTÉM Úvod do GIS p ednáškové texty ÚVOD DO GEOGRAFICKÝCH INFORMA NÍCH SYSTÉM P ednáškové texty Auto i: Ing. Martin B ehovský, Ing. Karel Jedli ka Redigoval: Ing. Ji í Šíma, CSc. 5. IMPLEMENTACE A VYUŽÍVÁNÍ

Více

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE 1. Přehled možností programu 1.1. Hlavní okno Hlavní okno programu se skládá ze čtyř karet : Projekt, Zadání, Výsledky a Návrhový

Více

účetních informací státu při přenosu účetního záznamu,

účetních informací státu při přenosu účetního záznamu, Strana 6230 Sbírka zákonů č. 383 / 2009 Částka 124 383 VYHLÁŠKA ze dne 27. října 2009 o účetních záznamech v technické formě vybraných účetních jednotek a jejich předávání do centrálního systému účetních

Více

Programový komplet pro evidence provozu jídelny v. 2.55. modul Sklad. 2001 Sviták Bechyně Ladislav Sviták hotline: 608/253 642

Programový komplet pro evidence provozu jídelny v. 2.55. modul Sklad. 2001 Sviták Bechyně Ladislav Sviták hotline: 608/253 642 Programový komplet pro evidence provozu jídelny v. 2.55 modul Sklad 2001 Sviták Bechyně Ladislav Sviták hotline: 608/253 642 Obsah 1 Programový komplet pro evidenci provozu jídelny modul SKLAD...3 1.1

Více

CASE. Jaroslav Žáček

CASE. Jaroslav Žáček CASE Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Co znamená CASE? Definice dle SEI A CASE tool is a computer-based product aimed at supporting one or more software engineering activities

Více

Jazyk S Q L základy, příkazy pro práci s daty

Jazyk S Q L základy, příkazy pro práci s daty Jazyk S Q L základy, příkazy pro práci s daty Základní pojmy jazyk množina řetězců nad abecedou gramatika popisuje syntaxi výrazů jazyka pravidla, jak vytvářet platné řetězce jazyka. dotazovací jazyk je

Více

Unifikovaný modelovací jazyk UML

Unifikovaný modelovací jazyk UML Unifikovaný modelovací jazyk UML Karel Richta katedra počíta tačů FEL ČVUT Praha richta@fel fel.cvut.czcz Motto: Komunikačním m prostředkem informační komunity se postupem času stala angličtina. Chcete-li

Více

A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU

A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU A. PODÍL JEDNOTLIVÝCH DRUHŮ DOPRAVY NA DĚLBĚ PŘEPRAVNÍ PRÁCE A VLIV DÉLKY VYKONANÉ CESTY NA POUŽITÍ DOPRAVNÍHO PROSTŘEDKU Ing. Jiří Čarský, Ph.D. (Duben 2007) Komplexní přehled o podílu jednotlivých druhů

Více

2. Ur íme sudost/lichost funkce a pr se íky s osami. 6. Na záv r na rtneme graf vy²et ované funkce. 8x. x 2 +4

2. Ur íme sudost/lichost funkce a pr se íky s osami. 6. Na záv r na rtneme graf vy²et ované funkce. 8x. x 2 +4 Pr b h funkce V této jednotce si ukáºeme jak postupovat p i vy²et ování pr b hu funkce. P edpokládáme znalost po ítání derivací a limit, které jsou dob e popsány v p edchozích letácích tohoto bloku. P

Více

Věc: Poptávka oslovení vybraných dodavatelů k předání nabídek na dodávku softwaru a služeb pro produkty ORACLE

Věc: Poptávka oslovení vybraných dodavatelů k předání nabídek na dodávku softwaru a služeb pro produkty ORACLE SLEZSKÁ UNIVERZITA V OPAVĚ Obchodně podnikatelská fakulta v Karviné Univerzitní nám. 1934 733 40 Karviná Věc: Poptávka oslovení vybraných dodavatelů k předání nabídek na dodávku softwaru a služeb pro produkty

Více

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

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz UML a jeho použití v procesu vývoje Jaroslav Žáček jaroslav.zacek@osu.cz Různé pohledy na modelování Různé pohledy na modelování Unified Modeling Language UML není metodikou ani programovacím jazykem,

Více

Statistika pro geografy. Rozd lení etností DEPARTMENT OF GEOGRAPHY

Statistika pro geografy. Rozd lení etností DEPARTMENT OF GEOGRAPHY Statistika pro geografy Rozd lení etností DEPARTMENT OF GEOGRAPHY Faculty of Science Palacký University Olomouc t. 17. listopadu 1192/12, 771 46 Olomouc Pojmy etnost = po et prvk se stejnou hodnotou statistického

Více

Prezentace. Ing. Petr V elák 6. b ezna 2009

Prezentace. Ing. Petr V elák 6. b ezna 2009 Prezentace Ing. Petr V elák 6. b ezna 2009 1 OBSAH OBSAH Obsah 1 Úvodní slovo 3 2 P íprava prezentace 4 2.1 Jak prezentace ned lat........................ 4 2.1.1 Kontrast písma a pozadí...................

Více

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

29 Evidence smluv. Popis modulu. Záložka Evidence smluv 29 Evidence smluv Uživatelský modul Evidence smluv slouží ke správě a evidenci smluv organizace s možností připojení vlastní smlouvy v elektronické podobě včetně přidělování závazků ze smluv jednotlivým

Více

Reálná ísla a posloupnosti Jan Malý

Reálná ísla a posloupnosti Jan Malý Reálná ísla a posloupnosti Jan Malý Obsah 1. Reálná ísla 1 2. Posloupnosti 2 3. Hlub²í v ty o itách 4 1. Reálná ísla 1.1. Úmluva (T leso). Pod pojmem t leso budeme v tomto textu rozum t pouze komutativní

Více

Dne 12. 7. 2010 obdržel zadavatel tyto dotazy týkající se zadávací dokumentace:

Dne 12. 7. 2010 obdržel zadavatel tyto dotazy týkající se zadávací dokumentace: Dne 12. 7. 2010 obdržel zadavatel tyto dotazy týkající se zadávací dokumentace: 1. na str. 3 požadujete: Volání a SMS mezi zaměstnanci zadavatele zdarma bez paušálního poplatku za tuto službu. Tento požadavek

Více

Jevy, nezávislost, Bayesova v ta

Jevy, nezávislost, Bayesova v ta Jevy, nezávislost, Bayesova v ta 17. b ezna 2015 Instrukce: Projd te si v²echny p íklady. Kaºdý p íklad se snaºte pochopit. Pak vymyslete a vy- e²te p íklad podobný. Tím se ujistíte, ºe p íkladu rozumíte.

Více

INFORMATIKA pro LÁZEŇSTVÍ. Ing. Petr Janík

INFORMATIKA pro LÁZEŇSTVÍ. Ing. Petr Janík ULGAT/L0015 přednáška č.3 1 1 janik@vosahs.cz konzultační hodiny: středa od 9:45-11:15 (předem napsat email o konkrétním problému, který chcete konzultovat) 24. března 2010 Obsah přednášky 1 Mefisto -

Více

Specialista pro vytvá řenívztahů Specialist for Creating Relations

Specialista pro vytvá řenívztahů Specialist for Creating Relations Specialista pro vytvá řenívztahů Specialist for Creating Relations Roman KOZEL If universities want to succeed on the market, they have to deal with higher assertivity their graduates. They need a specialist,

Více

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id)) Vzorové příklady SQL Tabulka: Kniha CREATE TABLE kniha název VARCHAR(50, PRIMARY KEY (id Tabulka: Autoři CREATE TABLE autoři jméno VARCHAR(10, příjmení VARCHAR(20, titul VARCHAR(7, prostřední VARCHAR(10,

Více