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



Podobné dokumenty
Obsah. Zpracoval:

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Novinky ve Visual Studio Tomáš Kroupa

UML. Unified Modeling Language. Součásti UML

Seznámení s prostředím dot.net Framework

Compatibility List. GORDIC spol. s r. o. Verze

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

TÉMATICKÝ OKRUH Softwarové inženýrství

Unifikovaný modelovací jazyk UML

CASE nástroje. Jaroslav Žáček

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

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

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Analýza a Návrh. Analýza

MBI - technologická realizace modelu

CASE. Jaroslav Žáček

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

1 Webový server, instalace PHP a MySQL 13

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

7 Jazyk UML (Unified Modeling Language)

Architektura softwarových systémů

1. Webový server, instalace PHP a MySQL 13

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

UML: Unified Modeling Language

Nové jazykové brány do Caché. Daniel Kutáč

7 Jazyk UML (Unified Modeling Language)

Olga Rudikova 2. ročník APIN

ArcGIS for Server. V oblasti správy, vizualizace a zpracování prostorových dat nabízí ArcGIS for Server tyto možnosti:

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Matematika v programovacích

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

IS pro podporu BOZP na FIT ČVUT

Vývoj informačních systémů. Přehled témat a úkolů

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Úvod 9

Wonderware Information Server 4.0 Co je nového

Komponentový návrh SW

Vývoj informačních systémů. Přehled témat a úkolů

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

INFORMAČNÍ SYSTÉMY NA WEBU

Wonderware InTouch 2012 R2 Co je nového

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Nové vývojové nástroje i5/os Rational Developer for System i V7.1

TÉMATICKÝ OKRUH Softwarové inženýrství

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

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Maturitní témata Školní rok: 2015/2016

PŘÍLOHA C Požadavky na Dokumentaci

Business Intelligence

Novinky. Autodesk Vault helpdesk.graitec.cz,

1. Integrační koncept

Aplikace pro srovna ní cen povinne ho ruc ení

ArcGIS Server 10. Řešení pro sdílení geodat

Požadavky pro výběrová řízení TerraBus ESB/G2x

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

Úvod. Klíčové vlastnosti. Jednoduchá obsluha

Maturitní otázky z předmětu PROGRAMOVÁNÍ

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

Modelování procesů s využitím MS Visio.

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Programovací jazyky Přehled a vývoj

Semestrální práce CASE. aplikací a jejich vazba na CASE. Luboš Harášek;Filip Kroupa;Barbora Matoušková;Petr Pravlovský

IB111 Programování a algoritmizace. Programovací jazyky

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

InterSystems Caché Post-Relational Database

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

ProjectWise V8 XM Edition

Profilová část maturitní zkoušky 2017/2018

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Využití modelovacích nástrojů ve vývojářské firmě

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Microsoft SharePoint Portal Server Zvýšená týmová produktivita a úspora času při správě dokumentů ve společnosti Makro Cash & Carry ČR

Architektury informačních systémů

Architektury informačních systémů

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

Modelování procesů (2) Procesní řízení 1

SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store

Architektury Informačních systémů. Jaroslav Žáček

Tvorba informačních systémů

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Databáze s tisíci uložených procedur. Pavel Bláhovec, DiS pavel@blahovec.cz

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Microsoft Access tvorba databáze jednoduše

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

Stěhování aplikací. Michal Tomek, Sales Manager

Transkript:

Vysoká škola ekonomická v Praze Nástroje pro vývoj aplikací a jejich vazba na CASE Semestrální práce z 4IT450 (CASE Computer Aided System Engineering) Jiří Kysela Tomáš Petřík Vít Kolář Lubomír Kuběna Anton Kochtcheev Ivana Cenigová

Obsah 1. Round-Trip Engineering...3 1.1. Reversní inženýrství (Reverse engineering)...4 1.2. Transformace modelů a automatické generování kódu (FE)...4 1.3. Model Driven Architecture (MDA)...5 1.3.1 Computation Independent Model (CIM)... 6 1.3.2 Platform Independent Model (PIM)... 7 1.3.3 Platform Specific Model (PSM)... 8 1.3.4 Transformace modelu PIM do PSM... 9 2. Integrace CASE do vývojových prostředí...10 2.1. XMI (XML Metadata Interchange)...10 2.2. Tvorba dokumentace...11 2.2.1 Generování z modelu...11 2.2.2 Generování ze zdrojového kódu...11 2.2.3 Nástroje pro automatickou tvorbu dokumentace...11 2.3. Týmová podpora...12 2.3.1 Sdílené repository...12 2.3.2 Sdílení dokumentů v síti...12 3. Vývojová prostředí (IDE)...12 3.1. NetBeans IDE...12 3.1.1 Licence...13 3.1.2 Systémové požadavky...13 3.1.3 Nástroj pro podporu UML...13 3.1.4 Tvorba dokumentace...13 3.1.5 Další vývoj...15 3.1.6 Závěr...15 3.2. Eclipse...15 3.2.1 Architektura Eclipse...16 3.2.1 Novinky v Eclipse v3.3...17 3.3. Zend Studio...19 3.4. JDeveloper...23 3.4.1 Novinky v JDeveloper 11g...23 3.5..NET...25 3.5.1 Hlavní záměry pro vytvoření.net Frameworku...25 3.5.2 Historie.NET...26 3.5.3.NET 3.5 Framework...26 3.5.4 Visual Studio...27 3.5.4.1 Historie Visual Studia...27 3.5.5 Visual Studio 2008...28 3.5.6 Modelování...31 3.5.6.1 Class designer...31 3.5.6.2 Application Connection Designer...32 3.5.6.3 Logical Datacenter Designer...32 3.5.6.4 Deployment Designer...32 3.5.7 Dokumentace...32 3.6. Borland Delphi 2006...33 4. CASE nástroje...33 4.1. Select Architect...33 4.1.1 Novinky ve verzi 7.0...34 4.2. Borland Together 2007...35 4.2.1 Hlavní rysy...36 4.2.2 Systémové požadavky...37 2

4.2.3 Novinky ve verzi 2007...38 4.2.4 Všeobecně...39 4.2.5 Integrace...39 4.2.6 Opravené chyby (dle www.borland.com)...39 4.2.7 Ukázka uživatelského rozhraní...43 4.3. Visual Paradigm for UML 6.1 SP1...44 4.3.1 Hlavní rysy...44 4.3.2 Novinky ve verzi 6.1...45 4.3.3 Ukázka uživatelského rozhraní...46 4.4 Sparx Systems Enterprise Architect...47 4.4.1 UML 2.1...48 4.4.2 Datové modelování...48 4.4.3 MDA...49 4.4.4 Code Engineering...49 4.4.5. Podpora IDE...50 4.4.6 Edice...50 4.5 Sybase PowerDesigner...51 4.5.1 Modelovací techniky...51 4.5.2 Podporované platformy...51 4.5.3 Enterprise...51 4.5.4 Podpora IDE...52 5. Seznam použitých zdrojů...53 1. Round-Trip Engineering Round-Trip engineering (dále jen RTE) je dnes již poměrně známým a akceptovaným pojmem v oblasti vývoje IS. RTE, jak již název napovídá, je opakující se proces, který by měl zajišťovat vazbu mezi vygenerovaným kódem, návrhem a analytickým modelem systému. Jinými slovy stará se o synchronizaci analytických a designových modelů s konkrétní implementací návrhu. Jestliže analytik případně designér provede změnu v modelu (např. v diagramu tříd změní nebo přidá atribut, metodu u některé z tříd), zanese se tato změna automaticky do kódu aplikace a do modelů nižších vývojových vrstev. Této fázi se říká také forward engineering (dále jen FE). Naopak, pokud programátor provede změnu v kódu (např. přidá metodu v některé z již existujících tříd), tak se tato změna projeví v diagramu, o této části se zase hovoří jako o fázi reverse engineeringu (dále jen RE). O udržení RTE procesu se pak stará tzv. synchronizér kódu, který umožňuje synchronizovat programový kód s např. UML modelem, aniž by se musel provádět celý RE nebo FE proces od samého počátku. Synchronizér tedy usnadňuje údržbu, značně šetří čas a umožňuje udržovat konzistenci mezi modelem a vaší aplikací. Proto se dá pohlížet na RTE jako na mnohem komplexnější a složitější proces než jako na pouhý součet RE a FE. Úkolem RE a FE je totiž obvykle pouze samostatná a izolovaná transformace, kdy se spousty informací z cílového artefaktu ignorují a převážně se vytvoří nový artefakt přepsáním jeho staré verze, pokud existuje. Na rozdíl od toho RTE vyžaduje, aby se informace v cílovém artefaktu uchovaly nezměněné, což také poukazuje na to, že záměrem RTE je srovnat modely, spíše než je pouze transformovat v daném směru. 3

