Microsoft Word doc

Podobné dokumenty
Algoritmizácia a programovanie - Príkazy

NÁVRH UČEBNÝCH OSNOV PRE 1

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

DediĊnosť

Microsoft PowerPoint - OOP_prednaska_10.pptx

NSK Karta PDF

MO_pred1

ECDL Syllabus V50 SK-V01

enum

Súkromné gymnázium, Česká 10, Bratislava INFORMATIKA

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

Katalóg cieľových požiadaviek k maturitnej skúške

Microsoft Word - Priloha_1.docx

03_ControlFlow.dvi

Tabuľky_teoria

NSK Karta PDF

Čo sú pojmové mapy 1 Charakterizácia pojmových máp pojmové mapy sú diagramy, ktoré vyjadrujú podstatné vzťahy medzi pojmami vo forme tvrdení. Tvrdenia

Snímka 1

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Microsoft Word - Argumentation_presentation.doc

Prezentace aplikace PowerPoint

Agenda záverečnej práce pedagóg Celá agenda týkajúca sa záverečnej práce je dostupná v obrazovke Záverečná práca (menu Agenda pedagóga -> Záverečné pr

Stravné - přecenění

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

Privátna zóna pre prevádzku Obsah Privátna zóna pre prevádzku 1 Obsah 1 Webová stránka 2 Úvodná stránka 2 Registrácia prevádzka/penzión

SK01-KA O1 Analýza potrieb Zhrnutie BCIME tím Vyhlásenie: "Podpora Európskej komisie pre výrobu tejto publikácie nepredstavuje súhlas

gis5 prifuk

Písomný test k predmetu Tvorba informačných systémov, pondelok, 16.januára 2012, čas: 120 minút. Odpovede píšte priamo k otázkam, ak potrebujete viac

(Microsoft Word Zadanie na s\372\235a\236 KROS DESIGN AWARD .doc)

SLOVENSKÁ INOVAČNÁ A ENERGETICKÁ AGENTÚRA Svetelno-technická štúdia (Odporúčaná štruktúra častí príloh, ktoré sú súčasťou projektov modernizácie verej

1

Manažment v Tvorbe Softvéru 2018/2019

Informačný systém pre externú časť a písomnú formu internej časti maturitnej skúšky Informačný systém pre EČ a PFIČ maturitnej skúšky Užívateľská prír

Prevádzka

Novinky programu MSklad

Snímka 1

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Princípy tvorby softvéru Modelovanie domény

QFH anténa pre príjem skcube Publikované: , Kategória: HAM - Technika Vypustenie družice SkCube určíte pritiahlo pozorno

iot business hub whitepaper isdd_em_New.pdf

Microsoft PowerPoint - SLIDES_02DTD.ppt

Rozdeľovanie IT zákaziek UX Peter Kulich

(Návrh) 567 VYHLÁŠKA Úradu priemyselného vlastníctva Slovenskej republiky z 10. decembra 2009, ktorou sa vykonáva zákon č. 506/2009 Z. z. o ochranných

Študijný program (Študijný odbor) Školiteľ Forma štúdia Téma Elektronické zbraňové systémy (8.4.3 Výzbroj a technika ozbrojených síl) doc. Ing. Martin

VSDC Free Video Editor stručný návod na používanie Link na sťahovanie softvéru: K prog

Aktion.NEXT Novinky vo verzii 1.9

2

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Tres Faciunt Collegium Posudok Študijný program: Počítačové

PM C-03 Prostredie riadenia ¾udských zdrojov

EN

Základné informácie k papierovej forme testovania žiakov 5. ročníka ZŠ T September 2016 NÚCEM, Bratislava 2016

Brezina_Gertler_Pekar_2005

Microsoft Word - prirucka_katedry_nova

INFORMAČNÝ LIST ÚSPEŠNE ZREALIZOVANÉHO PROJEKTU

Hardwarové prerušenie Nasledujúci kód ukazuje inštaláciu obsluhy časovača vrátane jeho inicializácie // inicializace časovače, přerušení každou milise

Komplexný informa ný a monitorovací systém Monitorovanie biotopov a druhov európskeho významu Používate ská dokumentácia KIMS modul Mobilná aplikácia

Snímka 1

Informačná a modelová podpora pre kvantifikáciu prvkov daňovej sústavy SR

1

Postupy na uplatnenie práv dotknutých osôb

Import absencí z ASC

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

Podpora metód operačného výskumu pri navrhovaní systému liniek doc. RNDr. Štefan PEŠKO, CSc. Katedra matematických metód, Fa

IT NEWS

Úvodná prednáška z RaL

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

SAEAUT SNMP OPC Server

Microsoft Word - TeoriaMaR-pomocka2.doc

Prezentacia - Biotechnicke inovacie pri vyuziti dazdovej vody v meste Zvolen

Zadanie zákazky Postupom podľa 117 zákona č. 343/2015 Z. z. o verejnom obstarávaní a o zmene a doplnení niektorých zákonov 1. Identifikácia verejného

NSK Karta PDF

Smernica rektora číslo 6/2015-SR Pravidlá udeľovania ocenenia Cena rektora Slovenskej technickej univerzity v Bratislave Dátum:

Princípy tvorby softvéru Programovacie paradigmy

Sablona prispevky MSI

DODATOK 48 k cenniku sluzieb 20x indd

Prehľad pedagogickej činnosti Ing. Martin Gulan, PhD. Prehľad pedagogickej činnosti na vysokej škole a prehľad dosiahnutých výsledkov v tejto činnosti

1 Portál pre odborné publikovanie ISSN Heuristický adaptívny PSD regulátor založený na miere kmitavosti Šlezárová Alexandra Elektrotechnika

Microsoft Word - Transparencies03.doc

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Informačný systém pre materské školy Bakalárska práca 2019 Monika Vlčková

Vyhodnotenie študentských ankét 2013

9.1 MOMENTY ZOTRVACNOSTI \(KVADRATICKÉ MOMENTY\) A DEVIACNÝ MOMENT PRIEREZU

ISO Systémy manažérstva proti korupcii Svetový deň normalizácie 2018 Miroslav HRNČIAR Žilinská univerzita v Žiline

PowerPoint-Präsentation

bakalarska prezentacia.key

Snímka 1

(Microsoft Word - Tuzemsk\341 a zahrani\350n\341 jazda \232tandardn\341 jazda.docx)

TECHNICKÁ UNIVERZITA VO ZVOLENE, ÚSTAV TELESNEJ VÝCHOVY A ŠPORTU usporiada 7. ročník vedeckej konferencie s medzinárodnou účasťou TELESNÁ VÝCHOVA A ŠP

Microsoft Word - 16.kapitola.doc

Vhodnosť lokálneho ohodnocovania grafu v sociálnej sieti obchodného registra SR Peter Vojtek Mária Bieliková Fakulta informatiky a informačných techno

História

Metodika práce s gitom Spôsob práce s gitom V projekte sa budú udržovať dve hlavné vetvy: - Master - Hlavná vetva, ktorá odráža otestovaný funkčný kód

Relačné a logické bázy dát

Informačné technológie

EURÓPSKA KOMISIA V Bruseli C(2018) 6560 final ANNEX 1 PRÍLOHA k vyoknávaciemu rozhodnutiu Komisie, ktorým sa stanovuje metodika monitorov

Paralelné algoritmy, cast c. 3

Pravidelné úlohy verzia ku dňu SEAL IT Services, s.r.o. Kontakt: SEAL IT Services, s.r.o., Topoľová 4, Bratislava 1, tel.:

Inteligentné rozhodovacie systémy Heuristické prehľadávanie SP Október, 2018 Katedra kybernetiky

Prepis:

MOŽNOSTI ROZŠÍRENIA A APLIKÁCIE JAZYKA UML PRI ANALÝZE A NÁVRHU Ivan Polášek 1) Jan Ministr, Josef Fiala 2) 1) Ekonomická univerzita v Bratislave, Fakulta hospodárskej informatiky, Dolnozemská cesta 1, 852 35, Bratislava, SR, ipo@gratex.com 2) VŠB-Technická univerzita v Ostravě, Ekonomická fakulta, Sokolská třída 33, 701 21 Ostrava, ČR, jan.ministr@vsb.cz, josef.fiala@vsb.cz Abstrakt Článok hlbšie analyzuje nedostatky a aplikácie diagramov jazyka UML. Popisuje využitie sekvenčného diagramu, charakterizujúceho interakcie objektov v dynamickom modeli systému, nielen pre jednoduché postupnosti ale aj v alternatívach a cykloch, v bohatých vnorených štruktúrach, čo patrí k najčastejším problémom analytikov pri modelovaní dynamického správania sa systému. Príspevok upozorňuje aj na možnosť zakresliť nevhodnú štruktúru v Activity Diagrame na reálnom príklade ako aj neschopnosť kvalitnej editácie diagramu a ponúka iné možnosti a návrhy (napríklad kombináciu a spriahnutie niekoľkých modelov cez navigátor v OO CASE systémoch) Klúčová slová: UML,Sequence Diagram,Use Case, Activity Diagram, State Diagram, Easy Case Úvod Pri objektovej analýze a modelovaní systémov je dnes používaným štandardom jazyk UML, popísaný v [OMG03], ktorý je možné rozšíriť pomocou stereotypov o nové prvky a vzťahy. Ďalšou možnosťou je doplniť ponúkanú sadu diagramov o iné diagramy, prípadne doplniť existujúce diagramy čitateľným a korektným spôsobom. 1. Doplnenie sekvenčného diagramu UML pre dynamické modelovanie Sekvenčný diagram charakterizuje interakcie objektov v dynamickom modeli systému. Vznikajú však nielen jednoduché postupnosti, ale aj v alternatívy a cykly v bohatých vnorených štruktúrach, čo patrí k najčastejším problémov analytikov pri modelovaní dynamického správania sa systému. Napríklad už v prelomovej publikácii [GoF95] o návrhových vzoroch je sekvenčný diagram používaný popri objektových diagramoch, alebo v [BOO94] o objektovej analýze a návrhu až po najnovšie práce ([BUS01], [FOW00], [BIE00], [RUS02], [RUS03]). Najnovšia špecifikácia jazyka v [OMG03] popisuje takéto možnosti, ale nie podrobne a dostatočne, najčastejšie len pre jednu interakciu alebo udalosť. Analytici a návrhári majú problémy najmä so zápisom postupnosti viacerých udalostí v jednom alebo vo viacerých blokoch, ktoré sa vykonávajú podmienene alebo opakovane. 264

