napsali jsme  slovo odbornφka               z pera naÜich specialist∙ 

Zde nßs najdete - mapa
Najdete nßs zde

CHIP 1/2000

Copyright © 1999
KOMIX spol. s r. o.

Charakteristika nßstroje COOL:Businessteam Napsali jsme - obsah Pro Ü¥astnΘ vykroΦenφ (do projektu)

Vyberte sprßvn² CASE
Stopa°∙v pr∙vodce CASE nßstroji     

Jednφm z rozhodujφcφch faktor∙ ·sp∞Ünosti projektu je vhodn² v²b∞r sady nßstroj∙ pro podporu klφΦov²ch Φinnostφ. Ka₧dß etapa v²voje projektu vy₧aduje nßstroj specifick²ch vlastnostφ. Proto₧e jednotlivΘ etapy projektu na sebe t∞sn∞ navazujφ, musejφ b²t i jednotlivΘ nßstroje provßzanΘ.

V etapßch anal²zy, nßvrhu a ΦßsteΦn∞ implementace hrajφ nezam∞nitelnou roli nßstroje typu CASE (Computer Aided System Engineering). Jsou postaveny tak, aby podporovaly t²movou prßci p°i v²voji systΘmu, zajiÜ¥ujφ sdφlenφ rozpracovan²ch fragment∙, sprßvu v²voje, sledujφ konzistenci modelu systΘmu, automatizujφ n∞kterΘ procesy, hlφdajφ dodr₧ovßnφ metodiky, atd.

Z hlediska celistvosti p°φstupu k v²voji rozliÜujeme t°i typy CASE: upper, middle a lower CASE. Upper CASE se vyu₧φvß pro anal²zu systΘmu. Middle CASE zajiÜ¥uje etapu nßvrhu systΘmu a lower CASE etapu implementace. Ne vÜechny CASE nßstroje zahrnujφ vÜechny t°i typy a ne ka₧d² projekt vy₧aduje u₧itφ vÜech typ∙ p°i v²voji. Je-li nap°. anal²za jednoduchΘho projektu kompletn∞ zpracovßna v textovΘ podob∞ a schvßlena zadavatelem, nenφ nutnΘ pou₧φvat nßkladn² upper CASE. Zßle₧φ na mana₧erovi projektu, zda se rozhodne pro pou₧itφ nßstroje, kter² v sob∞ zahrnuje vÜechny t°i typy CASE nebo po°φdφ vφce nßstroj∙. Etapy anal²zy, nßvrhu a implementace jsou vÜak ·zce svßzanΘ. V p°φpad∞, ₧e se mana₧er rozhodne pro vφce nßstroj∙, je nutnΘ zohlednit, nakolik jsou nßstroje integrovanΘ, p°φpadn∞ jak nßkladn² je p°enos rozpracovanΘho systΘmu z jednoho nßstroje na druh².

Pravd∞podobn∞ prvnφ informacφ, kterou se o CASE dozvφme je, zda podporuje strukturovanΘ Φi objektovΘ metodiky. Neexistuje vÜak obecn² nßvod, kterΘ metodiky pou₧φt. Volba zßvisφ na zkuÜenostech v²vojovΘho t²mu, zvolenΘm implementaΦnφm prost°edφ a na takΘ kvalit∞ vlastnφho CASE nßstroje. AΦkoliv to bylo d°φve vyluΦovßno, ukßzalo se, ₧e tyto zcela odliÜnΘ p°φstupy je mo₧nΘ kombinovat. Nap°φklad je mo₧nΘ provΘst anal²zu za pomoci objektov²ch metodik, datovΘ modelovßnφ pomocφ strukturovanΘ metodiky a pokraΦovat v nßvrhu systΘmu objektov∞ (strukturovan² datov² model lze interpretovat objektov²m diagramem asociace t°φd). V souΦasnΘ dob∞ vÜak strukturovanΘ metodiky ustupujφ metodikßm objektov²m. A nenφ to pouze otßzka m≤dy. ObjektovΘ metodiky pohlφ₧ejφ na systΘm jako na celek, umo₧≥ujφ p°φr∙stkovou metodu v²voje, jejich interpretace je snßze srozumitelnß zadavateli, nejsou zatφ₧eny problΘmy postup∙ topdown nebo bottom-up znßm²mi ze strukturovan²ch metodik (jednß se o problΘmy sprßvnΘ dekompozice systΘmu v dob∞, kdy jeÜt∞ nenφ dostateΦn∞ znßm, problΘm p°idßvßnφ dalÜφch komponent systΘmu atd.).

