VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE
NÁSTROJE PRO VÝVOJ APLIKACÍ A JEJICH VAZBA NA CASE
Zuzana Kabuďová, Matej Paluš, Martin Uřídil, Richard Nagrant, Miroslav Králik, Pavel Krofika
30. prosince 2011
1. Úvodem Informační a komunikační technologie prodělávají v současnosti nebývalý rozvoj a ovlivňují kaţdodenní ţivot jednotlivců, podniků, států, mezinárodních institucí a tím pádem vlastně celého lidstva. Jejich úloha v dnešním globalizujícím světě je nezastupitelná, svět nikdy nebyl tolik propojen, vzdálenosti tolik redukovány a aktivity jedněch tolik propojené s aktivitami druhých, byť od sebe oddělených polovinou planety. Cílem této práce ovšem není nahlíţet na ICT jako na globální výzvu, ale jít přesně na opačný konec, nebo spíše na začátek celé problematiky, tedy podívat se na vlastní tvorbu a vývoj aplikací. Vědomi si toho, ţe navazujeme na práci kolegů z předchozích ročníků, se pokusíme teoreticky vymezit toto téma (úskalím této oblasti je právě to, ţe naše práce nepřinese pro čtenáře asi tolik nového), podívat se na vývoj a situaci na trhu, nastínit moţné trendy, a zejména blíţe analyzovat vybrané CASE a IDE nástroje a ukázat na jejich vzájemné vazby a moţnosti plynoucí z jejich propojení (zde naopak naše práce můţe oscilovat na zcela opačném konci stupnice přínosnosti). Konkrétně tedy druhá a třetí kapitola vysvětluje, co to jsou nástroje CASE a integrovaná vývojová prostředí a ukazuje jejich obecné charakteristiky a dělení. Ve čtvrté kapitole se věnujeme popisu konkrétních nástrojů CASE a integrovaným prostředím, jeţ se nám pro účely této práce zdály relevantní. V páté kapitole se pak podíváme na moţnosti vzájemného propojení obou skupin nástrojů. Šestá kapitola je krátkým zamyšlením nad tím, zda je výhodnější separátní vyuţití CASE a IDE, nebo jejich integrace v jeden produkt, a v poslední sedmé kapitole se snaţíme identifikovat směr budoucího vývoje v této oblasti. Právě poslední tři zmíněné kapitoly povaţujeme za klíčovou a nejpřínosnější část naší práce. Naším hlavním cílem je tedy ukázat vazby mezi oběma skupinami nástrojů, poukázat na výhody a nevýhody separátního či integrovaného řešení a pokusit se odpovědět na otázku, kam bude směřovat budoucí vývoj.
1
2. Charakteristika CASE Jak jiţ bylo řečeno, ţijeme v době, ve které všechno musí jít rychle, s tím jak roste poptávka po nových výrobcích, které mají nahradit ty jiţ zastaralé, je nezbytné, aby tyto nové výrobky byly vyvíjeny stejně akcelerujícím tempem. Stejně tak jako je většina výrobních procesů podporována informačními technologiemi (computer aided), tak i návrh samotného software je v souladu s tímto systémem realizován pomocí počítačového návrhu (Crow, 2011). A jeho vývoj by měl pokud moţno být rychlý a správný. Čímţ se dostáváme ke stěţejnímu bodu naší práce, čili Computer – Aided Software Engineeringu (zkráceně CASE) termínu, který autor Meecham (Meecham, 2000) definuje jako „…is the use of a computer-assisted method to organize and control the development of software, especially on large, complex projects involving many software components and people. Using CASE allows designers, code writers, testers, planners, and managers to share a common view of where a project stands at each stage of development“. Čili volně přeloţeno do češtiny - jako pouţití počítačem podporovaných metod vedoucí k organizaci a kontrole vývoje software, zejména velkých, komplexních projektů, které zahrnují mnoţství softwarových komponent a lidí. Pouţití nástrojů CASE umoţňuje, aby inţenýři, programátoři, testeři, plánovači i manaţeři mohli sdílet společný pohled na projekt v celé jeho komplexnosti a v kaţdém stádiu jeho vývoje. CASE můţeme také definovat jako usměrněný a strukturovaný přístup k vývoji software i celých informačních systémů. Nástroje CASE podstatně redukují, či eliminují řadu problémů s designem a vývojem, které se vyskytují u středně velkých aţ velkých softwarových projektů a umoţňují vývojářům zaměřit se více na systémovou architekturu, neţ na vlastní implementaci (Lo, 2006). Nástrojů CASE můţeme najít velké mnoţství a to jak pro strukturální, tak pro objektově orientované modelování, některé jsou jiţ integrovány do moderních vývojových prostředí. Jako většina věcí v ICT světě, ani CASE nejsou samospásné. Aby jejich pouţívání přinášelo maximální efekty, musí být navázány na metodiku pouţívanou ve firmě, protoţe stále je nutné mít na paměti, ţe se jedná pouze o jednu částečku zapadající do mozaiky vývoje, kde je nezbytné také řízení projektu, zavedení a plnění metodiky, vyuţití odborníků na jednotlivé oblasti (analytik, návrhář, programátor, tester), pouţití a vyhodnocení metrik apod. (Procházka, 2004). 2
3. Charakteristika nástrojů pro vývoj aplikací Nejčastější definicí (Scriptol, 2011) integrovaného vývojového prostředí se kterou se setkáváme je, ţe se jedná o nástroje, které pomáhají programátorům při vývoji softwaru. Slouţí k přehlednému a snadnému vytváření aplikací. Můţeme se setkat i s tím, ţe se jedná o soubor nástrojů, které podporují vývoj aplikací, kteráţto definice, jako by a priori nepředpokládala, ţe vývojové prostředí je jednolitý produkt, ale integrace několika nástrojů v jeden. Jak uvidíme v dalších kapitolách, dnešní vývoj nese známky právě této vlastnosti. Cílem těchto nástrojů je zvýšit produktivitu programátorů například tím, ţe minimalizují čas jinak nezbytný na přepínání mezi jednotlivými činnostmi, které jsou součástí ţivotního cyklu vývoje softwaru (editace, kompilace, testování, verzování, dokumentace, debugging…), nebo šetří čas potřebný k naučení se práce s různými nástroji, které jsou potřeba v jednotlivých etapách ţivotního cyklu. IDE obvykle obsahují (Scriptol, 2011): • Grafické uţivatelské prostředí (které umoţňuje zejména vybírat soubory, definovat volby, či spouštět operace) • Editor zdrojového kódu • Kompilátor • Upozorňování na chyby • Podporu automaticky se opakujících úloh • Podporu dokumentace a řízení projektu a další
Hlouběji se problematice IDE věnují práce předchozích týmů, jmenovitě například práce nesoucí stejný název ZS 2009/2010 (JAKOUBEK a kol., 2009) či LS 2009/2010 (AXMANN a kol., 2010).
3
4. Představení vybraných produktů Zde uvádíme konkrétní produkty, které jsme si vybrali a na kterých budeme demonstrovat výhody propojení a návaznosti.
4.1. Nástroje CASE 4.1.1. Enterprise Architect 9.2 Jedná se o produkt společnosti Sparx Systems, který nabízí moţnosti týmového celopodnikového modelování, designu a řízení, zaloţený na platformě UML 2.4.1 a standardech k tomu vztaţených. V principu pokrývá celý ţivotní cyklus vývoje systému, od zadání poţadavku přes analýzu současného stavu, návrh modelů, testování a údrţbu, vše s vyuţitím diagramů UML. Také umoţňuje tvorbu přehledné dokumentace. V dnešní době počet uţivatelů tohoto produktu přesahuje číslo 250 000. Důvody, proč jsme vybrali právě tento produkt, jsou především následující: • Intuitivnost • Nízká cena • Počet uţivatelů • Přehledné uţivatelské reference • Podpora MDA transformace • Reverzní inţenýrství z mnoha populárních DBMS systémů (Oracle 9i,10g, SQL Server, MySQL, Access apod.) • Správa verzí
4
Obr. 4-1Uţivatelské rozhraní aplikace Enterprise Architect Jak uvádí výrobce produktu (Sparx Systems Pty Ltd, 2011), Enterprise Architect poskytuje nespočet vlastností, z nichţ poskytujeme hlavní výčet: • Podpora všech 14 diagramů chování a struktury ve verzi UML 2.3 EA podporuje celý ţivotní cyklus modelování a vývoje pro: • Obchodní a IT systémy • Softwarové a systémové inţenýrství • Zabudovaný vývoj v reálném čase Rychlost, stabilita a výkon: • Rychlé nahrávaní velkých modelů • Vysoce výkonný repositář modelů při práci v týmech Podpora MDA transformace: • Transformace jednoduchých modelů do komplexních cílů • Moţné vyuţití šablon, které lze jednoduše upravit • Vestavěná transformace pro různé DDL, dále pak jazyky C#, Java, EJB, XSD Rozsáhlá a flexibilní dokumentace: • WYSIWYG šablony pro generování dokumentů • Podpora šablon pro všechny elementy EA a jejích vlastnosti • Flexibilní moţnosti výstupů s filtry a kritérii výběru • Vysoká kompatibilita s dokumenty ve formátu Word
5
• Moţnost výstupu i v podobě HTML, který pak lze přímo publikovat na webu • Moţné ukládaní modelů přímo do PDF Datové modelováni: • Reverzní inţenýrství z mnoha populárních DBMS systémů (Oracle 9i,10g, SQL Server, MySQL, Access apod.) • Modelování tabulek, sloupců, primárních či cizích klíčů, referenční integrity apod. • Generování SQL skriptů pro vytvoření cílové datové struktury • Moţnost sdílet EAP soubory různými způsoby • Podpora několika různých DBMS repositářů jako Oracle i9, Oracle 10g, SQL Server, MySQL Podpora správy verzí: • Integrace Subversion • Úrovňové verzování balíčků • Všechny verzované balíčky uloţené v standardním XML formátu pro rychlou přenositelnost a jednoduchou manipulaci • Reverzní inţenýrství kompilovaných souborů z Javy a .NET • Podpora importu .JAR souborů Podpora XML schémat: • Zabudovaný profil XSD pro zjednodušení vývoje XML schémat pomocí UML • Generování XML schémat přímo z UML modelu • Transformace jednoduchých modelů do XSD pomocí MDA transformace, následné generování XSD souborů • Import/export modelů v XML formátu • Podpora XML 1.0, 1.1, 1.2 a 2.1 • Export kompletních EA modelů do XML Správa poţadavků: • Podpora agregace, kompozice, vkládání a jiných komplexních vztahů mezi poţadavky • Hierarchie pro detailní zobrazení propojení mezi elementy • Plná podpora trasování pomocí hierarchických a maticových zobrazení Uţivatelské zabezpečení: 6
• Zabudovaná uţivatelská bezpečnost • Podpora skupin uţivatelů • Velké mnoţství oprávnění Podpora testování: • Unit testy • Integrační testy • Systémové testy • Akceptační testy • Testy různých scénářů • Generováni výsledků v RTF formátu Podpora pro projektový management: • Alokace úloh pomocí Ganttova diagramu • Projektový kalendář zdrojů • Plánování úloh Ceny verzí Enterprise Architect dle (Sparx Systems Pty Ltd, 2011): a) Edice EA Desktop
Professional
Corporate
Mnoţství
Cena
Mnoţství
Cena
Mnoţství
1-4
$135
1-4
$199
1-4
$239
5-19
$120
5-19
$189
5-19
$219
20-100
$110
20-100
$179
20-100
$199
101+
$95
101+
$165
101+
$185
Cena
Tabulka 1 – ceník edic Enterprise Architect *Licenční klíč platí 12 měsíců od koupě produktu. b) Edice vylepšení a balíčky Business Softw. Engineering Mnoţství
Cena
Systémové inţenýrství
Ultimate
Mnoţství
Cena
Mnoţství
Cena
1-4
$599
1-4
$599
1-4
$699
5-19
$539
5-19
$539
5-19
$629
7
20-100
$479
20-100
$479
20-100
$559
101+
$419
101+
$419
101+
$489
Tabulka 2 – Ceník edic vylepšení a balíčků
4.1.2. Power Designer
Power Designer je produktem společnosti Sybase Inc. Nabízí sadu modelů a nástrojů pro návrh a tvorbu informačních systémů. Modelů, které je v něm moţné vytvářet, existuje celá řada, návrh však není podpořen ţádnou konkrétní metodikou. Podporuje jak strukturované, tak objektové modelování. Power Designer jedinečně kombinuje několik standardních modelovacích technik (UML, Business Process Modelling a datové modelování) spolu s podporou vývojových prostředí jako je .NET, WorkSpace, PowerBuilder, Java či Eclipse. Spolupracuje s více neţ 60 různými RDBMS (Relational Database Management Systems). Samotný program má široké vyuţití v komerční sféře a proto není volně dostupný ke staţení. Všeobecné přínosy Power Designeru jsou hlavně ve zvýšení produktivity prostřednictvím součinnosti byznysu a IT, zajištění otevřené podpory pro heterogenní prostředí jakéhokoliv typu, podpora standardů a regulací nebo také schopnost dokumentovat stávající systémy a tím i celou architekturu. Na trhu je uţ od září roku 2011 verze s číslem 16. Tak jako v kaţdé verzi, tak i nyní přinesla firma Sybase do tohoto nástroje několik novinek: • Propracovaný interface (automaticky skrývané lišty, rozbalovací sekce, pouţití záloţek, plně konfigurovatelné nabídky, toolbary a další) • Vylepšený repositář (enterprise glossary, enterprise library, Role-Based Interface Customization, atd.) • Vylepšená editace a zobrazování symbolů
8
• Automatické propojení prvků • Podpora moderního prostředí (Windows 64bit, Eclipse 3.6, MS Office 2010 & Visio 2010) • Rozšířená podpora o nové RDBMS • Přidání rychlého „quick search“ vyhledávání a Impact analysis přímo z menu portálu Klíčové vlastnosti Power Designeru spočívají hlavně ve schopnosti udělat a zakreslit jakýkoliv model. Tento nástroj obsahuje čtyři základní typy modelovacích technik: • Konceptuální datový model (CDM - Conceptual Data Model) – pro modelování logické struktury databáze. CDM je moţné automaticky převést (konvertovat) na PDM nebo OOM (zkratky viz dále). • Fyzický datový model (PDM - Physical Data Model) – pro modelování fyzické struktury databáze (uvaţuje se struktura dat a typ databáze). PDM lze konvertovat na CDM nebo OOM. Na základě PDM je moţné generovat databázi. • Objektový model (OOM - Object Oriented Model) – objektově orientovaný přístup pro modelování. Následně je moţné generovat kód ve zvolném jazyce. OOM lze konvertovat na CDM nebo PDM. • Procesní model (BPM - Business Process Model) – pro modelování business procesů v organizaci. Do jednoho modelu je moţné vytvářet jak strukturu organizace, tak i vlákna procesů. Procesy je moţné mapovat na organizační jednotky. Přejdeme však z teorie na praktickou ukázku, jak vlastně Power Designer funguje. Byznys svět se pořád mění a schopnost rychle odpovědět na tyto změny (tj. změny na trhu, v směrnicích nebo v technologiích) dělá hlavní rozdíl mezi úspěchem a selháním. Modelování přináší hodnotu do dnešního byznysu podniku tím, ţe umoţňuje vizualizaci, dokumentování a porozumění dopadu konkrétní změny ještě předtím neţ tato změna nastane. Jediné co je třeba udělat, je vytvořit model jednoduchého datového prostředí a vyvinout scénář. Stává se ale velmi zřídka, ţe firma můţe naimplementovat pouze nejjednodušší řešení a spokojit se s ním. Power Designer se proto skládá ze špičkové datové architektury, informační architektury a podnikové architektury. Všechny 3 architektury spolu souvisí a tvoří jeden celek. Můţeme si to představit jako následující model. Všechny domy ve městě jsou data a cesty, které spojují tyto domy, představují datovou architekturu. Kdyţ přejdeme o úroveň výš, dostaneme se k hlavním cestám, které spojují jednotlivé méně významné cesty. Toto si můţeme představit jako informační architekturu. Poslední úrovní nad informační 9
architekturou je podniková architektura. Ta se dá představit jako letiště, sousedící města nebo kopce, které dotvářejí celý model reality. Vraťme se ale zpět k datové architektuře. Power Designer je leader datového modelování od roku 2004, protoţe napomáhá analýze, manipulaci a pochopení metadat.
Obr. 4-2Datová architektura Power Designeru Jak ukazuje obrázek výše, byznys poţadavky jsou přímo spojené s datovou, byznys, aplikační a technickou architekturou. Mezi modely datové architektury patří konceptuální, logický a fyzický model kombinovaný se specializovaným modelem datových skladů a pohybem dat. Power Designer nabízí i podporu pro více jak 60 relačních databázových systémů. V informační architektuře nabízí tento CASE nástroj modelově řízený přístup. To následně vede k větší informovanosti při sloţitých rozhodovacích procesech a zajišťuje větší agilnost v byznysu.
10
Obr. 4-3Modelově řízený přístup k informační architektuře Prostřednictvím řízení metadat, dává Power Designer schopnost přiblíţit, nebo oddálit celý datový model najednou. Hned jakmile uţivatel vidí, odkud data přichází, kdo je vlastní a kde se ukládají, můţe tato data řídit mnohem lépe a zajistit tak jejich větší přesnost a spolehlivost. Na této vrstvě architektury pomáhá Power Designer sniţovat rizika a náklady spojené se změnou. Na závěr této podkapitoly se dostáváme k podnikové architektuře. Je to kombinace strategie, lidí, procesů, dat a technologií, které tvoří celý podnik. Podniková architektura je umění a věda zároveň, jeţ slouţí k zachycení a definování byznysu, modelováním optimálních výsledků. Samozřejmě, ţe na zachycení základních věcí postačuje i Excel nebo papírové nálepky, ale ve snaze zaznamenat rozsáhlejší model reality není Excel nejlepší volbou. Integrace výsledků modelování je jednou z nejdůleţitějších vlastností, kterou by měl splňovat nástroj pro modelování podnikové architektury. Power Designer vyuţívá společné sdílené úloţiště a napomáhá tak k integraci jednotlivých výsledků (Sybase, 2011).
4.1.3. Nástroje Visual Paradigm Společnost Visual Paradigm je jednou z vedoucích firem v oblasti nástrojů pro vývoj a podporu software. Její hlavní činností je tvorba, prodej a následná podpora balíku nástrojů CASE, který společnostem usnadňuje proces tvorby software, zvyšuje kvalitu výsledku a maximalizuje ROI. Tolik o sobě tvrdí výrobce sám. A můţeme říci, ţe realita tuto skutečnost skutečně potvrzuje. Balík nástrojů CASE od tohoto výrobce tvoří kompletní mix produktů, který pokrývá potřeby většiny dnešních firem. Jedná se o tyto oblasti: • Softwarový návrh • Integrace • Nasazení 11
• Podpora agilního a týmového vývoje • Návrh databází • Modelování business procesů Tyto oblasti jsou pokryty produkty, dohromady tvořící balík nástrojů, který společnost nazývá Visual Paradigm suite. Celý ţivotní cyklus aplikace (software) podpořený jednotlivými produkty z tohoto balíku můţeme vidět na následujícím obrázku. Z toho je dobře patrné, jak do tohoto sloţitého procesu postupně vstupují různé role pracovníků a vyuţívají výstupy z nástrojů Visual Paradigm nebo jim naopak vstupy poskytují a na jejich základě vytvářejí modely.
Obr. 4-4Portfolio produktů Visual Paradigm
12
Visual paradigm for UML Jedná se o zřejmě nejvyuţívanější nástroj od této společnosti, coţ je pravděpodobně dáno tím, ţe v sobě zahrnuje jednak 13 diagramů standardu UML (jmenovitě: class, use case, sequence, communication, state machine, activity, component, deployment, package, object, composite structure, timing a interaction diagram), zároveň k jeho oblíbenosti přispívá i přítomnost funkčnosti pro sběr poţadavků, modelování business procesů dle standardu BPMN 2.0 a také datové modelování. Pro datové modelování jsou podporovány ER diagramy a ORM (object relational mapping) diagramy, které slouţí pro modelování vazeb mezi třídami z objektově orientovaného světa a entitami ze světa databází. Tento nástroj je určen jak pro analytiky, tak i pro vývojové týmy. Kromě vyjmenovaných klíčových funkcí integruje i jiné praktické vlastnosti jako je moţnost sdílení kódu (s podporou několika různých prostředí), automatické generování koster kódu, tvorbu dokumentace či konzistenční matice. Tvůrci tohoto komplexního nástroje nezapomněli ani na podporu dnes rozvíjejícího se oboru a tím je Enterprise Architecture. Tato specializace dnes bývá rozvíjena ve formě různých metodik a frameworků, z nichţ nejznámější je pravděpodobně Togaf. Ten bohuţel v nástroji VP for UML není implementován, nalezneme zde ale jiný relativně známý rámec – Zachman Framework. Database Visual architect Je pravděpodobně druhým nejpouţívanějším nástrojem od společnosti Visual Paradigm. Jeho hlavní doménou pouţití jsou databáze, tedy jejich návrh, tvorba a údrţba. To vše včetně podpory dnes populárního přístupu objektově-relačního mapování. Zároveň i tento produkt bohatě podporuje týmovou spolupráci a automatické generování dokumentace. Business Process Visual Architect Tento nástroj se specializuje na doménu modelování business procesů a aktivitu s tím spojenou. Především je potřeba zmínit moţnost generování popisu business procesů ve vykonatelném jazyce BPEL. Velkým přínosem tohoto produktu je také jeho poskytnutí prostředků pro správu tzv. Business glossary. Právě řízení, správa a definice pojmů je v oblasti návrhu velkých softwarových systémů a systémů podporujících sloţitější podnikání klíčovou záleţitostí. Agilian Cílem nástroje Agilian je podpora agilního přístupu k vývoji software, a to jak při vývoji samotném, tak také při jeho testování. Právě odlišné způsoby testování k agilním přístupům patří. Visual paradigm SDE
13
Posledním, avšak v souvislosti s tématem naší práce nejdůleţitějším produktem této společnosti, je Visual paradigm SDE (Smart Development Environment). Právě tento produkt totiţ umoţňuje plně propojit a vyuţít kvalit CASE s integrovaným vývojovým prostředím. Nejedná se o samostatný produkt, ale o sadu doplňků pro nejrozšířenější vývojová prostředí. Konkrétně jsou podporována tato prostředí: • Visual Studio • Eclipse • NetBeans • IntelliJ IDEA SDE prostřednictvím doplňků rozšiřuje funkčnost vývojových nástrojů o funkce CASE jako je sběr poţadavků, systémová analýza a databázový návrh. Zároveň jsou doplňky plně integrovány s vývojovými prostředími, a proto umoţňují automatické generování kódu na základě návrhu modelů a automatické generování dokumentace. Vzhledem k tomu, jak tento nástroj vytváří vazbu mezi IDE a CASE, se k němu vrátíme v 5. kapitole a na příkladech si ukáţeme jeho vyuţití. Nakonec je třeba poznamenat, ţe tato společnost si velmi dobře uvědomuje dnešní potřeby klientů a snaţí se drţet krok s nejnovějšími trendy ve všech oblastech. O tom svědčí souběţná podpora jak agilního vývoje, tak i návrhu Entreprise Architecture. Přestoţe v některých oblastech nejsou implementovány všechny dnes dostupné technologie a rámce (např. jiţ zmiňovaný Framework Togaf nebo v případě objektově relačního mapování je podporován pouze Framework Hibernate) tak výrobce své klienty nijak neomezuje. Současně jsou podporovány jazyky Java i C# nebo v oblasti sdílení kódu jsou podporovány technologie CVS, Subversion a další.
4.1.4. Astah (Change Vision, 2011) Astah, který většina zná pod názvem JUDE, je UML modelovací nástroj vytvořený Japonskou společností Change Vision. Je distribuovaný ve třech různých edicích, které nabízí různě obšírnou funkčnost a vlastnosti, viz níţe. O kvalitách tohoto softwaru by nemělo být pochyb, neboť mezi jeho uţivatele patří mnoho významných společností, jako je např.: Amazon, Cisco, Google, GE Healthcare, Nyse, Verizon, Oracle, HP a mnoho dalších. Systémové požadavky Podpora Windows, Mac a Linux a následujícími konfiguracemi: • Windows
14
o Windows XP, Vista a 7 (Vista 64bit a XP 64bit verze nejsou podporovány) o Procesor s kapacitou minimálně 1GHz, 512 RAM (doporučená je alespoň 1GB) o 400MB diskového prostoru o JAVA 6 (Aktualizace 16) nebo starší • Mac o Mac OS x 10.6.2 nebo starší o Procesor Intel o 1GB RAM (2GB jsou doporučovány) o 400MB diskového prostoru o JRE 1.6.0_20 nebo starší • Linux o Ubuntu 10.10, Maverick Meerkat nebo CentOS 5.5 (Debian GNU, Linux 5.0.6, Fedora 13 nejsou podporovány) o Oracle JDK 6 (aktualizace 22) nebo starší o GNOME prostředí
Produkty • Astah Community • Astah UML • Astah Professional
Verze Astah Community je jedním z nejlepších free add-on nástrojů pro UML modelování, který je moţné pouţít ihned po stáhnutí softwaru. Vyznačuje se rychlým a jednoduchým návrhem UML diagramů. Je charakteristická především následujícími funkcemi: • Podpora UML 2. x 15
o Class diagramy o UseCase diagramy o Sekvenční diagramy o Aktivity diagramy o Stavové diagramy o Kolaborační diagramy o Diagramy komponent o Deployment diagramy o Kompoziční struktury o Objektové a balíkové diagramy • Okamţitě navrhuje vlastnosti modelům • Automatické zarovnání aktérů, Use Cases a Classes • Exportovaní diagramů do PNG a JPG • Moţnost tisku • Různé pluginy • Lokalizace GUI • Úpravy zarovnaní a velkosti
Verze Astah UML je rozšíření verze Astah Community a seznam funkcí a vlastností doplňuje o nesledující: • Moţnost modelování a návrhu myšlenkových map • JAVA/C#/C++ modelování a moţnost exportu a importu kódu • Získávání a editování modelů pouţitím API • Konverze UML modelů do myšlenkových map a opačně • Vyhledávaní v diagramech • Skoky ke konkrétním diagramům ze stromové struktury • Hyperlinky 16
• Funkce Najdi/Nahraď • Kopírovaní a vkládaní do dokumentů Microsoft Office • Moţnost přizpůsobit ikony stereotypů • Podpora týmového vývoje (uzamykání souborů a spájení) • Různé tiskové moţnosti a náhled • Exportování do JPEG, PNG, EMF, SVG souborů, RTF dokumentů, HTML a CSV
Astah Professional rozšiřuje funkčnost verze Community a UML následovně: • Podpora ER diagramů • Flowchart diagramy • CRUD diagramy • DFD diagramy • Tabulky a diagramy poţadavek • Konverze UML modelů do myšlenkových map, ER a DFD modelů a opačně • Sledovatelnost map • Podporu vývoje rozšiřuje o moţnost porovnání modelových/diagramových projektů a referenční řízení modelů • Vstupy/Výstupy rozšiřuje o moţnost SQL exportu, XMI • Funkce DRE (Database Reverse Engineering) • Moţnost tvorby reportů tzv. Entity Definition A mnohem více (user friendly ovládání – drag-and-drop apod.)
17
Obr. 4-5Ukázky produktů Astah
4.2. Nástroje pro vývoj aplikací 4.2.1. Eclipse
Projekt Eclipse vznikl původně v roce 2001, kdy byl vytvořen společností IBM s podporou konsorcia softwarových společností. Letos v listopadu tak probíhají oslavy 10 let existence tohoto projektu (Eclipse Foundation, 2011). Eclipse je opensource vývojová platforma pod licencí EPL (Eclipse Public License), která je primárně určena pro programování v jazyce Java. Tato platforma je tvořena vývojovým prostředím, neboli IDE a řadou pluginů, jimiţ se dá následně rozšiřovat. To je 18
největší výhodou tohoto software, a také jedním z důvodů, proč Eclipse patří mezi nejoblíbenější nástroje svého druhu. Základní verze Eclipse obsahuje pouze důleţité nástroje pro vytváření Java kódu, jako jsou kompilátor, debugger apod. Na stránkách Eclipse lze stáhnout buď základní verzi, jen se všemi důleţitými komponentami nebo i balíčky jiţ připravené pro pouţití s jinými programovacími jazyky, jako jsou např.: • Eclipse IDE for C/C++ Developers • EclipseIDE for PHP Developers • Eclipse IDE for Java Script Developers • Vyuţití dalších jazyků je zpřístupněno přes instalaci jednotlivých pluginů Všechny instalace Eclipse lze provozovat na různých operačních systémech, a to: • Windows • Linux • Mac OS X Kaţdým rokem v červnu je vydáván nový „release" Eclipse, ve kterém je obsaţena samotná platforma spolu s dalšími Eclipse projekty. Jednotlivé „releasy“ byly vydávány takto (Eclipse Foundation, 2011): Release
Verze platformy
Rok
Ganymede
3.4
2008
Juno
4.2
2012
Europa
3.3
2007
Indigo
3.7
2011
Callisto
3.2
2006
Helios
3.6
2010
Eclipse 3.1
3.1
2005
Galileo
3.5
2009
Eclipse 3.0
3.0
2004
Jak je jiţ zmíněno dříve, největší výhoda Eclipse je právě ve vyuţívání pluginů. Mezi ty hlavní patří zejména ty pro práci s jinými programovacími jazyky, tedy např. Ada, C, C++, Cobol, Perl, PHP, Python apod. Dále lze základní verzi rozšířit o další pluginy. Na oficiálních stránkách Eclipse lze na pomocí Marketplace stahovat doplňky ze zhruba padesáti kategorií, mezi ty nejzajímavější patří (Eclipse Foundation, 2011): • Application management
• Code management
• Application Server
• Collaboration
• Build and Deploy
• Database
• BI, reporting and charting
• Documentation 19
• Editor • Graphics • J2EE DevelopmentPlatform • Logging • Mobile and DeviceDevelopment • Modeling Tools • RichClientsApplications • SCM • Search • SOA Development • Source CodeAnalyzer • Systems Development • Team Development • Testing • Tools • UI • UML • Web • Web Services • XML • a další
20
Obr. 4-6 Ukázka uţivatelského rozhraní Eclipse
4.2.2. Visual Studio Toto vývojové prostředí bývá označováno za nejkvalitnější integrované vývojové prostředí vůbec a společnost Microsoft se jeho vývoji usilovně věnuje. V základní konfiguraci prostředí podporuje tvorbu programů v jazycích platformy .NET (tedy C#, Visual Basic, Visual C++, Visual F# a JScript), databázový jazyk T-SQL, dále mnoho dalších jazyků z rodiny XML a jiné. Kromě této nemalé mnoţiny je moţné pomocí doplňků doinstalovat do prostředí i podporu různých jiných jazyků jako jsou např. PHP, či Python. Toto integrované prostředí pokrývá celý ţivotní cyklus vývoje software, a to buď přímo svou vlastní funkčností, nebo prostřednictvím spolupracujících nástrojů jako jsou Team Foundation Server pro podporu spolupráce nebo např. Visual Studio Test, coţ je aplikace pro podporu testování software. Visual Studio sice umoţňuje vytvářet základní diagramy tříd, to je ale v základní konfiguraci jediná vlastnost z oblasti CASE a slouţí spíše pro lepší vizualizaci struktury dané třídy neţ k usnadnění návrhu aplikací (viz následující obrázek). Obecně tedy můţeme říci, ţe společnost Microsoft do oblasti nástrojů CASE vůbec nezasahuje (jednoduchý editor Visio nepočítáme), ale spíše otevírá cestu pro pouţití doplňků třetích stran. Klasickým případem jsou integrované doplňky od společnosti Visual Paradigm, viz 4.1.3.
21
Obr. 4-7Uţivatelské rozhraní Visual Studia 2010 Hlavní funkčností produktu Visual Studio je tedy editace a kompilace zdrojových kódů a ladění programů, coţ umí opravdu výborně. Určitě stojí za to zmínit podporu inteligentního automatického doplňování výrazů, automatická oprava chyb nebo refactoring kódu. Také krokování vytvořených programů při jejich ladění nabízí mnoho moţností. Na úrovní samotné implementace nabízí Visual Studio takovýchto uţitečných vývojářských vlastností nespočet. Vzhledem k zaměření této práce se však podíváme na to, jaké moţnosti existují, pokud chceme výstupy z CASE přenášet do tohoto IDE, a do jaké míry taková spolupráce funguje. Právě na tuto problematiku se zaměříme v 5. kapitole.
4.2.3. Oracle JDevelopper Oracle JDevelopper, jak jiţ samotný název napovídá, je nástroj společnosti Oracle, která se snaţí koncipovat svůj produkt vlastní cestou a soustřeďuje se hlavně na zájmy této společnosti. Orientuje se hlavně nabudování servisně orientovaných aplikací, pouţívajících nejnovější standardy pro Javu, XML, SQL a webové sluţby. Poskytuje kompletní podporu pro celý ţivotní cyklus vývoje aplikace s integrovanými funkcemi pro modelování, programování, debugging, testování, profilování a vývoj aplikací. Má velkou podporu pro ADF (Application Development Framework), JSF (Java Server Faces), TopLink a prezentační vrstvu. Jeho silnou stránkou je kontextové napovídání a automatické doplňování. Po stlačení klávesové kombinace specifické pro nápovědu, se zobrazí ihned okno s potřebnými 22
informacemi se stránkou, případně dialogem, se kterým momentálně pracujeme. Tato kontextová nápověda je mnohem lépe zpracovaná neţ u ostatních IDE. Další významným propracovaným nástrojem je zabudovaný profiler, který dokáţe měřit spotřebu paměti nebo výkon aplikace. Jednou z nevýhod je slabá podpora pluginů třetích stran, coţ ho značně limituje (v porovnání s vývojovými prostředími jako jsou např. NetBeans nebo Eclipse). K dispozici má vizuální nástroj pro tvorbu diagramů s funkcí drag-and-drop s vestavěným průvodcem pro tvorbu BPEL procesů. Tento průvodce pomáhá vytvářet partnerské vazby pro sluţby adapterů, odkazující na externí systémy jako např. SOAP, webové sluţby, JMS, souborový systém, FTP servery, nebo databáze. Oracle JDeveloper dokáţe taky generovat testovací případy pro BPEL procesy. UML Modelování a MDA Oracle JDeveloper poskytuje vestavěné UML modelovací nástroje pro analýzu a návrh aplikací. Zahrnuje nástroje pro návrh Class, User Case, Activity a Sequence diagramů. Tyto nezávislé nástroje (tzv. PMI) jsou pouţívané pro konceptuální modelování a dokumentaci aplikace. Dokáţe transformovat konceptuální Class diagram do Java tříd a také opačně. A aby toho nebylo málo, sekvenční diagramy mohou být generovány v rámci procesu tzv. debuggingu kódu.
23
Obr. 4-8Ukázka modelovacího nástroje JDevelopper Je zaměřen hlavně na vývoj Java, SQL, XML a webových sluţeb, určených jednak pro začínající vývojáře, tak i pro zkušené programátory, kteří hledají skvělý nástroj pro budování SOA aplikací, viz (Shmeltzer, 2008).
4.2.4. PSpad PSPad je volně šiřitelný textový editor a hlavně editor zdrojových kódů, který ale zatím běţí jen na platformě Microsoft Windows. Za zmínku stojí fakt, ţe tento nástroj vyvinul český programátor Jan Fiala v roku 2001 a od té doby je program neustále vylepšován a zdokonalován podle přání uţivatelů. Vývojovým prostředím PSPadu je Delphi.
24
Obr. 4-9Uţivatelské rozhraní PSPad PSPad editor umí upravovat texty mnoha programovacích jazyků. Umoţňuje taky správu projektů a manipulace a víc soubory prostřednictvím rozhraní MDI (Multiple dokument interface). Aktuálně je volně staţitelná verze 4.5.6 11.11.2011, do které je přidána poměrně velká spousta novinek. Mezi ty nejdůleţitější se řadí: • Moţnost zálohovat a obnovit konfiguraci PSPadu • Modifikovaná funkce pro detekci změn souborů • Přidání uţivatelského zvýrazňovače pro DART • FoxPro a REX – nový průzkumníci kódu • Interaktivní šablony kódů • Přidané tagy pro HTML5 • Přidaná FTP podpora pro z/VM • Zálohování souborů do zadaného adresáře rozlišuje i disk • A mnoho dalších vylepšení Proč se ale přeorientovat na PSPad? Zadarmo totiţ poskytuje mnoho uţitečných a hlavně jednoduchých věcí, které pak dohromady dělají z PSPadu mocný freeware program. 25
Ať uţ jde o práci s projekty, nebo s více dokumenty současně, přes záznam makra, porovnávaní textů, vyuţívaní šablon aţ po automatické opravy nebo zvýraznění syntaxe s automatickým nastavením podle typu dokumentu. Samozřejmostí je i inteligentní interní náhled HTML stránek pomoci IE a Mozilly. Samotná integrace do systému Windows je velmi jednoduchá a lokalizace do jednotlivých jazyků se neustále zvyšuje. V konečném důsledku PSPad rozhodně nenahradí běţný IDE pro programování, ale dokáţe výrazně ulehčit psaní jednotlivých kódů. PSPad je opravdu komplexní editor snad všech moţných textových souborů a zdrojových kódů. Velmi dobře se uplatní při psaní kódu a to hlavně díky svým nástrojům jako zvýrazňování syntaxe kódu a přehlednému prostředí. Obrovským plusem je kompletně české prostředí, včetně kontroly pravopisu. PSPad je jednoduše více, neţ jen Poznámkový blok, který mnozí uţivatelé vyuţívají v operačním systému Windows.
26
5. Moţnosti provázání vybraných nástrojů 5.1. Vstupy pro Eclipse Jak je zmíněno jiţ v kapitole o Eclipse, největší výhodou tohoto nástroje je vyuţívání pluginů. Tímto způsobem je řešeno i provázání s dalšími nástroji, v našem případě s nástroji CASE. Pokud bychom poţadovali integraci Eclipse IDE s nástroji CASE, které jsou popsány jiţ dříve v této práci, narazíme na jeden hlavní problém, a to, ţe většina těchto řešení jiţ není dostupná zdarma. To je však pro naše účely celkem závaţnou překáţkou, zaměříme se proto na volně dostupné pluginy. V současné době je na stránkách Eclipse k dispozici více neţ 50 pluginů souvisejících s UML a dalších více neţ 100 modelovacích nástrojů, my se však zaměříme na ty nejoblíbenější: • UMLet – UML Tool for Fast UML Diagrams (The UMLet Team, 2011) o
Vyuţívání textových vstupů namísto pop-up dialogů
o
Elementy mohou být vyuţity jako šablony
o
Tvorba vlastních UML elementů
o
Úprava elementů i zdrojovým kódem
o
Export diagramů (pdf, eps, jpg, gif a další)
• Bonita Open Solution (Valdes, 2011) o
Intuitivní BPM (Business Process Management) řešení
o
Vytváření procesně zaloţených aplikací
o
User-friendly Studio pro procesní modelování a vývoj aplikací
o
Moţnost propojení s běţně pouţívanými databázemi, ERP, CRM, ECM
o
Simulace procesů, generování dokumentace, reporty, dashboardy
apod.
• eUML2 free edition (Yang, 2011) o
CVS, týmová spolupráce
o
Navrţený pro velké projekty – mnohonásobnost a customizace pohledů
o
Synchronizace zdrojového kódu s modelem
o
Podpora UML 2.1 a OMG XMI
o
Podpora JDK 1.4 a 1.5
• UML Lab (Geiger, 2011) 27
o
Technika zaloţená na šablonách – zpětná a Round-trip technika
(propojení zdrojového kódu a modelu) o
Class diagram editor UML 2.3 s Xpand/Xtend integrací
o
Java šablony s „best practices“ a návrhovými vzory
o
PHP šablony s podporou MySQL, Zend, CakePHP
o
Validace kódu zaloţená na modelu
o
XMI import/export
o
Export diagramů (png, svg)
5.2. Vstupy pro Visual studio O některých moţnostech, jak provázat dané nástroj CASE s tímto IDE jsme se jiţ zmiňovali v kapitole věnující se samotným CASE nástrojům. Nyní si podrobněji představíme různé moţnosti provázání mezi CASE a IDE a výhody, které z nich plynou. Budeme se zabývat moţnostmi, které budou rozděleny do následujících kategorií: a) b) Studiu. c)
Doplňky pro Visual Studio integrující CASE funkčnost. Standardizované výstupy z CASE, které je moţné načítat ve Visual Reverzní inţenýrství za pomocí CASE
5.2.1. Doplňky pro Visual Studio Tato moţnost propojení s nástroji CASE je asi tou nejelegantnější a nejefektivnější. Je tomu tak právě proto, ţe vývojáři nemusí opouštět prostředí Visual Studia, na které jsou zvyklí, ale pouze si k němu přidají určitou funkčnost navíc. Doplňky vytváří transparentní rozhraní mezi CASE a IDE. Jako první příklad takového propojení bychom určitě uvedli doplněk od společnosti Visual Paradigm, který jsme jiţ zmiňovali. Pro úplnost uvedeme celý název tohoto doplňku, který je Visual Paradigm SDE for Visual Studio. Zkratka SDE zastupuje Streamlined Design and Development Environment, coţ přesně vystihuje skutečné přínosy tohoto produktu. Tento nástroj integruje funkčnost všech produktů Visual Paradigm (viz 4.1.3) přímo IDE a zároveň udrţuje konzistenci mezi zdrojovým kódem a navrţeným modelem. Měli jsme moţnost si ho vyzkoušet při návrhu class diagramu, kde byla dobře viditelná spolupráce obou nástrojů. Ukázku můţete vidět na následujícím obrázku:
28
Obr. 5-1Provázání produktu Visual Paradigm s Visual Studiem Pro ty, kteří pracují s nástroji společnosti Visual Paradigm je tato moţnost propojení velmi výhodná. Jako další uvedeme příklad propojení s CASE Enterprise Architect od společnosti Sparx Systems. Tato společnost volí podobnou strategii a nabízí ke standardní verzi CASE nástroje doplněk pro Visual Studio, který jeho integraci zajišťuje. Produkt se nazývá Visual Studio MDG Integration a běţně dostupný jak na stránkách společnosti, tak i prostřednictvím galerie doplňků přímo ve Visual Studiu. Doplněk MDG Integration vkládá do IDE v podstatě veškerou funkčnost, která je dostupná v plné verzi Enterprise Architect. Je moţné zde procházet EA projekt, který obsahuje všechny analytické modely, poskytuje moţnost z modelů přímo generovat kód v podobě jednoho z jazyků .NET frameworku. Pomocí technologií XML je moţné z popisků modelů a generovat dokumentaci v jednom z rozšířených webových formátů.
5.2.2. Načítání výstupů CASE nástrojů Tato kategorie vazby mezi CASE a IDE se převáţně týká pouze omezené mnoţiny pouţití. Tou je databázový návrh a tvorba databáze. Mediátorem mezi nástrojem CASE a prostředím IDE se pak stává vygenerovaný SQL skript, který je moţné v programu buď
29
zastavět do jednotlivých volání, nebo (coţ je častější případ) se volá v rámci fázi nasazování a testování software. Ani tento přístup, ale nemusí pouze manuální v tom smyslu, ţe návrhář databáze vytvoří (upraví) model databáze, poté vygeneruje SQL skript, který odesílá vývojářům a ti ho ručně zpracují. Často se aplikují více automatizované postupy, a to takové, ţe designér databáze vygeneruje na základě změn v databázi pouze změnový skript, který je provázán s vývojovým projektem. Vývojový projekt si automaticky při sestavení tento skript bere a aplikuje ho na databázi a provádí dle něj případné změny v kódu.
5.3. Reverzní inţenýrství s vyuţitím CASE Reverzní inţenýrství je jednou z dalších domén, kde nástroje CASE nalézají dobré uplatnění. Tato oblast pouţití CASE je obecně méně známá, ale pokud se nad problematikou zamyslíme hlouběji, zjistíme, ţe se jedná o stejný proces jako je návrh a vývoj software, akorát v opačném sledu činností. Co to vlastně reverzní inţenýrství je? Jak uvádí autor Eldad Eilam (Eilam, 2005), reverzní inţenýrství je proces získávání poznatků o čemkoliv, co vytvořil člověk. Princip tohoto procesu je stejný jako proces vědeckého zkoumání, s tím rozdílem, ţe zkoumaným objektem je něco, co člověk jiţ vyrobil. Přestoţe byly tyto praktiky vyuţívány dlouho před existencí počítačů, tak teprve s jejich příchodem získal tento termín větší význam. Cílem softwarového reverzního inţenýrství je zkoumat softwarové programy a získávat z nich znalosti o pouţitých algoritmech a principech fungování. Vezmeme-li v úvahu, ţe často bývá zkoumán právě software cizích stran, ze kterého aktéři reverzního inţenýrství chtějí získat znalosti, tak je zřejmé, ţe těmto praktikám chtějí výrobci zabránit. Základní a implicitní ochranou většiny distribuovaného software je kompilace do knihoven, která zahrnuje přeloţení do jiného kódu neţ je programovací jazyk, přejmenování proměnných a rozvinutí instrukcí. Takový výsledek je pak pro člověka téměř nečitelný, natoţ pak pochopitelný. Proto se na zkompilovaný kód pouţívá mnoţství nástrojů, pomocí kterých se algoritmy a datové struktury rozkrývají a vizualizují. A jedním z hlavních nástrojů jsou právě CASE. V oblasti informačních technologií narazíme kromě softwarového reverzního inţenýrství na mnoho dalších aplikací, jako je zkoumání komunikačních protokolů, rozšifrování kódovaných médií a další. V souvislosti s tématem naší práce se však jako na druhou oblast pouţití zaměříme na reverzí inţenýrství v databázových systémech.
5.3.1. Softwarové reverzní inženýrství Jak jsme jiţ zmínili na začátku této kapitoly pro zkoumání softwarových programů je CASE nástroj nezbytnou pomůckou. V tomto procesu „rozebírání“ hotového software umí některé specializované CASE nástroje zobrazit diagramy tříd a hierarchie volání mezi nimi v podobě různých sekvenčních diagramů. Taková informace je pro poznání fungování systémů sice hodnotná, mnoho těchto nástrojů jde ale ještě dále a umoţňuje import do 30
integrovaných vývojových prostředí, kde se z modelů znovu vytváří kód v programovacím jazyce. Přestoţe Visual Studio nepatří do mnoţiny těchto specializovaných nástrojů při pouţití některých doplňků je na zkoumání knihoven platformy .NET pouţitelné. Reverzním inţenýrstvím v tomto případě máme na mysli především přehlednou vizualizaci tříd objektů a jejich vazeb na základě jejich zdrojových kódů. Tato funkčnost je obsaţena jiţ v základní instalaci Visual Studia, bez jakýchkoliv doplňků. Abychom vyexportované modely mohli prohlíţet, je nutná instalace aplikace Visio. Avšak i pokud instalaci produktu Visio nevlastníme je moţné exporty provádět a soubory pak odeslat například kolegům, kteří je ve Visiu otevřou. Vyexportovaný soubor má podobu UML class diagramu projektu Visio, kde je moţné UML také upravovat a následně zpět importovat do Visual Studia. Jak jsme si ale mohli vyzkoušet, tato moţnost rozhodně není příliš komfortní.
5.3.2. Reverzní inženýrství databází To, ţe se nástroje CASE vyuţívají i pro získávání znalostí o databázových systémech dokazuje článek autorů Masoud a kol. (Masoud, 2005), který pojednává o CASE navrţeném na akademické půdě a slouţícím přímo těmto účelům. Vyuţití nástrojů CASE v této oblasti je stejné jako u aplikačního software (viz 5.3.1), slouţí tedy především k vizualizaci informací skrytých ve zkoumané databázi. Většinou nás zajímají struktury uloţených entit a vztahy mezi nimi. Jak uvádí autor Masoud: „tento proces se snaţí z databázových souborů vytvářet konceptuální a logická schémata“. Tyto postupy se pak často aplikují například na zastaralý software, ke kterému neexistuje dostatečná dokumentace.
31
6. Jsou výhodnější prostředí integrující CASE a IDE nebo standardizované výstupy a oddělené nástroje? V naší práci jsme rozebrali jednotlivé nástroje, jak CASE, tak i IDE. Nejprve se tyto systémy dělily do dvou skupin software. Jedena byla pro modeláře (architekty) a ta druhá pro programátory. Architekt byl člověk, který musel vidět konkrétní produkt ze všech moţných dimenzí, aby předešel zbytečným problémům a přinesl hodnotu produktu pro zákazníka. Programátor byl uţ jen člověk, který tyto vize proměnil na realitu. Co se týče nejnovějších trendů, všechny nové verze IDE nabízejí moţnost tvorby modelů tříd, pomocí vestavěných funkcí nebo alespoň umoţňují doinstalovat nejrůznější pluginy. To o hodně ulehčuje práci pro programátora, který nemusí tyto třídy vytvářet ručně, ale generuje je sám software. Z naší osobní zkušenosti je velká výhoda v tom, kdyţ můţeme mít objektový model vytištěný. Snadněji se pak vytváří objekty, jejich metody a také se ulehčí odkazování na tyto objekty (nebo metody jiných tříd). Na modelu pak můţeme vidět jednoznačné vazby mezi třídami. Takţe podle našeho názoru je jednoznačně lepší mít IDE prostředí s integrovaným nástrojem CASE. Na trhu se objevují IDE s integrovaným nástrojem CASE. Z našeho pohledu tato integrovaná prostředí nemají ţádné nevýhody, protoţe je tak dodávána část úplně jiného software, přizpůsobená tomu dotyčnému IDE.
32
7. Očekávané trendy V této kapitole se zaměříme na směry vývoje, kterým se IDE spolu s nástroji CASE ubírají a pravděpodobně i nadále ubírat budou. Hlavní směry vývoje nejprve vyjmenujeme, dále budeme vycházet z cizích zdrojů i z poznatků popsaných u jednotlivých nástrojů v předchozích kapitolách. Hlavními směry vývoje a zároveň poţadavky na tyto nástroje jsou následující:
Integrace CASE s IDE prostřednictvím zásuvných modulů
Vyuţití samostatných CASE jako generátoru kódu
Modulární IDE
Nástroje poskytované jako sluţba
7.1. Nástroje poskytované jako sluţba Integrace s IDE pomocí pluginů Toto téma na konkrétním příkladu Visual Studia a Eclipse podrobněji rozebírá kapitola 5. Jedná se tedy o hlavní současný trend u desktop aplikací, které vyţadují instalaci. Výrobci nástrojů CASE si uvědomují, ţe je potřeba tyto pluginy vytvářet, aby se udrţeli na trhu. Zajímavé je, ţe zde můţeme vidět analogický jev, jako tomu bylo před pár lety u webových prohlíţečů. Ve chvíli, kdy webový prohlíţeč přestal slouţit pouze k prohlíţení textů a obrázků, začali výrobci multimediálních přehrávačů (Adobe, Microsoft, RealTime player) vytvářet doplňky, aby do prohlíţečů tuto funkčnost dodali. I na poli IDE slouţí nyní vývojová prostředí jako pomyslná základna, do které třetí strany prostřednictvím pluginů dodávají svou funkčnost.
7.2. Vyuţití samostatných CASE Přestoţe se předchozí řešení pomocí zásuvných modulů zdá být velice elegantní, existuje několik argumentů, proč paralelně přetrvávají i samostatné nástroje CASE. Je nesporné, ţe tyto nástroje se musí v některých ohledech spíše přizpůsobovat standardům IDE (které zase vychází ze standardů programovacích jazyků) a ne naopak. I přesto ale logicky nechtějí ti výrobci, kteří se věnují spíše problematice CASE (jako je např. Visual Paradigm), ustupovat z trhu a přenechávat větší díl výrobcům IDE a u samostatných aplikací upravují moţnosti exportu modelů, tak aby nástroje byly stále pouţitelné s rozšířenými IDE. Zároveň přidávají stále sofistikovanější generátory kódu, které na základě vytvořených modelů generují kód pro cílový jazyk/platformu. Tento přístup můţeme vidět jako druhou alternativu k tomu, jak integrovat CASE s IDE aniţ by samostatné produkty CASE ztrácely na „důleţitosti“ a stávaly se pouhým pluginem.
7.3. Modulární IDE
33
Pokud jsme nyní problematiku integrace CASE s IDE popisovali ze strany výrobců CASE, je potřeba se podívat i na druhou stranu barikády, jak se musí výrobci IDE přizpůsobovat a jak budou pravděpodobně do budoucna postupovat. Hlavním trendem je vytvářet IDE jako silně modulární aplikaci, ke které lze moduly dynamicky přidávat i odebírat dle preferencí uţivatele. Tato strategie velmi dobře funguje a společnost Microsoft například ve Visual Studiu implicitně nabízí funkci pro přidávání online dostupných modulů. Důleţité ale je, ţe tyto moduly nemusí pocházet pouze od společnosti Microsoft, ale můţe je vydávat jakákoliv třetí strana. Do nabídky online modulů je pak vytvořený modul zařazen, pokud projde schvalovacím procesem společnosti Microsoft.
7.4. Nástroje poskytované jako sluţba V této části kapitoly bychom rádi navázali na zmínky z práce let minulých. Je jimi způsob distribuce software formou sluţby. Je tomu také proto, ţe zavedení této technologie je na druhém místě ţebříčku strategických technologií roku 2009 dle průzkumu společnosti Gartner (Pettey, 2008). Technologie SaaS se dostala do povědomí v minulých letech. Pro pouţití software distribuovaného touto technologií je zapotřebí internetový prohlíţeč a aktivní internetové připojení (někdy se můţe vyskytovat tenký klient). Jedním z produktů z řady case nástrojů je Gliffy (Gliffy, 2012), který je dostupný jako samostatný celek nebo jako plugin do software pro sledování chyb v Jira. Tento software je dostupný ve standardní verzi za 5 dolarů za uţivatele na měsíc a 10 dolarů za profesionální verzi.
34
8. Závěrem Nástroje CASE a integrovaná vývojová prostředí mají, jak bylo jiţ několikrát zmíněno na různých místech této práce, usnadnit a urychlit vývojáři práci a minimalizovat chyby, které se mohou vyskytnout právě proto, ţe není počítač, ale člověk. Cílem naší práce bylo popsat, co vlastně tyto dvě kategorie jsou, demonstrovat jejich obecné vlastnosti na konkrétních produktech, a najít mezi nimi společné vazby, jejich vlastní realizaci, jejich výhody i úskalí, a nastínit, jakým směrem by se nástroje CASE a IDE mohly do budoucnosti ubírat. Čili v první kapitole jsme popsali obecné charakteristiky CASE i integrovaných prostředí. Další část se soustředila na popis a charakteristiku konkrétních produktů, které nám připadali pro naše účely relevantní, za připomenutí stojí jistě nástroj Visual Paradigm, který by podle nás (i pro potřeby katedry informačních technologií) mohl představovat velký potenciál do budoucna, protoţe pěkně kombinuje to nejlepší z obou typů nástrojů. To, jakým způsobem tyto nástroje mohou být provázány, jsme ukázali na příkladu vstupů pro Eclipse, Visual studio, Oracle JDevelopper a PSpad. U Eclipse je to cestou pluginů, v případě Visual studia prostřednictvím doplňků (např. Visual Paradigm SDE for Visual Studio, nebo Visual Studio MDG Integration), které integrují funkce nástrojů CASE nebo díky moţnosti standardizovaných výstupů, které se ve Visual studiu dají načíst. Kromě této části práce za největší přínos povaţujeme část věnovanou úvahám o vhodnosti separátního řešení obou skupin nástrojů v porovnání s jejich propojením a samozřejmě část nastiňující budoucí trendy v této oblasti. Na základě vlastních zkušeností a poznatků, jsme dospěli k závěru, ţe jednoznačně pro všechny zainteresované a hlavně pracovníky na projektu (jehoţ výsledkem má být nějaký software) je určitě nejlepší mít IDE a CASE integrovaný v jeden celek. Čili, co se týče budoucího směřování této oblasti nástrojů CASE a integrovaných vývojových prostředí, můţeme shrnout, ţe CASE jako samostatné nástroje ustupují a lze předpokládat, ţe budou integrovat do IDE buď jako zásuvné moduly, nebo jako zcela samostatné aplikace spojující funkčnost obou dvou skupin. My jsme se zaměřili na budoucí trendy v oblasti integrace CASE s IDE prostřednictvím zásuvných modulů, vyuţití samostatných CASE jako generátoru kódu, modulární IDE a nástrojů poskytovaných jako sluţba, čili prostřednictvím cloudu (coţ je trend, který sleduje i jiný aplikační software). Úskalím, na které tato práce naráţí, je mnoţství produktů na trhu a kritéria, podle kterých je lze povaţovat za relevantní a pro práci přínosné. Stejně tak je těţké předpovědět, jakým konkrétním směrem se celá oblast bude ubírat, proto zde stále existuje dost prostoru pro budoucí pokračovatele, kteří se tomuto tématu budou věnovat.
35
9. Pouţité zdroje CROW, Kenneth. Computer Aided Software Engineering [online]. 2011, [cit. 2011-10-23]. Dostupné z:
. MEECHAM, Bill. CASE (computer-aided software engineering) [online]. 2000, [cit. 201201-18]. Dostupné z: . PROCHÁZKA, Jaroslav. Nástroje CASE? Co? Proč? Jak? [online]. 27.05.2004, [cit. 201110-23]. Dostupné z: . LO, Peter. Computer-aided software engineering [online]. 2006, [cit. 2011-10-23]. Dostupné z: . SCRIPTOL. EDI (ou IDE), fonctions et liste [online]. 2011, [cit. 2011-11-27]. Dostupné z: . SPARX SYSTEMS PTY LTD. UML tools for software development and modelling Enterprise Architect UML modeling tool: Enterprise Architect's Recent Feature List [online]. 2011, [cit. 2011-12-30]. Dostupné z: . SPARX SYSTEMS PTY LTD. UML tools for software development and modelling Enterprise Architect UML modeling tool: Enterprise Architect - Pricing and Purchasing [online]. 2011, [cit. 2011-12-30]. Dostupné z: . SYBASE. Data Warehouse, Database Management Software Systems, Mobile Enterprise Solutions - Sybase Inc: PowerDesigner Modeling . Sybase [online]. 2011 [cit. 2011-12-30]. Dostupné z: . ECLIPSE FOUNDATION. About the Eclipse Foundation. Eclipse [online]. 2011 [cit. 201112-10]. Dostupné z: . ECLIPSE FOUNDATION. Eclipse Marketplace [online]. 2011 [cit. 2011-12-10]. Dostupné z: . THE UMLET TEAM. UMLet - UML Tool for Fast UML Diagrams [online]. Poslední revize 22.06.2011 [cit. 2011-12-10]. Dostupné z: .
36
VALDES, Miguel. Bonita Open Solution [online]. Poslední revize 20.12.2011 [cit. 2011-1210]. Dostupné z: . YANG, Yves. EUML2 free edition [online]. Poslední revize 18.07.2011 [cit. 2011-12-10]. Dostupné z: . PRESSMAN, Roger S. Software Engineering: Practitioner´s approach. 2001 [cit. 2012-0115]. ISBN 0073655783. GEIGER, Leif. UML Lab [online]. Poslední revize 07.12.2011 [cit. 2011-12-10]. Dostupné z: . CHANGE VISION. Find the right Astah for you! [online]. 2011 [cit. 2011-12-30]. Dostupné z: < http://astah.net/editions>. SHMELTZER, Shay. Oracle JDeveloper Overview [online]. 2008. Dostupné z: . PETTEY, Christy. Gartner Identifies the top 10 strategic technologies for 2009 [online]. 14.10.2008 [cit. 2012-01-16]. Dostupné z: . MASOUD, Fawaz a kol. University of Jordan Case Tool (Uj-Case-Tool) for Database Reverse Engineering [online]. 2005. Dostupné z: . GLIFFY. About us [online]. 2012 [cit. 2012-01-16]. Dostupné z: . EILAM, Eldad. Reversing: Secrets of Reverse Engineering. 15.04.2005 [cit. 2012-01-16]. ISBN 0764574817. AXMANN, Ondřej, David HEMALA, Radek MOŠNIČKA a Jan VRBKA. Nástroje pro vývoj aplikací a jejich vazba na CASE: LS 2009/2010. [online]. 2010[cit. 2012-01-19]. Dostupné z: http://panrepa.org/CASE/jaro2010/Nastroje_pro_vyvoj_aplikaci_a_jejich_vazba_na_CASE_j aro2010.pdf JAKOUBEK, Jiří, ŠTĚPÁN, Jiří NEUMANN, Miroslav ŢEBRÁK, Stanislav CHALOUPECKÝ a Martin VLČKO. Nástroje pro vývoj aplikací a jejich vazba na CASE: ZS 2009/2010. [online]. 2[cit. 2012-01-19]. Dostupné z: http://panrepa.org/CASE/zima2009/Nastroje_pro_vyvoj_aplikaci_a_jejich_vazba_na_CASE_ zima2009.pdf 37