POUŽITÍ CASE VE VÝVOJÁŘSKÉ FIRMĚ
Zpracovali: Houžvička Jakub Kalina Tomáš Klimko Jozef Kvapil Hynek Datum: 11/2010
Abstrakt Práce se zabývá využitím CASE (Computer Aided System Engineering) nástrojů ve vývojářské firmě. V naší práci analyzujeme nástroje, které bychom doporučili pro tuto činnost. Abstract This paper is concerned with usage of CASE (Computer Aided Systém Engineering) tools in some developer company. In our work we analysed tools, which we afford to recommend for mentioned usage. Klíčová slova CASE, Computer Aided System Engineering, Microsoft Visio, PowerDesigner, Enterprise Architect, SaaS, PHP Keywords CASE, Computer Aided System Engineering, Microsoft Visio, PowerDesigner, Enterprise Architect, SaaS, PHP
2
Obsah Obsah ....................................................................................................................................................... 3 1) Úvod ................................................................................................................................................ 5 1.1)
Cíle práce ................................................................................................................................. 5
2) CASE ................................................................................................................................................. 6 2.1)
Klasifikace nástrojů CASE ......................................................................................................... 6
2.2)
Komponenty nástrojů CASE ..................................................................................................... 7
2.3)
Metodiky vývoje software ....................................................................................................... 8
2.4)
Používané typy diagramů ........................................................................................................ 8
2.4.1)
Diagramy UML ................................................................................................................. 8
3) Postup výběru vhodného software ............................................................................................... 10 4) Trendy v Case a SaaS ..................................................................................................................... 12 4.1)
Gliffy ...................................................................................................................................... 12
4.2)
Creately ................................................................................................................................. 13
5) Trh nástrojů CASE a jejich porovnání ............................................................................................ 15 5.1)
Komerční produkty ................................................................................................................ 15
5.1.1)
PowerDesigner 15.3 Enterprise Architecture ................................................................ 15
5.1.2)
Microsoft Visio 2010 ...................................................................................................... 19
5.1.3)
Enterprise Architect 8 .................................................................................................... 21
5.2)
Nekomerční produkty ............................................................................................................ 25
5.2.1)
ArgoUML ........................................................................................................................ 25
5.2.2)
StarUML ......................................................................................................................... 26
5.2.3)
BOUML .......................................................................................................................... 28
5.2.4)
Umbrello ........................................................................................................................ 29
5.2.5)
UMLet ............................................................................................................................ 30
6) Vývoj a správa aplikace v PHP/MySQL .......................................................................................... 32 6.1)
Základní informace o Knižní databázi .................................................................................... 33
6.2)
Modelování a příprava na vývoj nové aplikace ..................................................................... 33
6.2.1)
Vytváření databázového modelu .................................................................................. 35
6.2.2)
Generování SQL kódu .................................................................................................... 37
6.2.3)
Generování a úprava diagramu tříd .............................................................................. 38
6.2.4)
Generování zdrojového kódu aplikace .......................................................................... 40 3
6.2.5)
Generování dokumentace ............................................................................................. 41
6.3)
Vytváření modelu z hotové aplikace ..................................................................................... 41
6.4)
Převod modelu z Visual Paradigm do Netbeans ................................................................... 42
6.5)
Vytváření prototypu grafického návrhu aplikace .................................................................. 44
6.6)
Vytváření konceptuálního modelu architektury aplikace ..................................................... 46
7) Závěr .............................................................................................................................................. 47 8) Zdroje ............................................................................................................................................ 48 9) Rejstřík obrázků ............................................................................................................................. 50 10)
Rejstřík tabulek .......................................................................................................................... 51
4
1) Úvod Informační technologie jsou dnes jednou z nejrychleji se rozvíjejících oblastí na trhu. Ruku v ruce s vývojem technologického vybavení jako jsou například procesory a paměti probíhá rychlý vývoj v oblasti software. Dnes už není efektivní psát nějaký počítačový program „na koleně“. Vznikají velké projekty, do popředí se stále častěji dostává doba potřebná k danému vývoji. Právě postupem času vzniklo velké množství programů a softwarových nástrojů, které mají za úkol vývojářům pomoci, usnadnit, zpřehlednit a hlavně zrychlit vývoj nějakého druhu software. Zkratka CASE je označením Computer‐Aided Sofware Engineering, v českém překladu počítačem podporované softwarové inženýrství. Klíčovým prvkem CASE je interaktivní podpora vývoje softwaru za pomoci počítačových technologií. Realizace vlastnosti CASE v programu se nazývá jako nástroj CASE. A právě nástroje CASE jsou hlavním obsahem této práce.
1.1) Cíle práce Cílem této práce je seznámit čtenáře se samotným pojmem CASE a dále nástroji, které jsou vhodné pro použití ve firmách zabývajících se vývojem software. Práci jsme podle cílů rozdělili do několika částí, které se zaobírají těmito tématy:
Postup výběru vhodného software pro danou firmu podle předem určených kritérií Představení nástrojů na vývoj software a popsání jejich možností Trendy nástrojů CASE v oblasti SaaS Propojení mezi aplikacemi na CASE pro vývoj a vývojovými programy, generování zdrojového a SQL kódu databáze Případová studie použití nástrojů CASE v praxi na webové projekty
5
2) CASE Jak jsem zmínil již v úvodu, zkratka CASE je označením Computer‐Aided Sofware Engineering, v českém překladu počítačem podporované softwarové inženýrství. Někdy se daná zkratka interpretuje jako computer‐aided system engineering. Je to způsobeno přesahem působností nejen na vývoj software. Mezi základní funkčnosti CASE patří (14): Tvorba modelu informačních systémů pomocí diagramů – vede k lepší srozumitelnosti systému pro člověka Reverzní inženýrství – zpětné vytvoření modelu již existujícího zdrojového kódu Generování zdrojového kódu z modelu – zrychluje a zjednodušuje vývoj Vytváření dokumentace z vytvořeného modelu Dalších vlastností, které podporují nástroje CASE, existuje mnohem více. Samotné nástroje jsou neustále zdokonalovány a dále vyvíjeny. Speciální vlastnosti budou zmíněny u konkrétních popisů jednotlivých nástrojů. Mezi hlavní přínosy, které využití nástrojů CASE přináší, patří (13):
Vyšší produktivity práce Snadnější údržba a vývoj výsledného produktu Kvalitnější dokumentace Nižší chybovost Efektivnější koordinace práce na projektu Možnost více zapojit uživatele na vývoji produktu
2.1) Klasifikace nástrojů CASE Jak je uvedeno již výše, existuje dnes velké množství nástrojů. Jednotlivé nástroje se ale mírně liší, a to podle toho, pro jakou část životního cyklu projektu jsou určeny. Podle životního cyklu projektu můžeme nástroje CASE rozdělit do následujících skupin (15):
Pre CASE – podporují tvorbu globální strategie. Upper CASE – podporují plánování, specifikaci požadavků, modelování organizace podniku a globální analýzu IS. Hlavním úkolem nástroje je analýza organizace, zachycení procesů v organizaci, definice klíčových informačních toků a dokumentace zjištěných požadavků. Middle CASE – podporují podrobnou specifikaci požadavků a vlastní návrh systému. Tato třída nástrojů CASE je nejúspěšnější. Používají se pro podrobnou specifikaci požadavků, návrh systému, dokumentaci a vizualizaci systému. Použité metody a nástroje jsou DFD včetně podrobného popisu procesů, datových úložišť, podrobné ERD, pro OOAN – diagramy tříd, instancí, přechodové diagramy apod. Dále nástroje CASE této kategorie obsahují systém správy dokumentů a konfigurace, systém pro vyhodnocování metrik, vývoj prototypů, návrh rozhraní. Mohou obsahovat také generátory obrazovkových formulářů a tiskových sestav a 6
také generátory (kostry) definic dat. Tento druh CASE je jádrem komerčně dodávaných CASE systémů. Lower CASE – obsahují nástroje pro podporu kódování, testování, údržby a reverzního inženýrství. Integrovány jsou nástroje, jako jsou generátory kódu (mohou generovat jen kostru nebo až 75 procent výsledného kódu, kde programátor doplňuje většinou jen detaily). Dále pak jde o prostředky pro reverse engineering (rekonstrukce dokumentace a modelů z existujícího SW), prostředky pro sledování a vyhodnocení metrik, prostředky plánování a zjištění kvality SW (sběr informací o průběhu testování, vyhodnocení výsledků testů, řízení testování), pro správu konfigurace, prostředky sledování a vyhodnocování práce systému. Funkce nástrojů CASE této kategorie se často překrývají s funkcemi obecných vývojových prostředí. Post CASE – podporuje organizační činnosti (zavedení, údržbu a rozvoj IS).
Obrázek 1: Pokrytí životního cyklu produktu nástroji CASE (15)
2.2) Komponenty nástrojů CASE Nástroje CASE již dnes neobsahují pouze jednu funkcionalitu, ale snaží být víceúčelovými produkty. Dnes jde nejčastěji o komplexní sadu nástrojů, tzv. workbench. Jak jsem již zmínil výše, jako komplexní balík se skládá z více komponent, které by mohly fungovat i samostatně, ale jako celek přináší mnohem vyšší užitnou hodnotu. Mezi důležité komponenty tedy patří (15):
Konzistentní grafické ovládací prostředí (podle zásad tvorby GUI) – jednotný vzhled obrazovek, popisků, tlačítek, jednotné ovládání, použití symbolických ikon apod. Centrální databáze pro uchování informací o všech objektech IS (tímto způsobem se zaručí, že informace je použitelná v libovolném dalším kroku projektování) Prostředky verifikace konzistentnosti dat a podpora normalizace dat 7
Textový editor pro popis jednotlivých objektů – pro účely technické a uživatelské dokumentace systému, možnost jejího přímého generování ze systému Možnost rychlého návrhu uživatelských obrazovek včetně simulace vstupů a výstupů (je vyžadováno pro prototyping) generátor zdrojových programů (pro případy častého znovupoužití daného kódu) export / import dat – pro práci s modely a dokumentací, které byly vytvořeny v jiných programech nebo jsou v jiných programech dále využívány a zpracovávány
2.3) Metodiky vývoje software Důležitou vlastností nástrojů CASE je podpora jednotlivých vývojových metodik. Metodika představuje v obecném smyslu souhrn metod a postupů pro realizaci určitého úkolu. Metodika definuje principy, procesy, praktiky, role, techniky, nástroje a produkty používané při vývoji, údržbě a provozu informačního systému, a to jak z hlediska softwarově inženýrského, tak z hlediska řízení. Nebudu zde uvádět popisy konkrétních metodik, ty si může čtenář v případě potřeby sám vyhledat. Ono se totiž konkrétně nedá říci, že nějaký nástroj CASE je určen pro nějakou metodiku a jinou nepodporuje. Nástroje CASE mají určité vlastnosti a při použití s určitými metodikami z nich můžeme vytěžit více. Základní dělení metodik je na agilní (lehké) a rigorozní (těžké). Rigorozní metodiky jsou podrobné, určují velké množství formalit, používají direktivní řízení, předpokládají opakovatelnost procesů. Patří tam například metodika RUP, OPEN, OOSP a další. Agilní metodiky naproti tomu více odpovídají dnešní době, nesnaží se změny potlačovat, ale využívají jich. Patří mezi ně například: Adaptive Software Development, Extrémní programování, SCRUM metodika a další. Pro nástroje CASE jsou důležité právě konkrétní vlastnosti, které se následně dají použít při vývoji. To znamená například, jak snadné je udělat změnu v části modelu vytvořeném dříve a jestli se změna promítne do navazujících částí. Dále třeba na jaké úrovni podporuje nástroj týmovou spolupráci například v rámci jedné místnosti nebo v rámci více států. Jestli se dají při vývoji použít pohledy z více dimenzí a další vlastnosti. Je samozřejmě jasné, že nástroj CASE nemůže podporovat perfektně veškeré metodiky, to už z principu protichůdnosti jednotlivých metodik nejde. V ideálním případě by měl být upravitelný pro použití s různými metodikami.
2.4) Používané typy diagramů Jak už bylo uvedeno dříve, jedním ze základních požadavků na nástroje CASE je tvorba diagramů pro modelování určitých procesů. Pro modelování a tvorbu diagramů se používají modelovací jazyky. Standardním jazykem pro modelování informačních systémů se stal jazyk UML. Mezi další notace patří například BPMN (Business Process Modeling Notation) pro tvorbu diagramu podnikových procesů. 2.4.1) Diagramy UML Existuje velké množství UML diagramů. Typy jednotlivých diagramů se člení na diagramy struktury, diagramy chování a diagramy interakcí (16). 8
Diagramy struktury – popisují systém staticky z hlediska objektů, atributů, funkcí a vztahů o Class diagram (Diagram tříd) – popisuje strukturu tříd, jejich atributů a vztahů o Object diagram (Diagram objektů) – nabízí úplný či částečný pohled na instance tříd, konkrétní objekty a hodnoty jejich atributů, existující v systému v určitém čase o Composite Structure Diagram (Diagram vnitřní struktury) – popisuje vnitřní strukturu třídy a možné interakce přes různé části, porty, konektory o Profile Diagram (Diagram profilu) – umožňuje definovat vlastní stereotypy, značky a omezení, vytvořený profil lze aplikovat na balíček o Component Diagram (Diagram komponent) – vyobrazuje rozložení systému na jednotlivé komponenty, jejich propojení do vyšších celků a softwarových systémů o Deployment Diagram (Diagram nasazení) – slouží k modelování rozmístění prvků systému do uzlů, často hardwarových prostředků o Package Diagram (Diagram balíčků) – zobrazuje vazby mezi balíčky tvořícími model Diagramy chování – jsou zaměřeny na dynamickou povahu systému z hlediska spolupráce objektů a změnu jejich vnitřních stavů o Use Case Diagram (Diagram případu užití) – zobrazuje funkcionalitu poskytovanou systémem z hlediska uživatelů, jejich cílů a způsobu použití systému o State Diagram (Stavový diagram) – popisuje přechody vnitřních stavů entit nebo také podnikových procesů o Activity Diagram (Diagram činností) – reprezentuje přesun řízení mezi prvky systému v podobě následnosti podnikatelských činností, nebo činností systému Diagramy interakcí – zdůrazňují toky dat a přesun řídící funkce mezi prvky systému o Communication Diagram (Diagram komunikace) – zobrazuje sekvenci zpráv mezi objekty či částmi systému a popisuje tím jejich interakce – kombinuje informace z diagramu tříd, případů užití a sekvenčního diagramu, popisuje tak zároveň strukturu i dynamické chování systému o Sequence Diagram (diagram sekvencí) – ukazuje posloupnost zpráv zasílaných mezi objekty a životní cyklus objektu v závislosti na zprávách o Interaction Overview Diagram (Přehled interakcí) – druh diagramu činností, v němž uzly reprezentují diagramy interakcí
9
3) Postup výběru vhodného software Společnosti, jejichž hlavní činností je vývoj software, by měli využívat nástroje pro podporu celého životního cyklu software od analýzy požadavků zákazníka až po podporu, správu a tvorbu nových funkcí. Čím má společnost více zaměstnanců, kteří se vývojem zaobírají, tím by měli být jejich firemní procesy sofistikovanější a využívat maximálně potenciálu informačních technologií na jejich zefektivnění, jelikož s počtem osob roste přínos těchto nástrojů. Pro spolupráci více lidí jsou velmi vhodné nástroje takzvané Enterprise Social Software nebo někdy také Groupware, které umožňují řídit spolupráci v reálném čase. Velkým hráčem na tomto poli je například projekt CubeTree1, který získal mnoho ocenění, nebo poměrně nový projekt Google wave, ten byl ale ze strany Googlu z důvodu menšího zájmu odstaven na vedlejší kolej. Tato skupina je spíše komunikačním nástrojem všeobecně než nástrojem přímo podporující vývoj aplikací. Softwarové nástroje CASE by firma měla vybírat velmi obezřetně, jelikož není příliš snadné přejít na jiný nástroj nebo skupinu nástrojů, aniž by to společnost nestálo přinejmenším nemalé časové nebo finanční prostředky. Společnost by měla při výběru nástroje CASE zohlednit svou strategii a své cíle, respektive pokusit se uvažovat v současném i budoucím hledisku a zohlednit následujících faktory:
Budoucnost nástroje CASE o
Velikost společnosti o
Vzhledem k tomu, že výběr nástroje CASE ovlivní fungování společnosti na delší dobu, je důležité zohlednit pozadí nástroje a jeho budoucí vývoj neboli společnost, která stojí za jeho vývojem a komunitu, která nástroj využívá.
Dalším faktorem může být počet zaměstnanců, kteří budou s nástrojem CASE pracovat.
Komplexnost nástroje o
Zda daný nástroj pokrývá komplexně požadovanou funkcionalitu nebo do jaké míry je schopen spolupracovat s ostatními nástroji, které pokryjí zbylou požadovanou funkcionalitu.
o
Modifikovatelnost a modularita nástroje je také dosti důležitá, jelikož umožňuje společnosti si vytvořit vlastní podobu nástroje v balíčkovém řešení se všemi potřebnými funkcemi.
Metodika vývoje
1
https://www.cubetree.com/ 10
o
Obtížnost osvojení o
Finance při pořizování jakéhokoliv nástroje představují velmi významné kritérium. Zde je důležité zvážení Open Source a placeného software s ohledem na budoucnost nástroje CASE (viz. 1. bod). Dále je vhodné přihlédnout také k nákladům spojených nejen s pořízením nástroje, ale hlavně s jeho podporou.
Zaměření společnosti o
Tento faktor by neměl tvořit zanedbatelnou část při výběru, jelikož některé programy obvykle generují zbytečně obsáhlý kód, který může zapříčinit výkonnostní problémy speciálně u webových aplikací. Dalším problémem může být přehlednost nebo čitelnost generovaného kódu pro následnou úpravu a správu.
Finance o
Společnost by měla zohlednit to do jaké míry je nástroj intuitivní. To znamená především kvalitu uživatelského rozhraní a kolik času zabere školení a osvojení práce s tímto nástrojem.
Kvalita generovaného kódu o
Neopomenout zohlednit metodiku vývoje, jelikož ta do velké míry ovlivňuje práci s podporovanými nástroji a časovými prodlevami mezi jejich využíváním. Například v poslední době u mladých lidí oblíbená metodika takzvaného „maratonového“ vývoje, kterou lze stručně hovorově popsat jako „dokud to nebude, nejdeme od toho“. Tam se způsob využití nástrojů CASE bude částečně odlišitovat od agilních a diametrálně od rigorózních metodik.
Pokud společnost vyvíjí balíčkové produkty nebo dokonce neustále rozvíjí jeden produkt, tak se využití podpůrných nástrojů bude jistě lišit od společnosti, která musí spravovat velké množství odlišných projektů. Pokud se specializuje například na tvorbu software na míru.
Používané technologie o
Pokud se společnost specializuje na práci nad jedním jazykem či databázovým systémem. Určitě by toto kritérium mělo mít velkou váhu a jistě by bylo vhodné pokusit se najít nástroje specializované na danou či dané technologie nebo dokonce nástroje od tvůrců této technologie. Pokud ovšem společnost pracuje s více technologiemi, měla by se pokusit nástroje CASE hledat s ohledem na to, aby vhodně pokrýval všechny používané technologie.
Softwarové společnosti by měli při výběru nástroje CASE postupovat velmi důkladně a měli by zohlednit při nejmenším všechny výše uvedené kriteria a podle svého uvážení jim přiřadit váhy a vybrat tak nástroj, který bude v současnosti, ale hlavně i v budoucnosti spolehlivou a efektivní podporou jejich firemních procesů a zkvalitnění finálních produktů.
11
4) Trendy v Case a SaaS V poslední době se hojně přechází z desktopových aplikací na web‐based aplikace, neboli Software jako služba (tzn. SaaS) a to především u menších a středních společností. Hlavním důvodem je snížení nákladů, kdy tzn. In‐house řešení stojí společnost mnoho finančních a personálních zdrojů na správu vlastních serverů. Dalším důvodem může být rychlost nasazení, kde u SaaS je to zpravidla v řádu dnů a u In‐house řešení se doba implementace pohybuje v řádu měsíců. Dalším velmi důležitým faktem je hlavně platba a doba trvání upgrade u in‐house řešení v SaaS jsou většinou aktualizace prováděny za běhu a bez poplatků. Dalšími důvody může být například spolupráce zaměstnanců používající různé operační systémy jako například MAC OS a Windows OS. Práce v internetovém prohlížeči eliminuje problémy kompatibility. Z výše uvedených důvodů může být pro menší a střední společnosti SaaS model nástrojů CASE jako vhodné řešení hlavně z pohledů finančních a časových nákladů. Ovšem je nutné poznamenat, že jejich komplexita a funkcionalita je na mnohem nižší úrovni než u desktopových nástrojů.
4.1) Gliffy2 Tento software je modelovací nástroj, kde není zapotřebí jakékoliv instalace, jelikož běží v internetovém prohlížeči. Umožňuje projekty Website / Software UI Design, Venn diagrams, Organization charts, Flowchart, Network diagrams, Software design / UML (Class diagram, Sequence Diagram, Use Case Diagram, Package Diagram, Deployment diagram, Entity Relationship diagram) a Business process (Reimbursment Process, BPMN Contractor Process). Aplikace je velmi dobře řešena z pohledu uživatelského ovládání, kde vše funguje na Drag and Drop principu. Uživatelské rozhraní běží na technologii Flash. Dále aplikace umožňuje napojení přes API. Lze si tedy přizpůsobit entity účet, dokumenty, adresář a uživatele do svého systému. Reference Gliffy poukazují na kvalitu, jelikož uvádějí jména jako IBM, Cisco, SAP, Apple, Oracle, AOL a další. Avšak není zde uvedeno konkrétněji způsob využití nástroje těmito společnostmi. Cena licence se platí podle počtu uživatelů a kupodivu i za aktualizace.
2
http://gliffy.com/ 12
Obrázek 2 – ukázka Class diagramu v programu Gliffy (print screen)
4.2) Creately3 Tento nástroj je podobně jako předchozí webová aplikace, jejíž uživatelské rozhraní je postaveno na Flashové technologii. Umožňuje více placených programů od personálního užití až po týmovou práci a jejich cena se pohybuje od 5 do 10 dolarů za měsíc. Je to levnější varianta v porovnání s Gliffy. Disponuje téměř obdobnými vlastnostmi jako nástroj Gliffy tedy stejné typy diagramů, publikovat projekt přímo na URL adrese, zvát pomocí mailu spolupracovníky a exportovat a importovat diagramy do prostředí. Stejně tak jako předchozí nástroj umožňuje tvorbu vlastních diagramů respektive objektů a tvarů v nich použitých. Creately oproti Gliffy nedisponuje aplikačním programovacím rozhraním.
3
http://creately.com/ 13
Obrázek 3 ‐ ukázka Class diagramu v programu Creately (print screen)
Závěrem této kapitoly bych chtěl zmínit, že oba programy mají jisté nedostatky. Creately je lépe graficky a uživatelsky řešené, ale na druhou stranu se mi jevilo o něco pomalejší, což tuto výhodu eliminovalo. Další a to asi největší nevýhodou je to, že aplikace umožňují export kromě obrázků, SVG a PDF pouze ve vlastním značkovacím jazyce neboli ve vlastním XML formátu. Tudíž nevím, jak by se řešila přenositelnost diagramů na jiné nástroje. Další důležitým poznatkem je fakt, že tyto nástroje jsou pouze povrchní a nejsou tolik propracované jako jejich desktopové obdoby a ani nepokrývají tak komplexní oblast využití. Vesměs se jedná pouze o modelování diagramů. Vzhledem k trendu web‐based aplikací jsme považovali za vhodné zmínit tyto nástroje. Jelikož s vylepšováním technologií tvořící prezenční vrstvu webových aplikací se dá očekávat budoucí potenciál obdobných web‐based nástrojů jak po stránce uživatelské použitelnosti, funkcionality tak i komplexnosti řešení. Avšak v současné době je možnost jejich využití dosti omezená.
14
5) Trh nástrojů CASE a jejich porovnání •
Komerční: 1. PowerDesigner 15.3 2. MS Visio 10 3. Enterprise Architect 8
•
Nekomerční: 1. 2. 3. 4. 5.
ArgoUML StarUML Umbrello BOUML UMLet
5.1) Komerční produkty Mezi komerční produkty byly vybrány následující produkty. Nástroj
Výrobce
Power Designer 15.3 Enterprise Architecture
Sybase
Enterprise Architect 8
Sparx
MS Visio 2010
Microsoft Tabulka 1 ‐ Vybrané komerční produkty
5.1.1) PowerDesigner 15.3 Enterprise Architecture PowerDesigner 15.3 je vedoucí nástroj CASE pro modelování a správu metadat, datové modelování, informační architekturou a podnikové architektury. Jedná se o komplexní modelovací nástroj, který podporuje vzájemné propojení modelů jako například procesní diagramy, všechny UML diagramy, datové modely atd.. Výhodou je taky práci nad společným repository co ulehčuje týmovou spolupráci na projektech a jejich verzích. Přístup do repository je umožněný pomocí webového prohlížeče. PowerDesigner přichází v různých verzích a tak si zákazník může vybrat podle svých potřeb z následujících4: DataArchitect – Splňuje požadavky nejnáročnějších datových modelářů a DB administrátorů. DataArchitect nabízí řízení požadavků a plný rozsah funkcionality pro víceúrovňovou analýzu a design 4
http://www.sybase.cz/index.php?option=com_content&view=article&id=3&mid=24 15
včetně zpětného inženýrství i inženýrství napřed pro téměř 60 poskytovatelů/verzí relačních databází. Developer – Varianta určená pro objektové modelování včetně řízení požadavků. Plná podpora UML. Obsahuje funkcionalitu pro zvýšení produktivity při použití s těmito jazyky/nástroji: Java, C#, VB.NET, XML, PowerBuilder, aj. Variantu Developer je možné propojit s většinou rozšířených vývojových nástrojů pro zajištění automatické model‐to‐code synchronizace. Studio – Naplňuje potřeby zejména vedení IT a obchodu a poskytuje možnosti sladění cílů obou těchto oddělení. Kombinuje funkcionalitu variant DataArchitect, Developer a ještě přidává možnost modelovat obchodní procesy. Varianta Studio tak umožňuje vytvořit komplexní pohled na strukturu a chování celé firmy. Viewer – Tuto variantu využijí zejména týmy tvořící dokumentaci, techničtí manažeři a další uživatelé, kteří potřebují přístup ke čtení modelů. Je možné z něj přistupovat do Repository, tisknout modely
a
vytvářet
reporty.
Viewer
je
k dispozici
zdarma
na
adrese
http://www.sybase.com/products/powerdesigner. Enterprise Edice (DataArchitect Enterprise, Developer Enterprise, Studio Enterprise) – Varianty s přívlastkem Enterprise obsahují navíc připojení do Repository pro každého uživatele. Na Enterprise varianty je možné upgradovat i ze základních verzí PowerDesigneru v okamžiku potřeby. Mezi novinky ve verzi 15.3 vs. 15.2 patří5: Rozšířený seznam objektů
Export seznamu do Excelu
Tisk s náhledem WYSIWYG
Rychlé třídění sloupců
Přizpůsobení sloupců v seznamech obsahující více typů objektů
Tvoření diagramu se selekce Uživatel může vytvořit nový diagram z vybraných symbolů pomocí příkazu Vytvoř diagram se selekce (Create diagram from Selection) Tvoření souvisejících diagramů
5
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.infocenter.powerdesi gner.15.3/doc/html/title.html 16
Uživatel může vytvořit diagram souvisejících diagramů objektů přímo se záložky související diagram (Related diagram) nebo pomocí submenu. Vícenásobní selekce z matice (Multiple‐selection in Matrices) Uživatel může vybírat a upravovat více buněk matice. Nastavení zobrazení Všechny diagramy v PowerDesigneru mají možnost přizpůsobení zobrazení, co umožňuje zobrazení jakýkoliv atributů a kolekcí v jakýmkoli pořadí, které si uživatel přeje v diagramech jejich symbolů. Zjednodušené uživatelské rozhraní
Tlačítko pro sdílení a kopírování ve výběru nový model a v dalších částech bylo nahrazeno jedním Vložit zdroj v modelu (Embed Resource in Model)
Spojování modelu nyní zobrazuje jediný strom ukazující předpokládaný výsledek spojení. Uživatel má možnost přepnutí dvojitý zobrazení stromu pomocí tlačítka vlevo nahoře zobraz zdrojový model (Show source model)
Doplňky Plug‐in pro Visual Studio podporuje Visual Studio 2010. Shrnuti PowerDesigner V následující tabulce jsou shrnuty hlavní vlastnosti produktu PowerDesigner 15.3 PowerDesigner Výrobce
Sybase (http://www.sybase.com)
Distributor ČR
Sybase Software, s.r.o (http://www.sybase.cz)
Zkušební verze
Ano
15 dní
Verze UML
2.0
Generování dokumentace
Ano
RTF, HTML, Excel a další.
Generování kódu
Ano
Reverse engineering
Ano databází
Java, C#, C++, PowerBuilder, XML, VB.NET a další.
17
Podporované DBS
Ano – víc než 60 Oracle, IBM DB/2, MS SQL Server, Sybase, MySQL a relačních
další
Platforma
Multiplatformní
Windows, Linux, Mac OS X
Správa verzí
Ano
Týmová spolupráce
Ano
Export
Ano
RTF, HTML, Excel, atd.
Import
Ano
XMI
Lokalizace
Ne
Cena
Cena u tohoto produktu se pohybuje v tisících Kč Tabulka 2 ‐ Shrnutí produkt PowerDesigner 15.3
Přínosy PowerDesigneru6: Komplexní a prověřený nástroj
PowerDesigner představuje trhem prověřený nástroj pro UML, procesní a datové modelování a je považován za standard v mnoha společnostech po celém světě.
Sladění obchodu a IT
PowerDesigner napomáhá sladění cílů obchodního a IT oddělení díky možnosti sledování vazeb mezi všemi požadavky, procesními, UML a datovými modely.
Zlepšení individuální produktivity
PowerDesigner obsahuje řadu uživatelsky modifikovatelných generátorů kódu a DDL skriptů, které značně snižují nároky na manuální programování a zefektivňují správu modelů.
Zlepšení týmové produktivity
PowerDesigner poskytuje všem modelářům ideální prostředí pro práci v týmech. K dispozici je společná repository pro ukládání jednotlivých modelů včetně jejich různých verzí.
6
http://www.sybase.cz/index.php?option=com_content&view=article&id=3&mid=24 18
Široké možnosti přizpůsobení
PowerDesigner nabízí široké možnosti přizpůsobení za účelem podpory firemních nebo legislativních standardů s využitím VB Scriptu, plně skriptovatelného COM rozhraní a kastomizovatelného metamodelu.
Minimalizace nechtěných dopadů změn
PowerDesigner významně snižuje náklady a čas na implementaci změn díky obousměrné analýze dopadu změny napříč všemi provázanými modely.
5.1.2) Microsoft Visio 2010 Microsoft Visio 2010 je nástroj patřící pod balík Microsoft Office určený pro kreslení různých diagramů na platformě Windows využívající vektorovou grafiku pro tvoření diagramů. Zatím není dostupný pro jiné platformy avšak díky proprietárnímu formátu Visia je možný tyhle diagramy otevřít i v některých programech pro kreslení diagramů na platformě Mac OS X nebo Linux. Momentálně je dostupný ve třech verzích a to:
Standard – určeno pro základní diagramy, schémata a grafy.
Professional – určeno pro pokročilejší diagramy s možností propojovat obrazce s daty.
Premium – určeno pro nejnáročnější uživatele, kteří potřebují silný nástroj například na procesní řízení, TQM, ISO, Six Sigma a pod.
Visio je vhodný nástroj pro vizualizaci a tvorbu diagramů, a to buď statických, nebo dynamických, které se automaticky mění v závislosti na datech a v reálném čase. Tato vlastnost je velmi užitečná pro vývojářskou společnost, kdy můžou všichni vývojáři spolupracovat a vidí provedené změny od svých týmových kolegů. Visio slouží k tvorbě organizačních a síťových diagramů, modelování obchodních procesů nebo schémat podlaží, výrobních linek, ISO procesů a schémat architektury IT. Schémata lze sdílet pomocí webového rozhraní nebo publikovat na server SharePoint. Možnosti použití aplikace Visio 2010 jsou opravdu různorodé. Pro přehlednost jsou rozdělené do pěti skupin:
Obecné diagram
Technická schémata
Diagramy v IT
Nástroje pro Business Intelligence
Nástroje pro procesní řízeni
V následující tabulce je porovnání jednotlivých edic Visio 2010. Podle vlastností, které jednotlivý edice ponoukají je v každé k dispozici sada různých předpřipravených sady šablon. Pro vývojářskou 19
firmu je nejvhodnější edice Premium, která umožňuje například důležité sdílení přes webové rozhraní, inteligentní analýzy, databázový diagramy, diagramy IT infrastruktury, hierarchické diagramy a další. Porovnání jednotlivých edic Visio 20107 Vlastnost
Typ verze Standard
Professional
Premium
Jednoduchá tvorba diagramů v moderních šablonách, automatické zarovnávání a úpravy
Ano
Ano
Ano
Intuitivní navigace v novém uživatelském rozhraní
Ano
Ano
Ano
Dynamické tvary, které se mění na základě odkazů na data získaná v reálném čase
Ne
Ano
Ano
Sdílení přes webové rozhraní (i mezi adresáty, kteří nemají Visio)
Ne
Ano
Ano
Nové nástroje pro správu procesů, pro jejich modelování a sled prací v SharePoint
Ne
Ne
Ano
Inteligentní analýza pro nalezení chyb proti obchodní logice
Ne
Ne
Ano
6 580 Kč
14 450 Kč
25 820 Kč
Cena v Kč (orientační cena bez DPH)
Tabulka 3 ‐ Porovnání edic Visio
Shrnutí MS Visio 2010 Nejdůležitější vlastnosti vytvořené pro vývojáře má Visio 2010 připraveno například následující využití8:
Diagram pracovního postupu SharePoint (workflow) pro návrh logiky. Takto vytvořený diagram lze následně exportovat do aplikace SharePoint Designer a použít na serveru SharePoint.
Diagram modelu databáze používající zápis IDEF1X a relační vazby.
7
http://www.microsoft.com/cze/office2010/produkty/visio.aspx
8
http://www.microsoft.cz/project‐visio‐soutez/dokumenty/Datasheet_Visio_2010.pdf 20
Diagram modelu toku dat pomocí DFD zápisu.
Diagramy COM a OLE pro objektové programování.
Diagram modelu UML nebo diagram drátěného rámu.
A další nástroje pro vytváření webových stránek, databází a aplikací.
5.1.3) Enterprise Architect 8 Enterprise Architect 8 patří mezi vedoucí produkty v oblasti modelovacích nástrojů s více než 200000 prodanými licencemi ve více než 130 krajinách. Je vyvíjen společnosti Sparx, které uvedla poslední aktualizaci v květnu 2010. Hlavním cílem v poslední aktualizaci bylo přinést stejnou jednoduchost použití u velkých modelů podobně jak je tomu u malých a středních. Nedílnou součástí tohohle cíle bylo integrace nástrojů pro sledování části modelu, vyhledávaní a další mechanizmy pro křížové odkazovaní a propojování základních informací modelu zpátky na reálné objekty. Enterprise Architect 8 je založený na poslední verzi UML 2.3. Mezi hlavní oblasti použití patří například následující oblasti jako letectví, bankovnictví, vývoj webu, finance, zdravotnictví, výzkum, přeprava, obchod a další. Enterprise Architect 8 je dodávaný v šesti různých edicích, které jsou rozdělené následovně9: Enterprise Architect Desktop Edition Enterprise Architect Desktop Edition je efektivní řešení pro UML modelování a řízení testů i modelování podnikových procesů. Je cílena na individuální analytiky a vývojáře, kteří vyžadují flexibilní modelovací prostředí podporující vše od mind mapping až po zavedení IS. Enterprise Architect Professional Edition Professional Edition je výkonným modelovacím nástrojem zaměřeným na pracovní skupiny či jednotlivé vývojáře a analytiky. Její funkcionalita jako replikace, sdílené soubory, a kontrola verzí nabízí podporu sdílených projektů a kromě jiného podporuje i mind mapping či MDG technologie. Enterprise Architect Corporate Edition Edice Corporate je řešením vhodným pro vetší vývojové týmy, které v sobě zahrnuje veškerou funkcionalitu nižších edic a mimo jiné nabízí prostředky pro efektivní týmovou spolupráci jako sdílené uložiště, správu verzí, skupiny uživatelů, sdílení modelů, zamykání elementů pro skupiny uživatelů atd. Enterprise Architect Ultimate Edition
9
http://panrepa.org/CASE/jaro2010/case_jaro2010.pdf 21
Edice Ultimate je komplexním řešením pro pokročilé uživatele pracující napříč vícenásobnými doménami. V jednom vývojovém prostředí integruje jak nástroje pro business modelování, softwarové inženýrství tak i vývoje informačních systému, a podporuje tak týmovou spolupráci i na nejnáročnějších projektech. Enterprise Architect Systems Engineering Edition Tato nová edice EA zaměřená na profesionální vývoj informačních systémů je řešením používajícím UML, SysML, DDS a další související technologie. Mezi její hlavní přednosti patří generování zdrojového kódu (C, C++, C#, Java, VB.Net) z diagramů ak vit, interakcí a stavových diagramů, plná podpora Hardware Description Languages a možnost simulovat SysML 1.1 constraint modely. Enterprise Architect Business and Software Engineering edition Business and Software Engineering Edice je pokročilým nástrojem, který podporuje softwarový vývoj, byznys modelování, záznam architektury a požadavků či projektový management. Mezi její hlavní přednos patří možnost použi rozšířených matema ckých funkcí při skriptování, generování BPEL z BPML 1.1 modelů a tzv. Business Rules Composer, který umožňuje vytvářet modely a zdrojový kód implementující komplexní business rules ve standardních programovacích jazycích. Shrnující tabulka produktu Enterprise Architect 8 ve verzi Professional Enterprise Architect 8 (verze Professional) Výrobce
Sparx
Distribuce v ČR
HTK Pro s.r.o. Cleverbee s.r.o., Ability Development, Cleverbee s.r.o. JIMAZ s.r.o., NESS Logos a.s, Daquas s.r.o
Verze UML
2.3
Zkušební verze
Ano
30 dní
Generování dokumentace
Ano
RTF, HTML
Generování kódu
Ano
ActionScript 2.0, Java, C#, C++, VB.Net, Delphi, Visual Basic , Python and PHP
Reverse engineering
Ano
ActionScript 2.0, Java, C#, C++, VB.Net,
22
Delphi, Visual Basic , Python and PHP Platforma
Multiplatformní
Windows, Linux
Týmová spolupráce
Ano
Rational
ClearCase,
CVS,
Subversion,
Perforce, Visual Studio Team System a mnoho dalších Export
GIF, PNG, PostScript, Encapsulated PS, PGML,SVG XMI
Import
Formát XMI
Lokalizace
Ne
Cena v Kč (základní cen každý V závislosti od Corporate–4235 verze bez DPH)
verze a množství
Professional–3527 Desktop–2393 Ultimate–12378 Systems Engineering–14159 Business and SW Engineering–14159
Tabulka 4 ‐ Shrnutí produkt Enterprise Architecture 8
Shrnutí funkcionalita produktu Enterprise Architecture 810:
Modelovat komplexní informační, softwarové a hardwarové systémy s využitím notace kompatibilní s UML
Modelovat, řídit a na už nasazených systémech i sledovat požadavky
Tvořit detailní a kvalitní dokumentaci v RTF a HTML formátech
Využít framework Enterprise Architect Framework, který je průmyslovým standardem.
10
http://www.sparxsystems.com.au/downloads/whitepapers/EAReviewersGuide.pdf 23
Generovat a pomocí reverzního inženýrství analyzovat kód ve více než 10 programových jazycích
Modelovat databáze, vytvářet DDL skripty, a prostřednictvím reverzního inženýrství analyzovat databázové schémata přístupné přes ODBC
Řídit verze s podporou spojování
Centralizovat celopodnikovou dokumentaci procesů a informačních systémů
Modelovat závislosti mezi jednotlivými elementy, chováním a stavy systému
Modelovat hierarchie tříd a dalších komponent
Spravovat slovník projektu, úkoly a připomínky k projektu
Přiřadit jednotlivým elementem modelu zdroje a porovnávat plánované a skutečné využití těchto zdrojů
Sdílet modely použitím nejnovějšího XMI formátu a jejich import
Sledovat verze Version Control využitím technologie XMI společně s SCC, CVS, nebo Subversion konfiguracemi
Použít UML profily UML Profiles na tvorbu uživatelských rozšíření pro doménové‐specifické modelování
Uložit kompletní diagramy jako UML vzory UML patterns a tyto později použít jako šablonu
Analyzovat a zaznamenávat vztahy mezi elementy použitím tabulkovou vztahovou matici Relationship Matrix
Skriptovat a automatizovat úkoly použitím detailního rozhraní Automation Interface
Připojit se do sdílených databázových úložných prostorů použitím MySQL, Oracle a jiných
Replikovat změny v distribuovaném prostředí pomocí balíčků Controlled XMI Packages
Pořádat transformace modelu do modelu pomocí Model Driven Architecture (MDA)
Pomocí Model Views lze vytvářet a sdílet dynamické pohledy na jednotlivé elementy a diagramy modelu
Zaznamenávat Mind Maps, vytvářet Business Process Models a Data Flow Diagrams použitím UML
Vizualizovat prováděné aplikace použitím technologie Debug a Profiling Workbench
24
5.2) Nekomerční produkty Mezi nekomerční produkty jako alternativu ke komerčním produktům byly zařazeny nástroje ArgoUML, StartUML, BOUML, Umbrello a UMLet. Na následujících pár stránkách je jejich krátká specifikace a jejich vlastnosti. Následující tabulka shrnuje tyto produkty s aktuální dostupní stabilní verzí. Nástroj
Verze
Datum vydání
ArgoUML
0.30.2
08.07.2010
StartUML
5.0
30.12.2005
BOUML
4.23
06.11.2010
Umbrello
2.0
12.01.2008
UMLet
10.4
29.03.2010
Tabulka 5 ‐ Vybrané nekomerční produktyArgoUML
ArgoUML je jedním z vedoucích UML modelovacích nástrojů z prostředí nekomerčních produktů zahrnující podporu verze UML 1.4 pro diagramy. ArgoUML je celý napsaný v Javě a proto umožňuje virtuálně běžet na jakékoli platformě. Původně byl vyvíjen pánem Jasonem E. Robbinsonem v rámci jeho dizertační práce. Momentálně je ArgoUML pod Tigris.org a má víc než 19000 registrovaných uživatelů a 150 vývojářů. Podporuje devět vývojových diagramů v UML verzi 1.4. Mezi slabiny patří hlavně, že nepodporuje UML verzi 2.0 a taky jenom částečná možnost kroku zpět při grafických úpravách. 5.2.1) ArgoUML11 ArgoUML Počet diagramů
9
• Class diagram • Statechart diagram • Activity diagram • Use Case diagram
11
http://argouml.tigris.org/ 25
• Collaboration diagram • Deployment diagram:
Object diagram
Component diagram
Sequence diagram
Verze UML
1.4
Generování dokumentace
Ne
Generování kódu
Ano
Java, C++, C#, PHP4 a PHP5, Ruby
Reverse engineering
Java, IDL, C++, další pomocí pluginů
Platforma
Multiplatformní
Windows, Linux, Mac OS X
Java5|Java6 Export
GIF, PNG, PostScript, Encapsulated PS, PGML,SVG XMI
Import
Formát XMI
Lokalizace
Ne
Licence
BSD
Tabulka 6 ‐ Shrnutí produkt ArgoUML
5.2.2) StarUML12 Jedná se o modelovací nástroj založený na UML verzi 1.4 a poskytující jedenáct různých typů diagramů a taktéž přímá notace verze UML 2.0. Aktivně podporuje přístup MDA – Model Driven Architecture s podporou UML. Vyznačuje se variabilní kastomatizací uživatelského rozhraní například podle uživatelem zvolené metodologie při vývoji, platformou nebo jazykem. Výhodou je taky vysoká rozšiřitelnost jeho funkcionality a flexibilita poskytující doplňky. StarUML bylo cele napsané 12
http://staruml.sourceforge.net/en/ 26
v programovacím jazyku Delphi co je uváděné jako jeden z důvodů proč už není StarUML dále upravován. Jeho poslední aktualizace byla v roce 2005.
StarUML StarUML Počet diagramů
9
Use Case Diagram Class Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Composite Structure Diagram
Verze UML
2.0
Generování dokumentace
Ano
Microsoft Office Document Generation
Generování kódu
Ano
Java, C++, C#, JScript
Reverse engineering
Ano
Java, C++, C#
Platforma
Windows
Export
JPEG, Raster image, Windows Metafile
Import
Formát XMI, Formáty Rational Rose
Lokalizace
Ne
Licence
GPL
27
Tabulka 7 ‐ Shrnutí produkt StarUML
5.2.3) BOUML13 Jedná se o multiplatformní UML nástroj napsaný v C++ a Qt podporující verzi UML 2.0. Jeho distribuce je pod licencí GPL. Na hlavní stránce autor uvádí, že z důvodu neustálého porušování licenčních podmínek a hlavně útocích od lidí z wikipedie se rozhodl tento projekt ukončit a dál ho nerozvíjet. Podobně jako ArgoUML a StarUML taky BOUML nabízí 9 typů diagramů uspořádaných do čtyř různých pohledů. BOUML BOUML Počet diagramů
9
Use Case Diagram Class Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Composite Structure Diagram
Verze UML
2.0
Generování dokumentace
Ano
HTML
Generování kódu
Ano
Java, C++, PHP, Python, IDL
Reverse engineering
Ano
Java, C++, PHP
Platforma
Multiplatformní
Windows, Linux, Mac OS X
(Qt)
13
http://bouml.free.fr/ 28
Export
PNG, SVG, XMI
Import
Formát XMI, MDL
Lokalizace
Ne
Licence
GPL
Tabulka 8 ‐ Shrnutí produkt BOUML
5.2.4) Umbrello14 Jedná se o modelovací nastroj pro operační systémy založené na platformě Unix a taky pro Windows. Poslední aktualizace Umbrella proběhla na začátku roku 2008. Umbrello je šířen pod volnou licencí GPL. Podporuje 9 diagramů ve verzi UML 1.4. V generování kódu ponouká nejširší nabídku mezi zvolenými nekomerčními produkty. Umbrello Umbrello Počet diagramů
9
Use Case Diagram Class Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram Component Diagram Deployment Diagram Composite Structure Diagram
Verze UML
1.4
Generování dokumentace
Ano
XHTML, DocBook
14
http://uml.sourceforge.net/ 29
Generování kódu
Ano
Java, C#, ActionScript, Ada, C++, D, IDL, JavaScript, MySQL, Pascal, Perl, PHP, PHP5, PostgreSQL, Python, Ruby, SQL, Tcl, XMLSchema
Reverse engineering
Ano
Java, Ada, C++, IDL, Pascal, Python
Platforma
Multiplatformní
Windows, Linux
(KDE) Export
BMP, JPG, PNG, PPM, XBM, XPM, XMI
Import
Formát XMI, MDL
Lokalizace
Částečná
Licence
GPL
Tabulka 9 ‐ Shrnutí produkt Umbrello
5.2.5) UMLet Je UML nástroj distribuovaný jako open‐source s jednoduchým uživatelským rozhraním. UMLet může běžet jako samostatná aplikace nebo jako doplněk pro Eclipse na všech platformách Windows, Mac OS X a Linux. Podporuje všechny UML diagramy verze 2.0. Dovoluje vytváření vlastních přizpůsobených UML elementů. Je to více kreslící než modelovací nástroj, protože neobsahuje knihovnu znovupoužitých objektů. UMLet UMLet Počet diagramů
9
Use Case Diagram Class Diagram Sequence Diagram Collaboration Diagram Statechart Diagram Activity Diagram 30
Component Diagram Deployment Diagram Composite Structure Diagram Verze UML
1.4
Generování dokumentace
Ano
XHTML, DocBook
Generování kódu
Ne
Reverse engineering
Ne
Platforma
Multiplatformní
Windows, Linux, Mac OS X
(Java) Export
SVG, JPG, PDF, EPS(LaTeX)
Import
Formát XMI, MDL
Lokalizace
Ne
Licence
GPL
Jiné
Možnost vyžití jako doplněk Eclipse IDE Tabulka 10 ‐ Shrnutí produkt UMLet
31
6) Vývoj a správa aplikace v PHP/MySQL V této části budou popsány postupy vytváření a úpravy modelů aplikace s použitím nástrojů CASE. Příprava na vývoj bude pro aplikaci v programovacím jazyce PHP a databází MySQL. Cílem této části není samotné programování aplikace, ale ukázat možnosti zpřehlednění a zrychlení vytváření a úpravy vývoje aplikace. V postupu se bude pracovat s demonstrační aplikací Knižní databáze. Používány budou následující nástroje CASE:
NetBeans IDE 6.9.1 – PHP (20) Visual Paradigm for UML 8.0 Enterprise Edition (19) Visual Paradigm SDE 6.0 for NetBeans Professional Edition (19) Microsoft Visio Professional 2010 (18)
Obrázek 5 ‐ Logo Visual Paradigm (19)
Obrázek 6 – Logo Microsoft Visio 2010 (18)
Obrázek 4 ‐ Logo NetBeans (20)
V postupech bude ukázáno, jak modelovat databázi a třídy. Což jsou základní typy modelů používané u každé aplikace. Představeny budou následující postupy: 1) Modelování a příprava na vývoj nové aplikace i. Vytváření logického modelu databáze ii. Generování SQL kódu iii. Generování a úprava diagramu tříd iv. Generování zdrojového kódu aplikace v. Generování dokumentace 2) Vytváření modelu z hotové aplikace 3) Převod modelu z Visual Paradigm do Netbeans 4) Vytváření prototypu grafického návrhu aplikace 5) Vytváření konceptuálního modelu architektury aplikace
32
Základní informace o Knižní databázi Jedná se evidenci knížek a spisovatelů s možností komentování a půjčování knih. Požadavky na aplikaci jsou následující:
Evidování knih s možností vkládání názvu, autora, anotace, isbn a nakladatele Evidování spisovatelů s možností přiřazení ke knize, ke každému spisovateli evidovat – jméno, datum narození a životopis Možnost komentování knih Možnost evidovat výpůjčky ke knihám, zde ukládat – komu půjčujeme knihu, datum vypůjčení a datum vrácení
6.1) Modelování a příprava na vývoj nové aplikace V této fázi máme pouze požadavky na aplikaci. Ta bude modelována v programu Visual Paradigm for UML 8.0(19). Ovšem tuto činnost je možné plnohodnotně vytvářet i v programu SDE 6.0 for NetBeans(20), kde se nám otevře program NetBeans s rozšířením pro modelování. Výhodou druhého řešení je, že můžeme upravovat zdrojový kód a diagramy v rámci jedné aplikace. V bodu c) Převod modelu z Visual Paradigm do NetBeans bude ukázáno modelování z pohledu NetBeans a převod z Visual Paradigm do NetBeans. Prostředí programu Visual Paradigm for UML
33
Obrázek 7 ‐ Prostředí programu Visual Paradigm UML (19)
Stručné představení jednotlivých funkcí ukazuje následující tabulka:
1
Menu
Umožňuje vybírat a provádět různé operace.
2
Toolbar
Rozšíření nabídky. Možnosti pro konkrétní skupinu diagramu.
3
Panel Navigace
V této části je uveden přehled diagramů členěn, dle jejich typu.
4
Panel Vlastnosti
Ukazuje vám možnosti při vybrání modelu nebo tvaru.
5
Panel Zpráv
Zde se zobrazí možné informace nebo varování.
6
Panel Diagramů
V této části se zobrazují konkrétní diagramy
Po spuštění programu Visual Paradigm for UML vytvoříme nový projekt (File‐>New Project). V případě, že vytváříte aplikaci v jazyku – Java, C++, C#, Action Script, Visual Basic vyberte daný jazyk v položce Language, jinak nechte na UML. Vyplňte informace o projektu a klikněte na Create Blank Project.
34
Obrázek 8 ‐ Založení nového projektu (19)
6.1.1) Vytváření databázového modelu V této části budeme vytvářet databázi aplikace. Vytvářet budeme rovnou její fyzický model. V panelu navigace v sekci Database Modeling‐ >Entity Relationship Diagram vytvoříme New Entity Relationship Diagram.
Obrázek 9 ‐ Vytvoření databázového modelu (19)
Do panelu Diagramů vložíme dané čtyři entity (Knihy, Komentáře, Výpůjčky a Spisovatele) a přidáme k nim atributy. Můžeme je vkládat kliknutím pravého tlačítka na entity a Open Specification na záložce Columns a vložit dané hodnoty.
35
Obrázek 10 ‐ Přidávání atributů k entitám (19)
Po přidání všech objektů a stanovení primární klíčů vkládáme vztahy mezi objekty. V tomto případě One‐to‐One nebo One‐to‐Many. Předem nevkládejte cizí klíče, ale pouze vytvořte vazby a cizí klíče se vytvoří sami. Výsledek fyzického modelu je vidět na obrázku níže.
Obrázek 11 ‐ Fyzický model databáze ‐ Knižní databáze (19)
36
6.1.2) Generování SQL kódu V této části máme hotový databázový model. Výsledek chceme převést do databázového serveru. Bylo by zbytečné vytvářet ručně SQL příkazy. Většina předních nástrojů na modelování již umí generovat SQL příkazy automaticky z fyzického modelu. Mezi takové nástroje patří i Visual Paradigm. Pro takový převod je nutné kliknout v menu na Tools‐>Object‐Relation Mapping (ORM)‐>Generate Database. Pokud chceme generovat pouze SQL příkazy, musí být v seznamu Generate vybráno Database only. Dále v tomto kroku volíme, kam se nám má exportovat výsledný příkaz (Output Path – cesta k textovému soubor dll). Dále je zde možné nastavit způsob generování výstupu (vkládání komentářů, formátování, generování demonstračních dat, kódování a další). Pokud chceme dotaz exportovat přímo do databázového serveru, zaškrtneme Export to database. Ovšem v tom případě musíme nadefinovat způsob připojení, ten je možné definovat po kliknutí na Database Options. Poté můžeme vygenerovat samotný SQL příkaz.
Obrázek 12 ‐ Generování SQL příkazu (19)
37
Níže je pro kontrolu exportován výsledný SQL dotaz. CREATE TABLE Knihy (ISBN varchar(16) NOT NULL, Nazev varchar(255) NOT NULL, Nakladatel varchar(100) NOT NULL, Anotace varbinary(2000), SpisovateleIDSpisovatele int(10) NOT NULL, PRIMARY KEY (ISBN)) type=MyISAM CHARACTER SET UTF8; CREATE TABLE Spisovatele (IDSpisovatele int(10) NOT NULL AUTO_INCREMENT, Jmeno varchar(255) NOT NULL, `Datum narození` date NOT NULL, Zivotopis varbinary(2000), PRIMARY KEY (IDSpisovatele)) type=MyISAM CHARACTER SET UTF8; CREATE TABLE Komentare (KnihyISBN varchar(16) NOT NULL, Komentar varbinary(2000) NOT NULL) type=MyISAM CHARACTER SET UTF8; CREATE TABLE Vypujcky (KnihyISBN varchar(16) NOT NULL, Jmeno varchar(255) NOT NULL, DatumPujceni date NOT NULL, DatumVraceni date) type=MyISAM CHARACTER SET UTF8; ALTER TABLE Knihy ADD INDEX FKKnihy764155 (SpisovateleIDSpisovatele), ADD CONSTRAINT FKKnihy764155 FOREIGN KEY (SpisovateleIDSpisovatele) REFERENCES Spisovatele (IDSpisovatele); ALTER TABLE Komentare ADD INDEX FKKomentare78410 (KnihyISBN), ADD CONSTRAINT FKKomentare78410 FOREIGN KEY (KnihyISBN) REFERENCES Knihy (ISBN); ALTER TABLE Vypujcky ADD INDEX FKVypujcky822831 (KnihyISBN), ADD CONSTRAINT FKVypujcky822831 FOREIGN KEY (KnihyISBN) REFERENCES Knihy (ISBN); Dále je pro kontrolu vložen i výstup z PHPMyAdminu(21), kam proces generování SQL příkazu vygeneroval databázi.
Obrázek 13 ‐ Knižní databáze v PHPMyAdminu(21)
Z Visual Paradigm lze generovat i do dalších databázových systém, kromě MySQL. Podporovány jsou následující – MS SQL Server, Oracle, PostgreSQL, Sybase, Informix, DB2. 6.1.3) Generování a úprava diagramu tříd Po vytvoření databáze dochází často ke generování tříd z databázových entit. Tak tomu bude i u Knižní databáze. Vygenerování diagramu tříd je ještě jednoduší, nežli generování SQL příkazů. Do průvodce, který nám generuje diagram tříd, se dostaneme kliknutím v menu na Tools‐>Object‐ Relation Mapping (ORM)‐>Synchronize to Class Diagram. Zde stačí pouze vybrat z jakého databázového modelu se nám má obsah generovat a pojmenovat nový diagram tříd. 38
Obrázek 14 ‐ Generování diagramu tříd (19)
Do tohoto diagramu se vkládají, jak atributy, tak i funkce. Z databázového modelu došlo ke zkopírování pouze atributů. Funkce jsou operace, které má třída vykonávat. U této aplikace mohou být funkce například – přidej výpůjčku, přidej komentář, uprav výpůjčku, přidej knihu a mnoho dalších. Tyto funkce je potřeba ručně doplnit. Jak upravit jednotlivé třídy? Klikneme na danou třídu pravým tlačítkem a klikneme na Open Specification a poté na záložku Operations. V záložce Atributes je možné upravit podobu atributů.
Obrázek 15 ‐ Přidání operací ke třídě Výpůjčky (19)
U tříd a funkcí, je dále možné definovat, zdali jsou veřejné nebo soukromé. Pro kontrolu je níže vložen výsledný diagram tříd spolu s nově vytvářenými operacemi.
39
Obrázek 16 ‐ Diagram tříd (19)
6.1.4) Generování zdrojového kódu aplikace Dalším dílkem před vývojem aplikace je generování zdrojového kódu aplikace. Tato část ulehčí programátorům práci v tom, že nemusí přepisovat množství kódu, který jim předtím analytici namodelovali, zrychlí se tím celý proces vývoje. Pro generování zdrojového kódu klikneme v menu na Tools‐>Object‐Relation Mapping (ORM)‐>Generate Code. Jediné, co zde definujeme, kam se má daný kód převést.
Obrázek 17 ‐ Průvodce na generování zdrojového kódu (19)
Níže je část z vygenerovaného kódu ze třídy Spisovatele. 40
private $_IDSpisovatele;
private $_jmeno;
private $_datum_narozeni;
private $_zivotopis;
} ?> U takto malého množství tříd, atributů a metod není vidět zřejmá výhoda. U většího množství těchto objektů by to ovšem velmi ušetřilo a zpřehlednilo programovací práce. Podobný postup by bylo možné aplikovat i na jiné programovací jazyky. Tento program umožňuje generovat zdrojový kód do jazyků – Java, C#, VB.NET, ODL, ActionScript, IDL, C++, Delphi, Perl, Python a Ruby. U programovacích jazyků Java a C++ umí tento program kompletní reverse engeneering. 6.1.5) Generování dokumentace Poslední částí, která zde bude vysvětlena, je funkce generování technické dokumentace. Využívá se u větších projektů. Díky ní je možné zpřístupnit informace o aplikaci osobám, které do ní přístup nemají. Využíváno to je zejména v případech, kdy poskytujeme část své aplikace, jako veřejné API. Bez této možnost bychom museli dokumentaci ručně tvořit, což zabere poměrně dost času. Pokud ovšem dobře komentujeme a zaznamenáváme vývoj, tak stačí vygenerovat dokumentaci. Pro generování dokumentace klikneme v sekci Toolbar na Doc‐> a vybereme vhodnou možnost. Tento program umožňuje generování do formátu HTML, PDF a DOC. Dále umožňuje publikování, jako několik webových stránek. Výsledek z poslední možnost je velmi přehledný a pěkný.
6.2) Vytváření modelu z hotové aplikace Přesně opačný postup je generování modelů z hotové aplikace ‐ zdrojových kódů a databáze. Z těchto dvou částí můžeme vygenerovat – diagram tříd, databázový model a dokumentaci. Ovšem není to rozhodně plně automatické. U diagramu tříd a databázového modelu je nutné přiřadit vazby mezi jednotlivými objekty a ručně domodelovat. 41
Pro generování diagramu tříd klikneme v menu na Tools‐>Instant Reverse‐> a daný programovací jazyk v tomto případě PHP 5.0. Jediné, co stačí vyplnit je cesta, kde se nacházejí zdrojové kódy a zdali se má přepsat diagram tříd nebo jenom aktualizovat.
Obrázek 18 ‐ Generování diagramu tříd ze zdrojového kódu (19)
Pro generování databázového modelu (fyzického modelu) klikneme v menu na Tools‐>Object Relation Mapping (ORM)‐>Reverse Database. Zde se vyplňuje, jaké všechny části chceme exportovat a vybereme databázi. Výsledkem je nově vygenerovaný fyzický model. Podobný způsobem lze generovat pouze části zdrojového kódu nebo databáze a přidávat je do diagramů. Zajistí se tím neustálá aktuálnost diagramů a zdrojového kódu zároveň.
6.3) Převod modelu z Visual Paradigm do Netbeans Další možností, kterou umožňuje program Visual Paradigm je převod datových modelů přímo do aplikace NetBeans. Umožní to provádět programovací a analytickou činnosti v rámci jednoho programu. Jak něco takového dosáhnout? Spustíme si program SDE 6.0 for NetBeans Professional Edition v menu klikneme na File‐>New Project‐>PHP application (rozlišujeme, zdali je to existující aplikace nebo nová). V tomto případě budeme vytvářet zcela nový PHP projekt. V další části definujeme informace o projektu, jeho jméno, cestu (kde se mají vytvářet zdrojové kódy), verze programovacího jazyka a kódování. Níže na obrázku je vidět daná konfigurace. Poté definujeme způsob zobrazování, zdali bude to lokálně vytvářená aplikace nebo vzdáleně. Spolu s tím vkládáme i URL cestu. K nově zakládajícím aplikacím je možné vložit předpřipravený framework. NetBeans u PHP aplikací podporuje Symfony a Zend. To je kompletní souhrn částí, kterými je nutné projít k vytvoření nového projektu.
42
Obrázek 19 ‐ Vytvoření nového PHP projektu (informace o projektu) (20)
Každopádně v této fázi není možné vytvářet diagramové modely k této aplikaci. Abychom tak mohli učinit, musíme označit tento projekt. To je možné tak, že klikneme vlevo do záložky Project a označíme daný projekt. Poté v menu klikneme na položku Tools‐>Start SDE PE‐NB. Poté se v NetBeans aktivuje rozšiřující pagin, ve kterém je možné provádět datové modelování.
Obrázek 20 ‐ NetBeans ‐ základní zobrazení (20)
Obrázek 21 ‐ NetBeans ‐ rozšíření zobrazení (20)
43
6.4) Vytváření prototypu grafického návrhu aplikace Visio není příliš komplexní nástroje CASE, ale je v něm možné tvořit značné množství diagramů. Hlavním problémem je, že není možné jednotlivé diagramy mezi sebou propojit. Zajímavou funkci, kterou má program MS Visio a která bude popsána v této části je tvorba Wireframe diagramů. Tyto diagramy mohou být používány, jak u desktopových aplikací, tak i webových. Slouží zejména jako předlohy pro zpracování uživatelského rozhraní. Hlavní výhodou je, že v tomto typu diagramu je možné vytvořit rychle základní vizuální podobu, kterou je následné možné předat grafikům k detailnímu zpracování.
Obrázek 22 ‐ Znázornění wireframe v MS Visio 2010 (18)
Jako příklad je níže uveden formulář pro registraci uživatelů na webových stránkách.
44
Obrázek 23 ‐ Návrh uživatelského rozhraní (18)
45
6.5) Vytváření konceptuálního modelu architektury aplikace Další zajímavou funkcí a diagramem je konceptuální model architektury webových stránek. Používá se zejména na začátku plánování, kdy navrhujeme jednotlivé rozpoložení sekcí a dílčích stránek. Výhodou je lepší přehlednost a jasné vymezení ve struktuře. To zrychlí zpracování ve vývoji stránek.
Obrázek 24 ‐ Znázornění modelu architektury MS Visio 2010 (18)
46
7) Závěr Cílem této práce bylo představit možnosti dnešních nástrojů CASE. V úvodu došlo k zasvěcení do tématiky CASE a popsání základních využívaných diagramů. Poté jsme představili poslední verze nejzajímavějších komerčních (PowerDesigner, Microsoft Visio a Enterprise Architecture) a nekomerčních (StarUML, BOUML, Umbrello a UMLet) nástrojů CASE. Dále jsme popsali postup výběru vhodného nástroje CASE. Aby naše práce nebyla ryze teoretická, přidali jsme do ní i praktický postup práce s nástrojem CASE u PHP/MySQL webové aplikace. Podařilo se nám tedy naplnit všech vytýčených cílů a sestavit dokument popisující stav nástrojů CASE. Dochází k výrazným změnám v nástrojích CASE, zejména v komplexnosti, přehlednosti, zvýšení množství funkcí, které zrychlují prací s nimi a usnadňují samotný vývoj aplikací. Hlavním trendem se stává přesouvání desktopových nástrojů do webového prostředí.
47
8) Zdroje 1. PowerDesigner. [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://www.sybase.cz/index.php?option=com_content&view=article&id=3&mid=24
2. PowerDesigner 15.3 New Features Summary., [online]. 2009‐03‐11. [cit. 2010‐ 03‐11]. Dostupný z WWW: http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.infocenter.powerdesign er.15.3/doc/html/title.html
3. Protože každý má rád obrázky., [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://www.microsoft.cz/project‐visio‐soutez/dokumenty/Datasheet_Visio_2010.pdf
4. MS Visio 2010., [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://www.microsoft.com/cze/office2010/produkty/visio.aspx
5. ArgoUML., [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://argouml.tigris.org/
6. StarUML., [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://staruml.sourceforge.net/en/
7. BOUML., [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://bouml.free.fr/
8. Umbrello., [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://uml.sourceforge.net/ 9. Umbrello UML Modeller [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://en.wikipedia.org/wiki/Umbrello_UML_Modeller
10. List of Unified Modeling Language tools . [online]. 2009‐03‐11. [cit. 2010‐03‐ 11]. Dostupný z WWW: http://en.wikipedia.org/wiki/List_of_UML_tools 11. Enterprise Architecture 8 Reviewer Guide 2010., [online]. 2009‐03‐11. [cit. 2010‐03‐11]. Dostupný z WWW: http://www.sparxsystems.com.au/downloads/whitepapers/EAReviewersGuide.pdf
12. Přehled nástrojů CASE na tuzemském trhu., [online]. 2009‐03‐11. [cit. 2010‐03‐ 11]. Dostupný z WWW: http://panrepa.org/CASE/jaro2010/case_jaro2010.pdf
48
13. Case, [online]. 2010‐28‐09. [cit. 2010‐25‐11]. Dostupný z WWW: http://cs.wikipedia.org/wiki/CASE_n%C3%A1stroje
14. Computer‐aided software engineering, [online]. 2010‐21‐09. [cit. 2010‐25‐11]. Dostupný z WWW: http://en.wikipedia.org/wiki/Computer‐aided_software_engineering
15. Nástroje CASE? Co? Proč? Jak?, [online]. 2010‐21‐09. [cit. 2010‐25‐11]. Dostupný z WWW: http://www.dbsvet.cz/view.php?cisloclanku=2004052702
16. Diagramy UML, [online]. 2010‐20‐11. [cit. 2010‐20‐11]. Dostupný z WWW: http://objekty.vse.cz/Objekty/MetodikyANotace‐UMLDiagramy
17. Přehled nástrojů CASE na tuzemském trhu., [online]. 2009‐03‐11. [cit. 2010‐03‐ 11]. Dostupný z WWW: http://panrepa.org/CASE/zima2009/CASE_ve_vyvojarske_firme_zima2009.pdf
18. Microsoft Visio 2010, [online]. 2010‐26‐11. [cit. 2010‐26‐11]. Dostupný z WWW: http://www.microsoft.com/cze/office2010/produkty/visio.aspx 19. Visual Paradigm, [online]. 2010‐26‐11. [cit. 2010‐26‐11]. Dostupný z WWW: http://www.visual‐paradigm.com/ 20. NetBeans, [online]. 2010‐26‐11. [cit. 2010‐26‐11]. Dostupný z WWW: http://netbeans.org/ 21. PHPMyAdmin, [online]. 2011‐06‐01. [cit. 2011‐06‐01]. Dostupný z WWW: http://www.phpmyadmin.net/
49
9) Rejstřík obrázků Obrázek 1: Pokrytí životního cyklu produktu nástroji CASE (15) ............................................................. 7 Obrázek 2 – ukázka Class diagramu v programu Gliffy (print screen) ................................................... 13 Obrázek 3 ‐ ukázka Class diagramu v programu Creately (print screen) .............................................. 14 Obrázek 4 ‐ Logo NetBeans (20) ............................................................................................................ 32 Obrázek 5 ‐ Logo Visual Paradigm (19) .................................................................................................. 32 Obrázek 6 – Logo Microsoft Visio 2010 (18) ........................................................................................ 32 Obrázek 7 ‐ Prostředí programu Visual Paradigm UML (19) ................................................................. 34 Obrázek 8 ‐ Založení nového projektu (19) ........................................................................................... 35 Obrázek 9 ‐ Vytvoření databázového modelu (19) ............................................................................... 35 Obrázek 10 ‐ Přidávání atributů k entitám (19) ..................................................................................... 36 Obrázek 11 ‐ Fyzický model databáze ‐ Knižní databáze (19) ............................................................... 36 Obrázek 12 ‐ Generování SQL příkazu (19) ............................................................................................ 37 Obrázek 13 ‐ Knižní databáze v PHPMyAdminu .................................................................................... 38 Obrázek 14 ‐ Generování diagramu tříd (19) ........................................................................................ 39 Obrázek 15 ‐ Přidání operací ke třídě Výpůjčky (19) ............................................................................. 39 Obrázek 16 ‐ Diagram tříd (19) .............................................................................................................. 40 Obrázek 17 ‐ Průvodce na generování zdrojového kódu (19) ............................................................... 40 Obrázek 18 ‐ Generování diagramu tříd ze zdrojového kódu (19) ........................................................ 42 Obrázek 19 ‐ Vytvoření nového PHP projektu (informace o projektu) (20) .......................................... 43 Obrázek 20 ‐ NetBeans ‐ základní zobrazení ......................................................................................... 43 Obrázek 21 ‐ NetBeans ‐ rozšíření zobrazení (20) ................................................................................. 43 Obrázek 22 ‐ Znázornění wireframe v MS Visio 2010 (18) .................................................................... 44 Obrázek 23 ‐ Návrh uživatelského rozhraní (18) ................................................................................... 45 Obrázek 24 ‐ Znázornění modelu architektury MS Visio 2010 (18) ...................................................... 46
50
10) Rejstřík tabulek Tabulka 1 ‐ Vybrané komerční produkty ............................................................................................... 15 Tabulka 2 ‐ Shrnutí produkt PowerDesigner 15.3 ................................................................................ 18 Tabulka 3 ‐ Porovnání edic Visio ........................................................................................................... 20 Tabulka 4 ‐ Shrnutí produkt Enterprise Architecture 8 ......................................................................... 23 Tabulka 5 ‐ Vybrané nekomerční produktyArgoUML ............................................................................ 25 Tabulka 6 ‐ Shrnutí produkt ArgoUML .................................................................................................. 26 Tabulka 7 ‐ Shrnutí produkt StarUML .................................................................................................... 28 Tabulka 8 ‐ Shrnutí produkt BOUML ..................................................................................................... 29 Tabulka 9 ‐ Shrnutí produkt Umbrello ................................................................................................... 30 Tabulka 10 ‐ Shrnutí produkt UMLet ..................................................................................................... 31
51