Obr. 1. Round-trip Engineering proces 1.1. Reversní inženýrství (Reverse engineering) V dnešní době, kdy aplikace jsou mnohem složitější a komplexnější, se jakákoliv změna např. nová funkcionalita poměrně těžko realizuje bez dobré znalosti systému a absence jakýchkoliv modelů. Proto určitá forma abstrakce za použití vizualizace se jeví jako dobrý pomocník, obzvlášť v případech, kdy se setkáváme s aplikací poprvé. Podle Eliota Chikofskyho a Jamese Crosse [2] je reversní inženýrství proces analyzování systému za účelem identifikování jeho součástí (komponent) a vztahů mezi nimi. Výsledkem této analýzy je reprezentace zkoumané aplikace vytvořená za použití určitého stupně abstrakce. RE je tedy částí údržby a podpory softwaru, která nám pomáhá pochopit systém a následně ulehčit realizaci případných změn. Samotné provedení změn ovšem nespadá do širokého rozsahu činností zpětného inženýrství. RE se zabývá pouze zkoumáním za účelem podrobného popisu a to ve všech fázích životního cyklu softwaru (s tím souvisí zvolená forma abstrakce). RE by měl být chápán jak komplex různých a přitom navzájem se doplňujících aktivit vedoucích ke stejnému cíli, kterým je popsání a následné porozumění dílčích celků na konkrétní úrovni abstrakce. 1.2. Transformace modelů a automatické generování kódu (FE) Na počátku FE procesu stojí analytik, který vytvoří model reality, jenž popisuje z čeho je realita složená. De facto se jedná o model věcné problematiky budoucího systému a finální struktuře kódu odpovídá opravdu jen zhruba. Dalším krokem je transformace analytického modelu do návrhového (designového) modelu. Nastává tedy etapa, kdy se analytický model rozšíří o technologické aspekty budoucí aplikace. Výstupem této etapy by měly být postačující podklady pro finální implementaci. Tento model je už vhodný pro automatické generování kódu. Automatické generování kódu se využívá ve fázi implementace systému. Umožňuje nám vytvořit programový kód, který koresponduje s designovým modelem. Designový model na rozdíl od analytického modelu je závislý na konkrétní technologii, kterou aplikujeme při implementaci. Generátorem kódu se rozumí nějaká 4

aplikace nebo utilita využívající určitého algoritmu (těchto algoritmů existuje celá řada a jsou stále předmětem výzkumu) k převedení modelu do námi vybraného jazyka. Je důležité poznamenat, že vygenerovaný kód není finální a tedy by nepotřeboval další zásah programátora. Generátor totiž vygeneruje pouze skelet (kostru) v konkrétním jazyce, která logicky odpovídá návrhu budoucího systému. Snad pouze u generování skriptů z datových modelů se dá hovořit o finální podobě kódu. 1.3. Model Driven Architecture (MDA) Obr. 2. MDA a jeho možné oblasti využití [3] Modelem řízená architektura (MDA) je specifikace konsorcia OMG [3] založená na pevně stanovených standardech této skupiny. Tento koncept přináší nový přístup v oblasti vývoje a především údržby informačních systémů. Pojmem modelem řízená architektura se rozumí skutečnost, že poskytuje prostředky pro využití modelů k tomu, aby řídily průběh návrhu, porozumění, konstrukce a údržby systému. Hlavní myšlenkou MDA je oddělit business a aplikační logiku od technologické platformy. Tato myšlenka není nikterak nová, potřeba vytvářet analytický a návrhový model tu existuje poměrně dlouho. To, co MDA přináší nového, jsou postupy a způsoby, jak tyto modely správně transformovat. Primárními cíly tohoto přístupu jsou zajištění přenosnosti, interoperability (součinnosti) a znuvupoužitelnosti díky oddělené architektury. MDA poskytuje obecný přístup jak: Specifikovat systém nezávisle na platformě na které je systém vystavěn Specifikovat platformy Vybrat konkrétní platformu Transformovat systém podle zvolené platformy MDA člení architekturu na čtyři úrovně: Model nezávislý na počítačovém zpracování (CIM) Model nezávislý na platformě (PIM) 5

Model specifický na konkrétní platformě (PSM) Zdrojový kód aplikace (výsledná implementace) 1.3.1 Computation Independent Model (CIM) Model, též známý jako doménový model 1, se zaměřuje výhradně na prostředí a obecné požadavky systému a jeho detailní struktura a konkrétní zpracování jsou v této fázi skryté nebo dosud neurčené. Tento model reflektuje business požadavky zákazníka a pomáhá přesně popsat to, co se od systému očekává. Proto musí být nezávislý na technickém zpracování a popisovat systém čistě věcně a logicky. Předpokládá se, že uživatel těchto modelů je člověk, který není obeznámen s modely nebo konstrukcemi užívaných k vyjádření funkčnosti těch požadavků, které jsou právě specifikované v CIM. Nejčastějšími uživateli tohoto typu modelů jsou business analytici případně sami uživatelé systému. To, že ho mohou vytvářet samotní uživatelé, svědčí o tom, že k tvorbě tohoto modelu není opravdu zapotřebí příliš znalostí o informačních technologiích. Tento druh zobrazení neslouží pouze jako prostředek k pochopení problémů a vymezení problémové oblasti, ale také jako jakýsi sdílený zdroj pojmů (slovník problémové oblasti), které se používají v jiných modelech (úrovních MDA) nebo pro další modelovaní na stejné úrovni. Ve skutečnosti mohou být tyto modely např. procesní modely, use case diagramy případně diagramy činností. Obrázek 1: Ukázka CIM (procesní model) v nástroji Select Architect [5] 1 Model identifikující vztahy mezi všemi hlavními entitami systému a obvykle vyjadřuje jen jejich důležité metody a atributy [4]. 6