Jak tedy vybrat vhodn² CASE nßstroj? V nßsledujφcφm textu naleznete zßkladnφ kritΘria v²b∞ru.

ZaΦßtek strßnky

Podporuje CASE integraci s ostatnφmi nßstroji pot°ebn²mi pro projekt?

P°ed vyslovenφm tΘto otßzky si musφte uv∞domit, zda od nßstroje po₧adujete, aby se stal jednou Φßstφ technologickΘ linky v²voje projektu. V tomto p°φpad∞ musφ existovat nßvaznosti na ostatnφ nßstroje. Ne ka₧d² projekt vÜak prßv∞ tohle pot°ebuje. P°φkladem m∙₧e poslou₧it nßkup stereo za°φzenφ. Bu∩ m∙₧ete koupit celou stereo v∞₧ nebo vybrat nejlepÜφ komponenty jednotliv∞, ovÜem bez zßruky, ₧e nejlepÜφ CD p°ehrßvaΦ lze p°φmo spojit s nejlepÜφm zesilovaΦem a potom je nutnΘ vytvo°it n∞jak² konverznφ mechanismus. Abych vÜak nek°ivdil CASE, musφm podotknout, ₧e existujφ takΘ nßstroje, kterΘ pat°φ mezi nejlepÜφ ve svΘ t°φd∞ a jsou integrovanΘ s dalÜφmi nßstroji pro v²voj projekt∙ (od r∙zn²ch v²robc∙).

ZaΦßtek strßnky

Spl≥uje nßstroj po₧adavky procesu v²voje vaÜeho systΘmu?

V p°edchozφm textu jsem mluvil o etapßch v²voje. Jsou vÜak projekty, kterΘ majφ n∞kterΘ etapy definovanΘ jinak, dochßzejφ k jin²m cφl∙m. Uv∞domte si, ₧e v²voj projektu neznamenß pod°φdit se metodice pou₧φvanΘho nßstroje, ale vybrat takov² nßstroj, kter² pou₧φvß vßmi zvolenou metodiku. Samoz°ejm∞ za p°edpokladu, ₧e metodika projektu je rozumnß. N∞kterΘ CASE nßstroje podporujφ dokonce vφce metodik najednou. Koexistence metodik v jednom projektu m∙₧e znamenat urychlenφ prßce Φi zpr∙hledn∞nφ procesu anal²zy nebo nßvrhu. Tento krok je vÜak nutnΘ d∙kladn∞ rozmyslet, proto₧e m∙₧e takΘ znamenat zanesenφ nekonzistence do projektu.

ZaΦßtek strßnky

Jakou notaci nßstroj podporuje?

Notace a metodika b²vß obΦas spojovßna. Notace je vÜak pouhß interpretace metodiky a lze °φci, ₧e jedna metodika m∙₧e mφt n∞kolik notacφ. Dobrß notace by m∞la b²t jednoznaΦnß, p°ehlednß, komplexnφ. P°φkladem m∙₧e b²t nap°φklad notace UML (Unified Modelling Language), kterß se v souΦasnΘ dob∞ stßvß standardem pro interpretaci objektov²ch metodik.

ZaΦßtek strßnky

Lze v rßmci v²voje sledovat pln∞nφ po₧adavk∙ specifikace?

Mezi po₧adavky na systΘm a jejich pln∞nφm musφ b²t zcela z°eteln² vztah. Jestli₧e nßstroj nedisponuje modulem pro evidenci a anal²zu po₧adavk∙, m∞l by b²t s takov²m nßstrojem integrovßn.

ZaΦßtek strßnky

Je nßstroj modulßrnφ?

