phpRS            

Dnešní datum: 04. 09. 2010   | Hlavní stránka | Seznam rubrik | Kniha návštěv |  
  Hlavní menu
Hlavní stránka
Seznam rubrik
Fotogalerie
Kniha návštěv
Stáhněte si
Odkazy
Ankety
TOP 15

  Reklama


  Rubriky

  Poslouchám na síti


Spusť přehrávač


Spusť přehrávač


  Informace o webu
Všehochuť aneb od každého trochu

Content © 1991-2010 Slávek Rydval

View Slávek Rydval's profile on LinkedIn

Vytvořeno pomocí phpRS a Texy!

RSS kanál

Software

* Kreslítka pro krycím jménem CASE

Vydáno dne 01. 08. 2005 (12284 přečtení)

Připravit recenzi několika CASE nástrojů se může zdát vcelku jednoduchá záležitost. Dodavatelé se požádají o dodání krabice s produktem, recenzent si je v redakci vyzvedne, nainstaluje na svůj počítač a pak již trápí veškerý ten software a hledá ty nejhorší vlastnosti či - nedejbože - chyby.

Praxe je však o něčem úplně jiném. První kreslítko, které jsem dostal, byl Power Designer od Sybase dodaný jako součást Enterprise Application Studio, bohužel ne v aktuální verzi. Krabice tedy putovala zpět do redakce a požádali jsme firmu, zda-li by mohla dodat poslední verzi. Po nějakém čase firma prohlásila, že v krabici je aktuální Power Designer, jen se hlásí jako starší verze. Dostal jsem zpět původní krabici a nainstalovat zpátky to, co v ní bylo. Jak je to doopravdy s verzí se dozvíte dále.

Další adept na řade byl SELECT Enterprise od LBMS. Opět to nebyla aktuální verze, ale co se dá dělat. Při pokusu o instalaci na počítač se systémem Windows 2000 Professional mi instalační program ohlásil, že tuto verzi nepodporuje. Nevadí, přesto jsem to zkusil. Instalace proběhla, ale produkt byl bohužel nespustitelný. Tím nechci říct, že je to jeho chyba. Nikde není řečeno, že kreslítko na uvedeném systému poběží. Teď ovšem nastal problém, co s tím. Disk, který jsem používám, má souborový systém NTFS a na to Windows 9× či NT4 prostě nenainstaluji tak, abych nepřišel o stávající systém. Vzal jsem tedy svůj starý disk, a na něj zkusil nainstalovat zastaralé Windows 95. Ty se bohužel neměly k mé měsíc staré síťové kartě. Na řadu přišly Windows 98, ale ty zase odmítaly grafickou kartu (tentokráte starou půl roku). Nechal jsem to proto chvíli uležet a mezitím jsem trochu změnil hardware. Tím pádem došlo k tomu, abych přikročil k dalšímu pokusu o instalaci. Vložil jsem starý disk do počítače a nic. Po několika pokusech jsem disk zkusil i v jiném počítači, ale prostě smůla. Elektronika disku odešla do věčných lovišť a disk půjde na nástěnku. Sloužil dobře. Půjčil jsem si tedy další disk, nainstaloval Windows 98, na to SELECT a již vše bylo v pohodě.

Mezi pokusy se SELECTem dorazily registrační čísla posledních verzí kreslítek Case Studio a XTG. Obě byly při instalaci v naprosté pohodě. Kromě jiného to přičítám tomu, že mají oproti ostatním mnohem méně možností a není potřeba je složitě instalovat.

Pak přišel Oracle Designer. Opět ne v poslední verzi. Instalace proběhla naprosto v pořádku, ale při spuštění tomu něco chybělo – databáze, kam si ukládat data. Po prosbě na firmu Oracle dodali Oracle 8i Personal Edition. Mezi tím, než databázový stroj došel, jsem přeinstaloval systém. Instalace softwaru pak probíhala v pořadí Personal Oracle a pak Designer. Ovšem chyba lávky. Zpátky na stromy a znovu, tentokráte v opačném pořadí. To se zdařilo a zbývalo vytvořit repository. Jenže zde nastaly další problémy. Vše se poměrně zdlouhavě řešilo pomocí podpory, ale nakonec se i tohle povedlo.

Jako poslední jsem dostal Rational Rose. Instalace ale byla příliš nudná – proběhla v pořádku a stejně tak program se choval k operačnímu systému slušně a nedělal zbytečné problémy.

Nyní se pojďme podívat, jak recenze probíhala. Výchozím bodem je počítač, na kterém kromě kreslítek musí běžet alespoň dvě databáze kvůli testování reverse engineeringu a samozřejmě rozumný operační systém. Základem pro recenzi se stal počítač Athlon 600 s deskou Asus K7M, 256 MB paměti SDRAM. Disk velikosti 20 GB s 2MB cache se otáčel rychlostí 7200 otáček za minutu a přístup byl umožněn pomocí U-ATA 66. Protože modelování je v podstatě práce na velké ploše, doplňkem sestavy byl 17 palcový monitor ADI 56GT s rozlišením 1280×1024@85. (Pokud jste majiteli méně výkonného stroje, nepropadejte panice. Uvedený výkon byl nejdůležitější pro chod databází, nikoliv kreslítek. Těm postačí výrazně menší výkon stroje.)

Dobře, počítač bychom měli, teď co na něj. Operačním systémem byly Windows 2000 Professional v anglickém provedení. Databázové stroje byly dva: Interbase 5.6 a Oracle 8i Personal Edition verze 8.1.5. Souborové databáze, které jsou dnes zastaralé a již se ani nedoporučují používat, zastupoval Paradox, ke kterému zajišťovalo přístup rozhraní BDE.

Základní otázkou, která se může někoho napadnout je: Co to vlastně CASE nástroj je? CASE je zkratkou Computer Aided Software Engineering, ale jistě bude rozumnější říct, že se jedná o nástroj, který vám umožní automatizovat specifikaci požadavků, návrhy, analýzu, kódování (ve smyslu tvorby zdrojových kódů) a/nebo údržbu a testování systému. Ne každý nástroj umožňuje vše, co bylo uvedeno, ale zvládá pouze určitou podmnožinu procesů. Pokud se chcete dozvědět o obecné problematice CASE nástrojů více, podívejte se lednového čísla Softwarových Novin z roku 1998.

Ale zpět k našim kreslítkům. Po přečtení recenzí na všech šest nástrojů můžete nabýt dojmu, že se jedná o souboj Goliáše s obrem, pokud byly vedle sebe postaveni takový prcci jako Case Studio či XTG Data Modeller a velikáni typu Rational Rose či Oracle Designer. Ve skutečnosti nejde o žádné srovnávací testy, ale o představení nástrojů, které lze na našem trhu sehnat (nejedná se samozřejmě o všechny). Stejně tak je ale pravda, že o malých nástrojích bylo napsáno mnohem více, než o těch velkých, bylo zmíněno více chyb či drobností, ale pokud na každý máte stejný prostor, ani jinak to nejde. Proto u těch malých jsem se soustředil na popis všech důležitých vlastností a jejich řádné prozkoumání. Naopak u velkých jsem se soustředil na to, co můžete od nástroje čekat a co vám umožní či nikoliv. Je mi naprosto jasné, že u velkých nástrojů nelze jít do hloubky, protože když u něčeho do hloubky přeci jenom půjdu, nezbude místo na ostatní vlastnosti, které by bylo důležité zmínit. Ale takový je již život. Pokud chcete vědět více, jsou na doprovodném CD umístěny jak odkazy na jednotlivé firmy, tak na produkty, a pokud existují demo verze těchto produktů, taktéž jsou uvedeny.

A ještě dvě poznámky. Použití slova kreslítko neznamená, že bych daný nástroj nějak podceňoval nebo se mu vysmíval. Jedná se o poněkud familiérní název, nebo chcete-li velmi volný překlad slova designer. A poslední důvod: prostě se mi to slovo líbí. Druhá připomínka se týká uvedených příkladů. Byly voleny tak, aby ukázaly možnosti nástroje a je možné, že jejich modelování nebo analýza nebyla provedena správně. Pokud bych chtěl toho dosáhnout, pak by jenom modelování jednoho příkladu mohlo trvat déle než napsání celého článku. Omluvte proto prosím případné nedostatky.

Case Studio – Malej, ale šikovnej

Základní údaje
Přesný název: CASE Studio 2.1
Poskytl: Radim Kunz software
Cena: 5 000 Kč bez DPH
Podpora: v ceně produktu

Produkt měsíce 9/2000S Case Studiem jsem se částečně seznámil ještě před vlastním recenzováním, ale teprve nyní jsem si mohl vyzkoušet práci s tímto produktem na reálném projektu. Prodejním kanálem je Internet, odkud si můžete stáhnout demoverzi (omezenou počtem entit, které můžete vytvořit) a po zaplacení získáte licenční číslo, které vás opravňuje k plnohodnotnému používání. Instalace ve stylu InstallShield je velmi jednoduchá, není potřeba žádných dalších úkonů kolem.