Článok popisuje niekoľko možností riešenia s využitím prvkov Activation (aktivácia objektu - v tomto prípade napomôže znázorniť rozsah a presné umiestnenie bloku), Message to Self (lokálne vyvolanie udalosti na objekte, využité na vytvorenie - vyvolanie riadiacej štruktúry a definovanie podmienky), Constraint (obmedzujúce pravidlo, vhodné na uloženie podmienky pre vetvenie alebo cyklus), Concurrent alebo Additional Lifeline (alternatívna životná línia objektu, ďalej len AL, vhodná na znázornenie rozvetveného životného cyklu objektu pri rôznych podmienených interakciách). Takéto využitie sekvenčného diagramu je už na pomedzí dynamického a funkčného diagramu a často je využité pre zápis volania jednotlivých metód objektov a znázornenie ich štruktúry aj v takomto pohľade. Literatúra tento typ diagramu označuje aj ako Procedural sequence diagram. 1.1 Použitie sekvenčného diagramu v projekte Sekvenčné diagramy (Sequence Diagrams) rozvíjajú služby systému (Use Cases - prípady použitia) z Konceptuálnych diagramov (Use Case Diagrams) do podoby scenárov. Často je to prvý diagram po konceptualizácii a jeho dôležitosť je zrejmá: často je jednoduchšie charakterizovať riešenie úlohy v konkrétnom prípade použitia systému, ako vytvárať objektový model. Identifikujeme v nich tok externých udalostí, ktoré vyvolávajú odozvu systému (služby) a interných udalostí, ktoré modelujú a zabezpečujú správanie konkrétnej služby-funkcie. Udalosti opisujeme ako javy, ktoré práve nastali, najčastejšie slovnými spojeniami: príchod hosťa, podanie žiadosti, dodanie tovaru, splatná faktúra a podobne. Udalosti môžu spoluidentifikovať aj prídavné mená: dodané, utriedené a pod. Okrem udalostí spoznávame v tomto diagrame aj nové objekty, ktoré zabezpečujú príjem, spracovanie a odosielanie udalostí. Objekty označujeme aj podstatnými menami ako fakturačné oddelenie, sklad, personálne oddelenie a podobne. V diagrame sa pracuje nie s triedami, ale s ich inštanciami - objektmi. Možno však označiť objekt podobným menom, ako má trieda (sklad:sklad), prípadne ho vynechať (:Sklad). Výhoda objektov je v tom, že možno vytvoriť aj viac inštancií tej istej triedy a modelovať interakcie aj medzi nimi. Ak začneme sekvenčným diagramom, kde je ďaleko jednoduchšie objavovať potrebné triedy a metódy, ktoré budú reagovať na udalosti a interakcie, potom bude následný objektový diagram pravdivejší a korektnejší. Bude obsahovať len nevyhnutné triedy a množstvo metód, ktoré by sme inak museli odhadovať. V sekvenčnom diagrame sú v horizontálnej rovine uložené komunikujúce objekty s ťažnicami smerom nadol a vertikálna y-dimenzia predstavuje časový rozmer, kde medzi jednotlivými ťažnicami objektov sú znázornené interakcie popísanými šípkami (podmienka v hranatých zátvorkách, názov udalosti, jej prametre v guľatých zátvorkách), kde okrem jednoduchej udalosti, využívame aj synchrónnu (čaká sa na reakciu a až potom sa pokračuje ďalej) a asynchrónnu udalosť (nečaká sa na odpoveď) s polovičnou šípkou. 1.2 Bežný spôsob zápisu alternatívnych udalostí a cyklov Obrázok č. 1 znázorňuje štandardný spôsob vetvenia udalostí. Udalosť m1 sa vykoná, ak je splnená podmienka a<=0, udalosť m2 sa vykoná ak je splnená podmienka a>0. Vychádzajú z jedného bodu, ale udalosť m1 je zasielaná objektu o3 z objektu o1. Udalosť m2 zasiela objekt o1 objektu o2. 265

