elektronická verzia publikácie - FIIT STU - Slovenská technická ...
elektronická verzia publikácie - FIIT STU - Slovenská technická ...
elektronická verzia publikácie - FIIT STU - Slovenská technická ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Znovupoužitie návrhových vzorov na úrovni modelu 137<br />
rov, verifikácii ich implementácii a ich vyhadávaní v existujúcich systémov za úelom ich<br />
porozumenia a zdokumentovania. Aby bolo možné zautomatizova tieto aktivity, je potrebné<br />
podrobne zachyti opakujúcu sa štruktúru a správanie vzorov, ktoré sú asto ozna-<br />
ované ako leitmotif vzoru [8]. Leitmotify vzoru možno chápa ako abstraktné návrhové<br />
modely v návrhárovej mysli. Zachytávajú najdôležitejšie invarianty, ktoré generujú konkrétne<br />
riešenia špecifického návrhového problému. Štruktúra vzoru nepredstavuje riešenie,<br />
ale generuje riešenia [3]. Práve táto flexibilita oddeuje vzory od návrhových modelov,<br />
šablón tried i OO frameworkov. Nanešastie modelovací jazyk, ktorý by dokázal presne<br />
špecifikova nemenné asti leitmotifov vzorov, zatia neexistuje.<br />
V nasledujúcich kapitolách budú podrobnejšie opísané vybrané prístupy opisu leitmotifov<br />
návrhových vzorov.<br />
5.2.1 Metamodelovací jazyk založený na roliach<br />
Práca [10] predstavuje jazyk urený na špecifikáciu vzorov: Metamodelovací jazyk založený<br />
na roliach (Role Based Metamodeling Language – RBML). RBML umožuje autorom<br />
špecifikova návrhové vzory z viacerých perspektív: statickej štruktúry, interakcie, stavového<br />
správania sa. RBML používa na špecifikáciu vlastností vzorov vizuálnu notáciu založenú<br />
na UML [33] a textové obmedzenia zaznamenané v jazyku OCL [26]. Ide<br />
o špecifikaný jazyk opisujúci skupiny UML modelov. Samotná špecifikácia vzorov je<br />
založená na báze rolí, ktoré sú asociované s UML metatriedami. Role špecifikujú vlastnosti,<br />
ktoré musia spa elementy modelu hrajúce danú rolu. To znamená, že model, ktorý<br />
zodpovedá špecifikácií vzoru, pozostáva z elementov hrajúcich role tejto špecifikácie. Môže<br />
obsahova aj iné aplikane špecifické elementy, ak sa tým nedostáva do konfliktu<br />
s metamodelovou špecifikáciou vzoru.<br />
Základným modelom RBML je Statická špecifikácia vzoru (Static Pattern Specification<br />
– SPS) predstavujúca obmedzenia UML metamodelu, ktoré spresujú priestor riešenia<br />
vzoru zo štrukturálneho aspektu. SPS pozostáva z klasifikátorov (classifier) a vzahov (relationship),<br />
ktoré vychádzajú z metatried Classifier a Relationship UML metamodelu. Rola<br />
definovaná v rámci SPS môže by asociovaná s obmedzeniami definovanými pomocou<br />
OCL. Príklad SPS špecifikácie vzoru Visitor sa nachádza na obrázku 5-9.<br />
Na zachytenie dynamického správania sa úastníkov vzoru slúži Interakná špecifikácia<br />
vzoru (Interaction Pattern Specifications – IPS). IPS pozostáva z interaknej role, ktorá<br />
je špecializáciou triedy Interaction UML metamodelu. Interakná rola je štruktúrou lifeline<br />
a správy (message), ktoré sú založené na metatriedach Lifeline a Message UML metamodelu.<br />
Z vizuálneho hadiska sa IPS je obdobou sekvenného diagramu UML.<br />
Na opis stavového správania sa úastníkov vzoru RBML definuje Stavovú špecifikáciu<br />
vzoru (StateMachine Pattern Specifications – SMPS), ktorá vychádza zo stavového diagramu<br />
UML.<br />
5.2.2 Precízne modelovanie vzorov na základe UML metamodelu<br />
Alternatívu k predchádzajúcemu prístupu predstavuje práca [21]. Jej hlavným cieom je<br />
opä podrobne zachyti leitmotif vzoru do modelu pozostávajúceho z navzájom spolupracujúcich<br />
rolí pomocou UML metamodelu.