Tahle otßzka se spφÜe t²kß finanΦnφ strßnky. P°i v²voji nejsou v₧dy nutnΘ vÜechny prost°edky CASE nßstroje. ProΦ vlastnit nap°. generßtor do SmallTalku, kdy₧ tento jazyk v projektu nijak nevyu₧ijete. N∞kterΘ moduly nßstroje pot°ebujete jenom v urΦitΘm Φase a ne po celou dobu v²voje. V dob∞, kdy provßdφte anal²zu z°ejm∞ nebudete pot°ebovat ₧ßdn² generßtor jazyka. Podobn∞ je tomu, kdy₧ vytvß°φte pilotnφ projekt (nap°. pro ·Φely tendru) a teprve kdy₧ se prßce spustφ na plnΘ obrßtky (dφky dobrΘmu pilotnφmu projektu jste tendr vyhrßli), dokoupφte dalÜφ moduly (nap°. moduly pro verzovßnφ Φi reusing) a m∙₧ete pokraΦovat v prßci. NejlepÜφm °eÜenφm, se kter²m jsem se setkal, je forma licencφ na jednotlivΘ moduly. Zakoupφte si cel² nßstroj a sadu Φasov∞ omezen²ch licencφ. Pot°ebujete-li dalÜφ modul, nenφ nutnΘ nic instalovat, pouze aktivovat licenci.

ZaΦßtek strßnky

Jak silnou mß nßstroj repository? Je v databßzi nebo v souborech?

Jßdro ka₧dΘho CASE spoΦφvß v repository. Ta musφ b²t dostateΦn∞ robustnφ, aby zvlßdla velkΘ projekty Φi mnoho u₧ivatel∙ najednou (pokud to vy₧aduje vßÜ projekt), musφ mφt dostateΦn∞ rychlou odezvu, musφ b²t p°enosnß mezi platformami (jestli₧e se projekt vyvφjφ na vφce platformßch). N∞kterΘ CASE majφ souborov∞ zalo₧enou repository, ale v∞tÜina databßzov∞. Je d∙le₧itΘ, na jakΘ DB platform∞ m∙₧e b²t repository zalo₧ena, pop°. zda m∙₧e b²t zalo₧ena na vφce DB platformßch.

ZaΦßtek strßnky

Je nßstroj otev°en² a p°φstupn² modifikacφm?

Tahle otßzka je ₧ivotn∞ d∙le₧itß. Neexistuje CASE, kter² by vyhov∞l vÜem projekt∙m a vÜem nßrok∙m u₧ivatel∙. Ka₧d² projekt vy₧aduje urΦitΘ ·pravy nßstroj∙. Praxe °φkß, ₧e mnoho projekt∙ nebylo ·sp∞Ün∞ dokonΦeno, proto₧e v²vojovΘ nßstroje nebylo mo₧nΘ p°izp∙sobit pot°ebßm projektu. Je velice v²hodnΘ, kdy₧ CASE disponuje n∞jak²m jazykem, kter²m je jej mo₧nΘ upravovat. JeÜt∞ lΘpe, kdy₧ jsou s nßstrojem dodßvßny zdrojovΘ k≤dy jeho modul∙ nebo jeho repository u₧φvß standardnφ rozhranφ (nap°. OLE2). Potom u₧ nenφ problΘm vytvo°it si nap°φklad vlastnφ generßtor. StaΦφ se podφvat, jak je ud∞lßn generßtor jin². To vÜak takΘ souvisφ s p°edchozφ otßzkou tedy s repository. Teprve nad dostateΦn∞ kvalitnφ a otev°enou repository lze provßd∞t customizaci.

ZaΦßtek strßnky

Jak nßstroj podporuje verzovßnφ a sdφlenφ komponent?

Pokud na projektu pracuje vφce lidφ, je tΘm∞° jistΘ, ₧e budou sdφlet jednotlivΘ komponenty modulu. Jeli projekt rozsßhlejÜφ, je z°ejmΘ, ₧e jedna komponenta m∙₧e b²t dßle rozvφjena vφce sm∞ry (nap°. kv∙li pot°eb∞ r∙zn²ch pohled∙ na realitu). Je proto nutnΘ komponenty v²voje sdφlet a verzovat. Je vhodnΘ, aby verzovßnφ bylo jak vertikßlnφ, tak horizontßlnφ (tedy aby komponenta nap°. diagram alfa.1 m∞l dalÜφ vertikßlnφ verzi alfa.2, ale takΘ horizontßlnφ verzi alfa.1.1). Tak vznikß urΦitß sφ¥ verzφ, kterß umo₧≥uje kvalitn∞jÜφ prßci.

ZaΦßtek strßnky

Co sprßva projektu?