Obr. č. 1 Vetvenie interakcií podľa podmienky Opakovanie udalosti (cyklus) sa zapisuje pomocou hviezdičky pred názov udalosti. Tu vzniká problém prehľadnosti a čitateľnosti koľko udalostí zahrnúť do tohto opakovania, ako aj o type a podmienke opakovania. 1.3 Ďalšie možnosti zápisu alternatívnych udalostí CASE systém MS Visio ponúka aj ďalší druh obmedzenia: 2 element constraint, v ktorom zapíšeme podmienku vykonania (zaslania) operácie/správy, s tým, že ak podmienka nie je splnená, vykoná sa asociovaná alternatíva. V tomto prípade boli použité aktivačné bloky na zviazanie niekoľkých udalostí s rovnakou podmienkou. Vetvenia, ktoré obsahujú viacero udalostí v každom bloku, pričom druhá podmienka nie je doplnkom prvej nemôžu použiť 2 element constraint. V projektoch z predošlých rokoch (popisuje aj [HAJ02]) sme riadiacu štruktúru (a jej podmienka) vetvenia a cyklu uložili ako podmienka do hranatých zátvoriek prázdnej udalosti na objekte, ktorý obsahuje telo takejto metódy, alebo inicioval takúto štruktúru. Tento spôsob sme dokonca podporili generovaním priamo do konkrétnej metódy, popísané v [HAJ02]. Ďalšou variáciou pre sprehľadnenie a zjednodušenie bolo uvedenie začiatku a konca cyklu, alebo vetvenia. Používali sme pre čo najkratší zápis: zložené zátvorky pre začiatok a koniec bloku ako v jazyku C/C++ ( { a } ) a nie napríklad kľúčové slová if - endif, while - wend, begin a end a podobne. Tento spôsob síce fungoval a nespôsoboval problémy pri generovaní, neumožňoval však prehľadné vnáranie a zvyšoval počet interakcií na diagrame. Použili sme preto kombináciu vnárajúcich sa blokov pomocou aktivácie a namiesto prázdnych lokálnych správ s vetvením alebo cyklom v podmienke sme využili constraint v tvare poznámkového bloku. Využitie aktivácií ako vnárajúcich sa blokov bolo jednoznačne prehľadné. Táto kombinácia (obr. č. 2) sa zatiaľ javí ako najprehľadnejšia a v tejto chvíli ju používame aj ako alternatívu pre generovanie popísané v [Pol03]. Podobný spôsob zápisu sme našli aj v [KER03], ktorý používajú pre CASE systém Together ControlCenter, čo nás utvrdzuje v akceptovateľnosti tohto spôsobu, pretože nie sme jediní, ktorí ho používajú a veríme, že v budúcnosti by sa mohol stať štandardom. 1.4. Finálny spôsob zápisu vetvenia a cyklu v sekvenčnom diagrame Použitie spriahnutých constraintov a aktivačných blokov nás priviedlo k najprehľad-nejšiemu spôsobu kombinácie práve týchto dvoch prvkov: 1. vnáranie blokov je možné zviditeľniť vďaka umiestneniu aktivácií a subaktivácií, 266