Chování prostředí je velmi podobné Delphi (také v nich bylo kreslítko naprogramováno). K dispozici máte plochu, kde skládáte model, po levé straně okna je ve stromové struktuře seznam objektů, které model obsahuje. Samozřejmostí je tlačítková lišta (viz obrázek). Vlastní datový model se skládá z entit, identifikačních, neidentifikačních a informativních relací. Dále je možné použít časového razítka a poznámky. V podstatě to je vše, co je zapotřebí k datovému modelování.

Na začátku práce s novým modelem si musíte vybrat cílovou databázi z devíti možných (např. ORACLE, Informix, InterBase, MS SQL) a pak již nic nebrání tomu, abyste mohli začít modelovat. Na model jako takový se lze dívat několika způsoby – jako na fyzický či logický model, lze zobrazit pouze primární, cizí klíče a/nebo atributy.

CaseStudio - IDEPrvní myšlenka při definování entit byla, že chci autoinkrementální primární klíč. Pokud někdo znáte server InterBase nebo ORACLE, tak jistě víte, že zde žádný takovýto datový typ neexistuje a nejčastěji se to řeší pomocí triggrů ve spolupráci se sekvencemi (ORACLE) nebo generátory (InterBase). V Case Studiu není problém si trigger k entitě dopsat a pak jej použít. Ale představte si, že váš model má klidně přes třicet tabulek. Dopisovat ke každé entitě takovýto trigger je práce pro cvičenou opici, ale ne pro analytika (či vývojáře), který má model na starosti. Zde jsem se zasekl a přemýšlel pomocí nápovědy jak na to. První věc, kterou lze použít, je udělat si obecnou entitu, kam vložíte všechny atributy a triggry, které budou pro všechny tabulky stejné, a uložíte si ji do tzv. galerie, což je sklad obecných objektů a lze je použít v libovolném modelu. Možná někoho zarazilo, jak to, vždyť trigger se váže ke konkrétní tabulce a tedy se někde musí do generovaného triggru vložit její jméno. K tomu je zavedeno parametrizování, kde se pomocí speciálních proměnných řekne, kam se má nejen název tabulky, ale třeba i název sloupce vložit. Problém ovšem nastane, máte-li vše takto hotové a přijde zákazník, že chce do každé tabulky přidat sloupeček. Zde už opravdu musíte nasadit nějakou opici (v tom lepším případě).

Když jsem uváděl tento problém autorovi, ukázal mi způsob, jak dosáhnout požadovaného efektu s autoinkremen­tálními klíči. Jde o to, že modelování lze velmi dobře parametrizovat všemi směry. Slouží k tomu šablony, kam lze pomocí makrojazyka přesně napsat průběh generování a tedy v našem případě i vlastní generování triggrů pro generování primárního klíče. Postup byl sice poněkud komplikovanější a není ani popsán v nápovědě, ale v příští verzi má být tento přístup změněn k lepšímu včetně dopsání odpovídající nápovědy (alespoň dle vyjádření autora).

Dobře, máme tedy namodelováno, ale jak dostat model do databáze? K tomu slouží generování SQL skriptu, který pak stačí spustit na cílové databázi. Opět máte na výběr, co vše chcete generovat, dokonce lze použít příkazy, které nejprve objekty zruší (DROP TABLE, DROP INDEX, …).

Velmi důležitou pomůckou je reverse engineering, tzn. proces zpětného modelování (viz slovníček). Case Studio je ochotno mluvit se čtyřmi databázemi: Interbase (ODBC i nativní spojení), MS SQL (ODBC i nativní spojení), ORACLE (nativní spojení) a souborová databáze Paradox. Revers probíhá velmi jednoduše: vyberete si databázi, zadáte její umístění (záleží na druhu databázového stroje), případné uživatelské jméno a heslo a seznam objektů (triggery, indexy, pohledy, práva a další), které chcete získat. Pak je vše na programu, aby vám požadované údaje poskytnul. Pokud připojení proběhlo v pořádku, je vám nabídnut seznam objektů, které lze vložit do modelu a je již zase na vás vybrat si, které z nich to budou. Po tomto výběru dojde k vytvoření nového modelu, který lze upravovat dle vašich potřeb. Velmi pěkná vlastnost by byla zjišťování rozdílu vůči modelu a aktuálním stavem v databázi a následné generování rozdílových skriptů. Bohužel touto vlastností CaseStudio neoplývá.

CaseStudio - Data Flow DiagramNezáviděníhodná je situace, kdy za vámi přijde šéf s tím, že někde na plovárně v Podolí slyšel o InterBase jako o skvělé databázi, že je zadarmo, že odedneška nadobro končí s drahým ORACLEm a vy musíte vše na ní převést. Pokud mu to nerozmluvíte (tedy samozřejmě pouze to převedení, ostatní je pravda), máte dvě možnosti. Podat výpověď nebo veškerou svoji práci předělat. V tomto případě přichází Case Studio na pomoc, kdy vám umožní převést schéma na jinou databázi. Převod jako takový je relativně složitá věc – každý databázový stroj zná například jiné datové typy, což se musí řešit přemapováním na podobný typ, má jinou syntaxi triggerů a další. Produkt si snadno poradí s tabulkami a typy, problémy nastávají právě v případě vlastnoručně napsaných triggrů či procedur. Zde musíte skoro vše přepsat sami. Důležitá je pak také kontrola datových typů atributů.

Poměrně nezvyklou věcí v CASE systému této kategorie je diagram toků dat (Data Flow Diagram, DFD). Program oplývá základními prostředky pro používání DFD jako jsou procesy, terminátory, datová uložiště a samozřejmě datové toky. Datovému uložišti lze přiřadit entitu v modelu. Na obrázku je ukázka typické vyřizování žádosti na běžném úřadě. Občan si podá žádost, ta se válí maximální možnou dobu na úřadě a pak je zamítnuta, protože neposkytl dostatečně vysoký „poplatek“. Zde mi trošku vadila nepřehlednost popisek u datových toků v případě jejich většího počtu.

Součástí každého projektu musí být dokumentace, aby se další osoby v daném kontextu vyznali. Case Studio dokáže z modelu vytvořit velice přehledný HTML dokument, který obsahuje informace o modelu, tabulkách, sloupcích, datovém slovníku, triggrech, procedurách a pohledech, které máte vymodelované. K jeho zhlédnutí potřebuje prohlížeč, ale ten je dnes součástí snad každého počítače.

CaseStudio - VerzováníSpráva verzí se postupně stává součástí života každého většího projektu. Jedná se o velmi mocný nástroj, který dokáže ušetřit spoustu času. Zde je podpora správy verzí zabudována přímo do aplikace, není proto potřeba mít koupený další produkt, který verzování umožňuje. Kromě základního Check in a Check out lze prohlížet verze modelu buďto časově podle toho, jak postupně vznikaly nebo v plné hierarchii verzí. Pro porovnání verzí slouží speciální dialog, kde lze jednotlivé změny sledovat. Pokud to někdo považuje za zbytečné, když na verzování existují různé nástroje, pak se mýlí. Tyto nástroje nedokáží poznat binární podobu uloženého modelu a verzovaly by jej pouze jako binární soubor. Kdežto zde máte vše přehledně po ruce. Nevýhodou je tvorba dalších a dalších souborů na disku, které – ač jsou malé – mohou zabírat relativně dost místa.

Během recenze jsem si psal seznam chyb nebo špatných vlastností, které jsem na produktu našel. Nemá cenu se tu o nich zmiňovat, protože téměř vše z toho bylo během mých připomínek opraveno. Autor mi většinou odpověděl ještě týž den (i o víkendech), takže práce nestála a mohl jsem bez většího přerušení dále pracovat. Je mi jasné, že oprava v podstatě on-line u velkého software je nemožná, ale na druhou stranu u malých firem to samozřejmé není.

Uživatelské prostředí je příjemné a pokud člověk tápe a neví kudy kam, je tu poměrně rozsáhlá nápověda nebo kvalitní a rychlá podpora. S Case Studiem se mi pracovalo velmi dobře. K tomuto produktu existuje elektronická konference, kde na problémy autor odpovídá. Výhoda je jasná. Nejen vzhledem ke kladům, které jsem uvedl, ale i ostatním kvalitám jsem se rozhodl udělit produktu cenu Produkt měsíce. Pro jasně hovoří i cena: poměr výkon/cena je velmi vysoký (pokud bych vám chtěl čtení trošku znechutit, mohl bych napsat, že limita poměru cena výkon se blíží k nule).

  • Klady: Data Flow Diagramy, Cena, Parametrizování, Nápověda, Podpora
  • Zápory: Problikávající prostředí, dialogy neznající klávesy Esc
  • Závěr: Malý kouzelník, který dokáže s ER-diagramy opravdu hodně

Oracle Designer – velmi náročný a jednoduchý

Základní údaje
Přesný název: Oracle Designer je součástí Oracle Internet Developer Suite
Poskytl: Oracle Corp.
Cena: 4,995 USD na vývojáře
Podpora: Standardní podpora jako ostatní produkty firmy Oracle. Bližší specifikaci zákaznické podpory naleznete na přiloženém CD SWN 9/2000.

