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
S 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.
První
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 autoinkrementá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á.
Nezá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.
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.
Po 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.
Má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ý.
Poslední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.
Produkt 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ů.
Reverse
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ů.
K 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.
Rational 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
Nainstalovat 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.
Zá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.
Kromě 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.
Když 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.
Od 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.
Samozř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í
multidimenzioná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.