2. začiatok a koniec bloku je evidentný vďaka začiatku a koncu aktivácie, nie je teda potrebné ho označovať, okrem toho ich označenie podlieha použitému programo-vaciemu jazyku v implementácii, preto nie je dostatočne všeobecné, 3. typ a podmienky bloku sú zrejmé z constraintov (poznámkového bloku), priradených k aktiváciám. Obr. č. 2 Finálny spôsob zápisu vetvenia a cyklu v sekvenčnom diagrame 2. Nedostatky Activity Diagramu UML Na problém needitovateľnosti Activity Diagramu, možnosti vytvárať nevhodné štruktúry sme upozornili už v [Pol97]. Diagram aktivít (Activity Diagram - AD) je v [OMG03] definovaný ako špeciálny prípad stavového stroja (State Machine), zastupovaného najmä Stavovým diagramom (SD, State Diagram) a slúži najmä na modelovanie procesov systému. Ak SD popisuje stavový priestor elementu (triedy alebo služby) a prechody medzi stavmi, potom AD definuje najmä aktivity a podmienky ich vykonania. Toto rozdelenie a príbuznosť potvrdzuje aj sémantický model z kapitoly Semantics v [OMG03]. V prvých verziách UML bol podobný až zameniteľný s vývojovým diagramom, dnes sú jeho možnosti bohatšie a obsahuje implicitne aj možnosti zakresliť paralelné procesy pomocou synchronizácií typu fork (rozvetvenie) a join (spojenie). Takéto paralelizmy môžu byť aj vnorené, ako logické vetvenia. Ďalej UML dovoľuje aj rozdeliť AD podľa rolí objektov, ktoré konkrétnu aktivitu vykonávajú. Diagram je delený na polia vertikálne a v UML špecifikácii sú označované ako swimlanes. Príklad takto členeného diagramu je na obr. 3. 267