Zprovoznit tento nástroj byl snad nejnáročnější úkol z celého testování všech kreslítek dohromady. To, že se informace ukládají do databáze Oracle je v celku logické, ale na druhou stranu je to dosti omezující. A hlavně dosti složité na přípravu. Jak již byl napsáno na začátku, bylo zapotřebí na mém lokálním počítači kromě vlastního nástroje mít nainstalovanou databázi Oracle a to ve správném pořadí společně s Designerem.

Nechá se říct, že instalace je jednoduchá, ale velmi zdlouhavá. Pokud si totiž během instalace databázového stroje necháte databázi vytvořit (pokud žádnou nemáte, je to jediná možnost), pak si naprosto v klidu můžete odejít na hodinu ven a nestane se, že by počítač zahálel. A pokud máte procesor a disk pomalý, pak ani hodina nebude stačit.

Máte-li obojí nainstalované, ještě nelze Designera spustit – musíte mu vytvořit repository, kam bude ukládat svá data. Zvyklý na uživatelsky příjemné a hlavně intuitivní prostředí, nechal jsem manuál v krabici a spustil bez váhání tvorbu tabulek, procedur a dalších nutností pro běh kreslítka. Bohužel, postup je to zcela špatný. Po několika reinstalacích databáze jsem konečně vzal na pomoc manuál. S ním je uživatel ve dvaadvaceti krocích veden k úspěšné instalaci repository. Bohužel, ani manuál není dokonalý a jen díky podpoře jsem se dozvěděl některé věci, které tam rozhodně napsané nejsou.

Oracle Designer - Front PanelPo náročném porodu repository jsem konečně mohl spustit Oracle Designer a podívat se, jak vlastně vypadá. Nejprve se musíte přihlásit k databázi pod tím uživatelem, pro kterého jste repository konfigurovali. Pak si vyberete aplikační systém, což je něco jako projekt, a konečně se zobrazí Front Panel (viz obrázek), který slouží jako centrála, odkud se můžete dostat k jednotlivým částem vašeho projektu. Je rozdělen do čtyř skupin, kde jsou umístěny ikony základních nástrojů.

Pravděpodobně nejdůležitější skupinou bude Modelling System Requirement, která obsahuje čtyři nástroje – procesní modelování, datové modelování (tj. ER-diagramy), dataflow diagramy a konečně funkční diagramy. Ukažme si to na příkladu (předem upozorňuji, že jde o vykonstruovaný příklad a v praxi by se řešil jinak). Použijeme třeba fiktivní redakci Softwarových Novin a život jedné recenze. Organizačními jednotkami zvolíme inzertní oddělení, recenzenta, šéfredaktora, firmu dodávající software a vydání čísla. Jak tedy může vypadat cesta od počátečního impulsu k tomu, co si můžete přečíst? Na začátku naší cesty stojí firma, která nabídne šéfredaktorovi software k recenzi. Ten si nechá tři pracovní dny na rozhodnutí a jednu hodinu na to, aby rozeslal případné e-maily. Pokud produkt k recenzi přijme, putuje krabice se softwarem k recenzentovy, který má určitý čas na to, aby našel v produktu co nejvíce chyb. Napsaná recenze putuje k šéfredaktorovi, který naopak hledá chyby v ní. Mezi tím inzertní oddělení přijímá inzeráty. Obojí nakonec skončí v jednom čísle, které má namířeno nejprve do tiskárny a pak ke čtenáři. Samozřejmě lze jednotlivé kroky dělit do podkroků.

Na řadu přichází datové modelování, které je (zjednodušeně řečeno) samostatnou činností vaší práce. Na výběr máte samozřejmě entity a relace. Při zadávání relace je potřeba ihned zadat její jméno, což může uživateli vadit, pokud je zvyklý nejprve několik entit „naklikat“ a pak se jim postupně věnovat. 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. Podobně můžete definovat exkluzivní vztah, kdy je relace platná právě pro jednu cílovou entitu. Je-li cílem vašeho snažení datový sklad a následné dolování dat, pak máte možnost definovat, která tabulka je faktová a které jsou dimenzionální. Pokud kromě analytických vlastností oplýváte i estetickým cítěním, můžete si jednotlivé entity vybarvit, změnit font, zvolit šířku čáry a další. Možná se to zdá jako mrhání prostředky, ale ve skutečnosti to může velmi usnadnit vizuální orientaci v modelu (viz odpověď ano v SWN 5/2000 v tématu ANO/NE). Těchto možností lze samozřejmě využít i v ostatních modulech Oracle Modeleru.

Oracle Designer - procesní modelMáte-li zadány procesy a potřebné entity, jsou na řadě – je-li to potřeba – datové toky. Zde totiž přichází spojení výsledků z předchozích dvou kroků. Při zadávání nového diagramu toku dat dostanete na výběr procesní kroky, které jste do systému zadali a ke kterým je potřeba diagramy vybudovat. Vezmeme-li pro změnu příklad použitý u Case Studia a odtamtud proces Vyřizování žádosti, můžeme jej dále zjemnit na další podprocesy. V Designeru je zjemňování velmi příjemné – v podstatě můžete jít do libovolné hloubky, jak potřebujete.

Posledním prvkem v řadě jsou funkční diagramy, které se používají k dekompozici obchodních funkcí (procesů), definování jejich elementárních částí a k zobrazení využití dat. Funkce se zobrazují ve stromové struktuře a na výběr máte buďto zobrazení podobně jako v Průzkumníku (vertikální rozložení), což je ale v podání Oracle Modeleru poněkud nepřehledné, a v horizontálním rozložení, se kterým se pracuje mnohem příjemněji. Na jednom z obrázku na přiloženém CD můžete vidět chybu, kterou jsem během modelování udělal – zpracování žádosti jsem vložil do příkladu redakce.

Tímto krokem jsme s modelováním skončili a na řadu přichází druhá část naší cesty a tím je předběžné generování, které spočívá v přípravě jednotlivých objektů jako jsou tabulky, triggry, sekvence a další k závěrečnému generování. Jedná se o časově nenáročný úkol, jde jen vygenerování celé vaší práce nebo jen části, kterou si vyberete a za vás provede počítač.

To, co vás čeká nyní, jsou poslední úpravy všech objektů databáze pomocí Design Editoru. K tomu vám může posloužit průvodce, přehlednost zvýší mapa, která zobrazuje ve stromové struktuře jednotlivé typy objektů, které lze editovat. Díky zmíněnému průvodci je možno definovat pohledy, indexy, různá integritní omezení a další. Musím říct, že se mi s ním velmi příjemně pracuje. Například vytvoření pohledu spočívá v absolvování průvodce a klávesnici musíte použít pouze v případě, že chcete dopsat podmínky do WHERE klauzule. Kromě mapy máte ještě k dispozici okno Navigator osahující strom objektů, takže přístup k jednotlivým prvkům je rychlý.

Oracle Designer - Data Flow DiagramPosledním krokem je vlastní generování kódu. Máte na výběr tři způsoby: vytvoření DDL (Data Definition Language) souborů, vytvoření přímo na databázi nativně (Oracle) nebo pomocí ODBC zdroje na dalších databázích. K dispozici jsou například MS Access, MS SQL, DB2 či Sybase. Ke všem těmto databázím se vygeneruje odpovídající kód nebo se vytvoří datové struktury. Teď již zbývá nalákat zákazníky.

Uživatelské prostředí má dvě tváře. Jednu – kterou může vidět nezávislý pozorovatel stojící opodál a druhou, kterou vidí uživatel. Z prvního pohledu se jedná o velmi příjemný a jednoduchý design (instalační program jak Oracle 8i, tak Designera je hodně povedený). Vše je pěkně uspořádané a pokud něco hledáte, naleznete to tam, kdy by to mělo být. Pokud ovšem začnete s programem pracovat, dostáváte se k druhému pohledu, který může začít i vadit. Grafik, který tvořil ikony, má jedinečný styl, ale bohužel se mi dosud nepodařilo jednotlivé aplikace od sebe pomocí těchto ikon rozpoznat. Proto když jsem měl otevřeno více oken, býval jsem na pokraji šílenství, když jsem se přepínal mezi jednotlivými moduly a hledal ten správný. V některých dialozích nefunguje klávesa Escape, takže jej musíte využít alternativní způsob. Problém měl Designer také s českými fonty. Pokud zadáte znaky s diakritikou, musíte si nastavit správně font. Je mi divné, proč si neumí produkt zjistit informace z lokálního nastavení – vždyť od toho jej máme. V procesním modelování mě neskutečně omezovala skutečnost, že procesy nemohly být umístěny kdekoliv, ale pouze na vymezených bodech a proto i 17 palcový monitor se stal nedostačujícím. Pokud si nevíte rady, máte k dispozici dobře udělanou nápovědu, která vás kromě jiného může poměrně snadno naučit s jednotlivými nástroji pracovat.