Sprßvou projektu mßm na mysli p°edevÜφm °φzenφ p°φstupu jednotliv²ch u₧ivatel∙ nßstroje ke komponentßm vyvφjenΘho systΘmu. Je z°ejmΘ, ₧e analytik mß jinß prßva ne₧ tester. CASE musφ b²t schopen rozliÜovat r∙znΘ role u₧ivatel∙. Mana₧er Φasto pot°ebuje okam₧it∞ zjistit aktußlnφ stav projektu. Informace o stavu musφ b²t CASE schopen v n∞jakΘm p°ehlednΘm stavu dodat. Pozor, v tuto chvφli nemßm na mysli dokumentaci, ale spφÜe jakousi formu report∙, kterΘ podßvajφ jednoznaΦnΘ a dostaΦujφcφ informace lidem seznßmen²m s projektem.

ZaΦßtek strßnky

Podporuje nßstroj kontrolu konzistence, ·plnosti a dodr₧ovßnφ metodiky?

V∞tÜina CASE mß zajiÜt∞nu kontrolu syntaxe, tak₧e z°ejm∞ v diagramu datov²ch tok∙ nedovolφ nakreslit datov² tok z datovΘho skladu op∞t p°φmo do datovΘho skladu. Je ale nutnΘ, aby se provßd∞la kontrola takΘ mezi diagramy nebo aby se provßd∞la kontrola metodiky nap°. zda je pro ka₧d² Use Case definovßn sekvenΦnφ digram. NejlepÜφ CASE nßstroje obsahujφ seznam toho, co vÜechno se m∙₧e kontrolovat a u₧ivatel volφ z tohoto seznamu.

ZaΦßtek strßnky

Jak² je komfort ovlßdßnφ?

Uv∞domte si, ₧e nad CASE strßvφ vßÜ t²m mnoho hodin. Cokoliv m∙₧e usnadnit prßci nebo ji urychlit (by¥ jen o desetinu sekundy) se v celkovΘm Φase z·roΦφ. Sledujte, zda nßstroj disponuje kvalitnφm systΘmem hork²ch klßves. Kdy₧ vytvß°φte n∞jakou komponentu diagramu (nap°. t°φdu), m∙₧ete jejφ nßzev napsat p°φmo nebo se musφte k tΘmu₧ proklikat n∞kolika dialogov²mi okny? Jsou mo₧nosti zv∞tÜovßnφ a zmenÜovßnφ diagram∙ plynulΘ nebo po skocφch? M∙₧ete jednoduÜe pohybovat Φßstφ diagramu? Disponuje editor diagramu funkcφ UNDO?

ZaΦßtek strßnky

Jakß je mo₧nost sdφlenφ a znovupou₧itφ (reusing) anal²zy Φi nßvrhu?

N∞kterΘ prvky se v opakujφ ve vφce projektech. Bylo by ztrßtou Φasu zab²vat se jejich nßvrhem vφcekrßt, kdy₧ byly navr₧eny v p°edchßzejφcφm projektu. CASE by m∞l disponovat funkcφ jakΘhosi klonovßnφ, kterΘ vytrhne z projektu jeho Φßst a zasadφ ji do nßvrhu projektu jinΘho.

ZaΦßtek strßnky

Vytvß°φ nßstroj automaticky dokumentaci? Lze tvorbu ovlivnit?

Repository obsahuje velkΘ mno₧stvφ informacφ, kterΘ je nutno rozumn∞ dokumentovat. Jen t∞₧ko to lze ruΦn∞ z report∙ projektu. CASE by m∞l mφt mo₧nost generovat dokumentaci, zalo₧enou na urΦit²ch pravidlech. Kvalitnφ CASE majφ mo₧nost dop°edu specifikovat, co mß b²t v dokumentaci obsa₧eno, tak₧e lze vytvß°et r∙znou dokumentaci nap°. pro mana₧ery a pro testery.

ZaΦßtek strßnky

Generuje nßstroj datov² model? Pro jakΘ databßze?

Pokud mß CASE mo₧nost datovΘho modelovßnφ, m∙₧e takΘ generovat datov² model. Generuje jej takΘ pro DB platformu, na kterΘ bude postaven vßÜ systΘm? Pop°φpad∞, generuje jej do obecnΘho sql jazyka, aby mohl b²t vytvo°en na r∙zn²ch DB platformßch?

ZaΦßtek strßnky

Generuje nßstroj k≤d aplikaΦnφ logiky? Pro jakΘ jazyky? Pou₧φvß nßstroj Üablony generovßnφ?