:Pracovník kontroly IS/IT :Správca aplikácie (SW) :Správca HW a OS Monitoring IS/IT [problém v IS] Analýza stavu Konzultácie riešení Riešenie problému Obr. 3 Príklad rozdelenia diagramu podľa rolí objektov ([Kaj03]) 2.1 Ilustračný príklad nedostatkov diagramu aktivít Dôležitý problém absencie korektného štandardu pre zápis algoritmov, ako aj znázornenie tela metódy a jej algoritmu ilustrujeme na nasledujúcom diagrame, kde je ako príklad zapísaný Newtonov iteračný algoritmus pre druhú odmocninu. Tento diagram aktivít sa neodlišuje takmer ničím od vývojového diagramu a dedí aj všetky nedostatky: A. nie je rozlíšené použitie rozhodovacieho bloku pre vetvenie a iteráciu alebo cyklus, B. nie je možné editovať štruktúry, prenášať celé vetvy, alebo cykly, vymazávať ich a vnárať, C. dovoľuje nevhodné štruktúry a vetvy odskokov typu goto ako to je viditeľné aj na príklade. Obsahuje nevhodnú vetvu s príkazom G=M, ktorá sa vracia po rozhodovacom bloku, zastupujúcom spodnú podmienku iterácie späť do tela cyklu a obohacuje ho v druhom až n-tom kroku o ďalší príkaz. Pri prvom prechode cyklom sa tento príkaz nevykonáva, druhý raz už áno. 268