Na začátku jsem psal o přípravě repository (česky pravděpodobně skladiště, ale raději zůstaneme u původního termínu). Co to vlastně je? Do repository si Oracle Designer ukládá všechny informace týkající se objektů, které během své práce vytvoříte. V našem případě se jedná o relativně složitou databázi, která ve svých útrobách skrývá nejenom uložiště dat, ale i velkou část funkčnosti nástroje. Společně s manuály se dodává na deseti stránkách formátu B3 vytištěné E-R schéma této repository, takže v případě problému se můžete za pomocí jednoduchých SQL dotazů dostat do jejích vnitřností.

Po zkušenostech s tímto nástrojem mohu říct, že se mi líbí. Prostředí je intuitivní, dobře se s ním pracuje a dělá to, co se od něj očekává. Vadou jsou pouze některé chybičky (například zmíněná klávesa Escape). Když jsem přemýšlel, zda udělit cenu Produkt měsíce, byl jsem nakloněn ke kladné odpovědi. Bohužel velmi těžkým závažím na misce vah se stala instalace repository, takže nakonec zůstává jen u velmi kladného hodnocení produktu.

  • Klady: Možností zvýraznění objektů, Nápověda, Podpora
  • Zápory: Instalace repository, ikonky
  • Závěr: Produkt s velkými možnostmi a kvalitami

Power Designer – divná to verze

Základní údaje
Přesný název: PowerBuilder
Poskytl: Sybase ČR, s.r.o.
Cena: verze Enterprise 161.740, verze Professional 69.940 Kč, verze Desktop 19.940 Kč
Podpora: tři placené plány technické podpory, které zahrnují vedle možnosti telefonického řešení případných problémů telefonicky také přístup přes web a poskytování aktualizovaných verzí jednotlivých produktů. Bližší specifikaci zákaznické podpory naleznete na přiloženém CD SWN 9/2000.

Power Designer byl dodán jako součást Sybase Enterpise Application Studio. Ačkoliv jsme požádali o poslední verzi, tedy verzi sedmou, dostali jsme verzi označenou jako 6.1.5. Na dotaz proč se tak stalo nám firma řekla, že se opravdu jedná o sedmou verzi, pouze se jako starší hlásí. Nechci zde říkat již jednou vyřčená slova „ale své pochybnosti si ponechávám“ a zcela otevřeně říkám, že tomu nevěřím. V době, kdy se připravovala sedmá verze tohoto produktu, byla mi poskytnuta druhá beta verze, se kterou jsem chvilku pracoval. Věci, které v betě byly, zcela chybí v této údajné sedmé verzi (například UML či XML) a pochybuji, že by byly všechny odstraněny. Ale co se dá dělat, pojďme se podívat na verzi v současné době starou.

Po vložení instalačního CD do mechaniky jsem čekal na spuštění instalačního programu. K mému překvapení se místo něj spustil průzkumník, abych se mohl podívat, co že to vlastně na tom CD je. Poněkud nestandardní chování. Nu což, spustil jsem setup.exe a mohl instalovat. Power Designer se všude hlásil jako mnou uvedená verze, tedy 6.1.5 nejen ve všech dialozích instalačního programu, ale to samé číslo je uvedené v dialogu o programu.

PowerDesigner - IDEProdukt se nainstaloval bez problémů, mohl jsem tedy začít pracovat. Na svém počítači provádím veškerou instalaci produktů pod administrátorským účtem a pak pracuji pod jiným, který patří do skupiny Power Users. Tohle se ovšem Power Designeru nezamlouvá a nezná se moc k registrům a nastavením pod jiným účtem než byl nainstalován. Nezbývá tedy nic jiného, než jej spouštět pod původním uživatelem (ještě že to Windows 2000 umí docela rozumně).

Po spuštění je potřeba vybrat cílovou databázi. Na výběr jich máte opravdu velké množství, jmenujme alespoň ORACLE, DB2, Informix, Sybase SQL, MS SQL a další včetně dnes již zastaralých souborových databází jako je dBase či Paradox. Jakmile si vyberete, můžete začít modelovat.

Modelování probíhá podle zažitého stereotypu, což je dobře. Po umístění entit na pracovní plochu je potřeba zadat atributy. Ty lze zadat z dialogu Table Properties. Výhodou u atributu je, že můžete zadat pouze jeho jméno bez uvedení typu, který lze dodat později. Při generování skriptu však nedojde k žádnému varování a dosadí se automaticky hodnota CHAR(10), takže je potřeba dát si zde pozor. Po zadání atributů téměř vždy přichází na řadu triggry. Power Designer jde dále než některé jiné CASE systémy a má pro vás sadu šesti triggrů předpřipravenou. Stačí si jen vlasy umýt a jít. Tedy – vybrat a dopsat pár drobností. Podobně jako například u Case Studia, i zde lze triggry parametrizovat, čímž dosáhnete větší obecnosti návrhu databáze. Jejich základní tvar lze změnit ve slovníku a od té doby každý nový trigger bude mít nově uvedenou podobu.

Po dokončení modelu přichází na řadu generování SQL skriptu. Na výběr máte velkou spoustu možností přes generování tabulek, indexů, pohledů k vytvoření databáze, tablespace (např. u ORACLE) a dalších. Výsledkem kromě vlastního skriptu, který si lze ihned prohlédnout, je i seznam varovných hlášení a chyb, jsou-li nějaké. Prohlížení skriptu probíhá standardně v Notepadu, ale proč? Prohlížeč textového souboru dělají studenti na středních školách. Mnohem lepší by bylo zobrazit skript v interním prohlížeči se zvýrazněnou syntaxí a pokud holt jej chce uživatel změnit, spustí si to v Notepadu, ve kterém stejně narazí v některých systémech, protože mají omezení na délku souboru. Generování skriptu, respektive umisťování různých vámi dodaných příkazů či komentářů, lze celkem rozumně ovlivnit. Vlastní text lze vložit nejen na začátek a konec skriptu, ale i před a za tabulku a dokonce i jednotlivé atributy tabulek. Chcete-li, můžete si nechat vygenerovat skript pouze k jediné tabulce nebo skupině vybraných tabulek. To má výhodu například v případě rozšiřování již stávajícího modelu, kdy přidáte nové tabulky a chcete tedy skript pouze pro ně.

Dokumentaci lze vygenerovat ve formátu RTF nebo HTML, s přehledností to není nejlepší a úprava také neoplývá kvalitou. Vývojáři v Sybase by se mohli učit od XTG Data Modelleru nebo Case Studia. Pokud chcete, program vám zobrazí náhled této dokumentace (vida, přeci jenom nějaký vlastní prohlížeč). Jen nevím, proč se generuje dokumentace i pro ty části, se kterými nikdo nikdy nic neprovedl a zejí prázdnotou. V případě tisku tím získáte pouze několik nepotřebných papírů.

PowerDesigner - Před generováním SQL skriptuReverse engineering je možné provádět dvěma způsoby. První a jednodušší je napojení na databázi pomocí ODBC zdroje, druhý je čtení SQL skriptu. Předhodil jsem mu dva skripty stejné jako v případě XTG Data Modelleru (viz dále). Program ani na jednom nespadl, ale stalo se něco, co se mi ani trochu nelíbilo. XTG Data Modeller byl schopný rozpoznat alespoň některé vazby mezi tabulkami v případě prvního skriptu, Power Designer ani jednu! Tohle považuji za hrubou chybu u produktu této kategorie. Je pravdou, že ne každý hned reverse potřebuje, ale pokud k tomu dojde, měl by dostat kvalitu odpovídající ceně.

Pokud jste v bohatém seznamu databází nenašli právě tu vaši, můžete si napsat vlastní soubor, který lze následně načíst do prostředí. Je možné vytvořit definici pro libovolnou relační databázi. Soubor je relativně malý (největší má 54 kB), takže jeho tvorba by nemusela zabrat příliš času. Zde uvedu další důkaz toho, že dodaný produkt není v sedmé verzi. V té je totiž tento definiční soubor napsán pomocí XML, kdežto zde je to textový soubor vlastního formátu. Pokud tedy uvažujete o napsání vlastní definice, použijte sedmou verzi a XML, máte do budoucna vystaráno.

Jak je zvykem, porozhlédneme se trošku po uživatelském prostředí. Problikávání je asi samozřejmé pro každý takovýto produkt (zajímalo by mě, na jakých strojích se vlastně tyto produkty vyvíjí – nebo to nikomu nevadí, že to pouští do prodeje?). Na černých obdélnících se neměnil kurzor myši (opět něco moc složitého?), jak to známe z jiných produktů. Jinak je prostředí – i přes svou zastaralost – docela příjemné a sladěné. Pokud člověk něco hledá například v menu, nalezne to tam, kde by to čekal (tedy ne jako Word). Celkem pěkně je vyvedený zooming, neboli zvětšování či zmenšování objektů v modelu. Kromě základního zmenšení/zvětšení na dané procento, lze jednoduše zobrazit entity tak, aby se přesně vešly na obrazovku. Podobně při posouvání lze zařídit, aby jste se velmi rychle dostali na pozici, kde se entity nacházejí. Pozor na to, když bude provádět změny, krok Undo funguje pouze do jedné úrovně. Psí kusy lze provádět s rozmístěním objektů. Lze je různě zarovnávat, označené objekty skládat do skupin a pak s nimi pracovat jako s jediným objektem a další. Funguje to podobně jako například v Power Pointu, kde si můžete obrázky rozložit a po úpravách zase dát dohromady.