1.3.2 Platform Independent Model (PIM) Tento model se zabývá tou částí kompletní specifikace systému, která se nemění podle konkrétního druhu zvolené platformy. PIM totiž zprostředkovává určitou míru nezávislosti konkrétního řešení dané problémové oblasti tak, aby se hodila na různé platformy podobného typu. Popisuje chování (algoritmy) a strukturu aplikace opravdu jen v těch mezích, které zajistí jeho přenositelnost mezi různými technologickými řešeními. Oproti předcházejícímu modelu je doplněn o ty informace (algoritmy, principy, pravidla, omezení ), které jsou nezbytně důležité k řešení dané problémové oblasti prostřednictvím informačních technologií. Ovšem je důležité poznamenat, že tento model přesně nevychází z CIM, nýbrž si z něho obvykle IT analytik vybere pouze to podstatné, co se považuje za smysluplné pro potřeby počítačového zpracování konkrétní problémové oblasti. Transformace z modelu CIM do PIM obvykle neprobíhá automaticky, je to dáno především odlišným charakterem těchto modelů, kde PIM je model struktury, kdežto CIM je spíše procesní model. Některé nástroje ovšem (např. Select Architect [7]) umožňují částečnou transformaci těchto procesních modelů přímo do diagramu tříd. Tento přechod probíhá skrze Use Case 2 scénáře, které přiblíží procesní model k objektovému (tato transformace je zachycena na předešlém a následujícím obrázku). Velkou výhodou PIM modelu je jeho znovupoužitelnost a proto může posloužit jako výchozí bod pro různá zadání (tenký, tlustý klient, ). 2 Use Case popisují interakce mezi uživatelem a systémem [5]. 7

Obrázek 2: Ukázka PIM modelu v nástroji Select Architect [5] 1.3.3 Platform Specific Model (PSM) Poslední model (pokud se nebere v úvahu zdrojový kód) specifikace MDA, který je již závislý na cílové platformě, kombinuje PIM s konkrétním technologickým řešením (např..net, J2EE, Corba). Tento model věrně odráží strukturu kódu a proto je již dostatečným podkladem pro implementaci, de facto se jedná o vizualizaci kódu na stejné úrovni abstrakce. Vyskytují se v něm objekty, které úzce souvisí se zvoleným technologickým prostředím (např. operace pro přístup k atributům, konstruktory a destruktory tříd, ). Příkladem jsou třídy specifické pro danou platformu, které dovolují komunikovat s balíkem objektů běžně dodávaných s vývojovou platformou. Databázový model (model relační databáze) lze považovat také za PSM. 8

Obrázek 3: Ukázka PSM modelu a vygenerovaného kódu v nástroji Select Architect [5] 1.3.4 Transformace modelu PIM do PSM Jedná se o proces aplikace konkrétních transformačních pravidel na model nezávislý na platformě, jenž vyústí v PSM (vstup a výstup této transformace je zobrazen na dvou předešlých obrázcích). Otázkou je, jaká transformační pravidla mají být použita u konkrétních elementů z PSM. MDA specifikace popisuje hned několik způsobů, jak vytvořit (mapovat) tyto vazby (v čemž spočívá asi jeho největší přínos). Jednou z možností je mapovat přes meta-modely, kdy jednotlivé typy elementů jak v PIM tak v PSM, jsou specifikovány ve dvou odlišných tzv. MOF 3 ( Meta Object Facility ) meta-modelech. V tomto případě jsou určena jasná mapovací pravidla (algoritmy) určující protějšky ke konkrétním typům v meta-modelu PIM z metamodelu PSM. Dalším přístupem je mapování prostřednictvím tzv. značek. Těmito značkami se označí jednotlivé elementy a tím se určuje, jakým způsobem budou transformovány. Slouží tedy jako identifikátory pro transformační pravidla. Jednoduchým příkladem značky by mohla být Entita, která může být aplikována na nějakou třídu nebo jiný objekt z PIM. Při transformaci takto označených objektů pak bude použita jí odpovídající šablona. V reálu se k transformaci používá určitá kombinace obou výše uvedených přístupů. Mapování pomocí meta-modelu totiž v sobě skrývá omezení, které nedovoluje více 3 OMG standard, úzce spojený s UML, který umožňuje meta-data management a definovat modelovací jazyky. 9

instancím jedno typu z PIM přiřadit různé protějšky z PSM. Tato neschopnost, dodatečně přidat potřebné informace, dělá tento způsob silně deterministickým. Proto některé charakteristické typy s PIM musejí být opatřeny značkou za účelem detailnějšího specifikování. Na druhou stranu každá transformace jednotlivých elementů v sobě přepokládá určitá typová omezení, kterých bych se každý návrhář měl držet, aby výsledná transformace měla vůbec nějaký smysl. To znamená, že každý typ elementu v PIM má implicitně definovanou sadu značek, kterými ho lze označit. Výsledkem každé transformace je, jak již bylo uvedeno, platformově specifický model a dále záznam o transformaci. Ten v sobě zahrnuje mapu, která ukazuje jaké druhy transformací byly použity pro konkrétní druhy mapování, což umožňuje provádět transformaci i v opačném směru. Tyto informace v důsledku pomáhají lépe synchronizovat jednotlivé vrstvy na různých úrovních abstrakce a tak dosáhnout lepší konzistence. Souhrnný přehled přínosů a cílů RTE: Snížení nákladů na údržbu a vývoj IS Odhálení zásadních chyb už v prvních fázích vývoje Zvýšení produktivity Zvýšení kvality IS Vytváří jasné vazby mezi jednotlivými úrovni vývoje Automatická synchronizace vazeb v reálném čase Zkoumané vlastnosti CASE nástrojů v oblasti Round-trip engineeringu: Generování kódu z diagramu tříd (podpora konkrétních jazyků) Reversní engineering z diagramu tříd Generování kódu z dynamických modelů (sekvenční, stavový diagram) Reversní engineering dynamických modelů Podpora synchronizace jednotlivých vývojových vrstev Podpora MDA ( Model driven architecture ) 2. Integrace CASE do vývojových prostředí 2.1. XMI (XML Metadata Interchange) XMI je formát pro výměnu převážně UML modelů mezi jednotlivými CASE nástroji a vývojovými prostředími i mezi sebou. Specifikace XMI obsahuje XMI Document obsahující data popisující model a XMI Schema, oba typy souborů jsou ve formátu 10

XML, kdy XMI Document by měl mít provázání na XMI Schema pro ověření formální správnosti dat, povinné to ale není. 2.2. Tvorba dokumentace Dokumentace je jednou z nejdůležitějších částí celého projektu a často se na to zapomíná, což ve finále znamená velké problémy. 2.2.1 Generování z modelu Pokud je model správně a dostatečně okomentován, existují nástroje, ať už vestavěné do modelovacích programů nebo specializované, které umějí používat například XMI formát. Po vygenerování získáme dokument nebo soubor dokumentů v požadovaném formátu dostatečně popisující strukturu modelu. 2.2.2 Generování ze zdrojového kódu Téměř pro každý programovací jazyk už má možnost automatického generování dokumentace pomocí speciálně uvozených komentářů s popisem a další strukturou. Většina vývojových prostředí má již generátor zabudovaný nebo ho podporuje jako modul, nebo využívá přímo nástrojů dodávaných s vývojářským frameworkem. * BankAccount.java * * Created on August 11, 2005, 1:19 PM * * To change this template, choose Tools Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */ Tabulka 1 Ukázka formátování dokumentace v Javadocu 2.2.3 Nástroje pro automatickou tvorbu dokumentace Název Jazyky Platforma Výstupy Cena Javadoc Java Windows, Mac, *NIX HTML Zdarma phpdocumentor PHP Windows, Mac, *NIX HTML, CHM, PDF, DocBook, XML Zdarma 11