citaj Y, E G = 1 H = Y/ G G = M M = ( G + H ) / 2 [ H - G > E] [ H - G <= E] vypis M Obr. 4 Zápis iteračného algoritmu pre druhú odmocninu podľa Newtnovho iteračného algoritmu v diagrame aktivít 2.2 Implementácia ilustračného príkladu nedostatkov diagramu aktivít Zdrojový kód v jazyku C/C++ by vyzeral nasledovne: const double e=0.0000001; double newton(double y) { double m, g = 1, h; start: h = y / g; m = (g + h) / 2; if(fabs(h - g) < e) goto end; else { g = m; goto start; } end: return m; } 269

Je zrejmé, že takáto presná implementácia síce funguje, ale vhodnejší je prepis odskokov a vetvení na menej sa vyskytujúci cyklus so spodnou podmienkou do while, bez návestí a goto príkazov, kedy treba zakomponovať do tela iterácie aj nevhodnú vetvu z diagramu: const double e=0.0000001; double newton2(double y) { double m = 1, g, h; do { g = m; h = y / g; m = (g + h) / 2; } while (fabs(h - g) > e); return m; } 2.3 Návrhy iných riešení Pre takúto implementáciu je preto vhodnejší, grafický zápis, ktorý sa získa transformovaním kódu do hierarchickej štruktúry stromu. Ak sa zmení orientácia zľava-doprava pre hierarchické úrovne na zhora-nadol, získa sa diagram, podobný Jacksonovmu štruktúrovanému diagramu (JSD). SQRT read Y, E M=1 do whille ( H-G >E) write M G=M H=Y/G M=(G+H)/2 Obr. 5 Schéma algoritmu funkcie, druhá verzia Okrem JSD existujú aj ďalšie možnosti, napríklad Nassi-Schneidermannove diagramy (NSD) podľa [Nas73], ktoré využíval aj systém Easy Case od spoločnosti Siemens pre generovanie jazyka C, Cobol a podobne. Táto technika je orientovaná na štruktúrované programovanie. Diagramy sa čítajú zhora-nadol a algoritmy sú zapisované do prehľadných vnárajúcich sa blokov a podblokov riadiacich štruktúr namiesto podstromov bez existencie spojníc a tým tiež zabraňuje nevhodným vetveniam typu goto. Je to vlastne len iné rozhranie pre ten istý princíp ako v JSD. Používa tiež tri základné štruktúry: sekvencia, selekcia, iterácia. [Pre92] označuje NSD aj ako box diagram, ktorý je celistvý a nedovoľuje nevhodné spojenia. 2.4 Aplikácie riešení Spôsob využitia návrhu z kapitoly 2.3 bol odskúšaný na spracovaní zdrojového kódu procedúr v Transact SQL, ktorý bol ťažko čitateľný, zle udržiavateľný a jeho prezentácia zadávateľovi a uchovanie v pôvodnej forme v technickej dokumentácii neboli možné. Keďže išlo o tisícky riadkov v stovkách súborov, bolo nutné vytvoriť program na spätnú transformáciu do grafickej 270