Pokud nevíte, jak jinak byste své schéma vylepšili, je možné nakreslit si pár objektů, které z databázemi potažmo datovým modelem nemají pranic společného. K dispozici máte hranatý a kulatý obdélník, elipsu, lomenou čáru a polygon (konvexní i nekonvexní mnohoúhelník). Nedisponujete-li dostatkem prostředků na koupi dalšího nástroje, můžete tím nakreslit klidně data flow diagram, ale žádná lahoda to není. Nejprve si musíte vizuální podobu nakreslit a pokud se jednalo o více objektů, pak je ještě musíte dát do jedné skupiny. Ale je to taková berlička. Na druhou stranu poznámky k objektům tím získáte snadno.

Power Designer umí generovat nejenom skripty pro zvoleno databázi, ale dokáže si poradit i s webem nebo s Power Builderem. V případě webu máte na výběr dvě možnosti: Power Dynamo a Active Server Pages. V obou případech dojde k vygenerování HTML a ASP kódu, který pomocí přístupu k databázi zobrazuje data v ní uložená. Generování pro Power Builder je shodný s webem, pouze výsledek je v jiném formátu.

Jsem na rozpacích, jaký provést verdikt. Myslím si, že kdyby byly dotaženy některé věci do rozumné podoby, jednalo by se o velmi kvalitní produkt. Bohužel díky připomínkám, které jsem uvedl, bych jej zařadil do skupiny průměrné. Výtečné jsou možnosti parametrizace a tím získání CASE systému pro libovolnou relační databázi stejně tak možnost ovlivnit generování skriptů. Reverse engineering je na velmi špatné úrovni. Škoda, že nebyla k dispozici sedmá verze, která kromě novinek mohla přinést mnohá vylepšení. Snad příště.

  • Klady: Prostředí, Podpora velkého množství databází, Sladěné prostředí
  • Zápory: Reverse, nutnost spouštět pod účtem, pod kterým byl produkt nainstalován
  • **Závěr: Produkt nijak nevyvyšující se z řady. Dobře modeluje, špatně revesuje.

Rational Rose – Od požadavků ke komplexnímu řešení

Základní údaje
Přesný název: Rational Rose 2000e Enterprise Edition
Poskytl: Unicorn Distribution s.r.o.
Cena: verze Enterprise 196 220 Kč, Professional 114 450 Kč, Modeler 87 200 Kč, vše bez DPH
Podpora: Zákaznická podpora pro první rok je nedílnou součástí ceny produktu. Prodloužení zákaznické podpory je dobrovolné. Cena za prodloužení zákaznické podpory je 31 755 Kč pro verzi Enterprise. Bližší specifikaci zákaznické podpory naleznete na přiloženém CD SWN 9/2000.

Pro opravdu velké projekty, kde nestačí pouze modelovat entity a vztahy mezi nimi, přichází na scénu zbraň větší ráže. Produkty společnosti Rational jsou jednou z největších armád v tomto oboru. Pokrývají celý životní cyklus vašeho projektu – od analýzy přes objektový a datový návrh až k vlastnímu vývoji a testování a to vše platí jak pro jednotlivce, tak pro velké týmy. 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 - IDEK recenzi jsem měl k dispozici Rational Rose 2000e, což je zbraň na objektově orientované analýzy a modelování. Tato verze navíc podporuje modelování pomocí jazyka UML, který bourá komunikační bariéry mezi analytiky a vývojáři, kteří dosud jen těžko nacházeli společnou řeč. Nyní mohou analytici a návrháři zcela bez problémů modelovat obchodní procesy a programátoři aplikační logiku aniž by docházelo k nějakým konfliktům či nedorozumění mezi oběma skupinami.

Jako příklad si můžeme vzít vysokou školu a způsob vypisování jednotlivých přednášek. Základem jsou přednášející, kteří přednášky vypisují a studenti, kteří se snaží alespoň jednou za semestr na přednášku zajít, aby viděli, u koho že tu zkoušku dělají. A pak je tu ještě kreditní systém, který mj. definuje podmínky průběhu studia. Začneme u případu užití (use case), kde si definujeme studenta, přednášejícího a kreditní systém jakožto aktory a například zápis zkoušky do kreditního systému coby případ užití. Zde jde Rational Rose dál a dává k dispozici návrh implementace a kromě základního modelování aktorů, případů užití a závislostí, také možnost nakreslit jejich možnou implementaci za pomocí sekvenčních diagramů nebo též označovaných jako scénářů. Scénáře zobrazují postup a pořadí jednotlivých akcí, jak následují postupně za sebou. K dispozici máte objekty a zprávy, které mezi těmito objekty putují. Pokud vytváříte distribuovaný systém, pak svislými obdélníky lze vyjádřit jeho jednotlivé části. Podobně jako scénáře lze použít diagramy spolupráce, které zobrazují pořadí zpráv představující operace či transakce.

Stále zůstáváme u případu užití. K modelování obchodních procesů lze použít diagram aktivit označovaná též jako přechodový diagram. Jedná se o poměrně přesný algoritmus, jak tento proces probíhá a používá se buďto při generování kódu nebo při ručním kódování.

Od případů užití se přesuneme k logickému pohledu na tvorbu našeho projektu. Zde jsem místo ručního vytváření tříd sáhl k poněkud jiné formě a to reverse engineeringu z dvouplusového C. Reverse probíhá v aplikaci Rational Rose C++ Analyzer dodávané společně s kreslítkem. Jedná se o nástroj, který se snaží zanalyzovat vaše zdrojové kódy projektu a následně je převést do Rational Rose, kde můžete s definovanými objekty provádět další úkony. První, co mě na aplikaci zarazilo, byl vzhled. Jakoby okna pocházela ze záhrobí, kde by měla trávit čas s Windows 3.1. Velice kuriózní je možnost roztáhnout si jednořádkové vstupní pole přes půlku obrazovky. Zde se evidentně při vývoji na něco zapomnělo.

Ale zpět k reversu. Po zadání všech souborů, ze kterých byste rádi viděli třídy a závislosti mezi nimi, je potřeba nastavit větší množství parametrů, aby průběh operace byl co možná nejlepší. Ještě před vlastním načtením je dobré nechat si soubory zanalyzovat, čímž získáte přehled o případných chybách a nedostatcích, ke kterým může dojít. Protože C++ jsem výrazně používal naposledy ve zlaté éře MS DOSu, vzal jsem jeden svůj projekt o přibližně dvaceti tisících řádcích napsaný pro překladač Borland C++ 3.1 a zkusil, co s ním C++ Analyzer provede. Tento kód byl přeložitelný bez jakýchkoliv výhrad překladače a používal pouze standardní knihovny jazyka C, vše ostatní bylo ve zdrojové podobě. Po analýze, která proběhla příjemně rychle (cca 2 sekunkdy), mi program hodil na hlavu 67 chyb, které našel. Když jsem procházel jednotlivé chyby, vesměs šlo o to, že nemohl najít nějakou standardní knihovnu uvedenou direktivou include. Ve zbývajících případech šlo o drobnosti, kdy se používalo specialitek DOSu. Závažnější ovšem byly dvě hlášení o nečlenské metodě objektu. Myslím si, že na použitý příklad šlo o velmi dobrý výkon a těch pár drobností, které opravdu stojí za to, lze ručně do modelu dopsat.

Po analýze a reversu zdrojových textů stačí již jen zvolit v menu export do Rational Rose a následně soubor, do kterého se má výsledek uložit. Po otevření výstupu v kreslítku máte vše k dispozici. Na přiloženém CD máte ukázku toho, jak výsledek vypadá. Samozřejmě je pak potřeba třídy přemístit ručně nebo to nechat na Rose. V diagramu tříd lze pak vidět závislosti objektů na ostatních jako je dědičnost, agregace a další vlastnosti objektového modelování.

U reverse engineeringu ale ještě zůstaneme. K dispozici je spousta dalších možností přímo v prostředí kreslítka. Mezí základní možnosti patří načtení informací z databáze a z DDL skriptu. Rational Rose umožňuje obojí, zvládá ale pouze tři databáze (v různých verzích). DB2, MS SQL Server a Oracle. Poslední jmenovaný se přímo nabízel k tomu, aby jej otestoval. Podobně jako v XTD Data Modeleru či Power Designeru, i tady jsem mu podstrčil stejné skripty a nechal ho potit se. Bohužel se nepovedlo tak, jak bych to považoval alespoň za dostačující. Tabulky načetl v pohodě, ale vazby či většina indexů zůstala ležet ladem. Na řadu přišel reverse z databáze, která byla vytvořena větším z uvedených skriptů. Nemyslím si, že načítání informací z databáze je složité, veskrze jde o příkazy SELECT z těch správných tabulek. Program i po více než hodině (!) četl něco z databáze a nebyla s ním žádná řeč, protože všechnu činnost dělal v hlavním vlákně. To je docela špatná vizitka v době, kdy i malé prográmky dokáží využít vláken a tedy během časově náročné metody komunikují s uživatelem. Kreslítko jsem tedy sestřelil, spustil znovu a tentokráte zkusil reverse na repository, co bylo potřeba vytvořit k Oracle Designeru. Tentokráte program po přibližně 30 minutách kapituloval s chybovou hláškou a opět se odporoučel. Je to velká škoda.

