Nástroje pro vývoj aplikací a jejich vazba na CASE

Transkript

Nástroje pro vývoj aplikací a jejich vazba na CASE
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Nástroje pro vývoj aplikací a jejich
vazba na CASE
LS 2008/2009
Jan Hnízdil
Pavlína Lukášová
Tomáš Porazil
Ondřej Svoboda
Tomáš Weigel
i / iii
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obsah
Úvod ........................................................................................................................................... 1
1
CASE .................................................................................................................................. 2
2
Konfigurační management .................................................................................................. 3
3
4
2.1
Historie konfiguračního managementu ................................................................... 3
2.2
Konfigurační management ve vztahu ke CASE ........................................................ 3
2.2.1
Úložiště (repository) ............................................................................................ 4
2.2.2
Pracovní prostor (workspace) ............................................................................ 5
2.3
Software Configuration Management ...................................................................... 5
2.4
IBM Rational ClearCase ............................................................................................. 6
2.5
Telelogic Tau UML Suite ............................................................................................ 7
2.6
Unicorn CASE & Development Tools ........................................................................ 8
2.7
Visible Razor ............................................................................................................... 8
2.8
Intasoft AllChange ...................................................................................................... 8
2.9
Adele Project .............................................................................................................. 9
Refaktoring ....................................................................................................................... 10
3.1
Ukázkový vzor .......................................................................................................... 10
3.2
Nástroje pro refaktorování...................................................................................... 11
3.2.1
Eclipse Java Development Toolkit ..................................................................... 11
3.2.2
ReSharper .......................................................................................................... 13
3.2.3
RefactorIT – Java Refactoring Tool.................................................................. 15
Ladicí nástroje ................................................................................................................... 16
4.1
5
SoftICE ....................................................................................................................... 16
Generátory kódu ................................................................................................................ 18
5.1
Viewpoints ................................................................................................................ 19
5.1.1
Klíčové vlastnosti ............................................................................................... 20
5.1.2
Systémové požadavky ........................................................................................ 20
5.1.3
Licence ............................................................................................................... 20
5.1.4
Verze................................................................................................................... 20
5.2
CodeSmith ................................................................................................................. 21
5.2.1
Klíčové vlastnosti ............................................................................................... 21
5.2.2
Systémové požadavky ........................................................................................ 21
5.2.3
Licence ............................................................................................................... 21
ii / iii
Nástroje pro vývoj aplikací a jejich vazba na CASE
5.2.4
5.3
6
Verze................................................................................................................... 21
Altova MapForce ...................................................................................................... 22
5.3.1
Klíčové vlastnosti ............................................................................................... 23
5.3.2
Systémové požadavky ........................................................................................ 23
5.3.3
Licence ............................................................................................................... 23
5.3.4
Verze................................................................................................................... 23
MySQL z pohledu CASE a IDE ....................................................................................... 25
6.1
MySQL Databáze....................................................................................................... 25
6.2
Toad for MySQL ........................................................................................................ 25
6.2.1
Návrh databáze ................................................................................................. 26
6.2.2
Práce s daty ........................................................................................................ 26
6.2.3
Vytváření SQL dotazů ........................................................................................ 27
6.2.4
Správa databáze ................................................................................................ 28
6.2.5
Poskytování výpisů ............................................................................................ 29
6.3
7
LS 2008/2009
MySQL Workbench .................................................................................................. 29
6.3.1
EER diagram ...................................................................................................... 30
6.3.2
Možnosti skriptování ......................................................................................... 31
6.3.3
Rozdíly OSS a SE ................................................................................................ 31
SaaS CASE ....................................................................................................................... 32
7.1
Úvod k SaaS............................................................................................................... 32
7.1.1
Výhody ................................................................................................................ 32
7.1.2
Nevýhody ............................................................................................................ 33
7.1.3
Možnosti využívání ............................................................................................ 33
7.2
Příklady software ..................................................................................................... 33
7.2.1
Web sequence diagrams .................................................................................... 34
7.2.2
gModeler ............................................................................................................ 35
7.2.3
Project Draw 0.7.9 ............................................................................................. 35
7.2.4
Flowchart.com beta 2.1 ..................................................................................... 36
7.2.5
Gliffy Online........................................................................................................ 37
7.3
Shrnutí ...................................................................................................................... 38
Závěr......................................................................................................................................... 40
Literatura .................................................................................................................................. 41
Seznam obrázků ....................................................................................................................... 44
iii / iii
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Úvod
Cílem této práce je poskytnout čtenářům informace ohledně nástrojů pro vývoj aplikací a jejich vazby
na CASE. Je nutné poznamenat, že tato semestrální práce nestojí samostatně, ale navazuje na množství předchozích dokumentů. V nich byl největší důraz především kladen na vývojová prostředí, jakožto nejčastěji užívané CASE nástroje v oblasti vývoje software. Samotná definice CASE však, jak bude
vysvětleno dále v této práci, zahrnuje mnohem širší množinu podpůrných produktů. Z toho důvodu
jsme se oproti předchozím dokumentům snažili zvolit odlišný přístup. Rádi bychom čtenáře seznámili
s několika typickými kategoriemi CASE nástrojů podporujících vývoj aplikací. U každé z kategorií provedeme nejprve stručnou definici dané oblasti a poté představíme některé z nástrojů, do těchto oblastí spadajících.
V závěru práce, na kterou se snažíme navázat, byl dále stanoven zajímavý podnět pro zpracování
v budoucích dokumentech. Ten směřoval k tomu, zda je možné pro vývoj aplikací používat SaaS nástroje a v jakém stavu je jejich aktuální nabídka. Mimo jiné i proto, že se jedná se o velice aktuální
téma, jsme se rozhodli pro jeho zpracování. Dalším cílem této práce je tak i odpověď na tuto otázku.
Práce by měla přinést stručné uvedení do této oblasti, včetně nastínění výhod a nevýhod plynoucích
z využití tohoto přístupu, a dále zmapování nabídky dostupných nástrojů.
1 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
1 CASE
V teoretickém základu je nutno nejprve definovat termín CASE, jedná se o zkratku slov computeraided software engineering. Obsah této zkratky vystihuje nejlépe definice: „CASE is the use of computer-based support in the software development process“ [DefCase].
V řadě případů je možné se setkat s interpretací této zkratky jako computer-aided system engineering. Toto je díky přesahu oblasti CASE a zároveň jejího rozšíření působnosti nejen na vývoj software.
Umožňuje nám to považovat CASE za prostředek pro návrh informačních systému. Pro účely naší
práce se budeme věnovat oblasti, která je vystižena pomocí zkratky první.
Dle definice se tedy jedná o vývoj softwaru za podpory počítačových prostředků. Využívá se zejména
při práci na větších a komplexních projektech, které se zabývají vývojem softwaru. Napomáhá k řízení
a organizování softwarových komponent a lidí. CASE je využíváno širokým spektrem IT oborů, jako
jsou například návrháři, programátoři, testeři, projektanti, analytici a manažeři. Díky grafickému znázorňování pomáhá těmto lidem lépe pochopit a zpracovat náročné procesy a struktury. CASE napomáhá také efektivnímu vedení práce na projektu díky obsaženým funkcím, jde například o úložiště,
které je spojeno s dokumenty a programovými knihovnami obsahující podnikatelské plány, konstrukční požadavky, specifikace návrhu, detailní specifikace kódu, testovací případy a plány služeb a
marketingu [WhatIsCase].
Podle [WikiCase+ jsou klíčovými myšlenkami CASE:
 Poskytování počítačové podpory pomocí softwaru (pro vývoj aplik. a údržbu jejích procesů)

Inženýrský přístup k vývoji a údržbě softwaru
Mezi typické nástroje CASE patří *WikiCase]:
 Konfigurační management – Jedná se o oblast řízení, která se zaměřuje na zavedení a udržování konzistence systému, jeho funkčních a fyzikálních vlastností. Přitom se snaží respektovat požadavky, návrhy a provozní informace v celém cyklu systému. Může být definován
jako řízení bezpečnostních prvků a to prostřednictvím kontroly provedených změn hardware, software, firmware, dokumentace a testování v průběhu životního cyklu informačního systému.

Datové modelování – Jde o proces tvorby datového modelu pomocí formálního popisu,
který využívající techniky datového modelování.

Transformace modelů – Transformace modelů je ústřední funkce oblasti model driven engineering (MDE). Bere jako vstup model vyhovující danému metamodelu a jako výstup produkuje jiný model vyhovující danému metamodelu.

Refaktoring – Refaktoring je proces měnící počítačový program a jeho vnitřní strukturu, to
vše bez změny funkcí a chování programu. Za cíl má zlepšit jeho vlastnosti, jako je čitelnost
kódu, údržba a možnosti rozšíření.

Generování zdrojového kódu – Je to proces tvorby zdrojového kódu pomocí formálního
popisu daného modelu.

UML – Jde o standardizovanou řadu grafických technik, které pomocí dané notace vytvářejí
abstraktní modely specifických systémů.
2 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
2 Konfigurační management
Konfigurační management je oblast řízení změn, která se zaměřuje na udržení konzistence systému
nebo produktu a jeho atributů napříč celým jeho životním cyklem [WikiCM]. Konfigurační management může být rovněž definován jako řízení bezpečnostních faktorů, a to prostřednictvím řízení změn
hardwaru, softwaru, firmwaru, dokumentace či testování napříč životním cyklem informačního systému.
V souvislosti s CASE nástroji se jedná o nutnost zamezení zmatků při práci na jednom objektu (modelu) v rámci vývoje ve více verzích a/nebo ve více lidech. Bez konfiguračního managementu je možné
tento problém řešit následujícími způsoby:



separátní kopie
o problém: dvojí údržba
o každý má svou kopii, kterou nesdílí s ostatními
jedna sdílená kopie
o problém: konfliktní změny
o kopie putuje mezi vývojáři, pracuje na ní vždy jen jeden
soukromé kopie + sdílený originál
o problém: překrývání změn
o originál je uložen ve sdíleném adresáři, pracuje se na lokálních kopiích, po úpravách
se kopie překopíruje do sdíleného úložiště
Konfigurační management není však jen řízení změn, ale také proces identifikování a definování prvků systému, zaznamenávání a oznamování stavu prvků a změn, a ověřování úplnosti a správnosti
prvků. Prvek systému, který je potřeba řídit, nazýváme prvkem konfigurace. V případě CASE nástrojů
to mohou být prvky jako dokument, model, knihovna, skript, spustitelný soubor apod.
CASE nástroje podporující konfigurační management zajišťují, že se ví o existenci prvku konfigurace,
jeho vlastníkovi, změnách atd.
2.1
Historie konfiguračního managementu
Konfigurační management byl poprvé založen Ministerstvem obrany Spojených států v roce 1950
jako disciplína technického managementu [WikiCM]. Tento koncept byl pak široce přijat a využíván
četnými technickými oblastmi, jako jsou např. system engineering, integrovaná logistická podpora,
Capability Maturity Model Integration (CMMI), ISO 9000, Prince2, CobiT, ITIL, řízení životního cyklu
produktu a aplikace.
Mnoho z těchto přístupů definovalo konfigurační management poněkud odlišně od jeho původní
vize, která je charakteristická holistickým přístupem k technologickému řízení.
2.2
Konfigurační management ve vztahu ke CASE
Zatímco ještě nedávno byly CASE nástroje hodnoceny především z pohledu cílových prostředí podporovaných programovacích jazyků nebo možnosti generování dokumentace, dnes se pozornost obrací
k vlastnostem, které usnadňují týmový vývoj a sdílení projektových informací v rámci skupiny.
3 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Pokud na projektu pracuje více lidí zároveň, je nasnadě, že tito lidé budou sdílet jednotlivé komponenty. Zejména jedná-li se o rozsáhlejší projekt, bude dříve nebo později nutné se na realitu podívat
z různých úhlů pohledu. To v praxi znamená, že je potřeba, aby bylo možné rozvíjet komponentu
dvěma směry – horizontálně i vertikálně. Diagram x.1 potom má možnost mít např. vertikální verzi
x.2, ale také horizontální verzi x.1.1.
Verzovat lze současně jednotlivé prvky (komponenty) i celé konfigurace v rámci tzv. úplného verzování. Informace o verzi získáme přečtením identifikátoru verze. Požadavkem na identifikátor je především jeho jedinečnost. V praxi se setkáváme s nejčastějšími třemi typy identifikátorů:



"major.minor+build" schéma – např. 0.8.0.28
kódové jméno – např. Mozilla Firefox 3.0.9
"marketingový identifikátor" – Internet Explorer 7
Identifikátor verze patří mezi metadata. Dalšími metadaty, která uchováváme pro informaci o každé
verzi, jsou [Brada05b]:




datum/čas vytvoření
autor
stav prvku/konfigurace
předchůdce/předchůdci
2.2.1 Úložiště (repository)
Všechny prvky konfigurace jsou uloženy ve sdíleném datovém prostoru, tzv. úložišti (repository).
V repository se tedy prakticky nachází všechny složky projektu, mezi které typicky patří:






zdrojové kódy
přeložené knihovny a kódy třetích stran
konfigurační a datové soubory
skripty pro kompilování verzí, testování a instalaci
dokumentace
modely
S úložištěm je možné pracovat několika způsoby. Tyto způsoby zahrnují jak inicializaci (tedy vytvoření
úložiště), check out (kopírování prvku do lokálního pracovního prostoru), check in (nahrání změněných prvků do centrálního úložiště), tagging (označení konfigurace) nebo zjišťování stavu (sledování
změn úložiště vs. lokální pracovní prostor).
Přístup do sdíleného úložiště může být řešen také několika způsoby. Prvním z nich je přístup readonly (pouze čtení) pro všechny. Není zapotřebí uvádět, že tento přístup je pro práci na projektech
značně nepraktický. Proto se častěji setkáme s variantou tzv. pesimistického přístupu, kdy se vytváří
kopie pro čtení a zápis prvku jen pro pověřené osoby. Poslední variantou je optimistický přístup, kdy
jsou vytvářeny kopie pro čtení a zápis pro kohokoli a zároveň s tím je spojena nutnost řešení konfliktů.
4 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
2.2.2 Pracovní prostor (workspace)
Protipólem sdíleného datového úložiště (repository) je lokální pracovní prostor (workspace), ve kterém je jednotlivci umožněno provádět změny prvků konfigurace, přičemž není ovlivněna jejich podoba, která je uložené v centrálním úložišti a která je tudíž využívána ostatními vývojáři.
Nástroje pro verzování ve své podstatě rozeznáváme tří druhů, a to pro [Brada05b]:

Ruční verzování – pro ruční verzování je potřeba stanovit dohody a konvence o značení verzí
v názvech (dokument, soubor, adresář…)

Správa verzí souborů – v převážné většině se jedná o extenzionální verzování modulů, kdy
dochází k ukládání všech verzí v zapouzdřené formě (např. CVS, Subversion…)

Správa verzí integrovaná do CASE – obvykle se jedná o kombinaci extenzionálního
i intenzionálního verzování. V těchto nástrojích je implementována automatická podpora pro
check-in a check-out prvků z úložiště do nástrojů. Právě touto možností správy verzí se budeme zabývat v textu dále.
2.3 Software Configuration Management
V rámci Software Configuration Managementu (dále jen SCM) rozlišujeme několik základních pojmů:

softwarová konfigurace – což je ve své podstatě souhrn prvků konfigurace, který reprezentuje určitou podobu daného SW systému, přičemž platí, že v konfiguraci musí být zahrnuto vše,
co je potřebné k jednoznačně opakovatelnému vytvoření dané verze systému (to zpravidla
zahrnuje také překladače, skripty pro kompilaci, inicializační data, dokumentace atd.).

konzistentní konfigurace – je taková softwarová konfigurace, jejíž prvky nejsou navzájem
v rozporu.
SCM má v rámci vývoje informačního systému několik základních úloh:

určení a správa konfigurace (configuration identification and control)
o
o
o
o

zjišťování stavu systému (status accounting)
o
o
o
o

identifikuje prvky systému a přiřazuje jim zodpovědnost za správu
identifikuje jednotlivé verze prvků
spravuje uvolňování (release) produktů
řídí změny produktu během jeho vývoje
udržování informovanosti o změnách a stavu prvků
zaznamenávání stavu jednotlivých prvků a požadavků na změny
poskytování informací o stavech prvků
poskytování statistik a analýz
správa sestavení (build) a koordinace prací (release management)
o
o
o
definice postupů a nástrojů pro tvorbu spustitelné verze produktu
ověřování úplnosti, konzistence a správnosti produktu
koordinování spolupráce během zpracovávání, zveřejňování i sestavování změn
5 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
2.4 IBM Rational ClearCase
IBM Rational ClearCase byl původně vyvíjen pod názvem Rational ClearCase společností Rational
Software, která byla v roce 2003 [WikiRat] koupena společností IBM.
Software byl vyvíjen jako většina podobných nástrojů za účelem usnadnění spolupráce v týmu, ve
kterých se členové mnohdy nacházejí v různých městech či dokonce státech. Komunikace členů týmu
na dálku je velmi nákladná a neefektivní, a proto bylo zapotřebí vyvinout takové nástroje, které
umožňují spolupracovat na jednom projektu bez nutnosti nákladných telefonických hovorů nebo
emailové komunikace.
Rational ClearCase nabízí vzdálený přístup pomocí na platformě nezávislého klienta. Tento klient
v sobě společně s podporou konfiguračního managementu spojuje prvky nástroje pro řízení změn
(převzaty z IBM Rational ClearQuest [ClearCase]).
Rational ClearCase podporuje heterogenní prostředí a možnost vývoje na různých platformách. To
v praxi znamená, že vývoj může probíhat na kterékoli platformě (v kterémkoli IDE), zatímco na straně
serveru je možné vybrat zcela odlišnou platformu pro uchovávání samotného softwaru. Zároveň je
umožněno k serveru (a tedy i sdílenému úložišti) přistupovat pomocí např. desktopového klienta,
klienta pro vzdálený nebo webový přístup.
Mezi IDE, které podporuje IBM Rational ClearCase, je samozřejmě IBM Rational Application Developer for WebSphere®, ale také opensourcový framework Eclipse či Microsoft Visual Studio, což dává
vývojářům do ruky opravdu silný nástroj.
IBM Rational ClearCase spravuje konfiguraci následujících artefaktů:





zdrojového kódu,
knihoven,
dokumentace,
webových artefaktů,
adresářů a podadresářů.
Každý vývojář může sledovat verzi, větev i soubor, na kterém aktuálně pracuje. Užitečnou pomůckou
je i správa smazaných verzí: vývojář může smazat předchozí verze nebo vytvořit tzv. smazanou vývojovou větev.
IBM Rational ClearCase nabízí dva způsoby přístupu k pracovnímu prostoru:

dynamický pohled – tento pohled poskytuje okamžitý přístup k rozsáhlému pracovnímu prostoru bez nároků na vytváření lokální kopie pracovního prostoru, a dává tím tak vývojáři
transparentní přístup k elementům přímo na síti.

„snapshot“ pohled – poskytují uživateli kopii pracovního prostoru, která umožňuje pracovat
na lokálních kopiích souborů, a to i v režimu offline. O promítnutí změn do centrálního úložiště se stará IBM Rational ClearCase automaticky.
Přístup do úložiště a autentizace uživatel je řešena buď pomocí autentizace operačního systému,
anebo pomocí protokolu LDAP.
6 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
2.5 Telelogic Tau UML Suite
Tento nástroj byl od počátku vyvíjen softwarovou společností Telelogic AB sídlící ve městě Malmö ve
Švédsku. Tato společnost byla založena v roce 1983 jako odnož tehdejší švédské telekomunikační
společnosti. V roce 2007 oznámila společnost IBM, že se chystá k akvizici společnosti Telelogic, a provedla tak v březnu 2008 [Telelogic].
Telelogic Tau UML Suite je nástroj, který podporuje následující etapy životního cyklu informačního
systému:



objektová analýza IS
návrh IS
implementace IS,
přičemž využívá modelovacího jazyka UML [Komix]. Kromě podpory UML však nástroj poskytuje také
notaci vycházející z metody OMT (Object Modelling Technique).
Nástroj Telelogic Tau UML Suite byl ve svých počátcích vyvíjen jako ObjectTeam (Cayenne Software)
nebo COOL:Jex (Sterling Software). V současné době je vyvíjen švédskou společností Telelogic.
Telelogic Tau UML Suite disponuje centrálním úložištěm, které slouží jako úložiště všech evidovaných
informací. Samotné úložiště je vystavěno nad relační databází, což přináší výhody v možnosti využití
typických výhod souvisejících s jeho používáním, jako je automatické zálohování, možnost obnovy
databáze apod.
Jak již bylo uvedeno výše, Telelogic Tau UML Suite podporuje několik etap životního cyklu informačního systému, a tedy i modelů k jeho vývoji potřebných. Například u analytických modelů dochází ke
zpodrobňování a doplňování v rámci etap návrhu a implementace, a proto je nutné zajistit podporu
právě v každé jednotlivé fázi životního cyklu. V jednotlivých fázích projektu jsou typicky používány
odlišné nástroje a prostředky, ve kterých jsou uplatňována jiná formální pravidla pro kontrolu syntaxe a sémantiky vytvářených diagramů apod.
Změny prováděné ve fázích návrhu nebo implementace je možné promítat zpětně do všech fází
předchozích. Tím, že je umožněno zpětné promítání provedených změn, je možné dosáhnout vzniku
konzistentního systému, jehož kód je možné automaticky generovat pro cílová prostředí.
Výhoda tohoto přístupu spočívá v tom, že analytik zabývající se věcnou oblastí není nucen starat se
o implementační detaily, za které je zodpovědný programátor či návrhář.
Máme-li CASE nástroj, který podporuje práci více uživatelů najednou, čelíme problému, jak ošetřit
dílčí změny v jednotlivých modelech prováděných jednotlivými uživateli. Zde je právě situace, ve které je velmi ocenitelná existence a podpora konfiguračního managementu ze strany CASE nástroje.
Nástroj Tau UML Suite používá pojem konfigurace jako označení množiny fází projektu, oblastí systému a vytvářených modelů. Pro všechny objekty, pod kterými můžeme rozumět samotnou konfiguraci nebo i samotný diagram, je možné vytvářet verze, které můžeme později porovnávat mezi sebou
či slučovat.
7 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
2.6 Unicorn CASE & Development Tools
Společnost Unicorn je česká společnost založená v roce 1990 [Unicornb] a v současné době působí
v oblasti informačních systémů a komunikačních technologií v České republice a na trzích Evropské
unie.
V rámci produktů Unicorn CASE & Development Tools poskytuje firma Unicorn nástroje pro analýzu,
design i implementaci IS, nad kterými jako zastřešující funkcionalitu zajišťuje také podporu konfiguračního managementu.
Do nástrojů konfiguračního managementu podporovaných Unicorn CASE & Development Tools patří
nástroje zajišťující správu verzí, správu konfigurací a uvolněných verzí, správu pracovních prostorů
vývojářů a správu kompilace. Tyto funkcionality jsou poskytovány za cílem zajištění bezpečného a
robustního prostředí pro týmovou práci.
2.7 Visible Razor
Tento nástroj byl původně vyvíjen společností Tower Concepts, Inc., od roku 1999 [Visible] je již však
vlastněn společností Visible Systems Corporation.
Na rozdíl od některých konkurenčních nástrojů, poskytuje Visible Razor jedno konzistentní uživatelské rozhraní pro přístup ke všem funkcím napříč všemi platformami. To může být chápáno buď jako
výhoda, nebo také jako nevýhoda. Skutečností však zůstává, že Visible Razor patří do kategorie levnějších nástrojů.
V současné době se produkt Visible Razor snaží podporovat některá IDE, která jsou na trhu zastoupena v největším počtu. Mezi ně patří: IBM Visual Age, Microsoft Visual Studio, Microsoft .NET, Rational
Rose a PowerBuilder.
Mezi funkcionalitami, které podporuje Visible Razor pro konfigurační management, patří tradičně
check-in a check-out souborů pro úpravy. Jako zvláštní rysy bychom mohli jmenovat „drag-n-drop“ a
grafické slučování různých verzí.
Visible Razor poskytuje pro přístup do centrálního úložiště také webové rozhraní. Toto webové rozhraní nabízí autorizaci uživatel a rovněž i customizace je přípustná.
Správa verzí v nástroji Visible Razor nemusí být aplikována pouze na zdrojový kód, ale také mohou
být verzovány dokumenty (např. projektové plány), návrhy (jak textové, tak v grafické podobě), testovací skripty i dokumentace.
2.8 Intasoft AllChange
Intasoft AllChange byl od počátku vyvíjen v rukou společnosti Intasoft, ve které dodnes zůstal. Jeho
předchůdcem ze stejné společnosti byl SMS [Intasoftc] – nástroj pro konfigurační management.
Z výše uvedeného vyplývá, že společnost Intasoft stála u zrodu konfiguračního managementu, který
se dnes stal základním požadavkem nejen pro vývoj aplikací.
Intasoft AllChange poskytuje správu verzí pro dokumenty, software i hardware. Všechny tyto složky
nazývá „konfiguračními položkami“. Produkt AllChange v sobě integruje 2 klíčové koncepty:


Poskytnout integrované řešení pro všechny aspekty konfiguračního managementu
Poskytnout flexibilní řešení, které doplní současné pracovní postupy
8 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 1 – Intasoft AllChange, zdroj: [Intasoftb]
2.9 Adele Project
Na závěr bych uvedla základní informace o projektu, který probíhal v 80. letech na francouzské univerzitě v Grenoble. Jednalo se o projekt Adele zabývající se Software Configuration Managementem.
Výsledkem tohoto projektu bylo navržení konfiguračního nástroje Adele, v rámci něhož byly prozkoumány téměř všechny domény SCM a samotný nástroj Adele byl distribuován do několika různých
odvětví [ISCAS].
Adele tým se později zaměřil spíše na obecnější úroveň, a nezabýval se proto jenom nástrojem pro
konfigurační management, ale rovněž pro vývoj, provoz a údržbu informačního systému.
Datový model produktu Adele je objektově orientovaný. Objektem v této souvislosti rozumíme jak
soubor, tak aktivitu nebo funkci, nebo dokonce i jednoduchá data jako jsou textové řetězce. Samotná
správa verzí je implementována na bázi konceptu vývojových větví. Modely v takovéto vývojové větvi
jsou rozvinutím souboru a jeho atributů. Jedná se o sekvenci revizí, kde každá revize obsahuje aktuální obraz objektu.
Kolekce objektů je konečná a konzistentní (tj. je možné z ní vytvořit spustitelnou verzi) s ohledem na
strukturu informačního systému definovanou grafem závislostí a vybranými pravidly. K tomu, aby byl
systém konzistentní, musí splňovat alespoň následující pravidla:



Pro jednu rodinu je dovoleno pouze jedno rozhraní
Uzly musí splňovat všeobecně platná omezení
Uzly musí splňovat omezení daná všemi předky uzlu
9 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
3 Refaktoring
Termín „refaktoring“ zavedl Martin Fowler v publikaci Refactoring: Improving the Design of Existing
Code. Jeho význam je patrný již z názvu knihy a jde tedy o takové změny ve zdrojovém kódu programu, které nemění jeho funkčnost, ale jeho vnitřní strukturu tak, aby byl lépe čitelný a udržovatelný
pro programátory. Změny prováděné v rámci refaktoringu také pomáhají odstraňovat duplicity
v kódu.
Kent Beck pak pojem „refaktorování“ vysvětluje na metafoře dvou klobouků. Proces programování
rozděluje do dvou stavů, a to sice [Fowler03]:


První klobouk – do aplikace přidáváme novou funkcionalitu. Pokud ho máme na hlavě, nesmíme měnit stávající kód, pouze přidávat další funkce. Práci v tomto klobouku lze sledovat a
kontrolovat vytvářením nových testů a jejich prováděním.
Druhý klobouk – refaktorování. Žádné nové schopnosti nepřidáváme, pouze se mění struktura kódu. Nepřidávají se ani testy. Tuto podmínku můžeme porušit, pouze pokud některý
z testů chybí. Změny v testech se provádí pouze v nejnutnějších případech, např. při změně
rozhraní objektu.
Mezi základní postupy v refaktoringu patří například [Refaktor]:





Přejmenování metod (funkcí) nebo tříd
Přesouvání metod (funkcí)
Extrahování části zdrojového kódu jako samostatné metody (funkce)
Extrahování výrazu jako lokální proměnné
Zjednodušení podmíněných výrazů
Refaktorování není omezené na určitý programovací jazyk, lze jej stejně dobře využít jak v rámci objektově orientovaného programovacího jazyka, tak například u značkovacího jazyka HTML či databáze. Refaktorování jako takové lze do určité míry automatizovat použitím různých podpůrných nástrojů, ať již stojících samostatně, či integrovaných ve vývojových prostředích. Jako nejjednodušší příklad
automatizované úpravy kódu můžeme uvést například přejmenování metody. Pokročilá vývojová
prostředí dokážou zareagovat na takovou změnu, naleznou všechna volání této metody i v ostatních
zdrojových souborech a nahradí její název i zde.
Automatizace úloh spojených s refaktorováním je klíčová. Minimalizuje totiž riziko zanesení chyby do
programu, což je častý problém při ruční změně struktury kódu.
3.1 Ukázkový vzor
Jako ukázku jednoho z vzorů pro refaktoring jsem vybral situaci, kdy je třeba oddělit funkcionalitu
jedné třídy do dvou čí více samostatných tříd. V příkladě je uvedena třída Person, která obsahuje
atributy vhodné spíše pro samostatnou třídu. Je tedy vhodné vytvořit novou třídu Telephone Number, která zapouzdří tyto atributy a poskytne k nim veřejnou přístupovou metodu.
10 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 2 – Ukázka vzoru pro refaktoring – rozdělení funkcionality do vice tříd, zdroj: [ExtractClass]
Vyčerpávající seznam vzorů pro refaktorování včetně ukázek je k dispozici na internetové stránce
http://www.refactoring.com/catalog/.
3.2 Nástroje pro refaktorování
Nástrojů pro refaktorování existuje nepřeberné množství. Téměř vždy jsou takové nástroje
a podpůrné prostředky obsaženy již ve vývojovém prostředí, často se pak setkáváme s různými zásuvnými moduly a existuje i řada samostatně stojících nástrojů. Zde je uveden stručný seznam několika nástrojů podporujících refaktoring v závislosti na programovacím jazyce:









IntelliJ IDEA (pro Javu)
Eclipse's Java Development Toolkit (JDT)
NetBeans (pro Javu)
CodeGear Delphi
Bicycle Repair Man (pro Python)
Visual Studio 2008 (pro .NET)
ReSharper (rozšíření pro Visual Studio)
Refactor Pro (rozšíření pro Visual Studio)
Visual Assist (rozšíření pro Visual Studio s podporou pro VB, VB.NET. C# and C++)
3.2.1 Eclipse Java Development Toolkit
Společnost
Licence
Typ
Programovací jazyky
Webové stránky
The Eclipse Foundation
Eclipse Public License – zdarma
Vývojové prostředí
Java
http://www.eclipse.org/
Platforma Eclipse patří mezi nejoblíbenější vývojová prostředí. Tvůrcem Eclipse je společnost IBM,
která jej později uvolnila pod OpenSource licencí. Je to robustní nástroj vhodný pro vývoj softwaru
jakéhokoliv rozsahu. Mezi jeho základní vlastnosti patří IntelliSense, refaktoring, integrovaný prohlížeč CVS, integrace s Apache Ant a podpora zásuvných modulů. Velkou výhodu tohoto vývojového
prostředí představuje otevřenost k vývoji pluginů. Těch existuje velké množství a v případě potřeby je
možnost napsat vlastní rozšíření.
Eclipse již ve standardní instalaci poskytuje množství zabudovaných refaktoringových nástrojů. Mezi
tyto nástroje patří například přejmenování elementů v kódu, přesun tříd a balíčků, vytváření (extrakce) rozhraní z konkrétních tříd, převod vnořených tříd na klasické třídy či vytváření nových metod na
základě extrakce části kódu původní metody. [IBMRefactor]
Vzory pro refaktoring v Eclipse JDT obsahují podporu pro [LinJournal]:
11 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE


























LS 2008/2009
Kopírování a přesouvání Java elementů
Extrahování metod
Extrahování lokálních proměnných
Extrahování konstant
Přejmenování balíčků
Přejmenování kompilačních jednotek
Přejmenování třídy nebo rozhraní
Přejmenování metody
Přejmenování atributu
Přejmenování lokální proměnné
Přejmenování parametrů metody
Změna kontraktu metod
Přesun (inlining) lokální proměnné
Přesun (inlining) metody
Přesun (inlining) konstanty
Obalování atributů
Nahrazení lokální proměnné dotazem
Přesun do nadřazené třídy
Přesun do podtřídy
Přesun statických členů mezi typy
Přesun instančních metod do komponenty
Převod lokální proměnné na atribut
Převod anonymní vnitřní třídy do vnořené třídy
Převod vnořené třídy na vyšší úroveň
Extrahování rozhraní z typu
Nahrazení referencí typu referencemi na jeden z jeho podtypů
Závěrem bych chtěl poznamenat, že celkově je podpora pro refaktoring v prostředí Eclipse na velmi
vysoké úrovni. Jistým omezením snad může být pouze rychlost provádění některých změn v případě
komplexních projektů.
12 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 3 – Eclipse Java Development Toolkit, zdroj: [IBMRefactor]
3.2.2 ReSharper
Společnost
Licence
Typ
Programovací jazyky
Webové stránky
JetBrains
Komerční licence od $49, zdarma pro školy
Zásuvný modul do VisualStudia .NET 2003, 2005 a 2008
C# 3.0, VB9, ASP.NET, XML, XAML, MSBuild a NAnt skripty
http://www.jetbrains.com/resharper/
ReSharper je zásuvný modul pro podporu refaktoringu a zvýšení produktivity v rámci psaní zdrojového kódu. Rozšiřuje standardní funkcionalitu Microsoft Visual Studia .NET 2003, 2005 a 2008. Pokrývá
funkcionalitu v oblastech automatického zvýrazňování kódu, intuitivní opravy chyb, refaktorování,
jednotkového testování, vyhledávání v kódu, formátování a čištění kódu a automatického generování
kódu. V následujícím seznamu jsou uvedeny některé ze vzorů pro refaktoring [ReSharper]:








Převod abstraktní třídy na rozhraní
Převod anonymního typu na pojmenovaný typ
Převod Extension Metod na Plain Static metodu
Převod Indexer/Default Property na metodu
Převod rozhraní na abstraktní třídu
Převod metody na Indexer/Default Property
Převod metody na vlastnost
Převod vlastnosti na Auto Property
13 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE








Převod vlastnosti na metodu
Převod statické metody na Extension metodu
Kopírování typů
Obalování atributů
Extrahování třídy z parametrů
Extrahování rozhraní
Extrahování metody
Extrahování nadřazené třídy
Obrázek 4 –ReSharper, zdroj: [ReSharper]
14 / 44
LS 2008/2009
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
3.2.3 RefactorIT – Java Refactoring Tool
Společnost
Licence
Typ
Programovací jazyky
Webové stránky
Aqris Software AS
Freeware – zdarma
RefactorIT OpenSource Community Edition – zdarma
RefactorIT Commerical Edition – $295/uživatel
Samostatný nástroj/zásuvný modul
Java
http://www.aqris.com/display/A/Refactorit
Aplikace RefactorIT představuje komplexní řešení pro refaktorování a analýzu kódu. Obsahuje
9 kompletně automatizovaných vzorů pro refaktoring, 12 nástrojů pro vyhledávání v kódu a 21 metrik a nástrojů pro audit kódu. RefactorIT umožňuje vývojářům optimalizovat kód bez ohledu na jeho
velikost a komplexitu použitím automatizovaných refaktorování. Aplikace může být použita samostatně, či jako zásuvný modul do produktů NetBeans, Sun ONE Studio, JDeveloper a JBuilder. [Swing]
Obrázek 5 – RefactorIT, zdroj: [Swing]
15 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
4 Ladicí nástroje
Ladění je systematický proces vyhledávání a snižování počtu chyb nebo nedostatků v počítačových
programech nebo technickém vybavení za účelem správného a deterministického chování takové
jednotky. Zjednodušeně řečeno se jedná o možnost sledovat a vyhodnocovat činnost systému přímo
za jeho chodu. To představuje v některých situacích nedocenitelnou pomoc.
Obecně je ladění časově náročným úkolem. K úspěšnému nalezení problému pomocí ladění nejvíce
přispívá samotná úroveň znalostí, důležitou roli však hraje i použitý programovací jazyk a dostupné
nástroje. Ladicí nástroje umožňují programátorovi sledovat běh programu, pozastavit a znovu spustit
program, nastavit zarážky (místo v programu, kde se přeruší jeho běh a spustí se ladicí nástroj), změnit vlastnosti uložené v paměti a v některých případech dokonce i postoupit v běhu programu směrem dozadu. [Debugging]
V rámci této práce bych rád představil jediný nástroj, který je však v této oblasti legendou.
4.1 SoftICE
Společnost
Licence
Typ
Webové stránky
NuMega
Již se neprodává
Samostatný nástroj
http://www.compuware.com/
SoftICE je velmi známým nástrojem především pro vývojáře ovladačů a interních součástí systému
Windows. Umožňuje přistupovat až za hranice toho, kam se dostanou standardní Win32 ladicí nástroje. Tento nástroj je také nechvalně známý jako pomůcka při tzv. „crackování“ programů, tedy
různému obcházení licence a omezení některých programů.
SoftICE je nástroj pro ladění jádra systému, který stojí na rozhraní operačního systému a procesoru.
Pokud je tedy SoftICE aktivován, zastaví se běh celého operačního systému. SoftICE tak vlastně získává kontrolu nad operačním systémem, což mu umožňuje získat jakékoliv hodnoty z paměti. Relativně
jednoduché ovládání pomocí příkazů je skutečná výhoda SoftICE. Díky němu je snadné odhalit, co
přesně se děje v systému. Je tak například možné sledovat jakoukoliv událost v systému, včetně jejího
jména a stavu.







Kompletní přehled vláken a procesů
Informace o všech událostech, mutexech a semaforech (řízení přístupů k vláknům)
Informace o všech odkazech na objekty
Kompletní informace o procesech a ovladačích
Všechny informace o paměťové hromadě Win32 (Win32 heap memory)
Strukturované zpracování výjimek
Exporty DLL knihoven
16 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
Obrázek 6 – SoftICE, zdroj: [SoftIce]
17 / 44
LS 2008/2009
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
5 Generátory kódu
Generátory kódu patří mezi základní CASE nástroje, které se používají pro vývoj aplikací. Alfonso Fugeta *Fug93+ ve svém článku rozděluje CASE nástroje do osmi kategorií podle jejich zaměření (business plánování a modelování, analýza a design, vývoj uživatelského rozhranní, programování, ověřování a validace, údržba a reversní inženýrství, konfigurační management, projektový management).
Dle tohoto rozdělení by se nástroje pro generování zdrojového kódu řadili mezi ostatní nástroje pro
programování.
Téměř v každé profesi se můžeme setkat s tím, že je potřeba určité činnosti, s většími či menšími
obměnami, vykonávat opakovaně. Při provádění opakujících se činností platí, že nemá cenu vymýšlet
už vymyšlené a proto je žádoucí dodržet postup, který vedl k tíženému výsledku i v minulých případech. Výjimkou je pouze případ, kdy chceme zlepšit zaběhlý postup a obohatit ho o nové zkušenosti
či znalosti.
V programování se velmi často stává, že řešíme dokola stále se opakující problémy, které jsou společné pro většinu aplikací a které se ve většině aplikací řeší stejným nebo velmi podobným způsobem.
Přesně pro tento případ slouží generátory kódu, které umožňují automatizovat rutinní činnosti a ponechávají tak více času na kreativnější práci. Andrew Hunt a David Thomas *Hunt99+ ve své knize
uvádějí doporučení, kterými by se měli programátoři řídit, pokud chtějí, aby jejich práce byla kvalitní
a efektivní. Jejich doporučení číslo 29 zní *Hunt99+: ,,Pište kód, který píše kód“.
Z principiálního hlediska rozeznáváme dva druhy generátorů kódu:

Pasivní generátory kódu
Jejich hlavním úkolem je ušetřit práci při psaní kódu. Pasivní generátory po každém svém
spuštění produkují výsledek, který se tak stává součástí zdrojového kódu aplikace. Vygenerovaný kód tak už nemá žádnou návaznost na generátor, kterým byl vytvořen a je
k nerozeznání od zdrojového kódu napsaného programátorem. Příkladem pasivních generátorů zdrojového kódu jsou vybrané CASE nástroje nebo například různé Wizardy1. Typickým
příkladem využití těchto generátorů je vytváření nových zdrojových kódů a provádění jednorázových konverzí zdrojových souborů například mezi různými programovacími jazyky.

Aktivní generátory kódu
Aktivní generátor je použit pokaždé, když je požadován výstup, který generátor poskytuje.
Data potřebná pro generátor jsou většinou uložená v samostatném souboru v předem definovaném formátu. Aktivní generátory jsou využívány pro dodržování principu DRY2.
Generátory zdrojového kódu jako CASE nástroje určené pro vývoj aplikací v podstatě představují právě kód, který dokáže psát (generovat) další kód. Tím se CASE nástroje pro generování zdrojového
kódu řadí do skupiny pasivních generátorů kódu.
V praxi se můžeme setkat s různými druhy generátorů kódu, přičemž největší rozdíl mezi různými
aplikacemi spočívá v tom, jakým způsobem aplikace komunikuje s uživatelem, resp. jakým způsobem
uživatel komunikuje s aplikací. Z principiálního hlediska existují dva druhy uživatelských rozhranní,
1
2
Průvodce pro vytváření zdrojového kódu pouze za pomoci zadaných parametrů.
Z anglického Don’t Repeat Yourself. Každá znalost by se v systému měla nacházet pouze na jednom místě.
18 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
pomocí kterých uživatel vytváří vygenerovaný kód. První druh aplikací pracuje ve vysoké míře abstrakce a uživateli poskytuje grafické rozhranní, ve kterém uživatel modeluje vztahy mezi jednotlivými
datovými zdroji. Datovými zdroji mohou být databázové tabulky, textové soubory s pevně danou
strukturou, ale i obyčejné textové soubory. Obsah jednotlivých zdrojů je v závislosti na pravidlech
nadefinovaných modelováním použit jako podklad pro samotné generování. Generování kódu se
provádí pomocí šablon. Právě psaní těchto šablon je oním druhým uživatelským rozhranním, které
jsou v aplikacích pro generování kódu využívány. Generování kódu pomocí šablon je cesta, kterou se
vydává většina nástrojů. Rozdíl mezi aplikacemi spočívá v tom, jestli úprava šablon, nebo jejich tvorba
otázka pouze závěrečných úprav a úprav vzhledu výsledného kódu, anebo jestli je to jediný způsob.
Šablony mohou být psány ve speciálně vytvořených jazycích jednotlivých nástrojů, ale můžeme se
setkat i se šablonami napsaných pomocí jazyka XSLT. Nespornou výhodou používání šablon, je že
výsledný kód může být v podstatě jakýkoliv textový dokument a tím pádem i kód jakéhokoliv programovacího jazyka.
Používání generátorů zdrojového kódu má svoje výhody, ale také i svoje nevýhody. K výhodám generátorů bezesporu patří, že umožňují podstatným způsobem zvýšit efektivitu a rychlost vývoje aplikací.
Generátory kódu v podobě CASE nástrojů navíc umožňují vytvářet zdrojový kód, aniž by uživatel musel znát konkrétní programovací jazyk. Navíc v sobě tyto programy obsahují nejlepší techniky a postupy, které vedou ke chtěnému výsledku. Tyto nástroje mohou využívat, jak programátoři, tak
i analytici. Většina současných produktů nabízí uživatelsky příjemné grafické rozhranní, kdy se postup
generování kódu podobá spíše modelování.
Nevýhodou generátorů zdrojového kódu je, že mnohdy je vygenerovaný kód až příliš robustní a zbytečně obsáhlý. Tím se zhoršuje možnost následné modifikace kódu, anebo případné odstraňování
vzniklých chyb. Další hrozbou pak může být, že uživatel vygenerovanému kódu ani nerozumí.
5.1 Viewpoints
Viewpoints je integrovaný nástroj do vývojového prostředí Visual Studio .NET 2008, který umožňuje
grafické modelování a generování kódu pomocí šablon.
Cílem nástroje Viewpoints je oprostit se od technologické stránky a zaměřit se na spíše na business
logiku aplikace. Business model aplikace zůstane pořád stejný, na druhé straně technologie stále
směřují kupředu, a proto nemá cenu ztrácet čas s implementačními detaily. Business model se tak
stává artefaktem, který může být znovu použit bez ohledu na technologii. Tak se může pomocí jednoho modelu vygenerovat kód pro aplikaci pro Microsoft .NET v1.1 a bez dalšího vymýšlení pro
Microsoft .NET v3.5.
Ne všechna business logika může být zachycena v jediném diagramu a proto Viewpoints nabízejí několik různých diagramů, které se na aplikaci dívají z různých úhlů pohledu. Prvním pohledem je pohled na entity aplikace (Entity viewpoint, viz Obrázek 7 – Entity viewpoint, zdroj: [Viewpoints]Chyba!
Nenalezen zdroj odkazů.). V tomto pohledu jsou zachyceny základní informace o dané entitě a vztahy mezi entitami. Druhým pohledem je transformační pohled (Transformation viewpoint), který zachycuje jednotlivé moduly a říká, jakým způsobem budou transformovány do výsledného řešení.
Základním a hlavním účelem této aplikace však není modelování, ale následné generování zdrojového
kódu z namodelovaných entit. Na metamodel, který vznikl modelováním entit, se aplikují šablony,
19 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
které z metamodelu vytvoří výsledný zdrojový kód. Šablony je možné libovolně upravovat, nebo vytvářet vlastní. Syntaxe šablon je založená na formátu T41.
5.1.1 Klíčové vlastnosti




Generování zdrojového kódu z grafických modelů
Upravitelné šablony pro generování zdrojového kódu
Zahrnuje šablony pro generování zdrojového kódu pro SQL, C#, VB.NET, XML, HTML
Zajištění nezávislosti mezi grafickým modelem a vygenerovaným zdrojovým kódem
5.1.2 Systémové požadavky


Visual Studio .NET 2008 s SP1
Platforma: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008
5.1.3 Licence



1 – 4: 499$ za jednu licenci
5 – 9: 499$ za jednu licenci
10 a více: 449$ za jednu licenci
5.1.4 Verze

1.0
Obrázek 7 – Entity viewpoint, zdroj: [Viewpoints]
1
Text Template Transformation Toolkit
20 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
5.2 CodeSmith
CodeSmith je softwarový nástroj pro vývoj aplikací, který na základě šablon dokáže generovat zdrojový kód, pro jakýkoliv programovací jazyk nebo jakýkoliv textový dokument. Z technického úhlu pohledu se jedná o generátor kódu založený na šablonách.
CodeSmith obsahuje již jednoduché předdefinované šablony a stejně tak obsahuje celé balíky šablon
pro architektury .netTiers, CSLA, NHibernate, PLINQO, APOSA. Všechny již předdefinované šablony
může uživatel upravit podle své potřeby a samozřejmě může vytvářet i šablony vlastní. Syntaxe šablon je téměř totožná se syntaxí ASP.NET, takže když již někdo zná syntaxi ASP.NET velmi rychle se
naučí psát a upravovat šablony v nástroji CodeSmith. Stejně jako v platformě .NET lze využít pro návrh šablon různé programovací jazyky a to jazyky C#, VB.NET a JScript.NET. Výstupem generování
může být jakýkoliv textový dokument založený na standardu ASCII.
Nástroj CodeSmith obsahuje vlastní IDE (viz Obrázek 8 – CodeSmith IDE) pro psaní šablon a generování výstupů. Dále je možná jeho integrace do Visual Studia, kromě verze Express edition. Integrace
do MS Visual Studia, ale není vůbec nutná, protože IDE samotného nástroje je na velmi vysoké úrovni. Samozřejmostí je například automatické doplňování výrazů při psaní šablon (viz Obrázek 9 – CodeSmith – doplňování kódu). V šablonách můžeme dokonce využít i XML. Vývojové prostředí CodeSmith pro něj nabízí velmi bohatou podporu, kdy dokonce zvládá kontrolu uživatelem napsaného
XML pomocí dodaných XSD schémat. Pokud při generování výstupu narazíme na chybu v šabloně je
zde i podpora pro odladění a krokování.
5.2.1 Klíčové vlastnosti






Generování zdrojového kódu pomocí šablon napsaných v jazyce podobnému ASP.NET
Generování zdrojového kódu pro jakýkoliv programovací jazyk
Velkého množství předdefinovaných šablon pro architektury: .netTiers, CSLA, NHibernate,
PLINQO, APOSA
Možnost upravovat předdefinované šablony a vytvářet vlastní šablony
Vlastní IDE s podporou doplňování kódu, XML, ladění
Možnost integrace s MS Visual Studiem
5.2.2 Systémové požadavky

Platforma: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008
5.2.3 Licence


Standard: 99$
Professional: 399$
5.2.4 Verze

5.0.5
21 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 8 – CodeSmith IDE, zdroj: [CodeSmith]
Obrázek 9 – CodeSmith – doplňování kódu, zdroj: [CodeSmith]
5.3 Altova MapForce
Altova MapForce je grafický nástroj, který slouží k datovému mapování mezi nejrůznějšími druhy
datových zdrojů. Dokáže mapovat data mezi soubory typu XML, databázemi, textovými dokumenty,
soubory Excel 2007 nebo dokonce webovými službami.
Hlavní využití tohoto nástroje spočívá v datových konverzích a v integraci mezi datovými zdroji různých typů. Z našeho úlu pohledu je zajímavé, že nástroj slouží také jako generátor kódu, kdy výsledný
kód slouží právě k datové konverzi z jednoho formátu do druhého. Altova MapForce obsahuje uživatelsky velmi přívětivé grafické rozhranní z jehož pomocí lze graficky namodelovat, jakým způsobem se
dané datové zdroje mají konvertovat do definovaného výstupního formátu (viz Obrázek 10 – Altova
MapForce IDE). Po namodelování datové konverze, lze tuto konverzi buď jednorázově spustit a uložit
výsledek, nebo vygenerovat zdrojový kód, který pak můžeme vložit do naší aplikace. Zdrojový kód
může být generován v několika jazycích: XSLT 1.0, XSLT 2.0, Java, C#, C++, XQuery. Tímto způsobem je
možné implementovat aplikaci pro datovou integraci nebo dokonce webovou službu, aniž by bylo
22 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
třeba napsat jedinou řádku zdrojového kódu. Vygenerovaný zdrojový kód poté může být samozřejmě
libovolně upraven a použit v jakékoliv aplikaci.
Kód, který aplikace generuje, můžeme ovlivnit pomocí jednoduchých, ale velmi výkonných šablon.
Pomocí změn v šablonách je také možné ovlivnit parsovací a validační nástroje a uživatel tak má
možnost získat maximální kontrolu nad generovaným kódem.
Altova MapForce může být provozována jako samostatná svébytná aplikace, ale stejně tak je umožněna její integrace do dnes velmi populárních vývojových nástrojů Eclipse a Visual Studio. V obou
případech je aplikace nabízena, jako integrační balíček do obou výše zmíněných nástrojů.
5.3.1 Klíčové vlastnosti






Grafické mapování mezi různými druhy datových zdrojů: XML, databáze, textové dokumenty
(CSV), soubory Excel 2007
Podpora velkého množství databází: Microsoft® SQL Server (2000, 2005, 2008), IBM DB2 (8,
9), Oracle (9i, 10g, 11g), Sybase 12, MySQL (4, 5), PostgreSQL 8
Uživatelsky přívětivé a intuitivní grafické rozhranní
Generování zdrojového kódu v jazycích XSLT 1.0, XSLT 2.0, Java, C#, C++, XQuery
Možnost úpravy šablon pro generování zdrojového kódu
Integrace do vývojových nástrojů Eclipse a Visual Studio
5.3.2 Systémové požadavky

Platforma: Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008
5.3.3 Licence



Standard: 249$
Professional: 499$
Enterprise: 999$
5.3.4 Verze

MapForce 2009
23 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
Obrázek 10 – Altova MapForce IDE, zdroj: [MapForce]
24 / 44
LS 2008/2009
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
6 MySQL z pohledu CASE a IDE
6.1 MySQL Databáze
Tato část práce se zaměřuje na populární relační databázový systém MySQL z pohledu vývojáře a
návrháře datové základny. Předchozí práce zmínily některé IDE nástroje používané pro práci
s databázemi, zmiňme např. Toad for Oracle, Aqua Data Studio a Rapid SQL. Tyto nástroje jsou
většinou univerzálně k použití s více typy databázových systémů. My si v následujícím textu ukážeme
podrobněji dva nástroje navžené a používané pro práci s MySQL databází – Toad for MySQL a MySQL
Workbench.
MySQL databáze je vyvíjena od roku 1995 švédskou stejnojmennou společností MySQL AB, jež je od
roku 2008 součástí Sun Microsystems. V současnosti je k dispozici stabilní verze 5.1. Zlí jazykové tvrdí,
že MySQL se ani nedá považovat za databázi, což může být za určitých okolností pravda. Dřívějším
verzím scházely některé klíčové vlastnosti. Ze všech jmenujme hlavně podporu pro uložené rutiny
(funkce, procedury a triggery1) jež byla zavedena až ve verzi 5.1. Dalším problémem je využití cizích
klíčů, které podporuje pouze InnoDB engine. Zřejmě nejčastěji používaný MyISAM engine zatím
s cizími klíči pracovat neumí a nevypadá, že by se to mělo v dohledné době změnit. MyISAM je ale na
druhou stranu nejrychlejší z dostupných MySQL enginů a umožňuje mimo jiné fulltextové
vyhledávání v datech. Dodejme, že engine je jakýsi mechanizmus, který řídí ukládání a práci s daty
tabulky, přičemž v jedné databázi mohou být tabulky s různými enginy.
Při použití nové verze MySQL a vhodných enginů lze tuto databázi považovat za moderní relační
databázový systém, ale stále je nutné mít na paměti, k čemu se bude používat. MySQL je nabízena
zdarma jako Community Server, ale také ke koupi jako Enterprise Platinum, kdy je navíc hlavně
technická podpora a nástroje pro sledování stavu systému a jeho optimalizaci. Mnoho menších
společností používá MySQL pro svoje podnikání, ale zatím s tímto systémem nelze počítat jako
s hlavním databázovým serverem, na kterém by závisely kritické aplikace, *White07+. Zcela jistě
nalezneme nejrozšířenější uplatnění MySQL v oblasti webových aplikací, kdy tuto databázi na svých
serverech nabízí téměř každý hosting. Je součástí tzv. LAMP architektury používané pro běh
webových aplikací. Jednotlivá písmena zkratky značí Linux – operační systém, Apache – webový
server, Mysql – databáze a PHP (případně Perl, Python) – skriptovací jazyk. Tato kombinace je po
celém světě používána pro jednoduché a amatérské webové aplikace, ale také pro složité a náročné
projekty. Podívejme se nyní na dva výše zmíněné nástroje.
6.2 Toad for MySQL
Tento program je vyvíjen firmou Quest Software jako jeden z rodiny produktů pro práci s databázemi.
Firma vyvíjí také nástroje pro Oracle, SQL Server a DB2, za které se ale při komerčním užití musí platit. Pouze verze pro MySQL je zcela zdarma. Předmětem tohoto textu je verze 4.1.0. Produkt disponuje několika hlavními funkcemi, které výrobce na *Quest+ shrnuje následovně:



vytváření SQL dotazů;
návrh databáze;
správa databáze;
1
V češtině bychom mohli použít výraz spouštěč, který ale v praxi není příliš používaný. Proto zůstaneme
u anglického originálu.
25 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE




LS 2008/2009
práce s daty;
poskytování výpisů;
řízení projektů;
automatizace.
V následujícím textu se na některé zaměříme a podrobněji si je popíšeme. Pokud bychom chtěli Toad
for MySQL zařadit, označili bychom ho jako IDE – integrované vývojové prostředí. V jedné aplikaci
totiž spojuje import a export dat z databáze, základní správu databáze, asistenta pro jednodušší vytváření dotazů, porovnávání datových schémat atd. Přestože ve výše uvedeném seznamu funkcí je
uveden také design databáze, tento nástroj jako CASE příliš použít nelze, a proto se budeme také
zabývat nástrojem MySQL Workbench, který dovoluje vytváření a správu databázových schémat na
velmi podrobné úrovni. Zaměřme se tedy na některé zajímavé funkce nástroje Toad for MySQL.
6.2.1 Návrh databáze
Tímto výrobce myslí nástroj ER Diagrammer, kterým můžeme do diagramu přetáhnout tabulky
z databáze a zobrazit vazby mezi nimi. Vazby mezi tabulkami lze také přidávat ručně metodou
drag & drop, ale pouze mezi již existujícími sloupci tabulek. Diagrammer dále dovoluje vybrané tabulky poslat do Query Builderu, kde z nich poté můžeme sestavovat dotazy. Nástroj ale nedovoluje vytvářet nové tabulky přidáním do diagramu, neumí automaticky vytvořit vazební tabulky při M:N vazbách atd. Jde tedy pouze o jakýsi zobrazovač tabulek a vazeb mezi nimi.
6.2.2 Práce s daty
Toad for MySQL poskytuje několik užitečných nástrojů pro práci s daty. Autoři uvádějí jako užitečnou
vlastnost také číslování řádků ve výpisu dat, ale to by mělo být považováno za samozřejmost. Mnohem zajímavější funkcí je vyhledávání v datech tabulky, které by za použití ručně psaného SQL dotazu
bylo při velkém počtu sloupců časově náročné. Výsledky vyhledávání lze poté označit a provést s nimi
nějakou operaci, např. smazání. Kromě toho je také možné ve vybraných datech provést operaci nalezení a nahrazení, což může v některých případech hodně usnadnit a zrychlit práci. Toto vyhledávání
a nahrazování je ale bohužel možné pouze s daty tabulky a ne s výsledky dotazu.
26 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 11 – Výsledek porovnání dat dvou tabulek, zdroj: [Toad for MySQL]
Dalším zajímavým nástrojem je porovnávání dat (datových sad). Ukázka výsledku porovnávání mezi
dvěma tabulkami stejné struktury je na Obrázek 11, kdy z druhé tabulky byly odebrány kontrakty
s firmami v likvidaci, jména Vlastimil zaměněna za Vlasta a nakonec byl přidán jeden kontrakt. Byla
použita testovací data obsahující smyšlené kontrakty smyšlené firmy používaná pro výuku předmětu
Business Intelligence na VŠE v Praze. Výsledky porovnávání lze uložit ve formátu MS Excel 2003, ale
mnohem užitečnější je možnost synchronizace, díky které můžeme data ve zdrojové tabulce synchronizovat s daty v cílové tabulce a naopak. Porovnávání dat by např. bylo možné použít k vytváření inkrementálních záloh obsahů tabulek na úrovni SQL, zjišťování změn za určité časové období apod.
6.2.3 Vytváření SQL dotazů
Pro tvorbu a ladění dotazů jsou k dispozici nástroje SQL Editor a Query Builder. SQL Editor je klasické
textové okno pro psaní příkazů. Samozřejmostí je zvýrazňování SQL syntaxe, hromadné komentování
více řádků, seskupování souvisejících bloků kódu (folding) atd. Poslední zmíněná vlastnost ale trpí
některými nedostatky. Kupř. příkaz DROP TABLE IF EXISTS se zabalí špatně, protože editor
k IF očekává korespondující ELSE, které ale v případě tohoto příkazu nemá být použito.
27 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Editor má funkci automatického zformátování dotazu, ale ta do něho může zanést některé chyby.
Např. přidává mezeru mezi název SQL funkce a závorky obsahující parametry funkce. Tato mezera
v implicitním nastavení MySQL serveru způsobí chybu, protože pokud není nastaven SQL mód IGNORE_SPACES, což implicitně není, musí být otevírací závorka ihned za názvem funkce.
Editor dále disponuje funkcí doplňování názvů tabulek, ale bohužel pouze za některými klíčovými
slovy jako FROM nebo TABLE, přičemž toto doplňování by bylo vhodné také na dalších místech. Užitečná je historie provedených příkazů (SQL statement recall), která jednak umožňuje vyvolat minulé
příkazy, ale také označené příkazy uložit pod jménem a později je použít. Také bychom měli zmínit
možnost doplňovat SQL funkce, což může být velmi užitečné, protože zapamatovat si přesné názvy
funkcí a parametry a jejich pořadí není vždy jednoduché.
Query Builder je názorný pomocník pro vytváření SELECT dotazů. Uživatel jednoduše přetáhne tabulky, ze kterých chce získat výsledky a následně zatrhne sloupce, jež chce mít k dispozici při tvorbě
dotazu. Tyto sloupce ovšem nemusí být nutně zahrnuty ve výsledné datové sadě, což může být dobré
např. ke skrytí sloupce, podle kterého chceme jen řadit. Builder dále dovoluje nastavit WHERE podmínky, seskupování podle sloupce (GROUP BY) a řazení. Dokonce je možné vytvořit pomocí editoru
poddotaz, který bude následně použit v hlavním dotazu.
6.2.4 Správa databáze
Tato část nástroje zajišťuje spíše práci s databázovým strojem a se strukturou databází, než práci
s daty. Je možné použít Session Monitor, který zobrazí všechny probíhající spojení s databází a ve
skutečnosti se nejedná o nic jiného, než o grafický výstup příkazu SHOW FULL PROCESSLIST.
Zajímavá je možnost agregovat (seskupovat) výsledky podle jednotlivých sloupců výstupu. Dále bychom mohli zmínit funkci Flush and Reset, která dovoluje přes grafické rozhraní spouštět příkazy, jež
přijdou vhod při provádění správcovských úkonů na databázi, např. FLUSH PRIVILEGES po změně uživatelských kont.
Jednoznačně nejužitečnější je nástroj porovnávající datová schémata, tedy strukturu databází. Schémata pro porovnání lze získat přímo z databáze nebo z MCS souboru, což je proprietární formát Toad
for MySQL pro ukládání databázových schémat. Při zjišťování rozdílů mezi schématy je brán zřetel na
všechny prvky datové struktury databáze, tedy tabulky, pohledy, procedury, funkce a triggery. Po
nalezení změn může být použit nástroj synchronizace, který značně ulehčí přechod od zdrojového
schématu k cílovému, či přechod opačným směrem. Odlišnosti mezi schématy jsou také k dispozici
v podobě SQL kódu, kdy je vedle sebe přehledně zobrazen kód struktury ze zdrojového schématu a
vedle kód té samé struktury z cílového schématu. Takové porovnání je zachyceno na Obrázek 12.
28 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 12 – Porovnání vytvářecích skriptů tabulky, zdroj: [Toad for MySQL]
6.2.5 Poskytování výpisů
Popisovaný nástroj obsahuje mnoho užitečných funkcí, ale na jejich podrobné rozebrání zde není
místo. Poslední funkčností, o které se zmíníme, je vytváření výpisů (reportů). Výpisy mohou být vytvářeny na základě schémat nebo databázových dat. V obou případech se jedná o strukturovaný a
přehledný dokument obsahující údaje, které jsme zvolili před samotným generováním výpisu. Dokument lze poté uložit v mnoha formátech jako HTML, PDF, CSV, XLS atd. Zatímco výpis schématu obsahuje seznam a detaily všech databázových objektů, datový výpis bychom mohli přirovnat k sestavě
aplikace MS Access.
6.3 MySQL Workbench
Aplikace MySQL Workbench je vyvíjena společností MySQL AB nyní vlastněnou SUN Microsystems. Je
dostupná ve dvou verzích – jako opensource (OSS) zdarma a jako placená komerční aplikace (SE).
Záměrem autorů je, aby OSS verze byla plně funkčně vybavená bez nějakých znevýhodnění oproti SE,
*Zinner07+. Dá se s ní tedy plnohodnotně pracovat, ale placená verze poskytuje větší komfort např.
v podobě možného připojení k databázi při reverzním a dopředném inženýringu, což se jinak musí
řešit přes SQL skripty. Cena SE je 99 $, *MyShop+. Současná stabilní verze pro Windows je 5.0 a ke
svému běhu vyžaduje .NET 2.0 Framework, [MyDown]. K dispozici jsou také beta verze pro operační
systémy Linux a MacOS X. MySQL Workbench je nástupcem nástroje DBDesigner 4 od firmy fabFORCE.net, ze které přešel Michael Zinner, aby byl vedoucím týmu pracujícím na Workbench.
Kromě Workbench, který je převážně CASE nástrojem, poskytuje MySQL AB balík MySQL GUI Tools
obsahující nástroje MySQL Administrator, MySQL Query Browser a MySQL Migration Toolkit. Administrator dovoluje sledovat stav prostředků databáze, sledovat aktuální připojení k databázi, nastavovat konfigurační proměnné, starat se o uživatelské účty atd. Zajímavá je možnost provádět pravidelné
automatické zálohy databáze. Query Browser je grafické rozhraní pro odlaďování dotazů. Jeho výhodou je, že obsahuje dokumentaci k MySQL databázi, takže při vytváření dotazů není nutné ji dohledávat na internetu. Dovoluje také vyhledávat a nahrazovat data ve výsledcích dotazů, ale bohužel pouze
pokud vybíráme z jedné tabulky. Při spojení více tabulek pomocí JOIN již data nahrazovat nelze.
29 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Migration Toolkit by měl, jak název napovídá, být užitečný při migraci databáze jiných výrobců na
MySQL.
Jak jsme již uvedli, Workbench je CASE nástroj určený pro „vytváření, řízení a dokumentování databázových schémat“, *MyDown+. Pracuje s modely, které obsahují čtyři základní části, přičemž není možné pracovat s více modely zároveň. Model se ukládá do binárního souboru s koncovkou MWB. Ony
čtyři hlavní části modelu jsou – EER diagramy, schémata, SQL skripty a poznámky. Schéma modelu
reprezentuje schéma v databázi MySQL, a obsahuje tedy tabulky, pohledy a rutiny. Diagram může
obsahovat objekty z různých schémat, stejně jako tomu je v MySQL, kdy tabulka z jedné databáze
může být přes cizí klíč spojena s tabulkou z jiné databáze. Skript je běžný SQL kód doplněný zvýrazněním syntaxe. Lze ho načíst nebo uložit do souboru. Poznámka představuje prostý text, kterým můžeme popsat podrobnosti modelu. Jistě nejzajímavějším prvkem MySQL Workbench je EER Diagram,
takže se na něj teď blíže zaměříme.
6.3.1 EER diagram
EER Diagram (Enhanced Entity-Relationship Diagram) slouží k modelování objektů ve schématech a
vztahů mezi nimi. Je tvořen plátnem, na kterém jsou umístěny objekty a nástroji, kterými můžeme
s objekty manipulovat. Diagram může obsahovat tabulky, pohledy a skupiny rutin. Tyto objekty lze
v diagramu přímo vytvořit, případně je možné je do něho přetáhnout z katalogu, který obsahuje objekty všech schémat projektu zobrazené v hierarchické struktuře.
Do diagramu lze dále umisťovat obrázky, textové poznámky a vrstvy. Obrázky a poznámky mají hlavně informativní charakter. Poslední jmenované jsou výborně použitelné ke zpřehlednění celého diagramu. Vrstvy jsou jakési kontejnery na objekty umístěné v diagramu. Nemají žádný funkční význam,
ale pokud jim nastavíme barvu pozadí a umístíme do nich objekty (zejména tabulky), dostaneme
z chaotické změti jasně strukturovaný systém, který značně ulehčí orientaci v diagramu.
Nejsilnější nástroj diagramu slouží k vytváření vazeb mezi tabulkami. Následující seznam obsahuje
vazby a ikony, které je symbolizují v panelu nástrojů:





1:N
1:1
1:N
1:1
M:N
neidentifikující vztah,
neidentifikující vztah,
identifikující vztah,
identifikující vztah,
identifikující vztah.
Neidentifikující vztah je takový, kdy odkazující tabulka může existovat i bez odkazované tabulky. Cizí
klíč odkazující tabulky tedy není nijak obsažen v jejím primárním klíči. Naopak při identifikujícím vztahu nemůže odkazující tabulka existovat bez odkazované. V tomto případě je cizí klíč odkazující tabulky obsažen v jejím primárním klíči. Při vztahu M:N se vytváří vazební tabulka, která má primární klíč
složený z cizích klíčů odkazujících na tabulky účastnící se vztahu (většinou jsou ve vztahu právě dvě
tabulky). Při vytváření vztahů stačí pouze vybrat dvě tabulky a Workbench mezi nimi vytvoří vazbu
podle zvoleného typu. Automaticky je při tom také vytvořen cizí klíč a případně index na sloupci cizího klíče. Vytvořením M:N vazby automaticky vznikne potřebná vazební tabulka. Další možností, jak
vytvořit vazbu, je využít již existujících sloupců a pouze určit, které jsou odkazující a které odkazované. Samozřejmostí je možnost nastavení ON UPDATE a ON DELETE akcí v detailech cizího klíče.
30 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Pro ukázku byl vytvořen jednoduchý EER diagram zachycující rodiče a jejich děti chodící na zájmové
kroužky. Diagram je na Obrázek 13.
Obrázek 13 – Ukázka jednoduchého diagramu, zdroj: [MySQL Workbench]
6.3.2 Možnosti skriptování
Workbench obsahuje GRT (Generic Runtime Environment), což je objektová vrstva, umožňující pracovat s Workbench skrze programový kód. Díky tomu lze doplňovat nástroj o pluginy. Při práci s GRT
se používá konzole doplněná o pomocné panely obsahující objekty k dispozici a dostupné struktury.
Kód se píše ve skriptovacím jazyce Lua, který je malý, rychlý a jednoduchý na naučení. Kromě psaní
modulů se přes GRT také dají ovládat všechny funkce dostupné ve Workbench, tudíž je možné jej
využít k automatizaci úkonů.
6.3.3 Rozdíly OSS a SE
Krátce si popišme, jaké možnosti má SE navíc oproti OSS. Zřejmě nejpodstatnějším rozdílem je možnost pracovat přímo s databází při reverzním/dopředném inženýringu, takže není nutné provádět
neustálé importy a exporty do SQL souborů. Podle položek menu OSS verze, která volitelně obsahuje
také znepřístupněné položky SE se zdá, že je možná také přímá synchronizace s databází.
Dalším rozdílem jsou rozšířené možnosti práce s EER diagramem a celým modelem. SE dovoluje přímo z komentářů a popisků obsažených v modelu generovat automaticky jeho dokumentaci. Také lze
celý model validovat, což zřejmě zaručí jeho správnost a bezproblémovost nasazení do databáze.
V případě diagramu je k dispozici více notací a možnost exportu do plnohodnotných PDF a PostScript
formátů.
31 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
7 SaaS CASE
V samotném závěru předchozí práce na námi zpracovávané téma byla nastíněna možnost zpracování
oblasti nástrojů CASE typu SaaS, které by mohly podporovat vývoj aplikací. Tato oblast napadla
i samotné členy našeho týmu. V neposlední řadě i odezva při zmínění tohoto tématu na první prezentaci naší práce nás vedla k bližšímu prozkoumání dané oblasti. Tyto podměty byly impulsem pro zařazení této oblasti do naší práce.
Na začátek je třeba podotknout, že vývoj takto orientovaných nástrojů je v začátcích, to znamená, že
je nelze srovnávat s balíkovými nástroji, které jsou mnohem robustnější a komplexnější. Přesto si
myslíme, že námi uvedené nástroje mají co nabídnout a jejich funkcionalita i oblast použití se bude
jistě rozrůstat. Některé nástroje jsou teprve v začátcích nebo nejsou uživatelsky přívětivé, ale hlavní
účel zařazení této kapitoly je ve vytvoření určitého základu pro tuto oblast a možnosti k monitorování
tohoto trendu vývoje třeba pomocí budoucích prací.
Do začátku je zařazen teoretický úvod, poté budou srovnávány nástroje, které jsou řazeny přibližně
dle stupně vyspělosti a možnosti využití.
7.1 Úvod k SaaS
Podle zdroje [WikiSaaS] lze o SaaS mluvit již od roku 1999. Zpřesnění oblasti a prvnímu používání
zkratky SaaS došlo přibližně od roku 2001. Samotná zkratka SaaS znamená Software as a Service.
Z překladu zkratky už může být patrné, že se jedná o využívání software jako služby. To znamená, že
jde o model nasazení software, který je provozován organizací přímo k tomu určenou a využíván jinou organizací pouze pomocí webového rozhraní. Na začátek je nutné poznamenat hlavní důvody
pro navýšení množství požívání tohoto modelu.
Důvody pro zavedení modelu SaaS jsou:


Navýšení přenosových kapacit internetu a zvýšení možností jejich využití
Přesun aktivit v organizaci, které nesouvisí s předmětem podnikaní na jiné subjekty nebo organizace – outsourcing
7.1.1 Výhody
Z tohoto modelu nasazení software je možné vyvodit několik vlastností. Tyto vlastnosti lze rozdělit do
dvou částí a to na organizace, které model nasazení software využívají a organizace, kterého ho provozují.
Co takové užívání SaaS přinese organizacím, které jej využívají:







Odpadá nutnost nákupu software a jeho instalace
Snížení potřeb a nákladů na nákup hardwaru, na kterém by software běžel
Náklady jsou předem známé a bez neočekávaných navýšení
Zlepšení cash-flow a úrovně rizik díky rozložení nákladů na software i hardware v čase, odpadnou tímto jednorázové vysoké investice při jejich nákupu
Možnost rychlého nasazení aplikace
Součástí využívání takovéto služby je i jejích inovace a modernizace
Pokud služba organizaci nevyhovuje, může velmi jednoduše přejít k jiné
32 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Co může přinést organizacím provoz SaaS:



Může se spolehnout na jisté tržby z provozování software
Přizpůsobení jednotlivým zákazníkům
Lepší soustředění se na vývoj software i provoz hardware
7.1.2 Nevýhody
Takto uvedené důvody i přínosy pro používání modelu nasazení software SaaS jsou jednoznačné a
často i nesporné. Tento model má však i své nevýhody či bariéry, které ho omezují v možnostech
používání:





Bezpečnostní riziko
Možný únik informací
Organizace mají rádi svá data pod svou kontrolou
Obtížné zákaznické přizpůsobení
Menší možnost integrace s ostatními aplikacemi v organizaci
Některé z těchto nevýhod jsou odstraněny nebo se odstraňují. Otázka bezpečnosti je na velmi vysoké
úrovní a to díky možnosti specializace provozující organizace. Únik informací mají nejčastěji na svědomí samotní zaměstnanci, proto je jednoznačná odpověď na únik informací nejasná. Možnosti přizpůsobení softwaru je řešeno pomocí mírného nastavení ovládání a podobně, navíc provozující organizace mají často připraveny takzvané balíčky dle segmentu jednotlivého druhu podnikání.
7.1.3 Možnosti využívání
Nejčastěji je tento model spojován s business softwarem. „Typickým příkladem je například hostovaná aplikace Microsoft Dynamics CRM, kdy je v Severní Americe nabízena v rámci Live účtů a v České
republice tuto aplikaci hostuje a nabízí na svých zařízeních společnost Logos pod názvem CRM
Hosting. Pokud se jedná o CRM, což je v současné době asi nejčastější příklad Saas, tak jako první
přišla s touto funkcionalitou společnost Salesforce. V současné době podobné řešení nasazuje právě
Microsoft anebo Oracle-Siebel, jako reakce na silné postavení konkurence. Mezi další aplikace, které
jsou nabízeny formou SaaS patří například video konference, aplikace pro řízení lidských zdrojů, účetnictví, e-mail a podobně.“ [WikiSaaS]
Je možno si všimnout, že se většinou jedná o známé organizace, které mohou takovýto trend
v používání software nabídnout. V následujících kapitolách se budeme snažit ukázat, že i nepříliš
známá jména organizací a softwaru mohou nabídnout zajímavou alternativu v oblasti CASE nástrojů
v modelu SaaS.
7.2 Příklady software
Oblast nástrojů CASE v modelu SaaS je relativně novou a stále se rozvíjející. Některé z uvedených
příkladů se nedají moc nazvat plným nástrojem CASE a plně splňující vlastnosti modelu SaaS. Přesto
však následující část je vytvořena z přehledu dostupných možností. Velmi často se jedná o omezený
nástroj, který poskytuje jeden druh funkcionalit, avšak i ten může posloužit jako prostředek
k vytvoření podkladů pro další zpracování nebo může jistě podpořit vývoj aplikací. Jedná se většinou
o modelovací nástroje podporující tvorbu diagramů. Jak bylo naznačeno v úvodu, první z uvedených
software budou nejméně vyspělé a jednoúčelové nástroje, v dané oblasti svůj účel jistě splní.
33 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
7.2.1 Web sequence diagrams
Jako první jsme vybrali nástroj na tvorbu UML sekvenčních diagramů s názvem Web sequence diagrams, který je možné najít na stejnojmenných stránkách http://www.websequencediagrams.com.
Jedná se o jednoúčelový nástroj pro tvorbu UML sekvenčních diagramů. Nejde plně o model nasazení
software SaaS, jde spíše o veřejně dostupnou webovou službu, které je možné použít za jakýmkoliv
účelem. Při tvorbě diagramů se dá využít předdefinovaných vztahů a postupně je pomocí textů
zpřesňovat a dále dotvářet. Textové zadávání je prakticky jedinou variantou k tvorbě diagramu, což
není moc uživatelsky přívětivé. Po každém zadání parametru je možné takovýto digram vygenerovat,
k tomu slouží i volba, která umožňuje zvolit předefinovaný vzhled diagramu. Jako něco navíc, je možné vygenerovat výstup do formátu PDF. Nástroj si poradí s českou diakritikou a dokáže upozornit na
některé chyby v zápisu diagramu.
Obrázek 14 – Web sequence diagrams, zdroj: [WebSeqDi]
Hodnocení:
+
+
-
Jeho hlavní předností je jednoduchost v ovládání, stránka je rychle načtena, rychle se diagram vykresluje i generuje PDF.
Volně přístupné a zdarma.
Mezi hlavní nevýhody patří jednoúčelovost a složitost tvorby diagramu zapříčiněná zapisováním vztahů textovou formou.
34 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
7.2.2 gModeler
Jedná se o flash aplikaci pro tvorbu diagramu tříd. Je možné ji spustit na stránkách
http://www.gskinner.com/gmodeler/app/run.html. Po otevření uživatele překvapí jednoduchost,
dalo by se říct až strohost ovládacích prvků. Vše potřebné pro tvorbu diagramu tříd je možné nalézt
v horních dvou lištách. Po vytvoření tříd se vyplní atributy, metody a přiřadí se vztahy. Dokument je
možné exportovat do několika formátů, například XML, HTML, ale vždy pouze do zdrojového kódu.
Dále nabízené možnosti výstupů jsou omezeny na několik specializovaných formátů.
Obrázek 15 – gModeler, zdroj: [gModeler]
Hodnocení:
+
+
Možnost vytvoření přehledného diagramu tříd (až po pochopení ovládání této aplikace).
Volně přístupné a zdarma.
-
Tvorba diagramů v této aplikaci není příliš přívětivá a zabere dost času.
Nabízí málo možností pro úpravu tříd, zobrazení detailů vztahů mezi třídami a dalšího nastavení.
Omezené množství výstupních formátů.
Jednoúčelovost nástroje.
-
7.2.3 Project Draw 0.7.9
Project Draw 0.7.9 je volně přístupná aplikace, založená na webových službách. Pro více informací je
možné navštívit stránky http://labs.autodesk.com/technologies/draw/. Samotná aplikace se nachází
na stránkách http://draw.labs.autodesk.com/ADDraw/draw.html, kde není potřeba žádného přihlášení ani registrace. Aplikace je zaměřena hlavně na modelování fyzických modelů, jako například
hardware, elektronické obvody, návrh kuchyně nebo koupelny. Nejvhodnější částí, pro kterou jsme
ho zařadili do praktického popisu je flow chart digram, který je součástí UML. Díky němu je možné
namodelovat rozhodovací procesy podle jednotlivých kroků. Samotná aplikace má rozvrženy nástroje
a pracovní lišty jako většina programů, tímto je její používání velmi jednoduché. Pro příklad uvádíme
rozhodovací proces nefunkčního světla.
35 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 16 – Project Draw 0.7.9, zdroj: [ProjDraw]
Samotný výstup je rychle vytvořen, modifikace velikostí objektů i textu, barev a tvarů se provádějí
velmi obdobně jako u balíkového software. Možností pro export do různých formátů je velmi široký,
klasické PDF i různé druhy rastrových formátů. Ve verzi bez přihlášení není možné ukládat soubory na
server, to je zpřístupněno až po přihlášení. To umožňuje využívání dalších funkcí a dalších nástrojů
společnosti Autodesk.
Hodnocení:
+
+
+
+
Uživatelsky přívětivé prostředí, které umožňuje rozvržení panelů a dostupných funkcí. Velmi
rychle se dá přijít na tvorbu diagramu s využitým základních, přesto širokých funkcí.
Možnost exportu dat do různých formátů.
Možnost ukládat soubory na server.
Volně přístupné a zdarma.
-
Pro účely této práce se dá využít jen flow chart diagram, takže jistá míra jednoúčelovosti.
7.2.4 Flowchart.com beta 2.1
Na stránkách http://www.flowchart.com/ je možné nalézt další námi popisovanou aplikaci. Je možné
si ihned spustit demo verzi, která bude sloužit pouze jako ilustrace možností. Pro využití celé aplikace
je nutné se registrovat. Registrace je jednoduchá a zdarma, protože jak na stránkách uvádějí, jde
o beta verzi, která je ve fázi vývoje a testování. Po ověření a aktivaci účtu je možné se na stránkách
přihlásit a aplikaci spustit. Ihned po spuštění je možné si všimnout, že jde o tradiční rozvržení nástrojů
a panelů jako u balíkového softwaru. Rozložení je podobné jako v předchozí aplikace a tudíž velmi
rychle využitelné. Tato aplikace nabízí velmi komunikativní rozhraní a množství nastavení. Z množství
nabízených možností k tvorbě diagramů jsme vybrali dvě hlavní, je to již zmíněný flow chart diagram
a data flow diagram. Jako příklad jsme vybrali modelování data flow diagramu (DFD).
36 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Obrázek 17 – Flowchart.com beta 2.1, zdroj: [Flowchar]
Při modelování jsme narazili na nečekané obtíže, které práci na této ukázce výrazně protáhly. Pravděpodobně z důvodu, že se jedná o beta verzi, tak některé funkcionality jsou nedořešené, nepříliš
funkční a celkově je tato aplikace náročná na výkon počítače, tudíž i dosti pomalá.
Hodnocení:
+
+
+
+
+
+
Velké množství diagramů a tvarů pro modelování.
Přehledné menu i možnosti nastavení.
Velmi přívětivé prostředí a komunikativní prvky aplikace.
Možnost exportu do PDF a JPG.
Možnost ukládání dat na server a vytvoření profilu uživatele.
Volně přístupné a zdarma.
-
Při tvorbě DFD se nepodařilo spojit nabízené toky dat s objekty, nedošlo k navázání těchto
částí a manuálním posunem nedošlo k přesnému spojení. Dáno pravděpodobně verzí aplikace, která je stále ve vývoji.
Náročnost na výkon počítače, aplikace pomalu reagovala na změny.
-
7.2.5 Gliffy Online
Jako poslední aplikaci jsme zvolili Gliffy na stránkách http://www.gliffy.com/. Jako jediná aplikace je
už nabízena v modelu webových služeb. Jedná se tedy o software, který je možné využít plně ke komerčnímu použití. Pro účely testování jsme se přihlásili a získali tak přístup do časově omezené verze,
která ale pro demonstraci vlastností postačuje. Gliffy umožňuje rychlé vytvoření modelů, jejich ukládání na server a sdílení s ostatními uživateli. Vlastník modelu může nastavit ostatním uživatelům práva, například pro změnu modelu a pracovat tak společně. Obsahuje také nástroj pro sledování revizí,
který umožňuje například při nevhodné změně modelu jiným uživatelem návrat k původním stavům.
37 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Je možné také zakázat ostatním uživatelům přístup k vytvořeným modelům. Nejhlavnější možnosti
tvorby modelů pro účely této práce jsou flow chart diagram, BPMN a UML. Svými vlastnostmi a ovládáním se jedná o plnohodnotný nástroj pro modelování.
Obrázek 18 – Gliffy Online, zdroj: [Gliffy]
Hodnocení:
+
+
+
+
+
Propracované prostředí, které umožňuje snadné modelování a nastavování možností.
Možnost sdílení s ostatními uživateli a nastavování práv na změnu dokumentu.
Možnost ukládání na server. Společnost uvádí, že data jsou chráněna ve třech vrstvách zálohy.
Šifrování dat pomocí SSL.
Kromě exportu souboru do PNG a JPG umožňuje Gliffy také export do SVG, což je formát MS
Visio a umožňuje tak další rozšíření využití této aplikace. Export do MS Visio byl odzkoušen a
kromě české diakritiky funguje bez problému a lze ihned dále zpracovávat diagram.
Největší množství poskytovaných informací o produktu ze všech popisovaných nástrojů.
Volně přístupné a po 30 dní v plné verzi zdarma, pak pouze v omezeném režimu.
-
Není možnost exportu do více formátů, například do PDF.
+
+
7.3 Shrnutí
Účelem tohoto přehledu nástrojů bylo vytvořit základ pohledu na SaaS model nasazení software
v oblasti CASE. Námi uvedený přehled software není jistě vyčerpávající. Některé uvedené aplikace a
software plně neodpovídají modelu SaaS a některé nejsou příliš mocnými nástroji v oblasti CASE.
Uvedli jsme je zde proto, že tato oblast je ve vývoji a samotné nástroje byly zachyceny v různých mírách zralosti. To umožňuje při dalším zpracovávání tohoto tématu monitorovat vývoj situace s těmito
produkty a srovnávat je. Poslední uvedený nástroj Gliffy Online je co do modelovacích vlastností i do
38 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
modelu SaaS nejzralejší a nejplnohodnotnější. Tento nástroj má jistě co nabídnout i organizacím pro
běžné využití.
Veškeré příklady jsou tvořeny v naší režii a to nám umožnilo lépe přistupovat k hodnocení jednotlivých nástrojů. Hodnocení je do jisté míry subjektivní a nepostihuje všechny klady nebo zápory. Jde
spíše o průřez vlastností, které nás zaujaly nebo naopak překvapily při jejich používání.
U některých nástrojů jde o spíše o počátek vývoje či zkoušku webově založených služeb a proto jsme
nástroje neporovnávaly mezi sebou, ale každý zvlášť.
39 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Závěr
Na první pohled je vidět, že se struktura naší práce liší od podoby předchozích. Téměř všechny dosavadní práce provedly nějaký teoretický úvod do problematiky a poté se věnovaly výčtu a popisu IDE a
CASE nástrojů, případně jejich vzájemné návaznosti. Tento přístup je jistě hodnotný, protože vyčerpávajícím způsobem mapuje dostupné možnosti, a navíc někdy přináší možnost srovnání v čase. Protože máme pocit, že rozdělení práce v tomto duchu by již nepřineslo nic nového, rozhodli jsme se
text členit spíše podle jednotlivých oblastí. Z tohoto pohledu jsme tedy psali o nástrojích pro konfigurační management, refaktoring, ladění, generování kódu a administraci a modelování MySQL databáze.
Zvláště rádi jsme za část pojednávající o možném budoucím fenoménu a sice SaaS CASE, což je jasné
splnění cíle vytyčeného v úvodu práce. Zpočátku jsme mysleli, že nenajdeme žádné zdroje ani nástroje, které by na tomto principu pracovali. Postupem času se ale povedlo dostatečně s touto problematikou seznámit a částečně ji popsat a zmapovat. Jak už je uvedeno v samotné práci, některé zmíněné
SaaS CASE nástroje nejsou úplně CASE nástroji, anebo se nacházejí v raném stádiu vývoje. Nicméně
se povedlo položit základy, na kterých bude možné v budoucnu stavět.
Jak vyplývá z předešlého odstavce, následující práce by se mohly dále zaměřit na SaaS CASE a přinést
popis jiných nástrojů, případně zmínit další vývoj námi uvedených. Není ani vyloučeno zpracování
SaaS CASE jako samostatného tématu práce. Kromě tohoto se lze zaměřit na další oblasti využití CASE
jako např. generování dokumentace. V neposlední řadě by bylo přínosné rozšířit námi zpracovaná
témata, přičemž se nabízí kupř. nástroje pro ladění, kde popisujeme pouze jeden nástroj.
40 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Literatura
[Brada05a]
BRADA, Přemysl. CASE systémy (stručný přehled). c2005. [cit. 2009-04-10+. Dostupné
z WWW: <http://www.kiv.zcu.cz/~brada/vyuka/files/aswi/slides/03-CASE.pdf>.
[Brada05b]
BRADA, Přemysl. Konfigurační management. c2005. [cit. 2009-04-10]. Dostupné
z WWW: <http://www.kiv.zcu.cz/~brada/vyuka/files/aswi/slides/08-scm.pdf>.
[Est94]
ESTUBLIER, Jacky.-CASALLAS, Rubby. The Adele Configuration Manager. c1994. [cit.
2009-05-02+. Dostupné z WWW: <http://wwwadele.imag.fr/Les.Publications/bookChapters/ADELE1994Est.pdf>.
[Gund04]
GUNDERLOY, Mike. Comprehensive CM with Razor. c2004. [cit. 2009-05-02]. Dostupné z WWW: <www.visible.com/Products/Razor/ComprehensiveCMwithRazor.pdf>.
[Intasoft]
Change Management. Systematically manage, control and document change. Intasoft. [cit. 2009-05-02+. Dostupné z WWW:
<www.intasoft.net/pdf/allchange_flyers/change_manage_tech_flyer.pdf>.
[ClearCase]
IBM Rational ClearCase, Version 7.1. IBM Corporation. [cit. 2009-05-02]. c2008. Dostupné z WWW: <http://www.ibm.com/common/ssi/fcgibin/ssialias?infotype=PM&subtype=SP&appname=SWGE_RA_RA_USEN_&htmlfid=R
AD10958USEN&attachment=RAD10958USEN.PDF>.
[Intasoftb]
AllChange Configuration Management Software. Intasoft. [online]. [cit.2009-05-02].
<http://www.intasoft.net/allchange_configuration_management.asp>
[Unicorn]
CASE & Development Tools. Unicorn. [online]. [cit. 2009-05-02].
<http://www.unicorn.eu/cz/produkty/technologies/index.php?id=15600>.
[Unl]
CASE tool index. [online]. [cit. 2009-05-02].
<http://www.unl.csi.cuny.edu/faqs/software-enginering/tools.html>
[Visible]
Company History. Visible. [online]. [cit. 2009-05-02].
<http://www.visible.com/Company/index.htm>.
[WikiCM]
Configuration management. Wikipedia, The Free Encyclopedia. [online]. [cit. 200904-10]. <http://en.wikipedia.org/wiki/Configuration_management>.
[Intasoftc]
Corporate brochure. Intasoft. [online]. [cit. 2009-05-02].
<http://www.intasoft.net/corpbrochure1.asp>
[ISCAS]
Jacky Estublier. ISCAS. [online]. [cit. 2009-05-02]. <http://www.icspconferences.org/cnsqa/jsp/html/spw/estublier.jsp>
[Telelogic]
Model Driven Development of Complex Systems and Services.IBM Corporation. [online]. [cit. 2009-05-02]. <http://www.telelogic.com/products/tau/>.
[Unicornb]
Profil společnosti. Unicorn. [online]. [cit. 2009-05-02].
<http://www.unicorn.eu/cz/ospolecnosti/profil.php>.
41 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
[WikiRat]
Rational Software. Wikipedia, The Free Encyclopedia. [online]. [cit. 2009-05-02].
<http://en.wikipedia.org/wiki/Rational_Software>.
[Visible]
Razor. Visible. [online]. [cit. 2009-05-02].
<http://www.visible.com/Products/Razor/index.htm>.
[Komix]
SMIL, Petr. Tým? Aha, už vím... [online]. [cit. 2009-04-10].
<http://www.komix.cz/Tisk/Clanky/Historie/Tym.aspx>.
[Adele]
Software Engineering Tools and Environments. Adele Team. [online]. [cit. 2009-0502]. <http://www-adele.imag.fr/>
[Telelogicb]
Telelogic. Wikipedia, The Free Encyclopedia. [online]. [cit. 2009-04-10].
<http://en.wikipedia.org/wiki/Telelogic>.
[DefCase]
Computer-Aided Software Engineering (CASE) Environments [online]. 2007 [cit. 200905-22+. Dostupný z WWW:
<http://www.sei.cmu.edu/legacy/case/case_whatis.html>.
[WhatIsCase]
MEECHAM, Bill. What is CASE? : A definition from Whatis.com [online]. 2005 [cit.
2009-05-22]. Dostupný z WWW: <http://searchciomidmarket.techtarget.com/sDefinition/0,,sid183_gci213838,00.html#>.
[WikiCase]
Computer-aided software engineering : Wikipedia, the free encyclopedia [online].
2009 [cit. 2009-05-22+. Dostupný z WWW: <http://en.wikipedia.org/wiki/Computeraided_software_engineering>.
[Fug93]
FUGETA, Alfonso. A classification of CASE technology. Computer [online]. 1993, vol.
1993, no. 12 [cit. 2009-05-16].
[Hunt99]
HUNT, Andy, THOMAS, David. From Journeyman to Master. [s.l.] : Addison-Wesley
Professional, 1999. 352 s. 978-0201616224.
[ViewPoints]
Viewpoints for Visual Studio .NET : Features [online]. 2008 [cit. 2009-04-23]. Dostupný z WWW: <http://www.gnomzsoftware.com/Viewpoints/Features.aspx>.
[CodeSmith]
CodeSmith Tools : Features [online]. 2008 [cit. 2009-04-24+. Dostupný z WWW:
<http://www.codesmithtools.com/features/overview.aspx>.
[MapForce]
Data Mapping Tool [online]. 2009 [cit. 2009-04-24+. Dostupný z WWW:
<http://www.altova.com/products/mapforce/data_mapping.html>.
[WikiSaaS]
SaaS : Software as a Service [online]. 2009 [cit. 2009-04-23+. Dostupný z WWW:
<http://cs.wikipedia.org/wiki/SaaS>
[WebSeqDi]
Websequencediagrams [online]. c2008 [cit. 2009-04-23+. Dostupný z WWW:
<http://www.websequencediagrams.com/>
[gModeler]
gModeler [online]. c2003 [cit. 2009-04-23+. Dostupný z WWW: <
http://www.gskinner.com/gmodeler/app/run.html >
42 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
[ProjDraw]
Autodesk. Project Draw [online]. 2009 [cit. 2009-04-23+. Dostupný z WWW: <
http://draw.labs.autodesk.com/ADDraw/draw.html >
[Flowchar]
Flowchart.com [online]. c2007-2009 [cit. 2009-04-23+. Dostupný z WWW:
<http://www.flowchart.com/>
[Gliffy]
Gliffy [online]. c2008 [cit. 2009-04-23+. Dostupný z WWW: http://www.gliffy.com/
[White07]
WHITEHORN, Mark. MySQL – is this database fit for the Enterprise? 2007-03-18. [cit.
2009-09-5]. Dostupné z WWW:
<http://www.theregister.co.uk/2007/03/18/mysql_enterprise_fit/>
[Quest]
Quest Software. Toad® for MySQL Features. [cit. 2009-09-5]. Dostupné z WWW:
<http://www.toadsoft.com/toadmysql/Features.htm>
[MyDown]
MySQL AB. MySQL Workbench Downloads. [cit. 2009-10-5]. Dostupné z WWW:
<http://dev.mysql.com/downloads/workbench/5.1.html>
[Zinner07]
ZINNER, Michael. MySQL Workbench Editions. 2007-11-09. [cit. 2009-12-5]. Dostupné
z WWW: <http://dev.mysql.com/workbench/?p=13>
[MyShop]
MySQL AB. MySQL Online Store. [cit. 2009-12-5]. Dostupné z WWW:
<http://globalspecials.sun.com/store/mysql/DisplayHomePage/>
[Debugging]
Debugging [online]. 2009 [cit. 2009-05-26+. Dostupný z WWW:
<http://en.wikipedia.org/wiki/Debugging>.
[Swing]
Swing Sightings Volume 9 [online]. 2009 [cit. 2009-05-26+. Dostupný z WWW:
<http://java.sun.com/products/jfc/tsc/sightings/S09.html>.
[ReSharper]
ReSharper : The Most Intelligent Add-In To Visual Studio 2008 [online]. 2000-2009
[cit. 2009-05-26]. Dostupný z WWW: <http://www.jetbrains.com/resharper/>.
[LinJournal]
CHARNEY, Reg. Programming Tools : Refactoring [online]. 2005 [cit. 2009-05-26].
Dostupný z WWW: <http://www.linuxjournal.com/article/8087>.
[IBMRefactor] GALLARDO, David . Refactoring for everyone : How and why to use Eclipse's automated refactoring features [online]. 2003 [cit. 2009-05-26+. Dostupný z WWW:
<http://www.ibm.com/developerworks/library/os-ecref/>.
[ExtractClass] FOWLER, Martin. Refactoring : Extract Class [online]. [2008] [cit. 2009-05-26]. Dostupný z WWW: <http://www.refactoring.com/index.html>.
[Fowler03]
Fowler, Martin a kol.: Refaktoring: zlepšení existujícího kódu, Grada Publishing a.s.,
2003
[Refaktor]
Refaktorování [online]. 2009 [cit. 2009-05-26+. Dostupný z WWW:
<http://cs.wikipedia.org/wiki/Refaktorov%C3%A1n%C3%AD>.
[SoftICE]
WindowsITPro, SoftICE. [cit. 2009-12-5]. Dostupné z WWW:
<http://windowsitpro.com/articles/index.cfm?articleid=5314&cpage=15>
43 / 44
Nástroje pro vývoj aplikací a jejich vazba na CASE
LS 2008/2009
Seznam obrázků
Obrázek 1 – Intasoft AllChange, zdroj: [Intasoftb] ...............................................................................................9
Obrázek 2 – Ukázka vzoru pro refactoring, zdroj: [ExtractClass] ............................................................... 11
Obrázek 3 – Eclipse Java Development Toolkit, zdroj: [IBMRefactor] ...................................................... 13
Obrázek 4 –ReSharper, zdroj: [ReSharper] .......................................................................................................... 14
Obrázek 5 – RefactorIT, zdroj: [Swing] .................................................................................................................. 15
Obrázek 6 – SoftICE, zdroj: [SoftIce] ....................................................................................................................... 17
Obrázek 7 – Entity viewpoint, zdroj: [Viewpoints] ........................................................................................... 20
Obrázek 8 – CodeSmith IDE, zdroj: [CodeSmith] ............................................................................................... 22
Obrázek 9 – CodeSmith – doplňování kódu, zdroj: [CodeSmith] ................................................................ 22
Obrázek 10 – Altova MapForce IDE, zdroj: [MapForce] .................................................................................. 24
Obrázek 11 – Výsledek porovnání dat dvou tabulek, zdroj: [Toad for MySQL] .................................... 27
Obrázek 12 – Porovnání vytvářecích skriptů tabulky, zdroj: [Toad for MySQL] .................................. 29
Obrázek 13 – Ukázka jednoduchého diagramu, zdroj: [MySQL Workbench] ........................................ 31
Obrázek 14 – Web sequence diagrams, zdroj: [WebSeqDi] .......................................................................... 34
Obrázek 15 – gModeler, zdroj: [gModeler]........................................................................................................... 35
Obrázek 16 – Project Draw 0.7.9, zdroj: [ProjDraw] ........................................................................................ 36
Obrázek 17 – Flowchart.com beta 2.1, zdroj: [Flowchar] .............................................................................. 37
Obrázek 18 – Gliffy Online, zdroj: [Gliffy] ............................................................................................................. 38
44 / 44

Podobné dokumenty

Nástroje pro vývoj aplikací a jejich vazba na case

Nástroje pro vývoj aplikací a jejich vazba na case Všechny výše zmíněné názvy ovšem vyjadřují totéž a to sadu nástrojů a prostředků pro podporu modelování a automatizaci specifikací požadavků, návrhů, tvorbě analýz, programování, kódování, údržbě a...

Více

4IT_450 Přehled CASE nástrojů na tuzemském trhu

4IT_450 Přehled CASE nástrojů na tuzemském trhu zjednodušuje jeho osvojení a využívání v praxi. Uživatel má při modelování možnost výběru ze tří notací: CSC, UML Activity Model a BPMN. Procesně orientovaná CSC Catalyst Notation je vhodná jako pr...

Více

Co je to warez

Co je to warez také své místo, říká se mu tu ale carder (od credit card). Cracker musí perfektně rozumět assembleru, při své práci proniká až do samotného jádra programu, do zdrojového kódu. Jedná se o nadprůměrn...

Více

Co s tunami informací?

Co s tunami informací? V současné době je patrný trend integrovat více typů těchto nástrojů do samostatných systémů (např. podpora analýzy a návrhu, kódování a testování v nástroji Together ControlCenter) nebo do komplex...

Více

Srovnání PHP s ASP.NET

Srovnání PHP s ASP.NET Jaký je smysl předchozího odstavce? Ukazuje, jak nejednotný je pohled na pojem webové aplikace a jak je obtížné vyhnout se sporným tvrzením. Tak např. první definice vyžaduje, aby výsledným formáte...

Více

AIT White Paper DOORS - Požadavky pod kontrolou

AIT White Paper DOORS - Požadavky pod kontrolou Tel.: 261 225 072, fax: 261 211 380, e-mail: [email protected], www.ait.cz

Více

Souhrnná metodika pro implementaci algoritmu pro stanovení

Souhrnná metodika pro implementaci algoritmu pro stanovení proudu v pravidelných intervalech pro daný silniční úsek. Druhým přístupem je využití dat z plovoucích vozidel, což jsou v případě výzkumné činnosti stopy GNSS pozice. V ideálním případě plovoucí v...

Více

Ezetil MOC 2012

Ezetil MOC 2012 EZetil® KC Professional 6 EZetil® KC Professional 12 EZetil® KC Professional 18 KC Professional Piknik taška s nádobím, EZetil® pro 4 osoby KC Professional Piknik taška s nádobím, EZetil® pro 2 oso...

Více