CppDoc C, C++ Windows, Linux HTML Zdarma Document! X C, C++, C#, IDL,.NET, Access, PL/SQL Windows HTML, CHM Od $599 DOC++ C, C++, Java, IDL Windows, Linux HTML, LaTeX Zdarma SandCastle.NET Windows HTML, CHM Zdarma HeaderDoc C, C++, Java, Delphi, Pascal, PHP, Perl, JavaScript Mac, *NIX HTML, man pages, XML Zdarma Tabulka 2 Porovnání vybraných generátorů dokumentace 2.3. Týmová podpora 2.3.1 Sdílené repository Sdílené repository jsou vlastně datová úložiště na serveru, do kterého má zároveň možnost přístupu několik lidí, a samozřejmě v něm fungují určitá pravidla a omezení pro přístup, aby nedocházelo k nekonzistenci dat a neoprávněným přístupům. Obvykle tyto systémy obsahují i řízení a správu verzí a i jednoduchou wikipedii nebo její obdobu, která umožňuje velmi dobrý přehled o obsahu, verzích, i o tom, co se s repository děje. Tímto se dá i monitorovat průběh vývoje aplikace, modelu nebo čehokoliv jiného. Záleží také samozřejmě na klientském software, jakým způsobem a jak přehledně je celá problematika řešena. 2.3.2 Sdílení dokumentů v síti Prosté sdílení souborů na discích v síti je levné, málo náročné, ale dost zásadní problém nastává, když je potřeba něco změnit nebo mají na jednom dokumentu pracovat současně dva nebo dokonce více lidí. Neexistuje tu možnost jednoduchého verzování, pokud nebereme v úvahu prosté kopírování a přejmenování a další zásadní nevýhodou je absence metainformací, které v případe použití repository mají obvykle velký vliv, zejména pokud na souborech současně pracuje více lidí. 3. Vývojová prostředí (IDE) 3.1. NetBeans IDE NetBeans je plnohodnotné Open-source vývojové prostředí pro vývoj aplikací napsané v Javě, což jeho osud sice spíše předurčuje jako prostředí výhradně pro vývjoj Java aplikací. Nicméně modularita celého prostředí je navržena tak, že 12