RationalRose - Diagram aktivitRational Rose dokáže kromě zmíněného ještě reversovat CORBu, Javu či DTD (Document Type Definition). Poslední uvedený jsem zkusil na několika menších souborech a ani v jednom nezaváhal a vše bylo v pořádku.

Na závěr se sluší vygenerovat dokumentaci. Ta se generuje do dokumentu MS Word a lze zvolit několik možností, jak se má generovat. Typ výstupu může být z hlediska logického či komponentového pohledu, u tříd si lze zvolit, jaká syntaxe se má použít: zda UML, Visual Basic nebo C++. Po chvilce generování se výsledek ukáže ve spuštěném Wordu. Když jsem dokumentaci viděl, nějak jsem zaváhal, zda je to opravdu ono. Kromě první stránky, kde jsou nadpisy a druhé s obsahem se jedná o holý text (nepočítám-li hlavičky a patičky) bez sebemenšího náznaku použití zvýraznění byť třeba jen tučným písmem či kursivou. Klobouk dolů před dokumentací z XTG Modelera, která se mi líbila snad nejvíce.

Na konec se ještě podíváme na uživatelské prostředí, které se mnou mělo občas problémy. Jednotlivé objekty na obrazovce při přesouvání blikaly, což vzhledem k výkonu stroje nevypadá dobře. Také okna by mohla být k sobě přítulnější a podporovat alespoň minimální dokování jako to umí například SELECT. Při najetí myši na klasické černě čtverečky kolem vybraného objektu se neměnil kurzor myši, což může ze začátku mást. Při nevhodném použití písma (stačí jen zvětšit) u poznámky mi poslední řádek vyjel mimo poznámku. Sice se jedná o drobnosti, které nemají vliv na fungování programu, ale může to nabourat důvěru uživatele k tak silnému a drahému prostředku pro tvorbu aplikací.

Během doby, kdy jsem měl produkt na recenzi, byl ze strany firmy Unicorn evidentní zájem na tom, aby vše fungovalo tak, jak má a na mé dotazy bylo vždy fundovaně odpovězeno. V podstatě se jedná o jedinou firmu, která se několikrát sama od sebe zeptala na stav a zda-li nejsou nějaké problémy či připomínky. Pokud je takto postaráno i o zákazníky, pak jsou ve velmi dobrých rukách. Dost dlouho jsem přemýšlel o tom, že tomuto produktu, i přes vysokou cenu a drobné věci v uživatelském prostředí, udělím cenu měsíce. Dokonce jsem byl ochoten po dlouhém rozvažování překousnout problémy při reversu, který ne každá firma potřebuje, ale dokumentace mě velmi zklamala. Produkt je po stránce modelování vysoce kvalitní a nabízí široké spektrum možností vývoje aplikace, pouze potřebuje doladit reverse a pár drobností.

  • Klady: UML, Reverse z C++, DTD, Zájem ze strany dodavatele
  • Zápory: Reverse z databáze a DDL, Dokumentace
  • Závěr: Velmi dobrý produkt pro modelování a analýzu za pomocí UML se zájmem o zákazníka.

SELECT Enterpise – Nezvyklé prostředí

Základní údaje
Přesný název: SELECT Enterprise
Poskytl: LBMS, s.r.o.
Cena: 125 000 Kč
Podpora: telefonická, e-mailem

Produkt měsíce 9/2000Nainstalovat tento nástroj byla naprostá pohoda – teda pokud jste hned začali instalovat na ten správný operační systém. Po problémech napsaných v úvodu (a za které samozřejmě mohla obsluha počítače, nikoliv program sám) jsem konečně zvolil ten správný počítač, pevný disk a operační systém a mohl si v klidu začít hrát.

SELECT má za úkol pomoci při vývoji škálovatelných klient/server aplikací. Umožňuje modelování obchodních procesů, use case a modelování objektů. Jak to ale dělá? Projděme si jednotlivé kroky. Po spuštění máte k dispozici pracovní plochu rozdělenou do pěti částí. Nahoře menu a rychlá tlačítka, vlevo strom vašich diagramů, dole okno s výstupy a druhé s vlastnostmi objektu a konečně zbývající část je věnována vlastnímu kreslení. Tato okna podporují dokování, takže je jen na vás, jak si je uspořádáte.

Okno se stromovou strukturou kromě seznamu možných diagramů obsahuje záložku se slovníkem použitých objektů seřazených do kategorií, vztahy mezi nimi a nápovědu (vše ve stromové struktuře). Přistup k uvedeným věcem je tedy vcelku pohodlný a vždy při ruce.

Select Enterprise - IDEZákladem modelování je strom s diagramy, odkud ve většině případů začíná vaše cesta. Tento strom je rozdělený do skupin, ve kterých máte pohromadě vždy související diagramy. Poslední větev stromu obsahuje souhrnně všechny diagramy, které máte vytvořeny. Ukažme si práci s nástrojem na příkladu fiktivní banky. V případě use case jsem zavedl klienta a management jakožto aktory, a pak několik případů užití. Aby se model nechal použít i na české banky jako je IPB či Komerční banka, kromě jiného jsem musel zavést navíc ještě případ užití pod názvem Tunelování. Mezi případy užití lze navíc určit tzv. rozšiřující vztah (Extended Relationship) a užitý vztah (Uses Relationship). Poznámky a jejich případná vazba na další objekt jsou samozřejmostí u každého diagramu.

Od případů užití je velmi blízko k sekvenčním diagramům. Původně jsem chtěl namodelovat sekvenční diagram tunelování banky, ale bohužel mnou nabízená odměna za vysvětlení postupu se ani náhodou neblížila osmimiliónovému odstupnému, takže jsem musel použít pouze to, co znám. Je to škoda, snad někdy příště. Vybral jsem tedy vklad peněz na účet, kdy musí slečna či paní u přepážky nejprve zjistit, zda vámi uvedený účet opravdu existuje a zda na něj lze vložit peníze (může být například blokovaný nebo je v jiné měně, než v jaké chcete peníze vložit). Pokud je vše v pořádku, převezme od vás hotovost, zapíše vklad do transakčního systému a nakonec vytiskne potvrzení o vkladu (diagram viz obrázek). Modelování tohoto postupu spočívá ve vytvoření jednotlivých sekvencí (řádky) a objektů (sloupce), kterých se popis týká. Následně se doplní operace a události (znázorňované šipkami) v sekvencích. Kromě sekvencí lze použít i další způsoby: selekce (výběry, podmínky), iterace (cykly) a výstupy z těchto selekcí a iterací. Například selekcí jsou v uvedeném přikladu podmínky a příkaz raise je vymodelován pomocí výstupů.

Relační diagramy jsou docela problémem kreslítek této kategorie. Produkty se totiž orientují na bussiness processing, use case a další, ale tuto činnost většinou moc v oblibě nemají. Proto v této oblasti jsou výrazně lepší malé nástroje (Case Studio, XTG Data Modeler), které se na tuto a většinou i jedinou činnost orientují a zvládají ji mnohem lépe. Stejně je to i se SELECTem. K dispozici sice máte entity a relace (1:1 a N:1), již jednou zmíněnou poznámku a trošku zvláštně působí sloupec. Klasické poklepání na entitě nezpůsobí zobrazení dialogu, kam lze zadávat sloupce a definovat typ či integritní omezení, ale dialog s vlastnostmi je stále zobrazen v pravé dolní částí (nepřesunuli-li jste si jej). Tam pak lze definovat jednotlivé atributy. Je to velký nezvyk, ke kterému je potřeba v případě použití přivyknout.

Odběhněme od modelování a podívejme se na kámen úrazu pravděpodobně každého kreslítka a to reverse engineering. SELECT vám umožní podívat se na dva nástroje: ERWin, který jsem neměl možnost vyzkoušet, a C++. Vzal jsem tedy podobně jako v případě Rational Rose (RR) zdrojové texty z éry MS-DOSu a spustil načítání. Nejprve je potřeba zadat soubory, ze kterých chcete získat zpět informace o objektech. Pak je nutno provést vlastní operaci a nakonec, protože se jedná o externí aplikaci, synchronizovat výstup s vlastním kreslítkem. Stejně jako u RR, byly drobné problémy s hlavičkovými soubory, ale jinak vše proběhlo bez evidentních problémů. Při návrhu objektového modelu je možno použít všech používaných prostředků: dědičnost, agregace, asociace, závislosti a další.