podoby a generátor z týchto diagramov. Bol zvolený práve riadkovo orientovaný JSD a program bol nazvaný SQLBeautifier, popísaný v [Pol98]. Dovoľoval round trip engineering: napísaný kód preniesť do diagramu, meniť ho a vygenerovať pozmenený kódu naspäť. Ďalšou možnosťou je zápis algoritmu do poznámkového bloku, vedľa metódy triedy (obr. č. 7) alebo do minieditora. Výhodou je možnosť komplexného pohľadu na algoritmy metód, nevýhodou prílišná zložitosť a nečitateľnosť väčšieho diagramu. Štvrtá možnosť je použiť JSD a zmenou zápisu ich stromovej štruktúry z hierarchickej orientácie na riadkovú zapísať algoritmus ako podstrom v navigátore a vidieť tak telo metódy kedykoľvek po jej rozvinutí (obr. č. 8). Umožňovalo by to aj presun, vkladanie a výmaz jednotlivých vetiev metódy ale aj kopírovanie do iných metód. Používateľ by v navigátore videl jednotlivé modely a diagramy projektu, po rozvinutí ich triedy, po ďalšom rozvinutí atribúty a metódy tried. Samotné metódy by sa dali ďalej rozvinúť do úrovne jetnotlivých štruktúr algoritmu. Podľa znamienka + a by bolo zrejmé, ktoré metódy obsahujú nadefinovaný algoritmus a aj ktoré štruktúry (cykly, podmienky) sa už dajú ďalej rozvinúť do jednotlivých podrobností. Nevýhodou by bola prílišna mohutnosť navigátora na úkor plochy diagramu a čitateľnosti, ale vďaka vhodnej stromovej štruktúre a možnosti zvinutia a rozvinutia podstromov je táto alternatíva dostatočne zaujímavá. Obr. 6 Revidovaný JSD s funkciou insert hie s rozvinutými uzlami 271

Obr. 7 Telo metódy v minieditore poznámkového bloku Obr. 8 Telo metódy v navigátore Záver V príspevku sme predostreli spôsob čo možno najprehľadnejšieho a najkorektnejšieho zápisu vetvenia a cyklu v rámci sekvenčného diagramu jazyka UML, pre ktorý sme vyvinuli aj generátor zdrojového kódu metód objektov, popísaný v [HAJ02] a v [Pol03]. Poukázali sme aj na nedostatky Activity Diagramu a spôsoby riešenia. Literatúra: [BIE00] Bieliková M.: Softvérové inžinierstvo, Vydavateľstvo STU, Bratislava,1.vydanie, 2000 [BOO94] Booch G.: Object-oriented analysis and design, Benjamin/Cummings, 1994 [BUS01] BUSCHMANN, Frank et al. Pattern-oriented software architecture.wiley, 2001 [GoF95] GAMMA, E. - HELM, R. - JOHNSON, R. - VLISSIDES, J. Design Patterns. Elements of Reusable Object-Oriented Software. MA: Addison-Wesley, 1995 [HAJ02] Hajský Ľ., Mácová M.: Implementácia metód objektov, Zborník, Kvantitatívne metódy v ekonómii a podnikaní metodológia a prax v novom tisícročí, 8. medzinárodná vedecká konferencia, 18.-20.9.2002, Bratislava, ISBN 80-225- 1589-2 [FOW00] Fowler M.: UML Distilled,2 nd. Edition, Addison Wesley, 2000 [Kaj03] Kajzar, D. a Polášek, I.: Projektování informačních systémů, Strukturovaný a objektový přístup, skriptá, Slezská univerzita, Filozoficko-přírodovědecká fakulta, Opava 2003 272

[KER03] [Nas73] [Pol97] [Pol98] [Pol03] [OMG03] [Pre92] [RUS00a] [RUS02] Kern, J., Garrett C.: Effective Sequence Diagram Generation, Borland (www.borland.com/together/white_papers), 2003 Nassi I. and Shniederman B.: Flowcharts Techniques for Structured Programming, SIGPLAN Notices, ACM, 1973 Polášek I.: Návrh popisu algoritmov metód objektov v OOAaD pomocou štruktúrnych diagramov, Systémová integrace No.4, Praha, 1997, str. 63-68 Polášek I. a Trabalka M.: SQL Beautifier, pracovná intranet publikácia k projektu, GraTex International Bratislava,1998 Polášek I., Hajský Ľ.: Možnosti zápisu podmienených a opakujúcich sa interakcií v dynamickom modeli jazyka UML a automatické generovanie metód objektov, Systémová integrace No.3, Praha, 2003, str. 7-25 OMG: OMG Unified Modeling Language, Specification, Version 1.5, Marec 2003, www.omg.org 2003 Pressman S.: Software Engineering: A Practitioner s Approach, McGraw-Hill, 1992 Russev S., Závodný P., Polášek I. Trenčanský I. a Ligač, M.: Tvorba informačných systémov: Metodologické aspekty, Ekonóm, Bratislava, 2000 Russev S., Závodný P., Grell M., Polášek I.: Metódy vývoja informačných systémov, EKONÓM, Bratislava, 2002 273