prostřednictvím pluginů je možné používat de facto jakýkoliv programovací jazyk, pokud je pro něj napsaný modul. Modularita kromě možnosti používání mnoha programovacích jazyků umožňuje i práci s moduly, které rozšiřují celkovou funkcionalitu prostředí o další možnosti, které se z velké části dají nazývat CASE nástroje, ať už je to modelování, tvorba dokumentace nebo další prostředky zjednodušující a zrychlující práci programátorů. V současné době je k dispozici verze 6.0. Existuje i vývojová platforma NetBeans Platform, je to modulární a rozšířitelný základ pro vytváření rozsáhlých aplikací. Sami výrobci softwaru si tak mohou vytvořit vlastní vývojový systém na míru i s pomocí dalších vlastních modulů a standardizovat tak proces vývoje ve vlastní firmě 3.1.1 Licence NetBeans se možné používat bezplatně jak pro nekomerční, tak i pro komerční užití. Zdrojový kód je k dispozici pod licencí CDDL (Common Development and Distribution License; http://www.netbeans.org/cddl.html ) a GNU GPL. 3.1.2 Systémové požadavky Díky tomu, že je celý systém napsaný v Javě je dostupný na prakticky jakýkoliv počítač, pro který existuje i Java SDK. Ze stránek http://www.netbeans.org je možné stáhnout přímo verze pro Linux, Windows, Mac OS X a pro Solaris. 3.1.3 Nástroj pro podporu UML NetBeans obsahuje podporu pro UML prostřednictvím zásuvného modulu, který je součástí instalačního balíku, tedy kromě verze pro Mac OS X, kde je možné ji manuálně doinstalovat, protože existují problémy s výkonem u některých verzí Javy (http://wiki.netbeans.org/wiki/view/umlmacissues). Modul umožňuje model-driven analýzu, návrh i implementaci. Modul obsahuje podporu pro diagram aktivit, tříd, spolupráce, komponent, nasazeni, sekvenční diagram, diagram stavu a Use Case diagram. V rámci generování kódu je možné kromě prostého vytvoření kódu i sloučení a úpravy stávajícího, přičemž v ve zdrojovém kódu jsou takzvané markery, komentáře sloužíci generátoru kódu vyhodnotit, co má s daným úsekem dělat pokud se něco změnilo, dále existují ještě další volby generátoru, třeba i ve formě konvencí prefixů u jednotlivých metod (get, set,...) nebo možnost volby šablony. Generování modelu ze zdrojového kódu je v současnosti je možné bohužel pouze z java kódu, nicméně vývojový tým má v plánu se tímto zabývat v první fázi minimálně pro jazyk C++. 3.1.4 Tvorba dokumentace NetBeans podporuje tvorbu dokumentace pomocí funkce javadoc z distribuce Java SDK (Software Development Kit) přímo volbou Build -> Generate javadoc for project. Výsledná dokumentace je v HTML formátu. Funkcionalita javadocu je popsaná výše. 13

Obrázek 4 Editace diagramu tříd NetBeans (Windows) Obrázek 5 Editace textu z UML markery (Mac OS X) 14

3.1.5 Další vývoj Vývojový tým UML v NetBeans se chce dále zaměřit na vylepšení grafického návrhu modelů, další vylepšení a optimalizace generovaného kódu, možnost importu a exportu do XMI, dále na revizi UML 2.0 standardu, a také podporu generování kódu pro skriptovací jazyky a C++. 3.1.6 Závěr Vývojové prostředí NetBeans je naprosto plnohodnotné, prozatím ale spíše pouze pro Javu, protože podpora ostatnich jazyků a jejich propojení s funkcemi systému není v současné době na úrovni jiných, dedikovaných, IDE nebo třeba Eclipse. Pro Javu se ale vynikající a výhodou je i možnost customizace NetBeans platform pro vlastní vývojový tým a podmínka využití aplikace bez omezení a drahých licencí. 3.2. Eclipse Eclipse je dnes univerzální, vysoce flexibilní vývojová platforma (tzv. framework) pro různé programovací jazyky (Java, C/C++, PHP, Python, Ruby atd.) s možností využívat široký výběr vývojových a návrhových nástrojů (např. návrh UML, zápis HTML, XML atd.). Jde o multiplatformní software (tedy dostupný pro Linux, Windows, Mac Os ) jež je vyvíjen jako tzv. open-source pod licencí Eclipse Public License. Znamená to, že společně s tímto software jsou šířeny i jeho kompletní zdrojové kódy a příjemce licence může tento program volně užívat, upravovat, kopírovat a distribuovat. O tvorbu a další vývoj tohoto produktu se stará konsorcium Eclipse v čele s firmou IBM. Poslední uvolněná verze nese číselné označení 3.3 (a slovní Europa ) zajímavostí je, že každá verze je pojmenovaná po měsíci Jupitera a vypuštěna je vždy v červnu. Minulá verze byla uvolněna v červnu 2006 a nesla číselné označení 3.2 (a slovní Callisto ), uvolnění budoucí verze se pak očekává v červnu roku 2008 a její číselné označení bude 3.4 (a slovní Ganymede ). Poslední revize současné verze 3.3 proběhla v říjnu roku 2007 a byla uvolněna pod označením 3.3.1.1. 15

Obrázek 6 Editor Eclipse s bublinovou nápovědou 3.2.1 Architektura Eclipse Jak uvádí samotné konsorcium Eclipse na svých webových stránkách, jde o vývojové prostředí pro všechno a pro nic. Tento názor je pravdivý v tom, že tuto platformu v podstatě tvoří pouze jádro a služby, tedy základní stavební kámen, avšak díky otevřené architektuře zásuvných modulů (pluginů) lze Eclipse téměř neomezeně rozšiřovat a doslova tak předělat k obrazu svému, což z ní činí velmi vyhledávanou platformu pro vývoj aplikací v rozličných jazycích (Java, C/C++, PHP, Python, Ruby atd.), ale i pro další vývojový a návrhový software (např. CASE nástroje) jež je tak leckdy distribuovaný již jen pouze jako plugin pro Eclipse. Pro příklad uvádím některé z nich: Produkty rodiny IBM Rational, IBM WebSphere, IBM Lotus Adobe Flex Borland JBuilder 2007 Palm OS Development Suite Red Hat Developer Studio Sybase PowerDesigner (distribuovaná jako nativní aplikace pro Windows i jako plugin pro Eclipse) Zend Studio 16

Původně byla Eclipse určená zejména pro tvorbu aplikací v Javě, a proto také základní distribuce označená Eclipse SDK stále nabízí její silnou podporu prostřednictvím připojených vývojových nástrojů (nazvaných Java Development Tools - JDT) v podobě pluginů. Společně s nimi je ovšem v distribuci SDK standardně zahrnutý i modul Plugin Development Environment (PDE) jež slouží k vytváření nových pluginů a jejich integrování do platformy Eclipse. Nové pluginy se v PDE vytvářejí jako projekty Javy a poté se také kompilují do tříd. O jejich spouštění se stará samotné aplikační jádro platformy Eclipse nazývané Kernel či Runtime, grafické rozhraní je pak nazývané Workbench a pracovní plocha Workspace. Platforma také nabízí komponentu pro Concurrent Versions System (CVS umožňuje aby na stejném projektu pracovalo více lidí současně a aby provedené změny byly konzistentní a distribuovány ostatním) jež je označená jako Team a samozřejmě také pro poskytování nápovědy, což je označeno jako Help. Obrázek 7 Schéma architektury Eclipse 3.2.1 Novinky v Eclipse v3.3 V následujícím textu si popíšeme významnější vylepšení, které najdeme u současné verze tohoto produktu. Nebudu zde popisovat opravené chyby, ani méně podstatné změny - soustředíme se na ty nové prvky a změny, jež mohou být pro uživatele významné až zásadní. 17

Rozšířené Undo / Redo nyní lze vrátit zpět (event. poté provést znovu) podstatně více provedených operací. Použít lze tak tyto funkce i pro práci s projekty, adresáři, soubory, bookmarky a úlohami lze u nich vrátit zpět (event. poté provést znovu) operace jako vytváření, mazání, přesun, kopírování či přejmenování. Nové Quick-access dialogové okno toto nové dialogové okno nabízí možnost rychlého přístupu k prvkům uživatelského rozhraní jako jsou různé příkazy, nastavení preferencí atd. Stačí pouze zadat počáteční písmena hledaného prvku a okno samo filtruje možné výsledky a rovnou je zobrazuje v nabídce. Obrázek 8 Dialogové okno Quick-access Portováno pro Windows Vista poslední verze Eclipse již využívá Windows Vista nativních prvků, jako je kupříkladu nativní double-buffering díky němuž je grafika vykreslována až dvakrát rychleji. Porovnávání v editoru velice významným pomocníkem je nová funkce pro porovnávání bloků textu či dokonce dvou různých souborů. 18

Obrázek 9 Porovnávání kódu v Eclipse Posunování stránek pro programátory velmi užitečnou novinkou je možnost posunovat stránky kdykoliv pouze za pomoci stisknutého tlačítka Control + pohybu kolečka myši. Drag and Drop textu a souborů technologie Drag and Drop byla implementována v plné šíři a tak je nyní možné označený text za pomoci myši přetáhnout uvnitř i vně editoru, přetažením externích souborů (z Windows Exploreru, souborových manažerů apod.) na plochu Eclipse pak dojde k rychlému otevření těchto souborů. Nový spouštěč Eclipse u verze pro Windows byl přidán nový spouštěč eclipsec.exe, který umožňuje spustit Eclipse z konzole s použitím různých přepínačů. 3.3. Zend Studio Zend Studio je integrované vývojové prostředí (IDE) od společnosti Zend technologies určené k programování ve skriptovacím jazyce PHP. Nabízí vše co se od slušného IDE očekává editor se zvýrazňováním syntaxe pro PHP, HTML, XML, CSS a JavaScript, vyhledávání a nahrazování textu, funkce Undo / Redo, technologii Drag & Drop pro text, vkládání komentářů k řádkům či blokům zdrojových kódů, přímé odkazování na manuál PHP, automatické uzavírání tagů a uvozovek atd. Kromě samotného editoru jsou samozřejmě k dispozici nástroje pro odlaďování a testování, pro organizaci zdrojových kódů, dále nástroje pro analyzování zdrojových kódů či pro vytváření dokumentace. Nutno podotknout, že pořízení tohoto produktu bohužel není zrovna levnou záležitostí edice professional vyjde totiž minimálně na 250 USD, edice standard pak na 99 USD. Poslední uvolněná verze nese označení 5.5 a je k dispozici jako nativní aplikace pro Windows a operační systém i5/os od IBM, ale také jako plugin pro již výše popisovanou platformu Eclipse. Je označovaná jako Neon a je založena na pluginech Eclipse PHP Development Tools (PDT) a zatím je k dispozici pouze v Beta verzi. Nabízí se otázka, proč vlastně použít Zend studio jako plugin pro Eclipse, když pro tuto platformu již existují pluginy PDT pro vývoj v jazyce PHP odpovědět se pokusím výčtem dle mého názoru zásadních vylepšení oproti PDT: Multilingvistické Pokročilé formátování zdrojových kódů 19

Podpora systému Subversion pro správu a verzování zdrojových kódů, umožňující aby na stejném projektu pracovalo více lidí současně a aby provedené změny byly konzistentní a distribuovány ostatním Rozšířené možnosti ladění a procházení událostí Obrázek 10 Zend Studio rozšířené možnosti ladění Podpora protokolů FTP, SFTP, SSL 20

Obrázek 11 Zend Studio - podpora přenosových protokolů WYSIWYG editor HTML Ovladače pro rozhraní JDBC (Java Database Conectivity) Manipulace se soubory a adresáři Náhled JavaScript elementů při návrhu PHP/HTML 21

Obrázek 12 Zend Studio editor 22

3.4. JDeveloper jdeveloper je produktem společnosti Oracle, která jej nabízí po registraci na svých stránkách zdarma ke stažení. Jde o multiplatformní (tedy dostupné pro Windows, Linux, Mac OS) integrované vývojové prostředí (IDE) pro tvorbu webových služeb založených na technologiích Java, XML a SQL. Jde o mnohostranné prostředí, jež podporuje celý vývojový cyklus aplikace (modelování, programování, ladění ). Poslední uvolněná verze nese označení 10.1.3.3, v současné době však je již k dispozici zkušební verze 11g technical preview 3. Od verze 10g přibyla implementace ADF (Application Development Framework) jež umožňuje jednoduše vytvářet uživatelská rozhraní a spojit komponenty ADF s Flash / HTML Obrázek 13 jdeveloper auto completion 3.4.1 Novinky v JDeveloper 11g Stejně jako u výše uvedeného produktu Eclipse, budeme v následujícím textu popisovat spíše významnější vylepšení, které najdeme u současné verze tohoto produktu, byť jde zatím pouze o tzv. Technical Preview verzi. Nebudu zde tedy popisovat opravené chyby, ani méně podstatné změny - soustředíme se proto na nové prvky a změny, jež mohou být pro programátory v tomto IDE významné až zásadní. 23

Nová sada JSF (Java Server Faces) komponent podporující koncept AJAX (Asynchronous JavaScript and XML) slouží pro vývoj interaktivních webových aplikací jež mění obsah svých stránek bez nutnosti jejich znovunačtení. První sada komponent je označena ADF Faces RC a zahrnuje komponenty pro formulářové prvky, navigační prvky, tabulky apod. Druhá sada je nazvaná ADF Data Visualisation a obsahuje komponenty pro tvorbu grafů, kontingenčních tabulek, ukazatelů, Ganttova diagramu apod. Přepracovaný nástroj pro navrhování UML doznal velkých změn přepsáním na nové grafické rozhraní s vyšším výkonem a lepší rozšiřitelností. Nový integrovaný editor a debugger pro JavaScript se všemi běžnými vlastnostmi jako zvýrazňování syntaxe apod. ale i velmi progresivními funkcemi jako je sdružování zdrojového kódu (umožňuje programátorovi skrýt části kódu a velmi dlouhé zdrojové kódy tak podstatně zpřehlednit). Obrázek 14 Oracle jdeveloper Podpora systému Subversion 1.4.3 pro správu a verzování zdrojových kódů - umožňuje aby na stejném projektu pracovalo více lidí současně a aby provedené změny byly konzistentní a distribuovány ostatním Vylepšené porovnávání XML je nyní založeno na XML-aware algoritmu oproti dříve používanému algoritmu porovnávání jednotlivých řádků, který nerespektoval skladbu obsahu XML 24

3.5..NET Platforma.NET vznikla z důvodu zjednodušení práce při programování stále složitějších aplikací. Platforma by měla zpřehlednit zdrojové kódy, dokonce zjednodušit správu SW instalací. Základní myšlenka.netu je jednoduchá, vybudovat prostředí, které bude obsahovat společné knihovny, datové typy, propojení s DB, podporu bezpečnosti.net je platforma, která se skládá z CLR (Common Language Runtime) a knihovny tříd systému.net Framework. CLR je společným běhovým prostředím pro programy nebo části programů, které mohou být psány v různých jazycích. Je tu však podmínka programovací jazyk musí vyhovovat podmínkám CLS (Common Language Specifications) Obrázek 15 architektura.net Frameworku 3.5.1 Hlavní záměry pro vytvoření.net Frameworku - Windows Lock-In o.net Framework by měl běžet pouze na platformách Microsoft - Interoperability o.net Framework poskytuje přístup k programům, které jsou vykonávány mimo.net. Jde o to, že interakce mezi staršími a novějšími verzemi aplikací je více než očekávána, ne-li požadována. - Common Runtime Engine o Programovací jazyky v.netu jsou kompilovány do Common Intermediate Language (CIL, také známém pod zkratkou MSIL). CIL je převeden just in time (JIT) kompilací do strojového kódu. Kombinace CIL a JIT je nazývána Common Language Infrastructure (CLI). Implementace CLI je u Microsoftu nazývána jako Common Language Runtime (CLR). - Language Independente 25

o V CTS (Common Type System) specifikaci k.net FW jsou určeny datové typy, programovací struktury, které jsou podporovány CLR. Díky tomuto je v.net FW podporováno programování ve více programovacích jazycích. - Base Class Library o BCL je součástí FCL (Framework Class Library). FCL obsahuje všechny funkce, které jsou přístupné všem používaným jazykům o BCL je knihovna základních funkcionalit jako čtení, zápis, propojení s databází nebo zpracování XML dokumentace - Simplified Deployment - Security o.net Framework má nástroje, které napomáhají tomu, aby při instalaci nebyl narušen běh jiných programů, aby jiné aplikace nebyly ovlivněny. o Ochrana byla navržena tak, aby zaznamenávala možnou - Portability poruchovost systému, např. přetečení bufferu..net FW poskytuje také ochranu aplikací. o Znamená přenositelnost mezi platformami. Program, který je napsán v jednom frameworku může běžet i na jiném systému, na kterém je daný FW nainstalován. 3.5.2 Historie.NET - 1999 byla hotova první beta verze - 2001 dokončena platforma.net 1.0-2003 byl dokončen první velký upgrade platforma.net 1.1-2006 platforma.net 2.0-2007.NET 3.0, 3.5 3.5.3.NET 3.5 Framework Nová API pro vystavění řízených aplikací - Windows Presentation Foundation (WPF) o grafický subsystém s podporou multimédií a animací - Windows Communication Foundation (WCF) 26

o subsystém pro stavbu servisně orientovaných webových aplikací dle principů SOA - Windows Workflow Foundation (WF) o subsystém pro modelování toků procesů - Windows CardSpace o subsystém pro správu digitálních identit. 3.5.4 Visual Studio Visual Studio je komplexní sada nástrojů pro vývoj a správu celé řady aplikací v prostředí Windows a Microsoft.NET Framework. Stručný přehled verzí tohoto produktu naleznete v práci z předcházejícího semestru. My jsme se v tomto dokumentu zaměřili především na novou verzi produktu Visual Studio 2008. 3.5.4.1 Historie Visual Studia 1997 Visual Studio 97 - Prní pokus Microsoftu o integrovanou sadu vývojářských nástrojů. - Součástí je Visual C++ 5.0 (VC); Visual Basic 5.0 (VB); Visual J++ (VJ)1.1. - Technologie ASP (Active Server Pages) a Visual InterDev. 1998 Visual Studio 6 - Obsahuje všechny jazyky jako předchozí verze - VC 6, VB 6, VJ 6 2002 Visual Studio.Net (2002) -.NET 1.0 Framework - Přibývají nové jazyky C#, Visual Basic, J# a JavaScript 2003 Visual Studio 2003 -.NET 1.1 - Jazyk C++ - V USA nejpopulárnější technologie 2005 Visual Studio 2005 - integrace s MS SQL server (SQL 2005) - C++ mění syntaxi 27

- C#, VB, C++ jsou zevšeobecněny 3.5.5 Visual Studio 2008 Konečná verze Visual Studia 2008 byla puštěna do světa 19.11 2007, s ní byl uvolněn i.net Framework 3.5. Visual Studio 2008 umožňuje komunikaci i se staršími frameworky 2.0 a 3.0. Novinky v této verzi VS se týkají především webových stránek. VS Multi-Targeting Nová verze VS umožňuje podporovat různé verze frameworku (.NET 2.0, 3.0, 3.5). Starší verze podporovaly vždy jen jeden framework. Obrázek 16 Multi-targeting VS 2008 Web Designer a podpora CSS Obsahuje vylepšený (X)HTML designer a lepší podporu CSS. 28

Obrázek 17 Podpora CSS ASP.NET Ajax a podpora JavaScriptu Vylepšená podpora JavaScriptu. Jedna z hlavních výhod JavaScriptu ve VS 2008 je vylepšená podpora ladění JS. Tím pádem bude tvorba JS a AJAX aplikací výrazně jednodušší. Obrázek 18 Podpora JavaScriptu Vylepšení jazyků a LINQ Tato verze obsahuje vylepšené kompilátory jazyků VB a C#, objevují se zde prvky funkcionálního programování. 29

Další novinkou je LINQ. LINQ je jazyk, který usnadňuje práci s daty a dotazování. Je možné ho propojit s MS SQL, MySQL, XML, XSD až po LDAP (protokol pro ukládání a přístup k datům na adresářovém serveru), webovou galerií nebo internetovým obchodem. Automatic Properties, Object Initializer and Collection Initializers Umožňují snadnější vytváření kolekcí, vlastností a dalších objektů Extension Methods Umožňují rozšířit veřejné rozhraní typů bez přístupu k jejich kódu. Programátor si může vytvořit své vlastní třídy. Obrázek 19 Extention methods Lambda Expressions Lambda Expressions umožňují mít stručnější a funkčnější syntaxy pro psaní anonymních metod. Poskytují způsob jak psát kompaktní funkce, které mohou být použity na pozdější vyhodnocení různých podmínek. Rozšířené anonymní metody známé již z.net 2.0 Query Syntax Syntaxe pro vytváření dotazů. Využívá operátory jazyka LINQ Anonymous Types Anonymní typ je rys jazyků C# a VB, která znemožňuje vývojářům stručně definovat vnitřní kód CLR typů, bez definování formální deklarace třídy daného typu. 30

Vlastnost známá z funkcionálních jazyků. Lze použít pouze pro lokální proměnné za klíčovým slovem var, typ výrazu je odvozen toho jak je daná proměnná použita. 3.5.6 Modelování Obrázek : Anonymous Types 3.5.6.1 Class designer Class Designer slouží k modelování jednotlivých tříd uvnitř projektu, dědičnosti, struktury a asociací. Nejedná se však přímo o UML jazyk, Class Designer je mu pouze podobný. MS se z důvodu toho, že UML nepodporuje např. události a vlastnosti rozhodl vytvořit vlastní jazyk pro tvorbu diagramů. Velkou předností Class Designeru je obousměrná synchronizace mezi modelem a kódem. Ve verzi 2008 chybí vizuální návrhář tříd pro C++. Pro další informace odkazuji do dokumentu z předchozího semestru. 31

Obrázek 20 Class designer 3.5.6.2 Application Connection Designer Slouží k modelování částí distribuovaných aplikací jako jsou databáze, webová služba nebo tenká, tlustá aplikace. 3.5.6.3 Logical Datacenter Designer Umožňuje modelovat jednotlivé počítače v datovém centru (aplikační server, web server, klientský počítač ). 3.5.6.4 Deployment Designer Spojuje oba předchozí typy (ACD a LDD). 3.5.7 Dokumentace Visual Studio podporuje tvorbu technické dokumentace. XML Documentation umožňuje vývojářům tvorbu technické dokumentace. Ve Visual Basic vkládáme mezi kód poznámky takto '<summary>vraci vysledek vypocetnich operaci</summary>, pokud programujeme v C# nahradíme označení poznámky ///. Pro získání dokumentace ze zdrojových kódů VB musíme použít opensource aplikaci VB.DOC. V C# zapíšeme do kódu příkaz //compile with: /doc:xmlsample.xml. 32

3.6. Borland Delphi 2006 Vzhledem k tomu, že od minulého semestru se nezměnila verze tohoto vývojového nástroje, odkazujeme na bližší informace na text, který vytvořili naši předchůdci. 4. CASE nástroje 4.1. Select Architect CASE nástroj Select Architect je součástí komplexního balíku Select Solution Factory 7.0 společnsotí Select Business Solutions. Tento balík nástrojů je koncipován pro objektově orientovaný vývoj aplikací ve vícevrstevné architektuře. Vyniká unikátní šíří záběru podpory pro sběr požadavků, procesní modelování, objektově orientované modelování v notaci UML, datové modelování, generování kódu a relačních databázových schémat. Díky automatizaci vývojových činností a důslednému uplatnění principu znovupoužití umožňuje čelit rostoucím nárokům na funkčnost, spolehlivost a délku vývoje informačních systémů. Nasazení Select Solution Factory 7.0 vede k zefektivnění procesu vývoje a údržby aplikací, ke snížení nákladů, ke zvýšení kvality a ke zkrácení reakce na požadavky uživatelů. Podporované modely: Počítačově nezávislý model (CIM) Platformově nezávislý model (PIM) Platformově specifický model (PSM) Relační datový model (Entity Relation-ship Diagram) Diagram hierarchie procesů (Process Hierarchy Diagram) Diagram procesních řetězců (Process Thread Diagrams nebo BPMN) Model typových úloh (Use Case) Diagram objektových sekvencí (Object Sequence Diagram) včetně možnosti animace Diagram tříd (Class Diagram) Stavový diagram (State Transition Diagram) Diagram spolupráce objektů (Object Collaboration Diagram) Diagram aktivit (Activity Diagram) Podporované techniky : Vývoj prostřednictvím modelem řízené architektury (MDA) o o transformace analytického modelu do modelu návrhu a vzájemná synchronizace těchto modelů Synchronizery kódu - synchronizace kódu s modelem pro programovací ja-zyky C++, C#, Java, Visual Basic, PowerBuilder a Delphi Tvorba dokumentace Generovaní a reverzace DB skriptů o Access, DB2, Dbase, FoxPro, Informix, Ingress, Interbase, Oracle, SQL Server a Sybase 33

Multiuživatelská repository o Vytvářené modely a jednotlivé objekty modelů jsou ukládány do robustní objektové repository, která umožňuje souběžný přístup desítek uživatelů, zajišťuje konzistenci a další pokročilé funkce jako je například víceúrovňové odčinění změn (Undo). Odpadá tím riziko vzniku nekonzistencí nebo potřeby pracného sehrávání a konsolidace modelů. 4.1.1 Novinky ve verzi 7.0 Zlepšení logického datového modelování o cizích klíčů v logických datových modelech o rozšíření možností pro definici datového typu atributu Zlepšení grafického vzhledu diagramů o nastavovat 3D stínování symbolů o používat individuální barvy pro každý symbol o měnit barvy symbolů na základě přiřazeného stereotypu Možnost přizpůsobení vzhledu uživatelského rozhraní dle uživatelských rolí o Select Architect 7.0 poskytuje možnost přizpůsobení uživatelského rozhraní pro různé uživatelské role. Každý uživatel má možnost nastavit svůj vlastní vzhled uživatelského rozhraní tak, aby ideálně odpovídal jeho roli ve vývojovém týmu. XML schéma generátor pro libovolné transformace Podpora XMI 2.0 o V nové verzi Select Architect 7.0 je možné importovat a exportovat modely prostřednictvím formátu pro výměnu modelu XMI. Při exportu modelů ze Select Architect 7.0 je možné také definovat, jaké atributy jednotlivých model elementů mají být zahrnuté do výsledného XML. Nové synchronizéry pro Visual Studio 2005 o Visual Basic Sync, C# Sync 34

Obrázek 21. Ukázka rozhraní Select Atchitect - Class D 4.2. Borland Together 2007 Borland Together 2007 je nástrojem umožňujícím analyzovat, navrhovat a implementovat pružné a udržovatelné softwarové architektury, které mohou být snadno modifikovány, tak jak se mění požadavky. Názorné pochopení důležitých rozhodnutí také umožňuje business a systémovým analytikům, architektům a vývojářům mít přehled, jestli upravují business procesy, vytvářejí nové aplikace nebo extrahují konstrukční informace z existujících systemů. Integrace Togetheru s některým z předních nástrojů pro definici a řízení požadavků (Requirements Definition and Management) umožňuje přímý přístup, opětovné užití a sledovatelnost od a k požadavkům, čímž lze snadno zjistit, zda vývojové týmy plní zákazníkova očekávání. Together je navržen tak, aby splňoval specifické potřeby při modelování pro všechny role ve vývojových týmech umožnujíce jim efektivně spolupracovat při tvorbě velmi kvalitních aplikací v kratším čase. Týmy pracující na nových nebo existujících business procesech, analyzách, návrzích a architekturách těží z rozšířené komunikace a sníženého rizika zpoždění projektu. Modely zobrazují nákres business procesů, aplikací, architektur i datových struktur. Tyto modely jsou základem pro komunikaci v projektových týmech a podporují také kvalitu řešení. Názornost modelů napomáhá vypořádat se s komplexností problémů rozvojem jejich pochopení, komunikace a dokumentace. Tak jak se zvyšuje komplexnost aplikací a business procesů, nabývají na důležitosti dobré modelovací 35

techniky zajišťující správnost, kvalitu a dlouhotrvající udržovatelnost. Optimalizace business procesů, návrh aplikací and generativní techniky jsou zásadní při snižování nákladů IT organizací. Together dává vývojářským týmům možnost vytvářet a znovu používat osvědčené konstrukční vzory pro jednotivá odvětví (industry-standard), čímž zajišťuje vysokou kvalitu aplikací a podporuje využívání uspěšných návrhů. Umožňuje také vytvářet na platformě nezávislé návrhy, které pak díky podpoře velkého spektra programovacích jazyků mohou již architekti transformovat na modely konkrétních platforem. Borland Together 2007 je založen na opensourcové technologii Eclipse Framework a je v souladu se standardy MDA: Unified Modeling Language (UML), XML Metadata Interchange (XMI), Query/Views/Transformations (QVT) a Object Constraint Language (OCL). Borland ovlivňuje Model Driven Architecture (MDA), konkrétně QVT, za přispění průlomové technologie transformace modelů. Tato technologie umožňuje architektům převést jakýkoli typ modelu založeného na Eclipse Modeling Frameworku (EMF) na jiný model (např. CIM na PIM, PIM na PSM, atd.). Značná automatizace a funkce šetřící čas podporují efektivitu práce vývojářských týmů. Klíčové funkce zahrnují automatickou tvorbu dokumentace, opětovné užití softwarových součástí jako jsou vzory a definice komponent a unikátní technologii LiveSource (round-trip technologie), která pomáhá udržovat kód a modely synchronizované v každém okamžiku. 4.2.1 Hlavní rysy Domain-Specific Language (DSL) Toolkit (nově ve verzi 2007) vizuální modelování doménově-specifických meta modelů průvodce tvorbou DSL řešení (včetně transformace modelů a generátorů kódu) a BIRT reportů jako prvků Eclipse UML 2.1 diagramy založené na GMF (Activity, Class, Component, State, Profile) Modelování business procesů Business Process Modeling Notation (BPMN) včetně kontroly validity Import/export BPELu (Business Process Execution Language) webových služeb (BPEL4WS) UML modelování tvorba na jazyku nezávislých UML 1.4 a UML 2.0 diagramů UML modelování za pomoci LiveSource pro Java /C++/CORBA IDL rozdělování a spojování modelů podpora množství jazyků Datové modelování logické datové modely využívající UML 2.0 profil fyzické datové modely využívající ER a IDEF1x diagramy forward a reversní inženýrství pro přední DBMS (Oracle, DB2, Sybase, MS SQL Server) transformace logických datových modelů na fyzické Pokročilé modelování a MDA (Model-driven architecture) podpora Object Constraint Language (OCL) 2.0 včetně zvýraznění syntaxe a validace QVT(Queries/Views/Transformations) pro transformace z modelu do modelu 36

transformace model-text s xpand, JET a EMF API generátory kódu pro Javu, J2EE, C++, and C# (nově) konstrukce UML profilů, aplikací a rozmístění jako Eclipse plug-in vzory návrhů včetně podpory Gang of Four vzorů rozpoznání vzoru návrhu zdrojového kódu návrhy šablon kódu a jejich opětovné užití import a export XMI 2.0 modelu import Rose a XDE modelů Generování dokumentace generování dokumentace ve formátu HTML vč. navigačního apletu a diagramy propojené odkazy tvorba obrázků z diagramů v různých formátech návrh šablon pro customizovanou dokumentaci, rozvržení diagramů pro tisk, automatické generování dokumentů Zajištění kvality audity kódu a metriky audity modelu založené na OCL a metriky Tým týmová práce: sdílení diagramů a modelů mezi projekty vč. kontroly verzí StarTeam integrace generování use case diagramů z požadavků a sledování prvků modelu od/k požadavkům využívajíce CaliberRM a RequisitePro Platforma Eclipse 3.3 4.2.2 Systémové požadavky Prvek Požadavek Poznámky Hardware CPU Intel Pentium 4 Doporučeno Intel Pentium 4 2.8 GHz nebo vyšší 1GHz (nebo kompatibilní) Paměť 1 GB minimum Doporučeno 2 GB. Pevný disk 1 GB Přibližně 450 MB z tohoto prostoru je využito pro dočasné soubory instalace, které jsou posléze smazány. Video Rozlišení Doporučené rozlišení: 1600x1200 1024x768 CD Volitelně Nutná pro instalaci z CD mechanika Software Operační Windows Vista, systém Windows XP Pro SP 2, Red Hat Enterprise Linux 4 update 2, x86-32 SUSE Linux 37

IDE Platforma Java Platforma Webový prohlížeč Enterprise Server 10, x86-32 Solaris 10 SPARC, GTK Mac OS X 10.4, Universal, Carbon Prozatím staví na Eclipse 3.3.1 Sun J2SE 5.0 Update 11 Jakýkoli který podporuje framy Tabulka 3 Borland Together - systémové požadavky 4.2.3 Novinky ve verzi 2007 Pokud není instalován Eclipse, je požadovaná verze nainstalována automaticky spolu s Togetherem. Požadovaná verze Java Runtime Environment je instalována automaticky.. Pro Windows je doporučen Microsoft Internet Explorer 6.0 nebo vyšší Together 2007 podporuje, jak jsem již zmínil v úvodu, platformě nezávislé Domainspecific languages (DSLs), jež jsou programovacími jazyky navrženými pro specifické úlohy. Tento produkt přichází s novinkou, DSL Toolkitem, který pomáhá organizacím překonat komplexnost UML modelů tak, že umožňuje projektovým týmům vytvářet záznamy, spojené s okruhem jejich působnosti, reprezentující aplikační architektury a business procesy v podniku. Jak říká Richard Gronback, coleader Eclipse Modeling Projectu a hlavní vědec Borlandu, Together 2007 se zaměřuje na zjednodušení modelování pro uživatele, zejména když přijde řada na UML. Nově přidané a rozšířené funkce Togetheru 2007 zahrnují: podporu.net s generováním kódu C# mimo to i generování kódu do Javy a C++, nyní je možné generovat zdrojový kód C# z UML 2 modelů, což podporuje multiplatformní a.net specifické projekty visual brainstorming notation umožňuje dodat nápady a přidružené záznamy spolu se všemi podklady, které slouží jako příklad toho, jak implementovat DSL. Vzorový diagram může být použit k vyjádření nápadů, úloh nebo jiných témat týkajících se hlavního námětu nebo nápadu, a protože je postaven na Together DSL Toolkitu, může být přizpůsoben konkrétním podnikovým potřebám Rozšířené prvky Queries/Views/Transformations (QVT) nové prvky jazyka a přidaní průvodci zjednodušují tvorbu a implementaci transformací reportování Business Intelligence and Reporting Tools (BIRT) BIRT podporuje rozšířené funkce generování dokumentace ve standardizované podobě Funkcionalita Domain-Specific Language(DSL) zahrnuje: Vytváření a rozmístění vlastních oborově specifických modelovacích jazyků (Domain-Specific Modeling Languages) včetně následujícího: 38