Obsah
1. Modely - zachycení reality
2. Přehled některých metodik a modelů
- Notace UML
- Booch
- OMT
- Jacobson
- Coad and Yourdon
- OO Analýza Shlaer-Mellor
- Select Perspective
- The Rational Unified Process
- Metodika Fusion
- Možnosti využití modelů
3. Programové nástroje pro tvorbu modelů
- Kriteria pro volbu nástroje
- Přehled některých programů pro modelování
- Srovnání vybraných programů pro modelování
4. Modely a postupy využívané v praxi
Závěr
Literatura
Terminologicky slovník
Přílohy
Přehled OO metodik a notací - diplomová práce Michala Beneše
3.2 Přehled některých programů pro modelování
3.2.1 Select Enterprise 6
Produkt Select Enterprise vytváří firma Aonix (www.aonix.compovolené sítě), u nás ho distribuuje firma LBMS s.r.o. (www.lbms.czpovolené sítě). Tento nástroj pochází z produktové řady Component Factory a je určen pro objektově orientovaný vývoj aplikací ve vícevrstevné architektuře s využitím komponent. Historii nástroje Select Enterprise mi popsal Ing. Šveřepa z LBMS. Cituji: “Původně byl nástroj vytvořen firmou Select Software Tools, ta se však dostala do potíží (prováděla neuvážené akvizice) a tak byl Select Enterprise zakoupen firmou Princeton Softech (včetně budov, vývojového týmu a konzultantů). Firma Princeton Softech jej v minulém roce prodala firmě Aonix, což bylo ku prospěchu, neboť Aonix přišel s novým a důrazným drivem na komponentový vývoj. Práce Aonixu bude myslím velmi dobře vidět v nové verzi 7 (letos v květnu), kde je mnoho novinek, zlepšení a rozšíření.” Konec citace. Zatím poslední verzí je verze 6.5.
SELECT Enterprise se svým rozsahem zaměřuje na modelování aplikací a komponent v rámci celého životního cyklu návrhu informačního systému. Proces návrhu a tvorby informačního systému popisuje přímo metodika Select Perspective, kterou také tento nástroj podporuje. Zahrnuje tedy modelování business procesů, objektové modelování, které odpovídá standardu UML. SELECT Enterprise umožňuje jednouživatelský i týmový režim práce, přičemž pro ukládání modelovaných informací a pro řízení simultánního přístupu k údajům slouží objektová repository SOFTLAB Enabler.
Diagramy nabízené nástrojem:
| Procesní hierarchický diagram (Process Hierarchy Diagram) | Pro statický popis firemních procesů a vymezení rozsahu problémové oblasti. Rozpad procesů se provádí na úroveň tzv. elementárních firemních procesů, které odpovídají uceleným činnostem jednotlivých rolí v organizaci. |
| Diagram procesních řetězců (Process Thread Diagram) | Detailní modelování firemních procesů ve formě. Tento diagram umožňuje znázornit spouštění procesů vnějšími a vnitřními událostmi a slouží především pro znázornění toků práce. Více viz metodika Select Perspective. |
| Use Case Diagram | Definice věcných požadavků na systém (tj. na jeho funkčnost). Use cases jsou odvozovány od elementárních firemních procesů, které je potřeba podpořit vytvářenou aplikací. |
| Diagram tříd (Class Diagram) | Znázorněny vztahy dědičnosti, asociace mezi třídami, metody a atributy tříd a případně též jejich zařazení do komponent. |
| Stavový diagram (State Diagram) | Zachycuje životní cyklus objektů. |
| Diagram sekvencí (Object Sequence Diagram) | Slouží pro mapování věcných požadavků na sekvence zpráv mezi objekty systému, jež tvoří jádro navrhovaného systému. |
| Diagram spolupráce (Object Collaboration Diagram) | Ilustruje interakce mezi aktory a objekty. Jedná se alternativní znázornění diagramu sekvencí. |
| Datový model (Table Relationship Diagram) | Umožňuje vytvořit model relační databáze. |
| Textový záznamník (Text diagram) | Umožňuje psaní textu jako poznámkový blok. |
| Obecná grafika (General Graphics Diagram) | Obecná grafika nabízí možnost vytvářet jiné druhy diagramů, které nejsou podporovány přímo v Select Enteprise (já jsem v ní svého času vytvářel DFD). Problém samozřejmě tvoří fakt, že zde neexistuje kontrola konzistence a správnosti modelu. Mezi nabízenými obrazci tedy nechybí ovál, rovnoběžné čáry (možno znázornit data store v DFD), ani kosočtverec (možno využít pro znázornění rozhodování v diagramu činností). |
Pro ověření návrhu objektů lze využít nástroj Object Animator, který umožňuje prototypování diagramu objektových sekvencí. Pokud jsou do tohoto diagramu začleněny také prezentační objekty, je možné jim přiřadit snímky obrazovek a před vlastní implementací ověřit navržený scénář s uživatelem.
Pro definici komponent slouží v SELECT Enterprise standardní notace UML modelování, tj. rozhraní (Interface) a balíček (Package). Specifikaci takto definované komponenty je možné zveřejnit prostřednictvím integrovaného rozhraní na produkt Select Component Manager, který slouží pro správu a distribuci komponent. Pokud je potřeba do projektu naopak začlenit existující komponentu, je možné opět využít rozhraní na nástroj SELECT Component Manager, konkrétně funkci Reuse Component, která přenese rozhraní komponenty do modelu tříd jako externí třídu. Kombinace produktů SELECT Enterprise a Component Manager je dodávána pod označením Component Architect.
SELECT Enterprise podporuje také převod (mapování) objektového modelu do relačního modelu. Mapování se provádí prostřednictvím integrovaného nástroje Storage Mapper. Výsledkem převodu je ERD, který lze použít pro vytvoření struktury databáze.
Součástí nástroje je také generátor databáze SQL Schema Generator umožňující generovat do databázových prostředí Oracle, SQL Server, Borland Interbase a prostřednictvím normy ANSI SQL 92 taktéž do Informix, DB2 a Sybase (podporována je i norma ANSI SQL 89). Pokusil jsem se vygenerovat jednoduchý SQL skript na základě jednoduchého datového modelu (o pěti entitách). Generování probíhá v modulu SQL Schema Generator. Vše postupovalo bez problémů (stačí zvolit tabulky/entity, na základě kterých se má kód generovat). Vytvoří se SQL skript jednak pro tvorbu tabulek, jednak i pro delete tabulek.
Je pouze škoda, že Select nenabízí reverse engineering z databáze. Na stránkách firmy LBMS (www.lbms.czpovolené sítě) je ale k dispozici utilita napsaná ve Visual Basicu pro MS Excel pro reverzaci přes ODBC. Podle vyjádření Ing. Šveřepy z LBMS se právě dokončuje reverser přes ADOX (MS SQL Server a Oracle).
Provázanost mezi kódem aplikace a modely návrhu je v SELECT Enterprise zajištěna prostřednictvím synchronizeru kódu. Jedná se o integrovaný generátor a reverzer kódu pro různé jazyky., který porovnává zdrojový kód a modely v repository a v případě rozdílu nabízí generování, resp. reverzaci příslušného objektu. Součástí základního balíku SELECT Enterprise je synchonizer pro C++, jako add-on moduly jsou pak k dispozici synchronizery pro prostředí Java, MS Visual Basic, Delphi, PowerBuilder a Forté.
Forward i rewerse engineering do/z jazyka C++ se provádí v modulu CSync (C++ Synchronizer). Ovládání programu CSync je jednoduché a přehledné. Stačí zvolit model a cílové místo, kam se bude generovat kód. Pokusil jsem se vytvořit kód jednoduchého modelu o čtyřech třídách i složitějšího o devíti třídách. Vše proběhlo bez problémů. Vygenerovaný kód je přehledný a dobře strukturovaný.
Reverse engineer proběhl také bez problému. Vytvořené třídy modelu se zařadí mezi “unscoped business classes”, odkud mohou být vloženy do Vašeho modelu. Do modelu se negenerují vazby mezi třídami (např. generalizace).
Uživatelské rozhraní nástroje je ve své nové verzi velmi příjemné, podporuje kontextová menu, popup menu s možnými akcemi na objektu. Vlevo se nachází přehledný stromový seznam všech modelů v daném projektu. Změny na diagramu jsou okamžitě ukládány do repository. Editor diagramů umožňuje také kopírování částí diagramů se zachováním všech vazeb mezi objekty repository. Samozřejmostí je podpora víceúrovňového UNDO a vlastního nastavení barev, čar a fontů u objektů v diagramech.
Nástroj Select Enteprise také disponuje velmi kvalitní nápovědou. Za zmínku stojí tzv. Process Mentor, což je jakýsi průvodce celou metodikou Select Perspective. Zahrnuje popis metodiky, tvorby modelů, typů modelů apod. Jedná se velmi dobrý prostředek pro seznámení se s objektovým přístupem, UML a modelováním business processes. Process Mentor se skládá ze čtyř základních částí, a to popisu životního cyklu vývoje informačního systému (Lifecycle), popisu jednotlivých modelovacích technik metodiky (Modeling), správy požadavků a zajištění kvality (Management) a popisu architektury Select Perspective (Architecture).
Pro tvorbu dokumentace slouží generátor dokumentace (Document Generator), který na základě předdefinovaných sestav vytváří dokumentaci přímo v prostředí MS Word. Předdefinované sestavy je možné uživatelsky modifikovat, přizpůsobovat a rozšiřovat (měnit tím obsah dokumentace, přidávat kapitoly, diagramy atd.). Takto vytvořenou sestavu je možné kdykoliv zaktualizovat nejnovějšími údaji v repository SELECT Enterprise (např. chceme-li přidat další kapitolu/diagram, stačí ji insertovat do stavajícího schématu). Kromě originální anglické verze jsou na stránkách LBMS v ČR bezplatně k dispozici lokalizované šablony v českém a slovenském jazyce. Vygenerovaná dokumentace je velmi přehledně uspořádána (obsahuje na začátku samozřejmě i obsah), diagramy jsou vkládány do přehledných tabulek a číslovány s příslušnými titulky (tabulka obsahuje kromě diagramu také označení typu diagramu a údaje o jeho vytvoření).
Základní součásti Select Enterprise:
- Process Mentor - metodika SELECT Perspective v hypertextové podobě.
- Enterprise Modeler - tvoří jádro SELECT Enterprise.
- Object Animator - animátor sekvenčního diagramu.
- Document Generator - nástroj pro tvorbu dokumentace.
- Synchronizer C++ - nástroj pro synchronizaci kódu v jazyce C++ s modelem.
- SQL Schema Generator - generátor struktury databáze.
- CORBA IDL Generator - generátor specifikace rozhraní CORBA komponent.
- TestDirector Bridge - rozhraní na nástroj pro testování.
- Select models neighborhood - správa modelů a jejich verzí.
- Volitelně lze dokoupit synchronizery pro jazyky/programovací prostředí Java, MS Visual Basic, Forte, Delphi a PowerBuilder.
Stereotypy nabízené u modelování tříd:
| Uživatelské třída (User class) | Modeluje interface mezi uživatelem a modelem systému. Uživatelské rozhraní pak slouží jako ochrana modelu systému před změnami v uživatelském rozhraní. |
| Business třída (Business class) | Modeluje business požadavky nezávislé na technologické infrastruktuře. |
| Rozhraní (Interface) | Definuje množinu metod objektu. Interface je něco jako třída bez implementační sekce. Tento stereotyp byl přidán ve verzi 6.1. |
| Externí objekt (External Item) | Jedná se o referenci na objekt, který se nachází mimo model. |
Závěrem bych se ještě zmínil o novince, která se má objevit v dubnu nebo květnu tohoto roku (2002). Jedná se o Select Component Factory 4.0. Údaje pochází z prezentace, kterou mi poskytl Ing. Šveřepa z LBMS. Produkt bude obsahovat Component Architect, který bude zahrnovat Component Manager a Slect Enterprise. Vazba mezi modelem a knihovnou komponent má tedy zesílit. Další součástí bude modul na mapování požadavků, který umožní sledovat závislosti mezi požadavky a vazbu požadavků na kterýkoliv objekt. Významnou součástí nového produktu bude také podpora modelování za použití UML 1.3. Mezi nové prvky tedy bude patřit diagram aktivit, uživatelsky definované stereotypy, nové prvky v use case diagramech (jako např. dědičnost u aktorů a use cases), diagramech sekvencí (např. možnost znázornit aktory), v diagramech tříd (např. atributy rolí). Má dojít také ke zlepšení datového modelování, např. možnost definovat datové typy a sql podpora nových verzí DB2 a Oracle.
Pozn.: Instalace demoverze produktu Select Enterprise 6 proběhla bez problémů. používám operační systém Windows XP. Četl jsem v jednom testu CASE nástrojů, že Select má problémy s Windows 2000, ale jak říkám, na XP proběhlo vše normálně. Poté se mi ale stala jiná nemilá věc, a to poté, co jsem se pokusil vytvořit novou repository, mi nešel spustit Select Model Neighborhood. Jinak Select Enterprise pracoval bez problémů. Select jsem pak zkoušel nainstalovat i na jiný počítač s Windows XP, tam k výše zmíněné chybě nedošlo.
3.2.2 Rational Rose 2002
Rational Rose je produktem firmy Rational Software Corporation, která stála u zrodu UML (resp.jejich zaměstnanců, tvůrců metod OOAD, OOSE a OMT, viz UML). Firma Rational je také tvůrcem metodiky pro vývoj informačního systému Rational Unified Process (RUP, viz výše). Oba tyto přístupy, UML i RUP podporuje firma Rational v balíku produktu Rational Rose (UML podporuje diagramy, RUP podporuje frameworkem - předdefinovaným workspacem v Rational Rose). Nástroj pokrývá celý životní cyklus projektu od analýzy, přes objektový a datový návrh, až k vlastnímu vývoji a testování. Automaticky vytváří kód v C++, Visual Basicu, Javě, ale i v dalších jazycích, jejichž podporu lze získat dokoupením dalším modulů.
Rational Rose podporuje také komponentový vývoj, a to nejen z hlediska modelování komponent, ale i reverse engineering existujících komponent (např. AktveX). Načteny mohou být jak třídy rozhraní, tak i jejich atributy a metody. Komponenty mohou být vytvářeny pro řadu programovacích jazyků, mezi kterými jsou C++ včetně Visualn C++ , Java, Smalltalk, Adu, Visual Basic, PowerBuilder, Delphi, JBuilder, Centura, VisualCafé a Forte.
Co se týká oblasti týmové práce, Rational Rose nabízí soukromý pohled na model. Zpřístupnění změn provedených jedním člověkem ostatním členům týmu se pak provede až po svolení tvůrce. Správa verzí a změn je prováděna na úrovní jednotlivých balíčků (packages).
Co se týká uživatelského prostředí, poskytuje příjemný komfort. U každého objektu je možné nadefinovat jeho formát, tzn. barvu, velikost, styl písma atd. Pracovní plocha je hezky uspořádána (spíše by se mělo říci klasicky, tzn. obdobně jako u Select Enterprise nebo PowerDesigner). Modelovací plocha se nachází vpravo, strom modelů a objektů vlevo. Dole je pak okno s výpisem událostí. Základní ikony jsou klasicky umístěny nahoře. Okna se dají libovolně přesouvat a podporují docking. Jen při najetí myši na klasické černé čtverečky kolem vybraného objektu by se mohl měnit kurzor myši.
Zajímavostí je možnost vyjádřit diagramy ve třech různých notacích, a to UML, Booch nebo OMT.
Za zmínku stojí struktura stromu modelů a objektů. V Rational Rose existují čtyři základní pohledy na návrh informačního systému, a to pohled use cases, logický pohled, komponentový pohled a pohled z hlediska nasazení.
Diagramy:
- use case diagram
- diagram sekvencí (interakcí)
- diagram spolupráce
- diagram tříd
- stavový diagram
- diagram komponent
- diagram nasazení
- diagram aktivit
- datový model
Další prvky Rational Rose:
- Rational Rose nabízí kromě rozsáhlé podpory UML také možnost vytvářet datové modely na základě diagramů ERD. Zahrnuje ERD z důvodu posílení návrhu a tvorby relačních databází. Před vytvořením nového ERD je nejprve nutné definovat cílovou databázi, do které bude později model převeden. Definovaná databáze se pak nachází v komponentovém pohledu a datový model v logickém pohledu.
Pokusil jsem se vytvořit jednoduchý datový model (o pěti entitách) a poté z něj Forward Engineerem vytvořit skript ve formátu SQL. Generování proběhlo v pořádku (pro nastavení parametrů se spustí “Wizard”). Vytvořený SQL skript neobsahuje žádné komentáře.
Reverse Engineer jsem pak zpětně vyzkoušel na onom SQL skriptu. Opět proběhl bez problémů (vše provádí opět “Wizard”). Pro proběhnutí Reverse Enginnera vznikne nová databáze v kompontovém pohledu a nové schéma s nagenerovanými entitami v logickém pohledu, pak již stačí jen vytvořit nový datový diagram a entity do něj vložit. V modelu se pak zobrazí nejen entity, ale i vztahy mezi nimi.
Reverse engineering z databáze. Podporované databáze jsou DB2 (až v. 7), MS SQL Server (až v. 2000), Oracle (v 7, 8), Sybase (Adaptive Server 12) a ANSI SQL 92.

