HAL Id: inria-00072886
https://hal.inria.fr/inria-00072886
Submitted on 24 May 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
UMLAUT: an Extendible UML Transformation Framework
Wai Ming Ho, Jean-Marc Jézéquel, Alain Le Guennec, François Pennaneac’H
To cite this version:
Wai Ming Ho, Jean-Marc Jézéquel, Alain Le Guennec, François Pennaneac’H. UMLAUT: an Ex- tendible UML Transformation Framework. [Research Report] RR-3775, INRIA. 1999. �inria-00072886�
ISRN INRIA/RR--3775--FR+ENG
a p p o r t
d e r e c h e r c h e
INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
UMLAUT: an Extendible UML Transformation Framework
Wai Ming Ho , Jean-Marc Jézéquel , Alain Le Guennec , François Pennaneac’h
N˚3775
Octobre, 1999
THÈME 1
01"$,.324)+"6517
8:9<;>=?;A@6BDCFEHGJI<KL9<@M=N9<OQPRI<SUTUSWVYX$KUZG-[ZA9<;A@]\K_^X$KU@$@6KUP`G-a-Ob9<@$cWEd;Ae
f>KU@$@-9g@$KL9<PghjiNk
l3monqprsutwvxQyzrQ{}|~Fr>yzynqprQy
J z}r>
v{}gW >ru rQmorq mrWU}}Rtu} r}s}}t sQ¡¢o{¤£WrQy
¥F¦6§Q¨q©*ª«}¨}¬
{}L®>R¯D°±³²L´HzL}µ¶y{¤µ·µ·*¸?yz¤¹º¸3{¤ rurQ£}»·rQrq y±zF {b¸?»·{}£} {¤p¼y{¤o½£Wrq¾
rQ {¤zr>qr³yz¿}rQµjrqz}gy-¹À }p:zmrQp½Á$±|3¤¹ºrqF{WÃ*{¤oqrQ¼|gyrQ yJ¸±{}WÄzÅp} r¸»jzmFzmrQ»j 3®>¯
prQµ·yQdr}Á£oÁ·<{}µ·½yz<rQ»jÆg¢rQyz»j£Wo{¤zrQ zgyq<£}rQrq {*rr¹À} urqp<rQorQyzyrqp¼yQ<yz»jp¢|µ¶{*zr
mr¹À|gz»·}g{¤µo{}o}¾Ç¹À|gz»·}g{¤µ<rqmo{bÃL»·} -}¹gmr>yzLyzrQp½} |¼Ã*{¤µ·»·{¤z»·}ÅzLWµ·y-WÅzmrprQµÇ
rq}Á¸m»¶m¢{} zrÄÃ}rQ z+»jÈ1|µj$z/³¸»jzmzmry »jz»·£>¹É{W»·µj»jz»·rQy6}Ê<rQ zr+»jÅpWy$®³¯q{}yzrËL}µ¶yqÁ
ÌÍm»¶yo{}grQ Q6¸±rFrQy »·grF®³¯(®³l/6{¹À zrQrqµ·_{bÃ*{¤»·µ·{}µ·r1®>¯?l( {¤oy¹À} p¼{*»jW#Îo {}pÅrQ¸ÄW z¿
{}µjµ·*¸»·£q}pµ·r~p¼{¤»·|µ¶{*»jWoy>z½gr{¤oµj»·rQRz½{®>¯ÏprqµAÁl3mryrÅp¼{¤»·|µ¶{*»jWoy/{¤ r
rq~ zryzyzrQ{Wy%{¤µ·£}rQ {}»·q}pgUy»jz»·}gy%¤¹ rq»jÆorQ#rQµjrQpÅrQU{¤ {}oy¹À} p{¤z»·}oyQÁ½l3mrq{¤ rzmL|oy
WgrQzrq~Lzrqgy»·}oy+zm }|£Wmлjomrq »Ñ{¤oqr1{¤oÐ{}£}£W zrQ£W{*»jWYÁl»·µjµ·|oyz {*rzmr»jUzrQ zry¢¤¹}|
{} W{WmYW¸±r+ymo*¸Hm*¸]mr+pLrqµ¤¹${¤½®>¯»¶yz »j|zrQ½{}µ·»·Q{*z»·}q{}<r+{¤|}p¼{*»·Q{¤µ·µj
{}oy¹À} pÅr»·Uz{µ·{}grQµjrR {}oyz»Ñ»jW_yzLyzrQpÃ*{¤µ·»·o{*zrR|gy»·£{}Ãb{}or ¤}µ$Ã*{¤µ·»¶{*»jW
rQmo}µ·}£}WÁ
ÒÓUÔdÕÖ× ©*Ø6§}¬ ³rQ¾Ù} »jrQUzrQÎ {¤prq¸±} ¿yq®³¯Ëol {¤oy¹À} p¼{*z»·}(WÚË{}µj»¶{*»jW
Û¶ÜÝzÞÙßQà3Ýá6â·ÞÙãAäå
æËç(èéëêYìdíîÇï>è*ðê(ñ}òòóuôbðîÉõÇéöð÷ë÷ø³ùjúbóbûòû³ñqøuüý6þoç½úbóbûòîYõÇèbòËÿ+þgç½ôbîÉí ÇòÍõíóõÇîAð Íõ
ìYðé! éëó#"è$Çò%ò&Qúbò÷'¤ð÷ëò"úbòóbó(*ô¤òóó*ðóbòð) *6éëîÇéëêAð,+ù·î
Unité de recherche INRIA Rennes
#"$%&('*)+"-,./) )¼
§ ¬ r¼Wp rq|~R±zrqµ·»·rq y+ruxq»·r1¯YW£}»¶»·µjrÉ/¯ugW| ®³¯ÏgrQ zprzzrQW{}|~
»·£Wxq»·rq| y³µjW£}»¶»·rqµ¶y>r¢z {}qrq /rQy/»¶{¤£W {}pÅpryr+rÅ£}xQxq rq urQy/yW|orqµ·rrQy/rrFo{} »j
rrQ|~L¾Ùq»ÇÁ»·{Wyyz}|ÃWrqUµ·rQy%|z»·µj»¶yz{¤zrQ| y¢{bÃ}rQ »·y+ÃW}|o {}»jrQW+¹É{}»j r1µ·|oyÅrmoWyzr1{bÃ}rQ1µjrQ| y
pnQµjry¢®³¯Ë-WppÅro{¤ År~rQpÅoµjr½{¤oµj»U|rq rQyÅry»·£} g{*rq oyÅy<xQq»ÑÆU|ryqJ£}xqoxq rq ¢|
qr³<}|o 3rQyyzLyznQprQy±rqp¢o{¤ U|xQyQUyz»·p|µ·rq ry±{Wy<rQyĹÀ}gz»·}orqµ¶y3}|}F¹À}oz»·}rQµ·y|
yzynqpr}o}|½rqoq} r/o{}yyrQ rQy}|»jµ¶yr+Ã*{¤µ·»¶{*»jW½yz| µ·r%pnqµ·ro{W»jÃL»jzxQy>»ÑÈ1q»jµ·rQyprQrq
rQF|»jµ·»¶yz{}Wµ·rQy±¹É{W»·µj»jzxy±r/y »·{}£}r>}Ê<rQ rQy±o{} ±µ¶{¢µj|oo{¤ z3rQy/¯ËÁ {¤gy±qr/ {}gW Wo}|oy
xQ »·Ã}}gyu®³¯(®³l/Y|#¹À {¤prq¸±} ¿rz {¤oy¹À} p¼{*»jW_rpnqµ·rQy+<rq prz{¤U{¤oµj»U|rq
rQyp¼{¤o»j|oµ·{¤z»·}oy}pµ·r~ry|+pnqµ·rJ®>R¯ËÁb°Äryp¼{¤»·|µ¶{*»jWoyYyz}U(rq~Lo z»·pxQyYq}pprËrQy
q}p<Wyz»Ñ»jWoy${¤µ·£}xqo z»U|rQy$r±z {¤gy¹ÀW zp¼{*»jWoy6xqµ·xqprqU{¤»· zry xq»jÆoxQrQyQÁ(´Ëµ·µjryz}UËWo±r~LzrQoy»·µ·rQy
{}|z {bÃ}rQ yËrQyËpxq{¤o»·yzprQyJqµ·{Wyzyz»W|orQyyËmxq »Ñ{¤£Wrr3{}£}£W zxQ£W{*»jWYÁY$}|o J»·µjµ·|oyz rq Jµ »jUzxQ "!q±r
o¤z r1{¤o zmrWo}|oypÅWUz }oy%q}pprqUµ·rFpnqµ·rF®³¯ |r{¤µ·»¶q{*»jWÐ zxQo{¤ zz»·r¼<rq|
!qz r+{¤|}p¼{*»#U|rQpÅrQU± {}oy¹À} pÅx/rQ|yzynqpr+r/z {¤gy»jz»·}oy±xqz»W|orzxQrQy{¤Æo!z r/Ã*{¤µ·»·x
g{¤ ry3}|»jµ¶y{bÃ*{¤oqxQyr/Ã*{¤µ·»·o{*z»·}½r+ ¤}µ·rQyQÁ
$4× ¨§ Õ «% ¬ Î {¤prq¸±} ¿y3³ »·rqUzx³rqQ®>R¯Ëol {}oy¹À} p{¤z»·}YLÚË{}µj»¶{*»jW
5
76 '*)%" '*)+"-,.% ,.% +)% )%' ,.)¼&
8:9;8 <>=@?BADC#EGF7HJI;KML3F0NJOQPSRTK$KMFUCWV:XZY[V\TF]K;I$^G_!^TVCa`C#I;V3^THcb
²»joqr¢»j/¸±{Wy>y{¤g{¤ »dqrQU½mr1u :»jDsQWULd®>R¯`mo{Wy><rqrQRWR»jy³¸±{bzgrWpÅr{¤µ¶yz
{ef'gh)1y{}o{} {Wyyz|<} z¹À} »jy>»·{}£} {¤pp¼{*z»¶³¤{*z»·}gy»j½WrQ¾Ù} »jrQWrQpLrqµ·»j£
L}µ¶y+¿}rQrqoy+£W z*¸»·£gÁ1ÌÙy|oyrF¸»jµ·µJ {¤£WrŹÀ zWp o{Wy»¶1{¤oµj»¶q{¤z»·}oyu¹ÀW %<rq yWo{¤µJq}p|rq y/z
µ¶{¤ £}ru{¤oWpµjrq~yz¤¹º¸3{¤ r}Á$l3m»·yyz<rQ z|op¤¹$®>¯Y¾Aprqµ·»dQ{¤oµjr/yyzrQpy3¸»·µ·µ£} *¸]|¸»jzm
mrur~LÄo z}rQrQ¼ rqµ·rQ{WyryË}¹zmru¤{*»jWYÁ-Î} ±r~{}pÅoµjrW}¹À|| r³rq~Urqoyz»·}oyJzzmr/®>¯_¸»·µjµ
q*Ã}rQ J rQ{¤µj¾Az»·pÅrWUymr|µ·»j£Å{¤o1grQ ¹ÀW zp¼{¤grji·s}slkÙL} ±rqUzrQ zo z»¶yru»¶y z»·|rQ1WrQ±q}p|»j£
É´
+°SijsnmkÁÌÙ%»·y%µj»·¿}rQµjmo{*%yz|om{}»jz»·}gy/zzmor1®>¯Ï¸»·µjµËo|oymÐry»·£}orq y>½|oyr¼»j/¹À}
rQÃ}rQµ¶{¤ £}rQ Q{¤gFp} r+ »Ñ»·Q{¤µYyz¤¹º¸3{¤ r}Á
8:9-o pqV3YsrSKMF0tuHV3X$Cjvq`wN#F7^GF]F]\THxL `K;I$\G` C#IMV3^y`^T\zCaF]HC
®>¹À} zz|oo{*rqµ·}dr~LzrQo»·£1mrŤ{*z»·}R¸»jµ·µ$¤ugry|ȼq»jrQU³F»·pÅo z*ÃWr+zmr U|o{¤µ·»j}¹Jy|gm
µ¶{¤ £}rW»¶yz »j|zrQÐyzyrqp¼yQÁÌÍgrqr-»·yz »·|zr yzLyzrQp¼y+ {}»·yzrzmorq»· *¸»·yyz|rQyQ6|r1zmr
q}pµ·r~»j¤¹3zmorq»· WpÅp¢|»¶q{¤z»·}#pÅrmo{¤o»·yzp¼y{%»·#zmrq{}yzr¤¹{}yzLom }W|oy/}pp¢|»¶q{*¾
»jWoyQpÅryzy{¤£WrQy±p¼{b1<r+rqÃWrq rqµ·»·Ã}rq rQY {Wr+Wo»jz»·}oy3W 3rQ{}µj¿y3p¼{b¼mo{¤<rq(ÁjÁ·Á
l3mr/ rqµ·»·{}»·µj»j¤¹(mrQyzru»jUz »·oy»¶q{}µjµ·1Wo|o z rqU±yzyrqp¼y3q{}F<rurQmo{}or1¸»jzmzmr/|oyzr³}¹
¹ÀW zp¼{}µ¤zrm»U|rQyQ*y|om%{WyYprqµj¾ÍmrQ¿L»·£oby»·p|oµ·{¤z»·}+} (zry6£}rqorq {*z»·}(Á(l3m»¶y(»¶yYo{} »·q|µ¶{¤ µj
z|or-¹À} (zrqµ·rQq}pp|o»·Q{*»jW%yyzrqp¼yQ*{WWr~LYmo{*6mo{}y(grQrq%¸»¶rqµ·ur~µ·} rQu¹À} 6yrQÃ}rQ {}µ¤}r{¤ y
{}o1£U{bÃ}ro»j zzmzy{¤oo{¤ »|dQrQ1Îo} p¼{¤µ ryzq z»·z»·}l(rm»U|rQy ÉÎ l±{¤o{}yyq»·{¤zrQÅL}µ¶yqÁ
l3morq rÅ»¶y/}LÃL»·}|oyzµj{µ¶{}¿»·#zmr¼®>R¯Ï¹À} %yz»jp»·µ·{} /q}oqrqyq{¤o_zmorÅ»·UzrQ£} {*z»·}_¤¹3{¤µ· zr{}
rq~»·yz»·£#Ãb{}µj»¶{¤z»·}DzrQmo»#U|ry»jU_mr®>¯ »¶y}¼{}`r{}yz LqrQyyqÁÏl3m»¶y»·yp¼{¤»·µ·`|r
Fmr¢¹É{}yuzmo{¤/Î l4W ³Æ+¸±rqµ·µ$»jUzzmorÅWrQ¾Ù} »jrQUzrQq}oqrqyu¤¹Ëmr¼®>¯J<mg{bÃ}r¢{
yzrQrq µ·rQ{} zo»j£_| Ã}rF{}o»·pÅ<WyzrF rQyz »¶z»·}gy+zRzmrpLrqµ º¹À} År~{}pÅoµjrWmr½yrQp{}Uz»¶qy%}¹
q}pp|o»·Q{*»jWF»·½Î lN»·y3}¹ºzrq½ rQyz »·zr Á
l3m»¶y³»·y>¸mU¸±r{}ÃWq{*ru¹À} mr|gyr%}¹Ë®>¯D{}y{¹ÀW zp¼{}µ(µ¶{¤£W|o{¤£Wr}Á>¹-q}| yzr}o¸±r%p¢|oy
¿WrqrQ»jp»·omo{*³zmrÅ®>¯`»·y³}u{}y¹À} p¼{¤µ·»|dQrQ{}y³Î l/{¤g½Æo y>»jyuyzrqp¼{¤Uz»¶qy>mo{}y>zgr
rQ¹À} r³zrQoy|o zr-prqµ¶y(Q{¤+<rËÃ*{¤µ·»·o{*zr+{¤ourQyzrÁ±|$®>¯¼mg{}y(yz}prËyz }£{WÃ*{¤U{}£}ry
{ }
»Ñy}{*»jW»¶yÃWrq ¼r~ rQyy»·Ã}rW
}
»Ñ»¶y{}u {}}rQy{¤o{} Y
}
»Ñ±mo{}y±yz}pr>yz|<} z˹À} ±»·yz »·|zr1yzLyzrQp¼y Ç{}yzUgm zW}|gy-q{¤µ·µ¶yqLrqoµj*LprqUÄ»¶{¤£W {}pž
yqÁ·Á·Á
}
yWprug{¤ zy3¤¹6zmor%®>¯#mo{bÃWr³mrq»· yzrqp¼{¤Uz»¶qyrÆorÁ
l3mor+Ãb{}µj»¶{¤z»·}¤¹-y}¹º¸±{} zr/ymo}|µ¶¤<r%yrQrq½{}y{Å¿L»·o¤¹0~<Wy¾Ùmo{Wyr³»jmrrQÃ}rqµ·}opÅrQU
o zryzyQb|$ {¤zmrQ {Wy{³}U»jL|W|oy{W»jÃL»j³mo{*6mo{}y»jy6 zL}y»j+mr±rQ{¤ µ·/yz<rQ»jÆgQ{*z»·}mo{}yzrQy
{}oo|»jµ¶yu£} {}|o{¤µ·µjW<¹À}µ·µj*¸»·£1mr zrqÆorQpÅrQUu ryzyQÁ+l3m»·yu»¶y+{¤}zmrQ ³<}»·Uu»·_¹É{bÃ}} ³¤¹Ä{
¹ÀW zp¼{}µj»dQ{¤z»·}Ф¹>®³¯:{6mrÃ*{}µj»¶{*»jWл·y{Wm»jrQÃ}ro{¤ zzµ·#zm }|£Wmz {}qrQ{¤o»jµ·»Ñ#<r¸±rqrq`zmr
rÆgrQprQµ·yQÁ²L|omR{Fz {}qrQ{}»jµ·»j rU|»· zrymo{*+{1 rÆgrQprQµ${}omrÅpÅrQµ$»Ñ+rq »·Ã}rQy
¹À }p Q{¤ <r}po{} zrU{йÀW zp¼{¤µ·»dQ{*»jW]»·ymr¸±{bDzÏ *Ã}r¸±`prQµ·y rorFmrÐyz{}pr
yz<rQ»jÆgQ{*z»·}(Á$l3moruor~L>yrq»·y±mr+£}rQrq {¤µ·»dQ{*»jW1¤¹$y|gmF {WrQ{}»·µj»j¼µj»·¿y3»·W rQ ±z|»·µ·
µ·»· {} z»·rQy%¤¹£}rQrq »·prQµËz {¤gy¹ÀW zp¼{*»jWoy/mo{*¢Q{¤Ð<rF *Ã}rQrU|»·Ãb{}µjrQU%¹À} { zrqÆorqprQW
rqµ¶{*»jWoyzm»j(Á
8:9 <>=@? I;^yCaV V3K;HA/v ET`C! H P F]ETI$^T\yC#EGF7^GV:CJ` C#IMV ^ b
l3morµ·{W¿¤¹d¹ÀW zp¼{¤µ·»dQ{*»jW¢»·zmor>®>¯½»·pµ·»jry˸±rQ{¤¿LryzyzrQy$»·1|o z rqU$zL}µ¶yQ}¸m»¶m¼pWyˤ¹dzmr
»jpr3µ·»jp»j-zmrQpyzrqµ·Ã}ryzug*¸±rq z¹À|µL£} {¤mo»·Q{¤µLrQ»jzW y¸»jzmp¼{¤L+grQµjµ¶y-{¤g¸m»¶yzµ·rQyQ*|Ë<rqmo{bÃWr
<L} µj»jmr rQyy$¤¹{¤|z}p¼{¤z»·£%yWpro{¤»·¹À|µo{}orq } z¾A }orË{Wy¿yQ¤µ·rÄ{}µjWr3Ãb{}µj»¶{¤z»·}YÁ
°Är£WrqrQ {¤zW y${¤ r£}L¢r~{¤pµ·rQy{Ymr>y{*»·o{¤ zˤ¹<zmr>¤{*z»·}»¶y-¤¹ºrq¼¸±rqµ·µÑ¾Ù|orq yU
{}opWy+zL}µ¶y{}µjµ·*¸¹À} +mrF£WrqrQ {¤z»·}#¤¹µ¶{}yy%yz¿}rqµ·r}oy+¹À zWp qµ·{Wyzy%»·{}£} {¤p¼yqÁ½l3mrQÐ»Ñ y
}¹ºzrQÅ|oz/zmor }£} {¤pprq ɸÄrQ{¤ Jy<rQ{}¿mrQ zr}¹d{+rQyz»j£Wrq #"+%p¼{¤L|o{}µjµ·+Æoµ·µo»·Åzmr£U{¤oy
¸»jzm_mo{¤gL¾A¸ »jzrQ_qLr£Wr+{q}pµ·rzr{¤gRyz}pr»jprQyu |»·£ }£} {¤p½Á$_rÅm»jo¿zmr
}µ·r+¤¹$UWµ·y>ymW|µ¶½¤><rµ·»·pÅ»jzr½z¼morqµ·zmr¢rQyz»j£Wrq >»jmr%»·pµjrQprqU{¤z»·}mo{Wyr¤¹$zmr
rqÃ}rQµjWprqUJ ryzyQWo|Ä<rzzrq {Wyzyz»·yÄmo»jp| »·£%mr³¸mo}µ·r³yz¤¹º¸3{¤ r>rqÃWrqµ·}prQW±µ·r}Á
²LWpr½°±³²´zLWµ·y¢rQ»jzW y¢mo{bÃWr1 zrW£}»dqrRmrrqry%¹ÀW ¢pW zrF{}|zWp¼{*z»·}Dq{¤g{¤»·µj»jz»·rQy
{}o_ z*ÃL»¶ryWpÅry »j»jo£½Q{¤o{}»·µj»jz»·rQy/»·Rmrq»· %yz¤¹º¸3{¤ r}Á¢l3mo»·y+{}µjµ·*¸y³¹À} +o{Wy»¶WgrQ {¤z»·}oy
W1prqµ¶yÄyz|om{}y±{}»·£Å{%prm¼z¢p¼{¤L¼µ¶{}yyryqÁ$±|±»jy»jµ·µd zrQp{}»jgyJ»jÈ1|µj3zrq~ zryzy
q}pµ·r~FWgrQ {¤z»·}oy3yz|om½{}y±zmor%{¤µ·»¶q{*»jW}¹6{¼ry»·£}¾Ao{¤rq 1z1{ÅprqµAÁ
l3mr+mW»·qr>}¹6{¤o¤zmorq 3yzq z»·z»·£Åµ·{}£}|g{¤£}r>¸ÄW|µ·F¤3mrQµjzmo{¤p|om L»j»·y±}3Wµ·1{µ¶{¤¾
£W|o{¤£WrÄo zWµjrQp½}|±{¤µ¶y+{/Woy»¶yzrqgo zWµjrQp/{(rqÃWrqÅ»jmrq{Wyr3}¹d{}ÅrQµjrQprqU{} z%WgrQ {¤z»·}Y
mrq r>»¶y±pr{¤oyJzÅmrQ¿Å¹À} Äzmor³Ã*{¤µ·»¶»Ñ}¹y|gmF{+ {}oy¹ÀW zp¼{¤z»·}YÁ6Wy±}¹zmr³z»·pr}UzLWµ·y
{}µjµ·*¸D{}L}<rq {*»jW%<rgrQ ¹ÀW zpr¢W¼{/pÅrQµÇU *ÃL»·r%mr rQyz|µjJ»·yJyLU{Wz»¶q{}µjµ·q} zrQÁ
%>¼yrQp{}Uz»¶qymr¿Ly3Q{¤gr+<rq z¹À} prQo¢ {Wr{¤»·µj»j¹À }pmr+} »j£W»jg{¤µdpLrqµY»¶y3 zr{¤µ·»|dQrQÁ
ÌÍzm»¶yo{}grQ QL¸±r+rQy »j<r/®>¯®>l/o{¹À zrQrqµ·F{bÃ*{¤»·µ·{}µ·ru®³¯_z {¤oy¹À} p¼{*z»·}1¹À {}pÅrQ¸ÄW z¿
{}µjµ·*¸»·£>Wpµjrq~+p{}»·|µ¶{*z»·}gyY³<r±{}µ·»jr+³{u®>¯pLrqµÇ²Lr»jW'&Ál3mryr±p¼{¤»·|µ¶{*¾
»jWoy±{¤ r>r~ rQyyzrQ1{WyÄ{}µj£Wrq {¤»¶WpÅ<Wyz»jz»·}oyĤ¹( rq»jÆor¼rqµ·rqprqU{¤ ¢ {}oy¹À} p{¤z»·}oy DzLr»jW
Ál3mrQ#{} zr¼mL|oy%WgrQzrq~Urqoyz»·}oy%zm }|£Wm»jmorq »Ñ{¤oqrF{¤oÐ{}£}£W zrQ£W{*»jWYÁl»·µjµ·|oyz {*zr
mrF»·UzrQ zry%}¹}| {} W{WmY(¸±rFyzm*¸ DzLrz»·} +m*¸zmorFprqµ±¤¹{¤ ®³¯ »·yz »jo|zr
{}µ·»·Q{*»jWFq{}F<r/{}|zWp¼{*z»¶q{}µjµ·Åz {¤oy¹À} prQ¼»·Uz{µ¶{¤<rqµ·rQFz {¤gy»jz»·}FyzyrqpÃ*{¤µ·»¶{*rQ1|gy¾
»·£{WÃ*{¤oqrQÅ ¤Lq}µgÃb{}µj»¶{¤z»·}Åzrm}µ·}£W}Á$l3mrq¼¸±r>q}oqµj|or}mr<rq y<rQz»·Ã}rQyJ}<rq¼L
m»¶y{¤o zU{}m A²LrQz»·}Á
(
½ ±q ("6&'*)+"$,.+)% 'b"6,.32)+"5
®³¯(®³l »·yÅ{½UWµ±rQ»¶q{¤zrQÐzmrp¼{}»jo|µ·{¤z»·}Ð}¹>®>¯ pÅrQµ·yQÁRÌÙÅmo{}y%zmr½{¤o»jµ·»Ñ_z
»·pgW Å{¤o#r~<} zprqµ±rQy »jz»·}oy+»·ÐÃ*{¤ »jW|oyu¹À} p¼{*yqÁ½l3mr¼¹É{W%mo{*»jy{bÃ*{}»jµ¶{¤µ·rŹÀ}
¹À rqr_{¤o]yz}pr}¹+zmr¿L*¸¹ÀW zp¼{¤yF{} zr¸±rqµ·µj¾Ùq|prqUzr]{¤o)*} Fy{}o{} »dqr Éyz|om {}y
° Ìαo{¤g+*uÌJ»·zmru¹À|| zr ±rqoyz| rQyÄzmg{*}|o ÄL}µ»¶y3}<rq½{¤o zr{}¹ÀW grQ»jo£Å»·UzrQ£} {*zr
{Wy{_g{}¿L£} }|gÐ LqrQyyW ¢»·Ï¤zmorq ¼<}|µ¶{¤ prqµ·rq yQÁDÌÙ1q{}Ï{}µ·yz#¸ÄW z¿ {WyÅ{y{}o{¤µ·}or
{}µ·»·Q{*»jW »·Ã}rqL{ÅgW {¤µ·r/®Ì±|»·µÑ¸»jzmU{bÃ*{¢{}ozmr²L¸»·£µ·»j {¤ »·rQyQÁ
o9;8 F]^TF0N#`K ` N&ETIMCaFC#RGN#F
®³¯(®³l »·yu{1£WrqrQ z»¶/¹À {¤prq¸±} ¿q}p<WyzrQ}¹J{FW zrrq£W»jr¢¸m»¶mRWpÅp¢|»¶q{¤zrQy>¸»ÑmR»jy
yz| zW|o»·£Uy+ÃL»·{ #) e%#)% À»AÁrWÁjÁ»·Wrq z¹É{}qrQy$¸mrq r1¹À|oo»jWo{¤µ±pL|µjryq{¤Ð<rµj|o£}£}rл·
W rq uzyzgr»¶{¤µ·»|dQr¢mrgrQmo{bÃL»jW uz½prqryz<rQ»jÆg rU|»· zrQprqUy ÉyzrqrÅÆo£W| rs Á1²L}pr rQ{}W¾
¤¾Ù|oyzruoµj|£}¾A»·oy{}µj rQ{W¼r~»¶y{¤g{} zr/ *ÃL»·r1¸»jzmzmor/zL}µ{$zmrQF*ÃWrq 3Ã*{¤ »jW|oyÄzW»·Qyy|gm
{Wy>qLr¾Ù£}rqorq {*z»·}{Wy<rQy É´Ë»jÊ<rQµ6W U{bÃ*{ dWpp|»¶q{¤z»·}oyÃU»¶{1»·UzrQ mo{}£}r/¹ÀW zp¼{¤ A° ÌÎ
W + ¯YW uz {¤oy¹À} p¼{*z»·}gy>}¹Äprqµ¶y/rQ»¶q{¤zrmr¼Ã*{¤µ·»·o{*z»·}_¤¹3»·yz »·|zrR rQ{W»jÃWr
yzyrqp¼yQÁ
1 *
*
1
"!#$&%')(+*,-./
0)132465
UML meta-model
Implementation Framework
Outil commercial Java/Eiffel/C(++) Outil commercial Commercial Tool
Outil commercial Commercial Tool
Validation Framework
78:9<;>=
Outil commercial GUI (Java)
UMLAUT Protocol
BDL
extension Outil commercial BDL <->
(MSC/Statecharts)
UMLAUT Protocol
Î6»·£}| rsj{Ë®³¯(®³l?> m»jzr| zr
o9-o pqV:N#F F]^G_3I$^GF
Â3{Wy»¶q{}µjµ·}<zmor®³¯(®³l:°ÄW zr¢´Ë£}»·r»¶yu{yzr/¤¹±q}µ·µ·{}gW {¤z»·Ã}rqµ·{WyzyzrQy>zmg{*+»jpµ·rqprQWyuzmr
®³¯ prq{*¾ÙprqµA{}yurQy »j<rQ»j0ikÙÁ/l3m»·yupr{*¾ÙpLrqµ6»·yurÆgrQR¸»Ñm_{1yzr/¤¹J®³¯Dqµ·{Wyzy
»·{}£} {¤p¼yqL¸m»¶m½}U{¤»·qµ·{WyzyzrQy3{¤g{Wyzyz»¶{*z»·}gyÄ<r¸±rqrQzmryr+µ¶{}yyzrQyQÁ
ÌÙ»·yFrQ{}yzDz`r|oqrR{ yz»jpµ·rRrR£}rqorq {*zW ¹À} y|omH{`y{*z»¶prqµ {_zmr#®>¯qµ·{WyzyzrQy
»·pprQ»¶{*rqµ·_p¼{¤`»jUz_{yrq¢}¹3´J»ÑÊdrqµµ¶{}yyzrQyQÁ½l3mor{}yyzLq»·{¤z»·}oy/p¼{}лjUz#{*zz »j|zrQy¸m»¶m
q}U{}»j{¤1WrQÄ} 3{q}µ·µjr»jW1¤¹YWrQyQUrQgrQo»·£Å}1mr>p¢|µjz»·µj»¶»j¼¤¹(zmr/{}yyq»·{¤z»·}
rQoyQÁËl3mru¹À}µ·µj*¸»·£r~{}pÅoµjr/m»·£}mµ·»·£}mUy±m»·y3o zryzy{
}
{¤»joy{}oru¤¹${¢qµ·{Wyzy@?>ABCEDGFHJIJFKJL%¸»·µjµd<r+ rQ{*rQ zrQ zryrQU±{¢${W¿*{¤£}r>»j½{prQµÇÁ
}
zmr{Wyzyz»¶{*»jW JL ¹À }p DRz A L _¸»jµ·µr~o{}oÏ»jUzÐ{}
{*zz »j|zr JL »·qµ·{Wyzy ?>AB>CEDJFHJIGFK L¢¤¹6Lgr
HEBGBJLH &?AB>CEA GLGBC LBJL AGL !<{¤guq}LÃ}rQ yzrqµ·{¤+{¤z »·|zr#"±}¹WL<r ?>AGB>CEDGFH IGFKJL
»jqµ·{Wyzy ?>AB>C A GLBCELBJLGAJL dÁ
>¹±}|o yzr}yz}pr¢»jÊdrq rqU+»jpµ·rqprqU{*z»·}gyu{} zr¢gUyzyz»·µjrWYy|gmR{}yu}ormo{*/¸ÄW|µ¶ rq»j¹À{}yy}¾
q»·{¤z»·}oygrq¸ÄrQrqD}ryÅ{}yz |r}ryQ-»·oyrQ{WФ¹>|gy»·£R r¹ÀrQ zrQory%¸m»¶m`{} zrµ·|p¼y#z
p¼{}»jU{}»j À<rQQ{¤|oyzruzmr/¸±} p} rurqoy»j{¤½{}yyzLq»·{¤z»·}p|oygr+|o<{¤zrq}oyz»¶yrqUzµ· Á
l3mr1mo}»¶r¤¹{½y<rQq»ÑÆgprq{*¾Ùprqµ-»·pµjrQprqU{¤z»·}»·y/o¤% rQ{¤µ·µ·{½ zWµ·rqp½(yz»joqr¼}|
L}µË»¶yQ{¤o{}µjr¼}¹ zr{}»·£prqµ±rQy »jz»·} É{}o#zmL|oy»Ñ¢Q{¤ rQ{}_mrF¸mWµjr1®³¯]pr{*¾
prQµÇ¸m»¶mRrq~ zryzyzrQy³»jyzrqµj¹Ä»·_®>R¯ Y{}o£WrqrQ {¤z»·£1mr¼{}r U|o{*r´Ë»jÊ<rQµËrWÁl3mrŸ±{b
¼rQ{}µ¸»Ñm{}yy»¶{*»jWoyÄ»·y$|gy>{Åp¼{*zzrq }¹$yz<rQ»¶{¤µ·»dq»·£Åzmr/£}rQrq {*} Á
±|³zmr1°Ä} r+´Ë£W»jr¢»·y³p} r+zmg{¤R{¼ rq<Wyz»jz} 1¹ÀW >rQµjrQpÅrQUy³»jR{FpLrqµAÁu³or¢{1prqµ
mg{}y-<rqrQŵ·W{WrQY}»jJµj»·Ã}ry-»·ÅprQpÅW zÅ{}yË{}¼oyz {}IJLLW{*~l( rqrWÁ$²LWpr|z»·µj»jz»·rQyÄ{¤o¢UWµ·yJ{¤ r
{bÃ*{}»jµ¶{¤µ·r-³r{}yzr-zmr±|»·µ¶»jo£³}¹oµ·|£¤¾Ù»jgyqbL/ z*ÃL»¶»·£³yzgr»jÆg-¹À|oo»jWoy¹À} zmr±p¼{¤»·|µ¶{*»jW
}¹Äm»¶y%oyz {}²LLW{*~l( rqrWÁ1Î} +rq~{¤pµ·r}(»j%¤Êdrq y+{½m»·rq {¤ mL}¹%$n%+()" j%+ e6#-h"+#%
¸mo»·m/»·pÅoµjrQpÅrQU6»jÊ<rQ zrQUz {bÃ}rq y{¤µ*y {¤zrQ£}»·rQy}¹L{prQµÇÁ6 r-£WrqrQ {¤z} »¶y({yz<rQ»¶{¤µ·»dQ{*»jW
}¹${}{}oyz {}&GC H GL+C K LGL'GF '+¸m»¶m*ÃWrq z»¶ryJ|»jµ·»jz»·rQyprqzmyyz|om½{}y($n%+(*),g|Q%l%%}
$n%+(*),) #"$)gÁ
+ 01"$,.324)+"65 '*)+" 16),./-, #"$%&('*)+"-,./)!)'
,.)¼q&
®>¯prqµ/Woy»¶yy1}¹{ µ¶{¤ £}rq}µ·µjrz»·} ¤¹%prqµ·»jo£`rqU»Ñ»jryqÁÌÍH} rq Fz`¹É{}»·µ·»Ñ{*zr
mr¼ {}oy¹ÀW zp¼{¤z»·}#¤¹y|gm{pÅrQµÇ$¸±r¼ }<Wyzr1{¤}rW z»·rqUrQ_¹À {}prq¸±} ¿zmo{¤¢{¤|z¤¾
p¼{¤zrQy1zmrzrQ»jW|oy¼{}yz¿Ly1»jLÃ}WµjÃWrQϸ»jzm yz|omH{#z {¤gy¹ÀW zp¼{*»jWYÁ $_r_ zWgUyr½mr|oyzr}¹+{
p»j~rQD}r¾Ù} »·rqUzr {¤o`¹À|oz»·}o{}µ }£} {¤pp»·£Ro{} {W»·£}p zÐrQÃ}rqµ·}Ï{# zrQ|oyz{}µ·rFUWµÑ¾
<b~¼¤¹Y {}oy¹À} p{¤z»·}¼WgrQ {¤z} yQÁl3mr³¹À|oz»·}o{}µ<g{¤ {}»·£}p mo{WyÄ{Åy zW£%W z»·rqU{¤z»·}¼*¸±{} oy
£WrqrQ z»¶Fq}p<Wyz»Ñ»jW ¤¹>WgrQ {¤zW y+¸mo»jµ·r{¤ WrQ¾Ù} »jrQWrQ *ÃL»·rQyÅ{¤ »·Uz|»jz»·Ã}rr~LzrQoyz»jW
prmo{¤»¶yzpÃL»·{/»·mrQ z»j{}or{¤gÅ{}£}£W zrQ£W{*»jWYÁÌͼ£}rQrq {¤µAbz {¤gy¹ÀW zp¼{*»jW¢»·LÃ}WµjÃWrQy¸Ä+»¶yz»·o¾
u}<rq {*»jWoyqÁÎ6»· yQ<mr¢q}µ·µjrz»·}}¹Ëpr{¤¾AprQµrQµjrQpÅrQUy»·_{1£}»·Ã}rq®³¯ prQµrQrQy>z
<r {bÃWrq yrÁ | »jo£+z {bÃ}rQ y{¤µA}{+£W»jÃWrq1yzrÄ}¹Ypr{¤¾AprQµorqµ·rqprQWyËmo{*3W¹À} p¼y-z¢{%£}»·Ã}rQ
q z»jzrQ z»·}»·y>yrQµjrzr{}o½{¢z {¤oy¹À} p¼{*z»·}F}<rq {*zW {¤µ·»·rQz»jQÁ
9;8 .jCaF0N#` C#I;^G_s= V\GF]K0/KMFY[F^3C#H
´Ä{}m®>R¯ prqµ6»·y>p¼{}r¢|¤¹Ë{}»jgy{¤oqr%¤¹J{1q}µ·µjr»jW¤¹-pr{¤¾Ùqµ·{WyzyzrQy¹À zWp mrpr{*¾
prQµ-iQkÙÁ#l3m»¶y¢pÅrq{¤¾Ùqµ·{Wyzy¢}µ·µ·rQ»jW¹À} p¼y¢{_}pµ·r~rq¸ÄW z¿#¤¹>{Wyzyz»¶{*z»·}gy%{¤p}o£}r
{}¤mrq Áp}£#{¤µ·µ±zmryr{}yy»¶{*»jWoyQ6¸±r½{¤ r1o{¤ zz»¶|oµ·{} zµ·_»·UzrQ zryrQ »· mr½}p<Wyz»Ñ»jW
rqµ¶{*»jW½¤¹-zmorQyzrpr{*¾ÙpÅrQµ(rQµjrQpÅrQUyQÁ>l3m»¶y³q}pgUy»jz»·} rqµ¶{*»jW¹À} py³{Fyzo{¤o»jo£¼z rqr%}¹
{}µjµd®>R¯_prq{*¾Ùprqµ<rqµ·rqprqUyÄ»·1mrupÅrQµÇÁ-ÌÍFzmr³z {¤gy¹ÀW zp¼{*»jW¹À {}prq¸±} ¿<W¸Är/{¤oµj¼{}
»jzrQ {¤zW -*Ã}rq $m»¶yJyzo{¤o»j£%yz |oz| r3z+ |oqr>{G~µ·»·rQ{} Myr W|orqoqr¤¹pr{¤¾AprQµrqµ·rqprqUyqÁ
visit order:
visit(1) visit(2) visit(4) visit(3) 3
4 2
1
4. visit(3) 3. visit(4)
2. visit(2) 1. visit(1)
Î6»j£W| r &#{ rQzm¾AÆo y {bÃWrq yz{}µg}¹ÌÙrq {*zW
l3mor~µ·»·rQ{} z»dQ{¤z»·}J-¤¹mrÄyzo{¤o»jo£z rqrJ{}µjµ·*¸y|oy(z³{¤µ·+y{¤oo{¤ ³µ·»¶y6 zqrQyy»·£3zrm»U|rQy
¹ÀW }| 3 {}oy¹À} p{¤z»·}YÁ
l`|grq y{¤oHm*¸ ¸Är/~µ·»jorQ{¤ »dqr+R{ yzo{}»·£ zrQr}»j»¶yrQqrQyyz{} z`z`¿L*¸ mo{*½}|
»jzrQ {¤zW Ë»jpµ·rqprQWyËmr%+()"%rQyz»j£W¼o{*zzrQ z0iökÙÁ-HL»¶q{}µo»jzrq {*} ˸»·µ·µJ~ÃL»·yz»Ñ;>{%£}»·Ã}rQ¼ zL}
oLr+¤¹6zmr%prq{*¾ÙprqµYyzo{¤o»jo£z rqr}o¸m»·m½»·z| zr U|rQy3zmr%»jzrQ {¤zW Ä ~ÃL»¶y»jM+»jyyz|¾
oLrQyQÁ$l3mo»·y± rQyyÄ»·y3 rq<rQ{¤zrQF zr| yz»jÃWrqµ·}L}pµ·rrqµ·z {bÃ}rQ yz»jo£/zmr+yzo{¤o»j£yz |o| zru»·
rqm¾ÇÆg y} rq Éyzrqr/Æg£}| r &Á
$#rry»·£}rFW| »jzrq {*} 3¼gr% »·Ã}rqr~Lrq o{¤µ·µjW{¤µ·µj*¸»·£}|o 3z {¤oy¹À} p¼{*z»·}}<rq {*} y
~zyrQr+/zmr%»jzrQ {¤zW >{}y> z*ÃL»¶»·£¼{ ~µ·»·rQ{} M%yr U|rqoqr+¤¹ËrQµjrQpÅrQUyQÁ³gr%¸±r+mo{bÃ}rT~ÃL»j zz|g{¤µ·µj
µ·»·rQ{} z»dqr¼}| 3pr{*¾ÙpLrqµd»jgy{¤oqr}L¸Är+Q{¤Fo zrQrQ¼¸»jzmzmor/rQy »j»jWF}¹Yzmru {}oy¹ÀW zp¼{¤¾
»jWWgrQ {¤z»·}»ÑyrQµÑ¹Á
9-o N#`^SHXlV:N Y[` C#IMV ^y< HJI$^G_ ^ rTrSK$I ` C#IhL3F rTrTN&V:` &E
³|o Y»jUrqUz»·}%»¶y>{}o zryzyzmrÄ zWµ·rqpN¤¹ *ÃU»¶»·£{prQmg{¤»¶yp?zmg{*6yzrqg{¤ {*zry<zmr±WorQ zoy
}¹or~»·µj rQq}po»j»·£½ {}oy¹ÀW zp¼{¤z»·}}<rq {*»jWoy%{¤g#zmrQ»j {¤µ·£}W z»jzmp»¶¼r{¤»·µ·yQÁ $#rFmo{bÃWr
»¶rQW»ÑÆgrQ+m rqr3{*~rQy} ${}yzgryY>m»·y$o zWµjrQpN¾dÌÙrq {*»jW%¤¹g®³¯pÅrQµ·yQ¤l3mr±p¼{¤»·|µ¶{*»jW
WgrQ {¤z»·}oyQo{}ozmr¢ }µ·rqp ¤¹ orq~L»·µ·{}o½£}rQrq »¶q{¤µ·µ·WpgUy»·£zmorQyzr}<rq {*»jWoyQÁ±l3mryr
£WW{}µ·y{} zr+»·µ·»jr¸»Ñmp¼{¤¿L»jo£1®>¯®>l {<*¸ÄrQ ¹À|µ(zL}µ(¹À} p¼{}»jo|µ·{¤z»·£F®³¯Ðprqµ¶yqÁ
qµjUyrŵ·UW¿R{*/mr¹À|oz»·}o{}µ- zW£} {¤pp»jo£o{} {W»·£}p *ÃL»·ry³{}»jUzrQ zry»jo£<rq y<rQz»·Ã}rÅz
W| }µ·rqp¼yQÁ
ÌÍDzmr½WUzr~L¤¹mrzmrQ} Ф¹>µ·»¶yyi·s+kÙJ»jmg{}y¢grQrqym*¸`zmo{¤{}LÐ}<rq {*z»·}Dq{¤Dgr
rq~ zryzyzrQu{}yzmr±{¤µ·£}rqo {}»·6WpÅ<Wyz»jz»·}+¤¹{yzp¼{¤µ·µ¤L|p<rq ¤¹LgWµjLp} m»¶$}<rq {*»jWoyµ·»j¿Wr*, <
fh"1{}ox"$l &g qÁ¢l3mo»·yu»¶rQ{mo{}yu<rqrQ_rq~LoµjW»ÑrQ»·_zmr}rQ/} »·rqUzrRWUzr~L/L${Wmrq »·r
»·½m»¶y±zmry»¶yi·sbnkAÁ >r+ }<Wyzr>¼ zrQ»Ñ¹À1r{}m¤¹ *, < fh"Å{¤o "$l &gl+»·zmr%q}oyz |oz»·}¤¹6{
L}µ·gb~%}¹<{¤µ·£}rQ {¤»¶JWgrQ {¤z} y(¹À} -{¤Å}r-} »·rqUzr+¹À {¤prq¸±} ¿/¹À} $o{} {}µjµ·rqµWp|{¤z»·}0i·sQkAÁ
$#r/ }<Wyzr>Årq~LzrqgFmrQyzr/»·rQ{}yÄÅmg{¤oµ·ruzmr+WrQ¾Ù} »jrQUzrQy z|gz|o zry±rQy »j<rQL¼zmr
®³¯pr{*¾ÙpÅrQµÇÁ
ÌÍÐW| +z {¤gy¹ÀW zp¼{*»jWR¹À {¤prQ¸ÄW z¿dmr¼¹À|oo{¤prqU{}µÄ{}oy {W»jW_»¶y{¹À|gz»·}Ðp¼{}»·£oÁ
$#r%WorQz|g{¤µ·»|dQr/{¢¹À|gz»·}R{}y
¸m»¶m]rqÃ*{}µj|o{¤zryF{¤]WrQ1¤¹+L<r L»jrQµ·]{ zry|µjF}¹uL<rbÁ $#r_q{}]£}rQrq »·Q{¤µ·µj
q}p<Wyzr³»jÊ<rQ zrQU±¹À|oo»jWoy3{}y±µjW£{}yJzmrQ»j 3L<ruyz»j£Wo{*| rQyÄp{¤mYÁ$ÌÁr}Á-£W»jÃWrq {¤g
oL¸±r³Q{¤Fq}pgUyr
{}o½{WyË»·
½{WyJµ·}o£¢{}yJzmorLgru¤¹p{¤mryËmr³U<ru¤¹*Á
l3mo»·y>µjrqy³|oy£WrqrQ z»¶q{}µjµ·F|o»jµ¶Wpµjrq~ {}oy¹À} p{¤z»·}½}<rq {*»jWoyW|³}¹-yz»·pÅoµjrQ > »jp»jz»·Ã}ryqÁ
ÌÙ»¶y3»jgrq<rqorqU¤¹(mr+r{¤»·µ·y3}¹(¸mo{¤±mr/}<rq {*} 3LrQyQ} 3m*¸H»jLrQy±»ÑÁËl3mr/ zry|oµÑ»¶y±{
¹À {¤prQ¸ÄW z¿¤¹Ë }£W {}pÅp»·£¼¸mrQ zrÅ{1 }£W {}pÅprQ rQ{}µ·y³}µ·½¸»Ñmmr»·|/o{} {}pÅrqzrQ Qgzmr
{}µj£W} »Ñmp¤¹6zmor+}<rq {*z»·}(L{}o»Ñy zry|oµÑÁ
ÌÍmrz {¤oy¹À} p¼{*»jW_}¹3®³¯]prqµ¶yq¸Är¼¸»·µ·µJ¤¹ºrqÐWoyz»·rQ %Wµjµ·rQz»·}oy+}¹±prQµËrqµ·r¾
prQWyqÁÌÙ(¸±}|µ¶/grÄ {}»·Q{¤µ*<rÄ{¤oµjr->{¤oµj³zmor˹À|oz»·}o{}µ}WgrQ {¤z} yryzq z»·gr/ rqÃL»jW|oyzµj
W_»jÊdrq rqU³L<rQyu¤¹±}µ·µ·rQ»jWoy³¸m»jµ·rÅ zryrQ zÃL»·£1mrµ¶{}¿<b~L¾AorQyy g¤¹ËmrŹÀ|o»jWYÁl3mr
{} W{Wm¸Är¢{}¿}rÅ»·y³z|oyzrmr/*, }<rq {*zW QÁ+ÌÙ+»¶y/{F<}µ·LpÅW zom»·}<rq {*} ³zmo{¤/{}µ·»jryu{
¹À|oo»jWWUzrQ{WmrQµjrQpÅrQU¤¹-{µj»¶y>{}o zrqz| oy{µ·»·y¤¹$ rQyz|µÑrQµjrQpÅrQUyQÁJl3mr%rqÆo»jz»·}oy}¹
*1R»¶y
! " #%$&' )( *+,(-*.$
¸mrQ zr/( 0*Jrq}zry+{yzrU|rQor}¹Ärqµ·rqprQWy/¤¹ÄU<r1 <{¤g2 3 45$> rqo zryrQWy/{1¹À|gz»·}
¹À }p6 ¼7bÁJl3mL|oyQ¸Är%Q{¤ÃL»jrQ¸ mr{¤oµj»¶q{¤z»·}¤¹ *, _}{ŹÀ|gz»·}L»·rqµ¶y{ÅrQ¸ ¹À|gz»·}
mo{*¸±} ¿y3}yzrU|rqgrQy3»·oyzr{}¤¹-y»·£W|µ·{} rqUz»jz»·rQyQÁJ»AÁr}ÁJ»j¹& " 85$ÄzmrQ
)( 0*9
(:*;$ÁJl3mo»·y{}oyz {}»jWF¸±} ¿yJ¹ÀW >{¤L1£W»jÃWrq¹À|oz»·}{¤o rQyzrq Ã}ryÄzmr+£WrqrQ z»¶/}p<Wy{¤»·µ·»Ñ
rQy »j<rQ/r{¤ µj»·rq d¹ÀW Y¹À|oz»·}oyQÁu»·Ã}rQ/zmryrÄ{}Ã*{¤U{¤£}ryqQ¸ÄrJ»jpµ·rqprqUrQ+W| :*1{}oyz {}»jW
{Wyu»j#Æo£W| zrÁl3mrµ·¿Lyur{}mR rqo zryrQW+{½y<rQq»ÑÆ<¹À|oo»jWo{¤µË{}oy {W»jWYÁ¢>µ·U»·£
<
W7 À»AÁrWÁ&»·y±{¤1{} z£W|prqUËzzmr>¹À|oz»·}
ËU»·rqµ¶yÄ{%rQ¸H}p<Wyz»Ñr¹À|oz»·}
6{}y
<rq rqÆo»jz»·}¤¹
½{¤<*Ã}r}Á$l3mr/ rQyz|µÑ3»¶y±zmr/<}µ·UpW zmo»·³{¤oyz {}z»·}F}¹ {¤µ·7½¢rQÃ}rQ z
rQµjrQprqU»jzmoruµ·»¶y jÁË>o»Ñ>Q{¤gr%{}µ·»jr1¹ÀW {¤L7{}o{}L1µj»¶y3}¹6rQµjrQprqUy3}¹6W¹À} p»jo£
L<rQyQÁ
map:(a->b)->([a]->[b]) map f: [a]->[b]
f:a->b
Î6»·£}| ru&{Ë{¤»·pÅoµjrQpÅrQU{*»jW
²L»·p»jµ¶{¤ µ·}¸±r+»jpµ·rqprqU
f"{}o " &gl%{}QW »·£¢zÅzmorq»· >rÆg»Ñ»jWoy{
=?>"@BA<CD! " #FEGEG>"AH $I, )( 0*+,( 0*.$
CHAH05AJ! 3 # K$L, )( 0*M K$
.3(fh"{¤µ·µ·*¸yÄ|gy3z1yzrqµ·rQrqµ·rqprqUyo{}yzrQ}{ »Ñrq »jW{}oq"$l &gl+morqµ·oy|oyÃ*{}µj»¶{*r+}|
prQµY{*¹ºzrQ z {¤gy¹ÀW zp¼{*»jW1Lq}µ·µ·{}oy»·£¢zmr%yzrU|rQor/»·Uz¼{y»·£}µ·r/ zry|oµÑÁ
9 N#`^SHXlV:N Y[` C#IMV ^ F]Ys`w^ C#IUH
l3mor³ {}oy¹À} p{¤z»·}¤¹-{Å®³¯prqµYQ{¤½gr%yz|pp¼{¤ »|dQrQ1z1Woyz»·y¤¹M{
s}Á»jz»·}½¤¹$rQ¸ rqµ·rqprQWy3z¼{}rq~L»¶yz»·£¼pLrqµ
&Ávrqp*Ã*{¤µ}¹6prQµrqµ·rqprqUy¹À zWp {¤r~»¶y»j£prqµ
Á»jÆgq{¤z»·}½¤¹6 zWgrQ »jry3}½{¤r~»¶y»j£prqµ(rqµ·rqprqUQÁ
s ({¤o &({¤ rË}<rq {*»jWoydzmg{*$pÅ»j¹Àuzmr±yg{¤»·£>z rqrJyz |o| rJ¤¹mrÄ®³¯1prQµÇÁ$>y}|
»jzrQ {¤zW rqpµ·*y3~µ¶{dQu {bÃWrq yz{}µ<*ÃWrq m»¶y>y{¤pryz |o| zrWo»jy>pÅ»jÆgQ{*z»·}| z»·£¼ {bÃWrq yz{}µ
o zryrQWy>{F zWµ·rqp ¤¹Ërqgy| »·£ ~ zW|oy>»Ñrq {*»jWJÁ³l3mr¢|gyr%}¹~µ¶{dQ/ {bÃWrq yz{}µ»·yu{¼ {Wr¾Ù¤Ê
<r¸±rqrQF {bÃWrq yz{}µgrqÈ1»·rqoqF{¤o½q}pµ·r~»ÑWÁ
Ç Jm*¸ÄrQÃ}rQ Q6»·yÅ{¤D}<rq {*»jWzmo{¤¢L»jrQµ·oy¢oR rQyz|µÑÁ_ÌÙy¢yz}µ·rFo| z<WyzrF»¶yzRo z|oqr{}
»·¾Ùµ¶{}r¼|o<{¤zr1}¹pÅrQµJrQµjrQpÅrQUyQÁ½²L|gm {¤}<rq {*»jW#»¶y%¸»¶rQµj#¿L*¸Ð{}yT~zy»¶rq¾ArqÊ<rM¼»·
¹À|oo»jWo{¤µÄ zW£} {¤pp»jo£½{}oи±r1prqµÄ}<rq {*zW y/<rqµ·}o£}»·£zzm»¶y¢Q{*rq£}W zR|oy»·£R{ )
r| /U<r}Á$l3m»¶y(mo»jorq y(q{} zrQµjryzy(}p<Wyz»Ñ»jW%¸»jzm{yz»¶r¾ÙrÊdrQ(¹À|oz»·}YÁ6ÌÍyz|pp¼{¤ }zmryr
¸±/»·yyz|rQy$ *ÃL»·r3{+yz }o£³p¤»jÃ*{¤z»·}ŹÀ} $¹À| zzmorq Ë rQyzrQ{} m¢}}| $ {}oy¹À} p{¤z»·}¹À {}pÅrQ¸ÄW z¿
¼rq »jÃWr+{Åyzr}¹(¹ÀW zp¼{¤µYyzrqp¼{}W»·Qy±¹À} ®³¯#z {¤oy¹À} p¼{*»jW1}<rq {*»jWoyqÁ
Q, q/)% % %/q)% )'Ï. ,.)¼
T9;8 I;HCaN&I;PSRCaF]\y=@RTKMC#I;YsF]\TI;` rTrDK;I ` C#IMV ^ /Zt `YsrSK;F
CLIENT PLAYER
+ play() + stop()
<<Interface>>
λ·£}|o zr {-®³¯pLrqµY}¹6{ÅprQ»¶{µ¶{b}rq
l3mrFr~{¤pµ·r¼pLrqµË»¶y{½ÃL»¶rq}¾AW¾Ùrqp¼{¤o#{¤oµj»¶q{¤z»·}Y6ymo*¸#»·#Æo£}|o zr Á HGB:L{¤g
DBJF GL '¼{} zru zrQp¤zrQµjFµjq{¤zr{}o»jUzrQ {WÃL»·{{Årq¸ÄW z¿dÁ
l3mr{}»jp »¶y¢z_z {¤oy¹À} p zmr»jo»Ñ»·{}µ®>¯?pLrqµ»· Æo£W| zr »·Uz{¤Dr~rQq|{}µjrprqµ
rqo zryrQW»jo£/zmr/y»·p|oµ·{¤z} Wyzm*¸1»·¼Æo£W| r³Á-l3mr³rq¸]prqµq}U{}»joyÄ{¤oyz {}ĵ¶{}yyzrQy-mo{*
rqo zryrQW% rq»jÆgQ{*z»·}Ð}¹3zmr}grqy% rqµ·rqÃ*{}Wz_yz»·p|µ¶{*»jW Éy{*rQyQ$pÅryzy{¤£WrQyQ(»jprQ y+{¤g
qµ·{WyzyzrQyJ zrQ rQyzrqUz»·£/zmoruyz»jp¢|µ¶{*z»·}¼rQ£}»·r>zmo{¤Äp¼{¤»·|µ¶{*rQyJzmrQp½ÁËl3mWyzr>µ¶{}yyzrQy-¹ÀW zp{ $e
)D'l"$*123)"$4 i·s&kzmo{¤-»·y$WÆo£W| {}µ·rÄ{}y6<rq - rU|»· zrQprqUyQÁ(ÎW $r~{¤pµ·r}*³£WrqrQ {¤zrÄzmr
DBJF GL '+C C H AGAGF y$¹À }pmr DB F GL'Åqµ·{WyzyQL¸Är/rQrQ1z¼{¤oµj¼mru¹À}µ·µj*¸»·£¢p{}»·|µ¶{*z»·}gy{
s}Áu»jÃWrquzmorJyr U|rqoqr-¤¹{¤µ·µ¤rqµ·rqprQWy»·+}| YprQµÇ¸Är-»¶yz}µ¶{*zr-qµ·{WyzyzrQyd¸»jzm/mr »jUzrQ ¹É{Wr
yrq rq}U<r}Á
CLIENT
PLAYER + play() + stop()
<<Interface>>
PLAYER_IMPL + play() + stop() + receive()
COMMAND
+ execute()
(from VALOOD)
PORT
(from VALOOD)
+upper_layer
+fifo PLAYER_PLAY_COMMAND
PLAYER_STOP_COMMAND
PLAYER_COMMAND PLAYER_PROXY
+ play() + stop()
PORT
(from VALOOD)
+peer
ACTIVABLE
+ labels() + guards() + action()
(from VALOOD)
SIMULATOR
(from VALOOD)
λ·£}|o zr%a{-Ú$>¯$+ ´Äv?Ã*{}µj»¶{*»jWF¹À {¤prQ¸ÄW z¿
&Á3´-~Lz {}³mr}<rq {*z»·}gy¹À }p zmo»·y+qµ·{WyzyQÁ%l3m»¶y³ rQyz|µjy³»j{yr W|orqoqr¤¹Ärqµ·rqprqUyu rq r¾
yrQUz»·£Åzmr%qµ·{Wyzy}<rq {*»jWoyqÁ
Áoµj{¢°u % µ¶{}yy$£}rqorq {*zW -*Ã}rQ 6r{}m}<rq {*»jWŹÀ} Ër{}mµ¶{}yy$z+ |oqrzmr
W z rQyzgWo»·£rq »jÃWrQ°u % qµ·{WyzyQÁ
®³y»·£}|o }<rq {*zW yQU¸Är+¸»·µjµYrQy »j<r/zmr/ {}oy¹À} p{¤z»·}Y%{Wy±¹À}µ·µj*¸ {
KA
>3 H$)$
A@ $
=>"@BAC =0+@) >" H$
%>¤zrzmo{¤¼zmrµ¶{}yFyzrq]»·LÃ}WµjÃWrQy{rQyzr *, <Á l3m»·yF»·y1rQqrQyyz{} z <rQQ{¤|oyzr½rQ{Wmqµ·{Wyzy
q}U{}»jgy±{yzr¤¹6}<rq {*»jWoyqÁ-l3mru¹À|gz»·}g{¤µY{¤gy {Wz»·}gyJ¹À }p ¸m»·m¸±rug{}yzruW| 3}<rq {*} y
{}µjµ·*¸|oy+z rQ{¤µ·»dqrrQyzrR»jzrQ {¤z»·}oy+yz»·pÅoµj_U_prQ{¤gy/¤¹±¹À|o»jWÐ{¤µ·»¶q{*»jWYÁ1l3mr¹À {¤pr¾
¸±} ¿mo{}y>ÃU»· zz|o{}µjµ·rQq}|µ·rQzmrÅ}grq oy>¤¹Ë»jzrq {*»jWYd}<rq {*} >q}pgUy»jz»·}_{¤oWgrQ {¤zW
{}µj£W} »Ñmp½ÁÌÙ{}µjµ·*¸yr{}m`{Wy<rQ¢_<rz rQ{*rQDyrQo{¤ {*rqµ·}$£}»·ÃL»j£{ gr~»joµjr }£} {¤pp»·£
yz |oz| r}Á/±}p<Wyz»jo£F»jÊ<rQ zrQWuz {¤gy¹ÀW zp¼{*»jWµ·L¿y>¹À zWp }| uµj»· {¤ }¹J}<rq {*} yqg¸Är
{}µ·r{}m»·o rqprQW{¤µ·µj*Ã}rQ }|o >} »·£}»·o{¤µYprQµ}¹6Æg£oÁ {¤o¸Är{} z »·Ã}r%{*>zmrÆoo{¤µ6prqµ
}¹(Æo£W| r+Á
T9-o F]HJHJIMPSI$K;IMC[_:N&` rDE V:X`s< =@? YsV\GF]K
l3mor±Ã*{}µj»¶{*»jW%rQm»U|rQy$¸±r3¸±{}U/{}µ·+z+®³¯pÅrQµ·y-{} zr±o{Wyr%}¯({}grQµjr¢l {¤oyz»Ñ»jW
²LyzrQp¼y ɯl² Ál3mr1{WqqrQyy»·»·µj»jR£W {}m_}¹3{½prQµÄryzq z»·gryuzmrFrqÃ}Wµj|z»·}#¤¹{yyzrQp »·
rq p¼y$¤¹y{*zryË{¤g {}oyz»Ñ»jWoy$µ·{}grQµjrÅUrqÃ}rQUy ÀWgrQ {¤z»·}¼q{}µjµ¶yQ*z»·prq Ërq~Lo»j {*»jWoyq*pryzy{¤£Wr
rq~mo{¤£WrQyÁ(l3mor{}qqrQyy»·»·µj»j%£W {}m»¶y-yrQµ·}p{³Æoo»Ñr£} {¤mY¤{}oy/»¶y$¤Ëo|»jµjËr~mo{}|oyz»·Ã}rqµ·}Á
ÌÍgyrQ{}Y»Ñ»¶yr~µ·} rQ }£W zryzyz»jÃWrqµ·}L{}y3rQrQroy{} »j£¢¹À }pmr+»·»Ñ»·{}µ(y{*r/¤¹6zmr%yzyrqp
Àzmr zL}¤¹3zmorF£} {¤om6zmorq U|rQ zL»·£½Æo rQ{¤oµjr¼ {}oyz»Ñ»jWoy+£}W»jo£}|¢¤¹>{£W»jÃWrq y{*rF{¤g
moUUy»·£Å} »¶yq{¤ »·£yWpÅr/}¹(zmorqp¹ÀWµjµ·*¸»·£¼y<rQq»ÑÆg+q z»jzrQ z»·}(Á
T9 qEGF /:p / CaV V3KMP Vt
R{¤LUWµ·yy|gm%{}yYprQµÑ¾ÍmrQ¿Wrq y<} YrQy(£}rQrq {*} yd}<rq {*r-}/zmorįl²³¹À} p¼{¤µ·»·yzp½Ál3mrQu{}µÑ¾
rQ{W+mo{bÃWrJ *Ã}rQ%|oyzr¹À|µ³Ã*{}µj»¶{*r¯6ul>/²+W ˲
¯½yzgr»jÆgq{¤z»·}oyQÁo{¤»j£umrqp ¹ÀW Ë®>¯
¸±}|oµ· *ÃU»¶r/®>¯|gyrQ y3¸»jzm{¤»·Wrq rQyz»·£¼m}»¶r/}¹6p¼{*| r/{}o zW|oy3Ã*{}µj»¶{*»jWFL}µ¶yqÁ
ÌÍÅm»·yÄWWr~LQ¤zmru³J´ %)W°±´Ä²³vzLWµj<b~Ui¡nk<»·y-g{¤ zz»¶|µ¶{¤ µj¢{¤<rQ{}µj»·£oÁ-³Ë´ %)}°±´±²>v
»¶y¼{Wµjµ·rQz»·}`}¹³Ã*{¤µ·»¶{*»jW`UWµ·yÅo{Wyr`WÏ{#WppÅWD»·UzrQ ¹É{Wr¤Êdrq »j£Ðyzrq ÃL»·qrQyz|»·µ·
mr{}qqrQyy»·»·µj»j½£} {¤mR¤¹Ä{y<rQq»ÑÆ<q{*»jWYÁ%l3m»¶yu»jUzrQ ¹É{WrÅ»·yuµ¶{¤£W|o{¤£Wr%»·orq<rqgrqUQ{¤o_yrQÃW¾
rQ {}µ6q}p»·µjrQ y³{¤ r *ÃL»·rQ½mo{*+WpÅo»jµ·r¢yzgr»jÆgq{¤z»·}oy³»·_¯6ul>/²} +² ¯Ï{¤gp¼{¤¿Wr+zmrQp
{bÃ*{}»jµ¶{¤µ·r¢z½Ã*{¤µ·»·{¤z»·}_zL}µ¶yuzmo zW|£}mRzmr1y{}o{¤ £W {}mRµ·»· {} z»·UzrQ ¹É{Wr}Á¼l3mo{}¿y³z½zmo»·y
yzrqg{¤ {*z»·}½}¹J}grq oyQorq~L»¶yz»·£1UWµ·y³q{}gr¢ zrQ|oyzrQ½¹ÀW ³{1orq¸ µ¶{¤£W|o{¤£Wr+¸»Ñm}|/mo{¤o£}r%L
»·pµ·rqprqUz»·£mr+} rQyzgWo»·£Åq}p»·µjrQ QÁ
T9 GN#V3Y < = ? Y[V\TF]K;HqCaV H I$Y RTK;` CaI;V3^ V\TF
l3morz {¤oy¹À} p¼{*z»·}R¹À {}prq¸±} ¿ zryrQUzrQ_»· yrz»·}½»¶y%{*/zmor1mrQ{} +}¹Ämr1WpÅo»jµ·rq +mo{*
£WrqrQ {¤zry-zmoruyz»jp¢|µ¶{*z»·}r>¹À} ®>¯#yzgr»jÆgq{¤z»·}oyQÁ6Â3{Wy»¶q{}µjµ·}Wzmr/Wp»jµ¶{*»jWq}oyz»·yyÄ»·
{}oy¹À} pÅ»·£zmr¼»·»jz»¶{¤µË®³¯pLrqµË»·Uz{¤r~r|{¤µ·rpÅrQµ- zrQ rQyzrqUz»·£zmr1yz»jp¢|µ¶{*zW QÁ
l3mor%rq¸ prqµ$WU{¤»·oy{}oyz {}>qµ·{WyzyzrQyzmo{¤> zrQ rQyzrqU zrQ»ÑÆ<q{*»jW½¤¹$zmrÅWorQy> zrQµjrQÃb{}U
¼y»·p|µ¶{*»jW Çy{*rQyQpÅryzy{¤£WrQyQ}»jprQ y3{¤oµ¶{}yyzrQy± zrQ rQyzrqUz»·£%mr%yz»jp¢|µ·{¤z»·}rq£W»jor³mo{*
p¼{}»jo|µ·{¤zry±zmrQpÁËl3moWyzr/qµ·{WyzyzrQyĹÀW zp { $j),'l"$*,23)"$4Uijs &kYmo{*rQrQyzgr/{¤»·µjW zr
¹ÀW 3zmro{¤ zz»¶|µ¶{¤ prQµz¼<r%y»·p|oµ·{¤zrQYÁÄl3m»¶y»¶y}or+Uy<rQq»·{}µj»dQ{¤z»·}½¤¹6zmr/¹À {¤prQ¸ÄW z¿ y
{}oyz {}>qµ·{WyzyzrQyQÁl {}oy¹ÀW zp¼{¤z»·}oy3»·oyz»j rQU½µ¶{}yyz»·Q{¤µ +%+j&e6&"+#%jiönk-{¤ r+|oyzrQ½1 rÆor
mru} »j£W»jo{}µoprqµAÁËÎW Ä»·oy{}orWWmr hh³rQyz»j£W¾Ag{*rq 1»¶yÄ|gyr¼z¢»jpµ·rqprQWWrQyW<r¾
mg{bÃU»·} b|oyz»j£/yzgr»¶{¤µ·»|d{*z»·}gy(}¹zmr±¹À {¤prq¸±} ¿ y6²l6-l3´#qµ·{WyzyQÁ6²L»·p»jµ¶{¤ µ·}*prQyyz{}£}ryYr~mo{}£}r
{}p}£1WrQy³{¤ r% zrQ»ÑÆgrQ{}yuyzgr»¶{¤µ·»|d{*z»·}gy¤¹-mr%¹À {¤prq¸±} ¿ y>´Ä²²u´Nµ¶{}yyqd{¤µ·}o£¼zmr
µ·»·rQy3}¹mr:)* *,rQyz»·£}¾Ùo{*zzrQ zYÁ
T9 <>H I$^G_[L `K$I;\G` C#IMV ^ CaV V3K;HWV ^ `[< =@? YsV\GFK
³grmr>W z»·£}»·o{}µoprqµ<»·yÄ»·pÅprQ z£WrQ¼»·¼zmor³Ã*{¤µ·»¶{*»jW¼¹À {}prq¸±} ¿<W®>¯®>l y±qr>£WrqrQ {¤¾
} yJo z*ÃL»¶r>{¤r~rQq|{}µ·r³yz»jp¢|µ·{¤zW ÄW¹À} p:z1³Ë´ %)}°±´±²>v y3£} {¤om¼µj»· {¤ Å»·UzrQ ¹É{Wr}Á
³J´ %)W°±´Ä²³v y1UWµ·yF{¤ r½zmrQH{bÃb{}»jµ¶{¤oµjr½Ðr~rq »¶yr½mrR®³¯yzgr»jÆgq{¤z»·}YÁ Î6»j£W| zr¡
yzm*¸yJ³Ë´ %)}°±>´Ä²³v yJ»jUrq {}»jÃWry»·p|µ¶{*»jWL}µ¶yqW»j¸m»¶mÅzmr|oyzrq Äq{¤µ·»¶¿}ÅÆo rQ{}µ·r
{}oyz»Ñ»jWoyÄz1 »jÃWruzmr+yzLyzrQp½Á
Î6»·£}| rÐmo{}ygrQrqHW{}»jorQ]L?³Ë´ %)}°±>´Ä²>vy1~£}rqorq {*zW M½zLWµ³¸m»¶mH|o»jµ¶yzmr
q}pµ·rr¢{}Qryzyz»jo»jµ·»Ñ£} {¤om¤¹J{Æoo»Ñrůl²dÁdl3mrÅ®>¯Ïy<rQq»ÑÆ<q{*»jW zrQ rQyzrqUy³{1ÃL»·rq¤¾Ù}¾
Î6»j£W| r/¡&{$ÌÍWrq {}z»·Ã}r+y»·p|oµ·{¤z»·} º~y»·p|oµ·{¤z}