Generování dokumentace je záležitostí každého kreslítka a SELECT nezůstává pozadu. K tomu, abyste mohli dokumentace získat, je zapotřebí mít nainstalovaný MS Word, na který se produkt napojí. Již při instalaci zadáváte, zda máte nainstalovanou verzi z roku 95 nebo 97. S Wordem 2000 jsem neměl možnost generováni zkoušet, ale vzhledem k jeho podobě s verzí 97 by neměly nastat potíže (navíc je možné, že v aktuální verzi SELECTu je podpora Wordu 2000 zahrnuta). Na výběr máte několik předpřipravených šablon. Pokud chcete použít českou, můžete si ji stáhnout z webu firmy LMBS, která produkt dodala (viz odkazy na doprovodném CD). Kromě šablony je ještě potřeba zadat počáteční stav a sekce, které se mají vygenerovat. Pak již zbývá stisknout tlačítko Create a vyčkat, než dojde k dokončení operace. Při prvním pokusu mi generátor vytuhnul, ale při druhém pokusu již vše proběhlo tak, jak má. Přičítám to unavenosti Windows 98, přeci jenom, běžely skoro dvanáct hodin. Dokument, který se vygeneroval, vypadal velice pěkně zpracovaný vzhledem k možnostem, které poskytuje Word.

Select Enterprise - Reverse engineeringKromě generování dokumentace umožňuje produkt generovat SQL skripty k databázím, jejich počet je ale skoupý: Oracle 8, SQL Server 7, Interbase 4 a do norem SQL 89 a SQL 92. Myslím, že jsou zde velké možnosti k rozšiřování. Ještě zbývá zadat relace, které chcete mít ve výsledném skriptu a vše je připraveno. Výsledkem je samozřejmě SQL skript. V případě databázového serveru Interbase produkt umožňuje vytvořit tabulky přímo na serveru. Snad drobné připomínky bych měl k uživatelskému prostředí, které bylo odfláknuté (i zde na mě totiž dýchl duch 16-bitových Windows).

Kromě zmíněných modelovacích vlastností poskytuje SELECT i modelování obchodních procesů za pomocí procesních hierarchických a thread modelů. K případům užití lze kromě sekvenčních diagramů i použít diagramy spolupráce. Pokud nenajdete mezi diagramy váš oblíbený, je k dispozici obecný graf, který můžete využít tak, jak potřebujete.

Při práci s uživatelským prostředím jsem neměl problémy. Vše je celkem příjemně navrženo, grafika je povedená a nijak přeplácaná. Při pohybu prvků uvnitř nedochází k jejich poblikávání (!), jak je zvykem v ostatních nástrojích, pouze při přepnutí z jednoho diagramu do druhého dojde k probliknutí oken, když se mění paleta s nástroji. Trošku to kazí dojem, ale pořád je to lepší než blikání. Jediné, na co jsem si nezvykl, jsou záložky s vlastnostmi jednotlivých objektů. Jednak jsou pro mě nezvykle umístěny (což se samozřejmě nechá změnit) a jednak provedení působí na mě trošku divně zvláště například v případě relačního modelování. Ale tohle je ryze subjektivní pocit deformovaného člověka, který tráví hodiny denně u Delphi a proto to nelze brát jako výtku. Zvláštností je absence příkazu pro uložení modelu – vaše kroky jsou ukládány automaticky. Pokud chcete psát česky, rozlučte se s čitelností. Jak sami můžete viděl na obrázcích, něco tomu chybí. Co se mi na produktu obzvláště líbilo byla nápověda, jejíž provedení působí velmi profesionálně jak do grafické podoby, tak do kvality textů. Kromě základních informací je zde k nalezení notace a způsob zobrazení všech diagramů a každý element je náležitě vysvětlen. Taktéž jsou uvedeny časté chyby, kterých se analytici a modeláři dopouštějí a způsob, jak se jich vyvarovat.

Produkt má velice málo věcí, které by se mu daly objektivně vytknout. V případě problémů s instalací mi lidé z podpory volali přímo na telefon, ačkoliv šlo o věc, která by se teoreticky řešit ani nemusela. Veskrze šlo o fundované odpovědi, zvláště, když jsem nebyl u inkriminovaného počítače a tedy jsem nemohl poskytnout přesné informace. Jen je škoda, že se nejedná o poslední verzi. Prostředí je kvalitně zpracováno, stejně tak nápověda a program dělá přesně to, co je od něj žádáno. Myslím, že udělení ceny Produkt měsíce je na místě.

  • Klady: Prostředí, Reverse z C++, Podpora
  • Zápory: Reverse DDL
  • Závěr: Kvalitní a příjemný nástroj, ale musíte si zvyknout na ovládání.

XTG Data Modeller – ještě malé dítě

Základní údaje
Přesný název: XTG Data Modeller
Poskytl: XTG Systems, s.r.o.
Cena: 2999 Kč bez DPH
Podpora: zdarma e-mailem

Firma XTG se zabývá hlavně zakázkovou tvorbou databázových systémů a to i pro Internet. Zřejmě kvůli tomu vznikl CASE systém Data Modeller, který umožňuje datové modelování a reverse engineering databází, aby se zaměstnancům lépe pracovalo na zakázkách. Ale program má na víc a tak se prodává jako běžný software.

Podobně jako Case Studio, i XTG se prodává přes Internet, kde si lze stáhnout demonstrační verzi a v případě zájmu zaplatit plnou licenci a začít produkt používat komerčně. Jedná se o český produkt a svou cenou velmi konkuruje zmíněnému Case Studiu. Chcete-li se dozvědět, zda se jedná o kvalitního soupeře, čtěte dál.

XTG Datamodeller - IDEKdyž jsem program poprvé spustil s ukázkovým příkladem, řekl jsem si: to vypadá hodně dobře. Entity jsou velmi pěkně nakreslené s prostorovým dojmem a volba barev je také příjemná. Začal jsem si tedy hrát, abych zjistil, co vše tohle kreslítko umí. Již při prvním tažením entitou jsem si nemohl nevšimnout jedné velice špatné vlastnosti: během přesouvání se překreslují všechny linky představující relace a to i v případě, že se jich entita ani nedotkne.

Založil jsem si nový model a chtěl vložit novou entitu. Ale jak? Program neobsahuje žádné plovoucí okno s tlačítky nebo alespoň nástrojovou lištu. V menu jsem také nic podobného nenašel. Úspěch slavilo až kontextové menu, kde je položka Nová entita. Vložil jsem tedy novou entitu, vyvolal dialog pro zadávání atributů a příjemný pocit z dobře volených barev promptně zmizel v obláčku logiky. Barva dialogů nastavená na (alespoň pro mne) odpudivou zelenou je mi zcela nepochopitelná. Grafické uživatelské prostředí má přispívat ke standardnímu vzhledu všech aplikací, aby uživatel nebyl zmaten jako včela v aplikacích na stařičkém MS DOSu. Tuto zeleň podtrhuje standardní barva ve volbě fontu či tiskárny, kde se používají systémové dialogy a autoři zřejmě nepřišli na způsob, jak tuto barvu změnit. Naštěstí lze nastavit barvy na základní, ale to má za následek bílou pracovní plochu a tedy docela nepříjemné oslňování uživatele.

Vkládání atributů probíhá celkem klidně. Zadáváte logický a fyzický název, datový typ a případně si můžete připsat ke každému atributu poznámku. Velmi příjemné je tlačítko Ok & Nový, které potvrdí nový atribut a ihned přejde k zadávání dalšího. Trošku zmaten jsem byl v případě, kdy jsem mačkal tlačítko Ok a nic se nedělo. Pak mi došlo, že jsem nezadal typ atributu. Ale nevím, proč mě na moji hloupost neupozornil program sám.

Velkým nedostatkem je absence tlačítka Zrušit (nebo chcete-li horší variantu Storno) v dialogu Detail entity. Pokud si totiž editujete atributy entity a nějakou smažete, již není cesta zpět ledaže máte udělanou zálohu modelu. Stejně tak přidání atributu či jeho změna je automaticky potvrzena. Integritní omezení jako je primární klíč, cizí klíč či zda nesmí být položka prázdná, se zadává pouze zde, nikoliv však u editace jednotlivých atributů a opět není jednoduché cesty zpět.

XTG Datamodeller - Editace entityOd entit můžeme přistoupit k relacím. Ta se zvolí podobně jako entita – přes kontextovou nabídku plochy a pak je potřeba kliknout na dvě relace, mezi kterými má dojít k relaci. V případě potřeby vytvoření cizího klíče je tento vytvořen na správné straně relace. Pokud chcete nastavit vlastnosti relace, nelze to kliknutím kdekoliv na lince zastupující relaci, ale na čtvereček, který je vždy vykreslen uprostřed relace. V tomto čtverečku navíc dochází ke zlomu linky, takže při delší práci, kdy přesouváte různě entity může dojit k jisté nepřehlednosti (viz obrázek). Proč to nelze příjemnějším způsobem mi je záhadou, jedná se v podstatě o trochu analytické geometrie vyučované na střední škole.

Zůstanu-li ještě u uživatelského prostředí, pak mi zcela jednoznačně chyběly klávesové zkratky. Nápověda je v HTML (nikoliv komprimovaném), což by tolik nevadilo, ale to, že jsem byl nucen zadat cestu k prohlížeči (!), to už bylo trošku moc. Stejně tak program nedisponuje vlastním prohlížečem, a jste nuceni použít jiný (přednastavený je Notepad) samozřejmě s tím, že si k němu nastavíte cestu. V nápovědě je navíc promíchán český text s anglickým, takže to působí poněkud neučesaně. Některé popisky na tlačítkách v dialozích jsou více pro fanoušky pořadu typu Riskuj než pro uživatele. Jen namátkou: Co to je Vlož A z R?