Lower CASE disponujφ generßtory jazyka. Je b∞₧nΘ, ₧e ve vφcevrstvΘ architektu°e je ka₧dß vrstva implementovßna v jinΘm jazyce. CASE by m∞l disponovat nejen vÜemi po₧adovan²mi jazyky, ale m∞li byste takΘ zjistit, zda se jednß o sprßvn² dialekt jazyka a zda lze generßtor p°izp∙sobit standard∙m projektu. Velmi d∙le₧itΘ je v∞d∞t, zda pou₧itφ vφce jazyk∙ nad jednφm nßvrhem skuteΦn∞ znamenß pouhΘ p°idßnφ implementaΦnφch detail∙ do nßvrhu nebo zda se musφ nßvrh rozd∞lovat do subsystΘm∙ dle zvolenΘho jazyka. CASE by m∞l zajistit nap°. kompatibilitu datov²ch typ∙ mezi r∙zn²mi jazyky, aby p°i generovßnφ vφcevrstvΘ aplikace v r∙zn²ch jazycφch nedoÜlo k jejich nekompatibilit∞.

ZaΦßtek strßnky

Disponuje nßstroj mo₧nostφ round trip engineeringu?

Round trip engineering umo₧≥uje provßd∞t zm∞ny ve vygenerovanΘm k≤du, ani₧ by se naruÜila vazba mezi vygenerovan²m k≤dem a nßvrhem systΘmu. Jestli₧e programßtor provede zm∞nu v k≤du (nap°. p°idß ve t°φd∞ dalÜφ metodu), zanese se tato zm∞na automaticky do diagramu, kde je tato t°φda modelovßna.

ZaΦßtek strßnky

Disponuje nßstroj mo₧nostφ reverse engineeringu?

Reverse engineering je mo₧nost, jak zahrnout do anal²zy Φi nßvrhu systΘmu ji₧ hotov² zdrojov² k≤d. Ten se procesem reverse engineeringu transformuje do diagram∙. CelΘ diagramy nebo jejich Φßsti lze potom pova₧ovat za souΦßst nßvrhu systΘmu. Takhle lze "vykrßdat" ji₧ hotovΘ grafickΘ knihovny Φi Φßsti jin²ch systΘm∙ a Üet°φ se Φas.

Vyjmenoval jsem zßkladnφ technickß kritΘria v²b∞ru CASE nßstroje. Je samoz°ejmΘ, ₧e vedle t∞chto kritΘriφ le₧φ dalÜφ, jako cena nßstroje, mo₧nost Ükolenφ, technickß podpora, reference na nßstroj atd. Mnoho takΘ napovφ fakt, ₧e distributor tohoto nßstroje jej sßm pou₧φvß.

Nejd∙le₧it∞jÜφ a nejt∞₧Üφ otßzka vÜak zb²vß nakonec. Zv²Üφ nßstroj produktivitu vaÜφ prßce? Je jasnΘ, ₧e na tuhle otßzku lze zodpov∞dn∞ odpov∞d∞t teprve po dostateΦn∞ dlouhΘ dob∞, p°esto₧e zodpov∞zenφ p°edchozφch otßzek asi leccos napovφ. CASE nßstroj ovÜem v∞tÜinou nenφ zßle₧itost n∞kolika tisφc korun. To by si m∞li distributo°i uv∞domovat. Äßdejte proto od nich dostateΦn∞ funkΦnφ demoverze (nebo jeÜt∞ lΘpe Φasov∞ omezenΘ plnΘ verze), nechßvejte se inspirovat projekty, kterΘ s tφmto nßstrojem pracujφ.

Rozhodneteli se pro pou₧itφ CASE nßstroje, vybφrejte obez°etn∞. Nenφ nic horÜφho, ne₧ zjiÜt∞nφ v polovin∞ projektu, ₧e jste narazili na strop mo₧nostφ tohoto nßstroje. V₧dy je lepÜφ investovat vφce Φasu a financφ do v²b∞ru, ne₧ pozd∞ji obrovskΘ ·silφ a penφze do p°echodu na jin² nßstroj.

Petr Kop°iva, kopriva@komix.cz

 
 
HOME | O FIRM╠ | SLUÄBY | REFERENCE | NAPSALI JSME | èKOLEN═ | SW N┴STROJE
 
OBSAH