Obrázek 8 : Jednoduchý příklad datového modelu v Rational Rose
- Reverse engineering z jazyka C++. Reverse probíhá v aplikaci Rational Rose C++ Analyzer dodávané společně s Rational Rose. Jedná se o nástroj, který se snaží zanalyzovat zdrojové kódy projektu a následně je převést do Rational Rose, kde je možné s definovanými objekty provádět další úkony. Ještě před vlastním načtením je možné nechat si zdrojové soubory zanalyzovat pro získání přehledu o případných chybách a nedostatcích, ke kterým může dojít. Po analýze a reversu zdrojových textů stačí jen zvolit v menu export do Rational Rose a následně soubor, do kterého se má výsledek uložit. Pokusil jsem se provést reverse engineering z mého prográmku napsaného v C++. Vše dopadlo velmi dobře. Při analýze souborů byla nahlášena jediná chyba, a to absence knihovny graphics.h (což je naprosto v pořádku, protože v adresáři s prográmkem knihovna opravdu nebyla). V logickém modelu se vytvořil nový balíček s názvem C++. V něm se zobrazilo logické schéma tříd (viz obrázek). Následně je možné s modelem jakkoliv pracovat (já jsem např. znázornil prarodiče žlutou barvou).

Obrázek 9: Výsledek reverse engineeringu v Rational Rose.
- Dále reverse engineering z CORBA (sám Rational Rose umí generovat Interface Definition Language - IDL pro aplikace založené na standardu CORBA přímo z modelu), JAVA, Visual Basic a DTD (Document Type Definition).
- Rational Rose obsahuje skriptovací jazyk, pomocí něhož je možné opravovat modely nebo generovat dokumentaci.
- Kódování modelů do programovacích jazyků - pokusil jsem se převést jednoduchý model získaný výše reverse engineeringem zpět do C++. Vše proběhlo bez problémů, vytvořila se struktura souborů. Jenom bych měl výtku k textovému obsahu jednotlivých souborů. Obsahují totiž velké množství komentářů, dá se v nich špatně vyznat. Navíc obsahují, podle mého názoru, zbytečné komentáře (různé kódové označení modulů, což jsou leckdy velmi dlouhá čísla atd.).
Součásti Rational Rose:
- Framework Wizard - představuje knihovnu šablon (framework), které mohou sloužit jako základ pro nový model. Je také samozřejmě možné vytvářet vlastní šablony. Šablona je model s předpřipravenými prvky, které jsou určeny pro modelování určitých aspektů systému. Tuto šablonu vytváří uživatel přímo v nástroji v jeho workspace. Po uložení workspace je tato k dispozici jako potencionální šablona (např. jsem si vytvořil šablonu s mým vytvořeným reverse kódem, viz výše reverse engineering z C++).
- Rational Rose Extensibility Type Library - zpřístupnění tříd, vlastností a metod Rational Rose přímo ve vývojovém prostředí
- Add-inn Manager - umožňuje správu modulů rozšíření Rational Rose.
- CORBA add-in a Interface Definition Language (IDL) Code Generator
- Repository Add-in - Rational Rose umožňuje výměnu informací s dalšími nástroji pro modelování pomocí integrace s Microsoft Repository and Visual Component Manager (součásti Visual Studia 6 společně s Microsoft Visual Medelerem).
- Rose Web Publisher - umožňuje vytvoření internetové (HTML) verze Rose modelu. Rose Web Publisher dokumentuje prvky Rose modelu včetně diagramů, tříd, balíčků, vazeb, atributů a operací a kódu objektů. Po generování umožňují hyperlinky procházení modelem stejně jako je tomu přímo v prostředí Rose. V browseru je pomocí framů rozděleno okno na 3 části. Hlavní částí je vlevo stromová struktura objektů a vpravo frame zobrazující modely, informace o nich, objekty a jejich kódy. Vše vypadá naprosto profesionálně.
- Add-in pro správu verzí (SCC) - poskytuje předpřipravenou integraci se dvěma systémy řízení verzí - Rational ClearCase a Microsoft Visual Source Safe. Jinak celý projekt je uložen v textovém souboru s příponou .mdl, což umožňuje celkem snadné porovnávání projektů (merge).
3.2.3 Oracle Designer 6
Oracle designer pochází od firmy Oracle Corp, je součástí balíku produktů pod názvem Oracle Internet Developer Suite. Všechny informace si Oracle Designer ukládá do databáze Oracle, takže je nutné mít tuto databázi nainstalovanou. Co se týká vlastních modelů a analýzy, zaměřuje se tento nástroj na strukturovaný návrh informačního systému. Hlavním úkolem tohoto nástroje je (podle mého názoru) rychlý vývoj aplikace založené na relační databázi. Ono to, myslím, není žádné překvapení, když vlajkovou lodí a původní aplikací firmy Oracle Corp. je právě jejich databáze Oracle. Hlavní využití Oracle Designeru tedy bude u webových a klient-server aplikací založených na databázi.
Oracle Designer rozděluje projekt na čtyři části, a to modelování požadavků na systém (Modelling System Requirement), generování předběžného designu (Generating Preliminary Designs), designu a generování cílového kódu (Designing and Generating) a utilit. V části modelování požadavků jsou zpracovávány základní modely strukturní analýzy (ERD, DFD a procesní model). Výběr části a konkrétního nástroje se provádí na jedné přehledné obrazovce, kde jsou zobrazeny odkazy na všechny nabízené nástroje. V předběžném designu je možné vytvářet tabulky, triggery atd. podle návrhu vytvořeného v modelování požadavků. V designu se pomocí Design Editoru provádějí úpravy vytvářené databáze a jejích prvků. Design Editor nabízí možnost definovat pohledy, indexy a integritní omezení. Nakonec dojde k generování cílového kódu. Design Editor zahrnuje Oracle Forms Generator (nástroj pro tvorbu Oracle Forms) a Oracle Reports Generator (nástroj na tvorbu Oracle Reports). Oracle Designer nabízí možnost vytvoření DDL (Data Definition Language) souborů, vytvoření aplikace přímo na databázi Oracle nebo pomocí ODBC na jiných databázích (např. MS Access, MS SQL Server, DB2, Sybase, ANSI SQL).
O všechny objekty (prvky návrhu v Modeleru, ne objekty ve smyslu objektové metodologie) se stará jedná repository. Ta také pečuje o verze projektu, jednotlivé verze mohou být porovnávány i slučovány.
Skupina modelování systémových požadavků obsahuje tyto moduly:
- Procesní model (Process Modeler)
- Datový model (Entity Relationship diagrammer) - kromě běžných relací jsou k dispozici rekurzivní vztahy (entita se odkazuje sama na sebe), které slouží například k ukládání stromových struktur. Slouží-li datové modelování k navržení datového skladu, je možné definovat, která tabulka bude faktová a které tabulky dimenzionální.
- Diagram datových toků (Dataflow diagrammer) - při zadávání nového diagramu toku dat jsou na výběr procesní kroky definované v procesním modelu.
- Diagram hierarchií funkcí (Function Hierarchy Diagrammer) - využití při rozkladu business procesů. Pro zobrazení dekompozice funkcí se využívá stromová struktura. Jednotlivé prvky databáze jsou přehledně zobrazeny ve stromu.
Skupina design a generování obsahuje následující moduly:
- Design databáze (Database Design Transformer) - vytváří schéma databáze (tabulky, sloupce, indexy atd.).
- Design aplikace (Application Design Transformer) - vytváří definice modulů pro obrazovky, výstupy a menu. Design aplikace vychází z diagramu datových toků. Moduly je pak možné implementovat jako Oracle Forms, Oracle Reports nebo Web PL/SQL (aplikace pro webové prostředí používající Oracle Internet Application Server).
Skupina utilit obsahuje tyto moduly:
- Správu repository (Repository Administration Utility) - zálohování objektů repository, správa přístupu uživatelů atd.
- Průzkumník repository (Repository Object Navigator) - mimo jiné správa verzí objektů.
- Správa závislostí (Dependency Manager).
- Maticové diagramy (Matrix Diagrammer) - zachycuje např. funkce a příslušné entity. Dále zobrazují tabulky databáze podle toho, v jakém uzlu sítě se nacházejí.
- Reporty o repository (Repository Reports)
3.2.4 Power Designer 9
Power Designer je produktem Sybase Inc. Nabízí sadu modelů a nástrojů pro návrh a tvorbu informačního systému. Modelů, které je v něm možné vytvářet, je velká řada, návrh však není podpořen žádnou konkrétní metodou. Podporuje jak strukturované, tak objektové modelování.
Power Designer obsahuje čtyři základní typy modelů:
- Konceptuální datový model (CDM - Conceptual Data Model) - pro modelování logické struktury databáze. CDM je možné automaticky převést (konvertovat) na PDM nebo OOM (zkratky viz dále).
- Fyzický datový model (PDM - Physical Data Model) - pro modelování fyzické struktury databáze (uvažuje se struktura dat a typ databáze). PDM lze konvertovat na CDM nebo OOM. Na základě PDM je možné generovat databázi.
- Objektový model (OOM - Object Oriented Model) - objektově orientovaný přístup pro modelování. Následně je možné generovat kód ve zvolném jazyce. OOM lze konvertovat na CDM nebo PDM.
- Procesní model (BPM - Business Process Model) - pro modelování business processes v organizaci. Do jednoho modelu je možné vytvářet jak strukturu organizace, tak vlákna procesů. Procesy je možné mapovat na organizační jednotky. Nabízená notace modelu zahrnuje procesy, rozhodování i synchronizaci, nezahrnuje však události. Místo toho nabízí tzv. “start” a “konec”.
Diagramy PDM:
- Klasický fyzický datový model (Physical Diagram) - fyzická struktura databáze s tabulkami a view.
- Multidimensionální model (Multidimensional diagram) - možnost definovat dimenze a kostky. Zřejmé uplatnění při návrhu datových skladů (data warehouse).
Diagramy OOM:
- Diagram tříd
- Use case diagram
- Sekvenční diagram - zahrnuje možnost znázornit aktory.
- Diagram komponent
- Diagram aktivit
Součásti Power Designer:
- DBMS - zajišťuje podporu databází, tzn. možnost generování databáze na základě jejího fyzického modelu. Power Designer mimo jiné podporuje ANSI SQL, AS/400, DB2, Informix, Interbase, Access, MySQL a Postgre (perfektní pro uživatele Linuxu), MS SQL Server, Oracle (i verzi 9i) a samozřejmě Sybase. Pokusil jsem se vygenerovat jednoduchý SQL skript pro databázi MS Access. Skript se opravdu vytvořil, přičemž na začátku obsahuje oddíl pro výmaz generovaných tabulek a poté oddíl pro jejich vytvoření.
- Report Template Editor - umožňuje beze zbytku nastavit cokoliv, co se týká budoucích generovaných výstupních dokumentů. Uživatel může volit nejen obsah, ale i fonty, barvy atd. A to vše v přehledném editoru. Je možné dokonce volit jazyk (v mnou testované trial verzi byly na výběr ještě holandština, němčina, francouzština a čínština). Generování dokumentů podporuje dva formáty, a to HTML a RTF. HTML formát dokumentace vypadá perfektně, Pomocí odkazů se lze snadno “doklikat” na příslušný diagram. Pro zobrazení detailního popisu každého objektu v diagramu stačí kliknout na daný objekt. Co se týká podpory dalších jazyků, zkoušel jsem němčinu a musím upozornit, že se nepřekládají některá slova (ta základní, jako třeba interface a object) a chyby při generování dokumentace se píší taktéž anglicky.
- Podpora objektových jazyků - podpora generování objektového modelu do objektového jazyka. Zkoušel jsem generovat C++ kód, vše proběhlo v pořádku (jak uspořádání souborů, tak i jejich vnitřní struktura, ta je mimochodem velmi přehledná, narozdíl např. od Ration Rose - viz Ration Rose). Mezi nabízenými jazyky nechybí kromě C++ ani Java, Corba, XML, PowerBuilder a VisualBasic. Power designer vytváří náhledy kódu průběžně s tvorbou modelu. Pokud je např. vytvořena nová třída, v jejích vlastnostech je automaticky vytvořena záložka s kódem dané třídy ve zvoleném programovacím jazyce. Je jen škoda, že v záložce s kódem není umožněno vkládat text (nepodporuje tedy “automatický on-line roundengineering” - nevím, jak to nazvat lépe).
- Správa verzí - každý objekt obsahuje informace o jeho tvůrci a vytvoření, o modifikaci a o tom, kdo ji provedl. Jednotlivé verze se ukládají (resp. uživatel je vytváří) do repository. Každý projekt v určité fázi je možné exportovat jako verzi a poté opět importovat.
- Repository - ukládá se do databáze, je možné zvolit např. MS Access.
- Reverse Engineering - možnosti jsou reverse engineering z objektového jazyka nebo z databáze. Mezi nabízenými jazyky byly (v mé evaluation verzi) Java, Corba a XML, chybí tedy bohužel C++. Reverse z databází zahrnuje všechny databáze, do kterých je také možné generovat (viz výše). Zkoušel jsem reversovat jednoduchou databázi z Access. Po proběhnutí se mi opravdu bez problémů zobrazily všechny mé tabulky. Taktéž jsem zkoušel reverse engineering z SQL skriptu, opět vše proběhlo bez problémů. Jediné, co se dá reverse eng. z datábáze vytknout je fakt, že zobrazuje pouze tabulky databáze, ne však vztahy mezi nimi.
- Možnost importovat model z Rational Rose. Vyzkoušel jsem import logického modelu s jedním balíčkem a diagramem tříd a vše proběhlo bez problémů. V Power Designeru je vytvořena odpovídající package (balíček) a v ní je importován daný diagram tříd.
Prostředí Power Designeru je vytvořeno velmi přehledně a příjemně. Celé okno je rozděleno na základních pět klasických částí (konkrétní uspořádání pracovní plochy samozřejmě záleží jen a jen na uživateli). V horní liště nástrojů se, mimo jiné, nachází ikony pro zobrazení pracovní plochy diagramu (např. pohled se znázorněním tisknutelných stránek, což každý uživatel jistě ocení při uspořádávání objektů na stránky před tiskem). Vlevo se nachází okno s prvky pracovní plochy (právě otevřeného projektu). Zde se postupně zobrazují stromově uspořádané odkazy na všechny otevřené modely, které uživatel v průběhu práce vytvořil a tím zařadil do projektu. Každý diagram obsahuje i seznam jeho objektů. Vpravo uprostřed je vyhrazen prostor pro tvorbu diagramů. V dolní části obrazovky se nachází okno, kam se zobrazují a ukládají jednotlivé výpisy a výsledky týkající se práce uživatele (např. průběh a výsledek operace “check model” - kontrola správnosti diagramu). Posledním základním oknem je nástrojový panel, tj. nabídka prvků jednotlivých diagramů. Všechna popsaná okna je možné jakkoliv uspořádat nebo ukotvit.
Co se týká grafické úpravy, je také velmi dobrá. Jednotlivé prvky diagramů jsou podbarveny různými barvami. Tyto barvy je také možné měnit. Měnit se dá také font a styl čar. Toto se dá hlavně využít při tvorbě poznámek a vysvětlivek u modelů (lze tak vlastně definovat stereotypy).
Pro přehlednost ve velkých diagramech je možné vytvářet “grafické synonymy”, tzn. kopie objektu. Jednotlivé kopie se pak odlišují číslem v jejich názvu.
Samozřejmostí je podpora víceúrovňového UNDO. Zajímavostí je objekt “title” nacházející se v nabídce notace u každého diagramu, který vytváří tabulku pro popis diagramu (tvůrce, datum vytvoření atd.) přímo do tohoto diagramu.
Společně s Power Designerem je dodávána velmi obsáhlá dokumentace, která zahrnuje jak popis prvků Power Designera, návod na jeho ovládání, tak i popis jednotlivých diagramů.
3.2.5 Excel Software - WinA&D
Modelovací nástroj firmy Excel Software zaujme na první pohled množstvím modelů a podporovaných metodik. Produkt je k dispozici ve verzi pro Windows (WinA&D) a pro Macintosh (MacA&D), ale nově také pro Linux. Nástroj podporuje řadu metodik, a to jak strukturovaných (Yourdon/DeMarco, Gane/Sarson), tak objektových (UML, Schlaer/Mellor, Coad/Yourdon, Booch, Jacobson, OMT a Fusion). Nabízí také datové modelování a návrh databáze. Styly diagramů se znázorňují podle vybrané metodiky (obdobně jako v Rational Rose). Notací modelů nabízí nástroj A&D celou řadu, pouze je škoda, že use cases se dají definovat pouze textově, nikoliv graficky (textově se definují v modulu Požadavky).
Samozřejmostí je generování kódu na základě vytvořených modelů A&D podporuje mimo jiné jazyky C++, Java, Object Pascal, Delphi a SQL. Nástroj obsahuje vlastní modul pro editaci vytvořeného kódu.
Pro tvorbu designových dokumentů se používají výstupy ve formátu HTML. Obsah dokumentace plně volí uživatel. Vygenerovaná dokumentace je přehledná, HTML stránka je rozdělená do dvou framů. V pravém framu je obsah a v levém se zobrazuje konkrétní dokumentace.
Přístup k modelům je samozřejmě autorizovaný. Pro podporu týmové práce nabízí tento nástroj definování týmových požadavků (Team Requirements).
Součásti nástroje WinA&D:
- Model tříd - podporované notace jsou UML, OMT, Booch, Jacobson, Shlaer/Mellor, Coad/Yourdon a Fusion.
- Datový model - tvorba ERD.
- Objektový model - podporované notace UML, Booch, Fusion and Shlaer/Mellor. Tento modul zahrnuje tvorbu UML diagramů spolupráce a diagramu sekvencí.
- Procesní model - vytváří se pomocí DFD. Podporované notace jsou DFD od Yourdon/DeMarco, Gane & Sarson, Shlaer/Mellor a OMT.
- Model stavů - podporované metodiky jsou Mealy, Moore, UML/Harel, Jacobson’s STG, Shlaer/Mellor a UML. Stavy a události mohou být zobrazeny také ve formě tabulky (tabulka zachycuje stavy, události, akce a následující stavy).
- Strukturní model - stromový strukturní diagram. Je možné ho využít např. pro znázornění modulů navrhovaného systému.
- Model tásků a architektury systému (Task Model) - zahrnuje UML diagram nasazení.
- Specifikace - textově zachycuje specifikace související s vyvíjeným informačním systémem. Specifikace se může vázat ke kterémukoliv modelu.
- Požadavky - tento modul umožňuje evidovat funkcionální požadavky na vyvíjený informační systém. Zde se provádí definice jednotlivých use case textově. Nabízí také možnost mapovat jednotlivé požadavky na vytvářené modely a diagramy (mapování do analýzy, designu, specifikací i generovaného kódu). Požadavky je možné mapovat na dokument, diagram, objekt v diagramu nebo tabulku. Produkt A&D tímto nabízí možnosti, která mnoho jiných modelovacích nástrojů nemá (zejména nástrojů pro analýzu a design). Uživatel tudíž nemusí evidovat funkcionální požadavky ručně ani dokupovat specializovaný nástroj.
- Model obrazovek - umožňuje navrhovat a prohlížet prototypy uživatelských obrazovek při návrhu informačního systému. Jednotlivé obrazovky je možné mezi sebou propojit pomocí menu nebo tlačítek.
Co se týká vizuálního provedení nástroje, modely v něm nejsou tak graficky povedené jako např. v Select Enterprise nebo Rational Rose. Použití barev je trochu nepřehledné.