Na entity a relace lze nahlížet vícero způsoby. Základem je logický či fyzický pohled, což v případě Data Modelleru znamená (ne)zobrazování typu atributů. Dále lze přepínat mezi různými úrovněmi pohledu (Entita, Atributy, Popis).

Pokud máte namodelováno, můžete vygenerovat SQL skript, který pak lze spustit na příslušném databázovém stroji. Program, aniž by byl o to nějakým způsobem požádán, generoval k tabulkám indexy, což v některých případech je nežádoucí (některé „hloupější“ databázové stroje pokud narazí na index, tak jej bezmyšlenkovitě použijí i v případě, kdy je to dražší než index nepoužít). Pro generování lze zadat, co se má dát na začátek a na konec skriptu. Bohužel již nelze zadat podobné informace pro každou tabulku, stejně tak parametrizování, které naleznete například v Case Studiu, zde není možné, takže chcete-li generovat například sekvence (ORACLE), musíte vše napsat poctivě ručně. V případě, že chcete generovat ne všechny tabulky, ale třeba jen polovinu, program si to nepamatuje a musíte pokaždé provést selekci požadovaných tabulek.

XTG Datamodeller - výběr tabulek pro generování SQL skriptuSamozřejmostí by mělo být generování dokumentace alespoň v základním tvaru. XTG Data Modeller umožňuje jednak export do textového souboru (import už nějak chybí), což se za dokumentaci sice považovat nedá, ale co umí velice dobře a kvalitně je generování dokumentace v HTML formátu. Výsledek je nadmíru přehledný a subjektivně musím říct, že se mi líbil nejvíce ze všech recenzovaných kreslítek.

Jsou-li vaší doménou datové sklady a data mining (česky krásně nazývané dolování dat), pak Data Modeller je vybaven podporou modelování multidimenzio­nálních schémat typu hvězdice, tedy schémat s tabulkou faktů (fact table) a jednotlivými dimenzemi.

Dominantou tohoto produktu by mohl být reverse engineering. Kromě načítání z ODBC zdroje, což je dnes poměrně běžný a relativně jednoduchý způsob, dokáže Data Modeller provést analýzu SQL scriptu. Jedná se o algoritmicky náročný postup (sic jde „pouze“ o deterministický automat). První pokus byl proveden s jednoduchým skriptem, který sám Modeller vygeneroval z modelu na již jednou zmíněném obrázku. Bohužel se mu nepovedlo správně identifikovat atributy tabulky LEK a tudíž i vazbu na tabulku UZIVA. Po změně typu atributu POPIS již vše proběhlo pořádku. Podstrčil jsem mu tedy náročnější ručně napsaný (a fungující) skript s necelými šedesáti tabulkami. S tímto již nastaly problémy a některé příkazy odmítl Data Modeller správně přečíst. Na skriptu o velikosti více než půl megabytu si vylámal zuby úplně a bez rozloučení se odporoučel (vyzkoušeno na třech různých počítačích a operačních systémech). Co mě zarazilo bylo oznámení, že načtení dopadlo v pořádku, ale po zobrazení seznamu chyb jich tam bylo požehnaně. To je velmi zavádějící a nelze se tím řídit. Nenašel jsem jediný důvod, proč nezobrazit po načtení alespoň informační dialog s chybovou hláškou: „Počet chyb: 35.“ Škoda.

Podporu produktu jsem nezkoušel, protože program je natolik jednoduchý na ovládání, že ji ani potřebovat nebudete. Vše potřebné naleznete v (kontextovém) menu a pokud si přeci jenom nebudete vědět rady, máte k dispozici nápovědu, kde byste se měli vše potřebné dozvědět. A pokud ani to nepomůže, podpora je zdarma přes e-mail.

Program bych přirovnal k malému dítěti, které již umí trošku žvatlat a snaží se lézt, ale pořádný krok kupředu ho teprve čeká. Na začátku jsem uvedl, že svou cenou může XTG konkurovat Case Studiu. Bohužel je to to jediné, čím lze konkurovat. Ve všem ostatním kromě HTML dokumentace produkt silně zaostává za výrazně větším a vyspělejším bratříčkem. Mám-li být upřímný, tento produkt bych pro svou práci používal velice nerad. Uživatelské prostředí je řekněme spartanské a počet funkcí, kterými program oplývá, je opravdu velmi malý i pro sebemenší firmičku, která v datových modelech má více než pět entit. Pokud má Data Modeller uspět, musí prožít velmi výrazný a pokud možno rychlý přerod do mladého jinocha.

  • Klady: HTML Dokumentace, Cena, Podpora
  • Zápory: Reverse, blikání, klávesové zkratky
  • Závěr: Ještě se musí vyvýjet, dobrý spíše pro výuku.

Tak si to zrekapitulujeme

Je dobojováno a ač ceny jsou rozdány, není vítězů ani poražených. Důvod byl na začátku uveden. Mám-li se na celou věc podívat více obecně, pak zádrhelem většiny nástrojů jsou nedostatky v uživatelském prostředí. Ačkoliv 32-bitové Windows jsou na trhu pět let, stále se vyskytují situace, kdy to není znát. Důležitějším nedostatkem je reverse engineering ze souborů. Jedná se o velice náročný postup, který ne vždy dopadne podle představ autorů či uživatele. Z tohoto důvodu to lze brát více jako pomůcku než jako nástroj. Po provedení reversu je vždy potřeba provést ruční korekce. Můžeme to trošku přirovnat k OCR programům, kterým se také nedá 100% věřit a je potřeba dokument přečíst ještě jednou obsluhou.

Na doprovodné CD jsem umístil další obrázky, které se do papírové podoby nevešly, abyste si mohli udělat lepší představu o každém z nástrojů. Dále pak jsou tam případné dokumentace, které z kreslítek vypadly a také SQL skripty. Během psaní recenzí jsem shromažďoval odkazy na stránky, které jednak poskytly firmy kreslítka dodávající a jednak vlastní, které by mohly zaujmout. Jako poslední doplněk této recenze tam naleznete některé další věci, které se do papíru prostě nevešly.

Pokud vám tento článek přinesl alespoň trošku světla do problematiky, jsem tomu jedině rád.

Slovník pojmů

  • Data Flow Diagram – síť tvořená procesem, datovým uložištěm, externím procesem a toky dat. Jednotlivé aktivity mohou být rozloženy do podřízené sítě.
  • E-R model – relační model obsahující entity (objekty reálného světa) a relace (vztahy mezi entitami)
  • Metadata – Data o datech, např. na SQL serveru jsou v metadatech uloženy systémové informace (o tabulkách, právech, …)
  • Procesní modelování – umožňuje vytváření obchodních či procesních modelů, které probíhají ve vaší společnosti, nebo byste byli rádi, aby tomu tak bylo. Zaznamenávají se v něm informace o firemní struktuře či jednotlivých etapách průběhu procesu.
  • Reverse ingeneering – proces, během kterého dojde k napojení na zdroj (typicky SQL skript nebo databázový stroj), získají se informace o objektech (tabulky, indexy, vazby, …) z metadat a tyto informace se dále využijí v aplikaci.
  • Trigger – speciální část kódu typicky zapsaný v dialektu SQL, který se spustí před nebo po vložení, změně či smazání každého záznamu v tabulce.
  • Scénáře – popis činností a jejich stavy
  • Stored procedure (Uložená procedura) – funkce nebo procedura, která je uložená na serveru a i zde je prováděn výpočet, tedy není zatěžován ani klient, ani síť.
  • UML (Unified Moeling Language) – množina nástrojů a prostředků, jež bývá podpořena metodikou. Jedná se o standard.
  • Use Case (případy použití) – jedná se o ucelené činnosti, ze kterých by se mělo vycházet při specifikaci požadavků (např. příjem zboží na sklad, provedení účetní operace na určitých účtech apod.) Metodika UC je orientována na to, jak se bude činnost systému jevit jeho obsluze.

Odkazy

CaseStudio

Oracle Designer

Power Designer

Rational Rose

Select SE

XTG Data Modeller


Tento článek byl napsán pro časopis Softwarové noviny 9/2000.

Upozornění: tento text neprošel redakční úpravou, takže je tak, jak byl napsán včetně případných chyb. Žádná část tohoto článku nesmí být použita bez předchozího souhlasu autora.

Seznam mých dalších článků je v tomto přehledu.




[Akt. známka: 1,00 / Počet hlasů: 1] 1 2 3 4 5

Celý článek | Autor: Slávek Rydval | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek

  Čtenář
Jméno:
Heslo:


Registrace | Info
Zapomenuté heslo

  Vyhledávání

Hledej
na Nawebce!


Rozšířené vyhledávání

  Kalendář
<<  Září  >>
PoÚtStČtSoNe
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30    

  Reklama


rkEdit Oracle Profiler
rkEdit Oracle Profiler