ࡱ> 9678`!mܥDZ\rH`]bH_ 2xՖh[UoG&mYZHR G NZ]?6DDVY]6%m*N;EV2/A21Q*fH{k^ҒެBݜ{>|ϹChsAB,J .4p1ܟJ?$S |aOqIkvN=]Ed/",ɔ{;= fn 8Eäuwz813~W~1A|.xpO>nPR’w, ]żƭoc?^5Y_ג":ࣘbØe3(xuh06sF6NrR)D@=ɑu+2.!l_9?#dv=66éQAS!YxpB8skJRU?S!WӉV"FΙzStj$1404o8ֱl^E5CDdsE ܊,6[+X EB\3\mZZZvkh|}ߦemiiHKK]MU',ZI3?uN.j¯ 5׉w?Ӕ4^Qk6_l --,>G9oж}S`~s-cۛԒ;E1eΑw v~~[-IL'D%:9~{-9&򙂥ie$yWs2ZrȻ wՒE>str{݃mwג={jɱ ֬Y[Ky(ӧՒtrg}3X'%|`뷕ג{G>ke$l-e> N/o.gUՒk}##g~cH-_7֒חp4`?VK|oEue 6k'jIA5e:9<0HL`H'ǟ%6ǯ*ӟ%|Ee3W $esR_V?_KKjIKtr8)?a/HL<C~lU-yfpkI 9^ctrxVohSK>Ee9oH?L$?L<7M<G7 V?Ԓ䛛㇗?֒GE"2Zȷ RO*%/|d"2|(/Eo|HX֒Gu"2^Koc\K"|H?L4mx,$?Lo֒GC"2^gtrZ|'s||{-ye;./%|SE~e$Ee:9:]ǘՒD["}\>6݃-ǚ{m_#XW= 2,g~Cp#Eez}co >T^N8s,w+ >PZǛco HߥLootrۃӊ2w*;Y#xp"}2;)w(;['h~9]Cwۗ3)ҷ-ӻZ'xax7Y.g>-x$ߧ"}2u ToU~"i|9>LeGE2S8N-> q^oQN~q,H߼L#雕Y'joZhE&ez_O^W[uWsY&x9n>s  ^V/['?V|E:e// ^Rs['_LkZ)xI"}2}>// ^XQg2Km)ױ}E:9>gɟ3Z1|"}`/'sY's|}?_ ZYo`E2}CW jQod|-xpNkAEz2}co㳗Xo N(Xo,M7o(g+7N9>k߂鳔[X=^p"Ou3ǷG~Ez2}?-{飬W,ӷWcsGOi}ܻH^o6I9>s>mM*һ۶M=e:_ao69c_(g*ӷoEuplޥLoFMp"sNoqߚvܭH'+"qߛ`G2ct? qC?8}ß1# a[qSuE:}ºyW9NvQG .WE:}B`ex(Lf'vw"/EsN/8}B9X#:}[Z3n="o:}B Q`g N7yW3#o:9N]p qz s>N_y:}>5ͬkogCpS8}q|8}=7NM#:}ͻpz_3GX'9":}>]Wn lǛ{p8};8g=[ӷaӗsE+ux8}980uӧmۼyos,g N/D>[ppn55sG>{pm8}98OkYOӗg>9N獼pMpnpװNn9?9['i>9N|`p5pnpWN6|9Nm9\(!U‘\:}8WN |^s>ۼp h>N_ .7_φWG`pypfp .g>B /l9N_ ."eg"_48:}4\:łX7[|qs>GN7C#_?uh8}%͗2<:}2\.e>YO9\>qfC͗5 /l>N_ G7_9\)9Nʑqn>Nk%YOD9N W|U>郭jW|q^n{#_#8u`8}-FkNkM52s:9N :yk#:}.08}p Nׂ"_/8:}.zpZpxYυӷFapuX"(8urF#q\8}+~N o7|pRojnfqVp7a>Njs-KoiӧKA/:}pGZ'K2OӗFup6pRpȷ j>Ni8}pȷ b/|`pNpȷN ﴽ8}w N /GESurN;pNpw N |LuLc6:9NiWqP8}%8:݃ݬӇ+m#j>N_i8}=v:9N_ n^.32;:}&!}qH8}#cゝGgw|`G8}}33Α`>N`{pB0`D~`N7F>!XX7E~PuH8}6lk>!pl58}懚pBp'gN f`pBa~9N_p>pȏ Nup>Gm:1|9N?}} dc:@8}_ԧp:p9|9Nxq@8}x@O 6}}<0Sσיj~9N$s8!')_}}<8뾎>NTq88}xHO:8ÉQ?##ۜa~9NoY}} ?:88}xX Ӝc~&y#~>_G/s8} QOӷGE"_/s|}} <:ꗘip._\j'G2_Gӗrs> N_+8}} +9}}˕Wa2Ej>O5|}} ʽ:}u̧?Ndu$xgI4 ]|8NGI5ݬ_|,N1sxQK:9>u'q$xw {X$T>A6^/ >|N~y:}uq,֯|F92bi:Kt l֯ lZ:JI>>kcjk毚_|=Nu794ci|T~C#:9>csY'~SC:} 1o ~|@~k:} |n?ާӧcO?6~{4>>;SY'Oo{t_û_ӗ5 >׭Wi>]k }[/ Кy[s^2skCiyz<}kkC:d֜wUo<;djysȼy5!鿷<9d֜{ٚܐyZs2o=]s2oݦАy9 w̐y^s2ܮƐy㢞yಞyz{C=}!9 Ty[ȼmzBa]9 ZyWȼkzΣBQg!9]QyQȼhz΃BA{s^2[&d^szcB1g$d^rzCB!}9gWyEȼG# d^p>@y9Xy=ȼޠzA!]y9ȼZooooooc^^>>8}>^O'$}~~~~~~~~~~~~~~>YOѧ''''SII))iiYY99yyEE%%eeUU55uu MM--mm]]==4}~~~~ުu7^ԛoo__t}k:m^mvz; K^w;Nz'Ywggһ]nz7}f}f]{=^z/[gggggg}~z?}}_A }>XחЗЗԗԗҗҗ֗֗їчCeeUUUU5555uua0}>\_W_W_O_O____ ~(7777G#MMMM----H}>JJJZZFFַշշӷӷ׷wwwwwwwwwwc]]X}}}O}O}/}/}o}o}}}>NWWOO__'CCDPP}>I?L?L?\?\?B?B?R?R?J?J?Z?Z?F?FO֏ՏէST$$ddTT44tt LL,,ll\\<<||BB""bbRR22rr JJ**jjZZ::zzFF&&ffVV66vvNN..nn^^}>MOO__@@PPHHXXDDTTLL\\BB<COOOO////////oooooooo________????????z^zCo^MOק-t33335vzzz{Aw;NzgEϤϤwջnzwC{^zoGϢϢϪϪϦϦ~z>@ϩϩϥϥA`}>Dϭϭϣϣϫϫϧϧϯϯ//////////////////////////Շ++++++++kkkkkkkkap}>BooooooooooooooGQVV66h}>Fﮏ{{{{{{{{q~~x}~~~~>A atM!eq<w55ǿ۲~9m߳ϫx{m3$3ޞ$Yx{d1%o'Ha_\8Go!o:mȺ F۾!/m:tȺnFsK!دj:{Ⱥk.F㇬@} oj}ni>}nm}no> } l }j> }i}5rȾ 7r>4r Ⱦ5r >4r Ⱦ5r_ >O4r ȾO5r_>4rȾ5r>/4rȾ/5r> 6rȾ"7r_>$o6rȾ%o7r_>'6rȾ)4r>+7rȾ,5r>._4rȾ0_7r_>25rȾ3?6r_>54rȾ76r>9FWF٧MAi[C}WOdߠUkه[ A-UJ}fr&ȾHܷ ҼUٗi*VLA?G0ٟ?oo)NS g;/{A*sy^[yo7Wy@۪< U*O9r>P 9T|>V9>@Ƈ׫? ǛU/*nd|z 2~}P>rT9>BO?!U*_U3d|2~W߿r?Vy~~9Rr~i9Z r~jTy*ooU ߫(y~(y}hGf^@O:5rҹ7.ͼ\#Qf^?A5 r}ս_ͼ>\lW3 wyC,ͼ~\?Klͼ\m)tf^B_5r};G3!׿y} >gͼ\_of^C5r>!ͼ\<ͼ? |ͼͼܿ,Bͼ,#"ͼ?-+bͼ-3ͼܿ-;Rͼ-C2ͼ?m%rfB?k)tf޿B_Wh-vfBWj1xf?CWi5zfCWk9|f޿Ch=~fCjd~`f@id~aX3 Û9?XEfo@7odcfΏ@G6l ddfί@WF4s2q3g 34s2i3w ;5s2y3 C[4s2e3 K#Q͜Om+͜߂om/fΏAǶmdlfίA׶odmfAvldnfAvndofB4s2k3!5s2{3'!c9 ܣM;YcY;۽o|_G37׃]u>kU3ns}& @pu}o#3%}`$$<}{ p6YÍܷoGHއGd%&J޷9 7 F~odӍ\ Yo8ql#׻Bֳr?d<!!}u!o_d}/dˍ\ YJ#{q$!_kcb/@>7o4r}3d2| ^O>;\o YO(!k~!뷹_e7d} G\OY,d!?muztw \Y/!߿l8Ǿjz{yֿ!෍\Y3!o8 Gh~~j wnZ9NCz#/O7:d\d9@7r?~ ܟsހ7j Z*o<3C;@oUy^U_d<֡& It9ur ~s'WdUW!>U/c*Ðp*16== wSox\,V~"AeXVg~20a>Z޶.7?>ϿM?!~3$G=~?g߿)';'{|s_{|wg{|[ 9~ϯ̏pC|@>̗|~.|1'ye_*?ߐ5U~! UrcdIO0~ݬRnr0>B۫?!'9*_{W3d|f2~Srq~9_r~a`'#_U 78AVy~_ 9>^r~e/dg*ߐ7Q!gx U^@?Or}R/\߼R%GUy~bk* _%>{7aS$wTyc~$!cJ߯r}|ٹ>\2v*o!׷\kxᡆjٱeiپeۖѿw k=Z.hcvp?uq9fxeJ^w!~^{s͚|%-u'M1Cw~/m-{&q&vKޯVy{Ol tٯe\?~.kgMշT=?2oů{|3v#[7<8?_z|ܱ/q/?_lkTo׿=F-۳ex'vwd\8sxZs?&ucL!M~@~`{q#k?8Φ{־gq;M{Ļ\ΰ6y]ߒ?-cn_8GwSgU/xg=h&Vݮ]pR`!%23 &XsU^K2xMhANf?MC,EClK!-"]z RW ln5xR'EW<䨘"/*ofv$&af^yHLP =IlJ`a0K%۱/{\xl4D/+=C:uy`&ܒtc$JM!pfaL)X`o'^\yKIJ&o"y'f*^E<³w5Xm*c\Kk!)~5z=|*2WjP`?sF&98r>jʖ_Z=|u ޙϩUIqb,3pwLb9&'¸rV)ȀYo\1RԏUo4PiɎU9zY.F']jZu?3i_D̎ _%L};Hӟk/KDYlWo4˺QgoT ~T a;B;g9a5]|#A/rWػ}2A; ߍɃ&!8(@=+#y&`d% 0nSj/*5z+x]TyfYd],,jѠ]UUV%uDzĐ%Hw 9 QOB[zpN>-uF3\}'7s/p<)pxRʿ?v1.Q!?ެ>c#On s~r⺵Ox}9|_kwNhq <ǤVr~_[ q&>9*23R2c,nudqaUL_E1 |} 8r|->9RGc5?nx=WF,/^6~<:%h^m}]UR9n7C:W;ܼV~^9{;?vܾ|zk"9xoAc}Eƞ oQdDoFg}|,f~Y/n#k~ȏmV !eV]}[۷cO+~|TwsΝymRW2fh 8]o{Nc1BaK%χ8bܾvxaqGbo$,&cȸ9%?)ll!hfOvD']ŕLsswl]p[ k۹]ozsȸ?/Wa|[;Ta- !);C~[w-+y8@ʫD_Gp;ja-i0pmt9nqJ#8ƭ1F E{Goy|@ľmcY`6`"li焁88^t>wA|ϕ;D TwZxTFW-җ857e6 ֩P"bEܘ0pX"c+CKEch^x[*oԧㄤu|rxY2i[/ oQ+|+xW-LcUV+ G 8wk4 [Yv2 |{q9dkB$dko@+3qݤzF wk~E~HM7LBXV]^&0q?|Oxm?Ɍ?™+OMLC.Ik!:E_8U#Rs{ֿ~?v.:gńUN>\Q]!m0pa )8U ;^<{TpiBy 0ΥhaLgAc:!Z"l&_>@ [ +Vcg劭~Ǻ%p[nCaJ;6 EA1opt5W<-_<GՍCh]>\Z]*0}A!ep_L!Wn3{=r O ' XOQa%Tr\נ7eGKf A7Ѹ|X󺌣Uyq8_G 0w.vL .gfbZ:KVNjǏK{xc!@ZcZMJ.vNv^Q}> k ~_mqmܖ#6B(l"li[ׄoK¶urv/J'^Bm".iOwI^JoZ _XYwk s A7k .ZcKwcb BŏY/AcP^*$Ka.1n/b]xoq|0d\ӷ\c+W!e'$%犹-}{ǏӘ+^R2&c18[}Vg zxḡ#Vum\~z:b%gf5~qr3_I+NmE7|# \P )CN4~A'Fp0t!1/JbX8[#A䝔3X|wݻߜ[+nU30!f !6Hv򈴓GIޓ(YIU8ע yj ?c^$~k&e:$A]L_] oI |ΛVp͟~Ř3ǿV}m#¿L># m{BאNuBy8]/ϸ4FBBAz89>i;@;[z/^#y) ez.y ^-_*+ж5n0w22|U hf!ne EuW/W+syD:y_\Z}j90|_+JqQ> }?WZCSUho[fFp*8LY#Ac@o~@[i,7,|3rqx9j1~.؍|G-q_Az⾟tvÄ?J=u9 bp2ok6<3:Q h4q]ykB74s+!92tq}R7T CnoLݼl4G~(5l_^*]NA3s;J=xwr\+}; nO|anna ~]jtWƔ.!iF~-J=uQ+쐱Í~ӃF~\<>HYu|G.?,y\qB8m)#&3.2Uځa'BjQꑛ1c\VW닋Z콁?\? wuV^@9"ŵo;K_?/ "wʷIT # :w|Wa W ì?ǎ](Z#Ojorθ5wnv?GmoW1ώ/_xzΗFWll6&1GV,^`"72mQ~Ful{ʛ [?9 za%VB5DbߺRC=]}a}걑y_|Z=suk(Z˥vA[le1Xاcا֧%UK~ J=k>u3(U $ Sg cqW]=n[N.R?[\sv.B̀jcl]PHu_:!_N/~۷;RBImL~2{6.!{n>8!460Cdzbq{5NCz,H n^t_;6G7a.B3A_R[ZBז*ڴBs*q_|6/_}k|f՞n$P{:輍RO[8?9ΏfO[wCŻFj5k3NR_: invEw-0~ۍ [of.Ϲ(5@hG˶MY6B(ldzb.4qֲ\PMtAX!|R[cZ8nL="1dSS/VVaNL;rK;0̅,%_;DgnR;3fhGI/l:__UP]/~qxVLm'bM]&&G.)r.VhjqV|dޏ4sMo\~•X&$BsQ꧋MʜvENw|݇4SIx@u9y.kHYuI5 (EIv*[6wö?nzߥ{4cOL];RF{3 fhݡJLT!ts|F.$w/Qp[ScB#8ٖ:{-gQ꽋1Bsk[X?9\g[D>o8V8n;y;-:VfWϳR?:SB$wRO^Ml}}o;kp睠Fƀ SY1nAџW'E6PhB+#{{M丞//חHzw0ts?!_zbkQ.dOz~C~g9D~BAϷ[ {]BA[m޶^Z QꟋ{.їVW!,nOòY _} PߥkK:[HX)!62t1OqĸMeڸچ\)wz,>2D8 bܞE2].FeW6d{db?6Yb\DMHZ݄Ңԇm8KmMxoHWknInEW/vI_mW7{/~]wh^JG$yPz5*o|a mo.=3 invBas#w78g +k=ާǩ=)%[FB8o\|JŻ7Sċ_?.q sRV+!i5?Go/WMs_ܯ^sw--&?F^X dZ*ՕJŊ,k8fP>#9wo~y\zoa2n'ԫpVI=))BOܟw΄]U8\Kf3A7zzb^%gds}QBps9l/㣁p] WcF\>Ox/|q}`"z%J=1o $(rz!*pjz1L'L#'J=wr,Qsdl#jzJ=n&ËZ莳UFBBzW/8\Yz ure }46&n szsRd z|Ky (ߺbeEUFE82=2v"v\w͌I y8 f/dM Ь经jf֬ ?W.NvItjQT4v0ZvOD;ZgCE 2}{n^%Xv`䷛qn0vFT'Y\gu8"Ro^qd>$8{Ün(@uy-;q]!tsc;+>0ts!H}Jui[|RS.N3x-B7!(E[ -V;|lstMX3!"J}z91nAX% b]x)?~ 3ݏtB陠8J={ >Q_!} >jka-g,Z^R_jiܴP{?gyΥVUVn"_7D/on+tCwN_^\v7x/>l9~ ''o9"IFW/wa /X~+,ﺉ~Yy.:G[ ~:?~+ԬG YDmdbnTLs󵔓k[kfv)YʹrMc ~rZyXfu1l`0nzb^@u?\f^~M=-< ks@phYQ꣋ ֩t9 8 nayWh9sq/T{\g[k'?&3KUDzcRK~S!‰:k'hl!!|RO[ĸ0q"MP\m Jp燥f,`"B?#r.֟8"sswUR=6 wC4&8$Γ`Cʑ 6i#0a炒fURRYT bi]dV5[V%բ#\)*\9 DJ>{דqcgqf~^g 4|U. 8~tLF8qv>N;nGX1z xUle+IxV涌Vt1=ao$|.G¾K8?n{N2ro'*+{ NtW-%2ieJ)&~Q{Z:$ ~d\ҵvM4;YggyO_,݇]tK^s=oT94-Ь8Sjb"Ln٠ܮ=n}晻}0}M$*s{ϊy)a0b|M[Z >`|`l>d*iv1%6&g8L=pi^oDUz6ַFޠ#]}qI3+4}rm{_vM,v,zq9O-Ѝ&H1?aK}X)r(ɹsO_;I2kdf3ŭ$|aꯛm¹>^k˵F7~~U.'#2igJ}LO.]},濣pA+n5\R74s0\!"{]#ZE~U91Y40?aiKϊJ2-]~|9/y[nt1iF:sA"ɸLkkn~{={Dt83rK{5}iW3fřt߯#7e=odlniT21S\۠nVo8ߋJ~eFu)Z 4+ZQOM!³7Q=!& d# _g;&vϷ]@tpM2{}5q;031#$]gc4{PM?\z]}SQ>rnEoyr\}v+Y4)sʥiMu?ݖ/sg,h=_~dpnleҌB&g7L=t?^}O%Q'9cN.}tc+f3>Qݒ¦2~ZLF13'B1zW87NW &H3?a{djfoK}gLoNfu-%63BfB5q|I30?a{ֽ"OH2Sn%-|j_9{-vEtO9,;k/˨a^I[Dx]ᇑueZΏPGywr%u)nu3-?#>1{-.qJ۽%fL׬Lq S]i¹I2?gr=?;nO2xWJ2iV'S܊1?aKk /΍˲s(⹝06V[O#w960?apn2]ߠޓ}Yj@_xuԘf)BWU.zCirY]~ ^eqܯܦ$L 3܆n$=]n=9W4g^6%jdj[*tc/fla D64=ÿڭ涭ݽ÷+9N-ګ+23y'S "Й4Cc;X'N$ϩE"2ɾ*rKJuc5f&6L}8(r"miqx|NU*7ԍ`>X4cL )P]'MpKPA}Ѓe&zZJ3ŭ.&A8d|={=zw։{^e%$.74~iv51dE="3^E.&ML s)GEvJ[u?ݱ{ݍd!y<9֫Sԙ0U!r|9F<ǹ\ZF\Xn򅺱I3ʙQM/`}]$;9WV|cIj@ݡ |7JOjAAu vn{fssF%9>(rLs09mYy5jSwg`\40 cSbs<}Hƽ_ F1{^5)nt0iqv#|gu/ܚ`܍UF'fĘ10w?q7s43Vm-w۫5#7ڙ1w0c,qWnu >N}g۬z-ЫLD:wU<Ɣ0{ [b_;un=?(~EvZkxp#T5oNj#=Sz#eGCCvS3pD,<W1آB8)<fЎ#_<, ~ yo؋<{GrG}y(#O%j}G+P4qy(x4CǵDZqeqzqģcqzyյ;Wq::ԃ> =z8=+GP{cw{83X6`QXb[2vq̣LcC 2!cGʣN#G.a0_-|2SN{~@r#<.vvIfrj%YM.ȹCyy_n䧸G^ĝ4cqlǰ܏sd++X6aEHc:Ǜy$qg0k;MjjڭȻfZoa5+V^}x,N8oC nsjoIdOJAW hfOA zzgAJ5aYWa0R^^OK7J^$S >SLD _, }qQV#YD &ًU6mb**IDOj$FDbq,GxCo}!HX6(U`*6VG#Ck q<1ڦ6`Iފ}pR*Q>'NZZft.} qn{iKZDL)3+NL*$U~R5I19I}VԴ=dc.V n~vm| SauJ̝9Lvvv&aRq1+uΤ/I=}WDoP>'NL|$}|;Upai)Tͯ|x(_TU BAڈEFfV,ftnĢRRcUd7*MmdodnܘpFs3w;I2_M &M >g4=2TK%&Z3=4Uk~Rk|Y ;V=!{,r}f&Ӈ~ \^ն|>qiѺmMw= 9u:Vc/k!ڥGMo KƎbDQ8E*Q9bhQzE."ZIhfNE^{kd3|^]s\676UM6FƌEܨtuP7]?:7(HCpdnܘpFsܤ*@g*+Vzd6?θؓuR+[{ /[7 g־2vpowXe5]{jV?*t˛K#Wխ+f҇>1CJ"tU(8bWKp[ei?$Q]n:ț. F%MSt n/MvGQ˱i&_sN\EboDH7k"p?4\/Pވ٦W)l7(*LmQ*LO6^Ta݋ "&fBV{bQ*leeTU}̛ ײˬyUVjbYRWF^x +\[mV*~# ף7W-Xf6]N3|MeCo4fbF>yGiFr8)Cv6̂vjK A+7]Zxʪ&wL!Z#q>vp4oGy`!\z\|~/8o. ^#ExY]lU>vm BnJF㖂DB[VEȦNʲKv*H@m7Fl}'1ֈƅDy1&B9gvd^CNޙ=wν{A>B qH-,[t5{Sݹl>Ss?L׫#U>:[Z7TTKړ/;x zAv?'ӑ[6@sv>a;;8}EceO(*e|lD01Dž/?Oj~o]ֱi-T쒱(, D 떜- Fl9[GG uTO8>3e4%VXa؏XEhy8yYyoӻB; )n>y}lu8Dܹ3M~ l"TU:;1 )VU:_!咇%?.epf lo o˘'/f 7˸˸:M+f;6, wbEjo㪇U?k0z*OuǷsTc޸[cS,D8Lv8Qm!Tl}JJ_t&/Wf.B%VvQ{x]uW'ү#<,$TFԋS-D3f2yטi..E"7Pveʏ˽%eH]v>Owռ9xɍ^LQl•m"[zUs 37=zܜGt lhԕ1ZFn} m!a ~!z+q{vL\ aiZaC8 cؠvU0iŸ?JY,nUXJU"Q)1l۵`\b 1P"Q"D(3t. 3{̮2]5WUbCj2m3?#~ ԬYNuu d1UU~2a5^>z.5Ћ_Fjgq6@cSGl'D>| ?wڲۓTkZA^Py('Uld!eþ..h6%i'vPLݔ)عd]:{0:J)O9I?f|b61I2^`j2^1A-TbGchyђH<#wD`!Ix>BY8p@ xRAKQ=iFK 'VAULAЮm[EX?hBD-4ifR`w| r;&9Lt(G{^$l5*[DݑDo K$"u |NcN1OS5ҽ-/瀞ܯ-/Ɲt/ߒ- j=ӏvI}G:mOn{r쪛#vU[[~wlOtn7tFW&5 8"ʾ9_4!Ż9K蒴mHؠ>IR*UMտ[M4Gz^v͟t1M|(@`!ph&]#p H (CtxVOAfvn [ jpCRBR(/D0Q* ^S4JڵԄv3;FOL) :Wbl[  #r4,Ҋce,X8RitWr٣>جKr(6V'GiPpO1}V@`5`A`yyy>I T3tQH:n8 DP Z($|ʸo~/GݝFȼuN:O8ѝҺ# '(i뛴WMc95Z4grT̈&ڭF iԻt1}f:?̐e7}|nʟIizn fwMԴ5:C|B͈~Y,ګt0@d((`  @  nT6E Grafik Word.Picture.80*Microsoft Word-Grafik0qU8E Grafik Word.Picture.80*Microsoft Word-Grafik0tW9E Grafik Word.Picture.80*Microsoft Word-Grafik0xX:E Grafik Word.Picture.80*Microsoft Word-Grafik0yY;EDokument Word.Document.80.Microsoft Word-Dokument/ 0DTimes New RomanE0Wo 0lDArialNew RomanE0Wo 0l" DCommonBulletsnE0Wo 0"0DFutura XBlk BTE0Wo 0"@DWingdingsk BTE0Wo 0lPDHelveticak BTE0Wo 0l "c(.2@  @@`` @n?" dd@  @@``    '&& &-! &  &  6W     M       K   $2$mܥDZ\rH`]b"$='uIuv,˿22$%23 &8"$#y&`d% +;2$I(Gp?gg2$\z\|~/8o Qo2$Ix>BY8p"Zur$^v͟t1M||w$$2$ph&]#x gֳgֳ     A@  A5% 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||p3@Q,g4@d@d0pp@ g4KdKd0hp p  <4BdBd. 0L<4!d!d. 0Luʚ;2Nʚ;<4ddddЁ 0:2___PPT9/ 0?`-22.10.1998 0G. Bhler & H. FabenderO =  Contents  Structure of the existing system Why UML? INFIS Reengineering Process High-Level Architecture Low-Level Architecture Combination of High-/Low-Level Models Dynamic Model Requirements Model Conclusion $+   1INFIS  experimental integration platform for C2 information systems test bed for the German part in the context of the ATCCIS (Army Tactical Command and Control Information System) study and MIP (Multilateral Interoperability Programme) platform independent access z U 2C*R>     46INFIS Global Architecture   !consists of finitely many domains$" " R+Kernel   5Why UML?  UML = Unified Modeling Language understood by most of other interesting people nearly formal meaning standardized by Object Management Group automatic Code Generation by CASE-Tools x +     68INFIS Reengineering Process   i,@INFIS Reengineering Process (2)!!  7hUML-Model of INFIS Global Architecture (High-Level)$544   8#UML-Model for a Kernel (High-Level)$$##   H(Inheritance Tree (Low-Level)$   C#Detailed UML-Model (Low-Level)$  ^automatically produced by reengineering component of CASE Tool Software through Pictures / UML _ 2? $5E&9 Combination of UML-Models of High-/Low-Level Structures$:99   G' Dynamic Model (Sequence Diagram) !  l-Requirements Model LExtract requirements from the models Model requirements in use case diagrams6% n.How to continue?$Redesign the complete system, such that only the application level has to be extended in further extensions Build your own application server Use new techniques and buy an application server Java 2 Enterprise Edition~$ 7 p/@INFIS Reengineering Process (2)!!  9 Conclusion  UML-model of INFIS documentation of the system, readable by new developers extraction of requirements decision for new implementation t Ft F)   /Z[\]^_`abc d e f hkmoqX ` ̙33` 3` 3333f` 999MMM` f` f3` 3>?" dd@?" dd @ Xf " F 1" + n?" dd0 88TToo@n?" dd@  @@``PP    @ ` ` p@@    (  ܁@p%@E@   ZEgֳgֳ ?; E MKlicken Sie fr den Titel 8  TEgֳgֳ ?0 J  E PKlicken Sie zur Bearbeitung Zweite Ebene Dritte Ebene Vierte Ebene Fnfte Ebene     Q  HEgֳgֳ?JJ ^ Nr: *     s *[Ef2 ZFGAN&   XB  0D6XB  0DJXB  0DP   HKE* LResearch Institute for Communication, Information Processing, and ErgonomicsMM  M L    # Z   s *A    TE1? & uKIE&  hh88B  ZgֳgֳD?6B   `gֳgֳDo? B   `gֳgֳDo?B  s *޽h? ? a( FKIE quer ITFC 0 Pp( PS p p Z(iԴiԴ ?lQ  ( v* 2  D""DDee p Z(iԴiԴ ? Q ( x*(2  D""DDee p Hgֳgֳ ?Z  (; p Z=(iԴiԴ ? I} ( sKlicken Sie, um die Textformatierung des Masters zu bearbeiten. Zweite Ebene Dritte Ebene Vierte Ebene Fnfte Ebene t p  `H(iԴiԴ ?<l]  ( v* 2  D""DDee  p  `tv(iԴiԴ ?< ] ( x*(2  D""DDeeH p 0!i@ ? ̙33 ` 0(   H  0!i@ ? ̙33  YQ0(   ^  6?4p^  T(gֳgֳ?&| XReengineering an Ada95-programmed Command and Control Information System by Using UML YYD     N0(gֳgֳ?  gHeinz Fabender Research Establishment for Applied Sciences Research Institute for Communication, Information Processing, and Ergonomics E-Mail Address: fass@fgan.de.Z        H  0޽h ? ̙33  `<$(  <r < S [(;q  ( r < S |\(0 J  ( H < 0޽h ? ̙33   $(  r  S qE;q  E r  S <3E0 J  E H  0޽h ? ̙33j   (  r  S a(;q  ( r  S  b(p J  ( r   6 A n? ?0[T nH  0޽h ? ̙33C  ( @ r  S P(`;  ( | 0 0A q?x  q (M  Th)(gֳgֳ ?@  M selfdefined annotation difficult to understand no automatic codegenerationN 2N>   2  H  0޽h ? a(%   U(  r  S %;q   r  S &0 J     T 1?` {  L"n |2  Tgֳgֳ? Y J   T1gֳgֳ ?P   IUML*(2$H  0޽h ? ̙33     5P (  r  S D%;q   2  3 mP @ wINFIS without UML-model$RB @ s *D @ B  C l   P Automatically reengineering INFIS low-level structures with StP/UMLEE6*2 ! 3  !@  vSeparate UML-models of INFIS high-/low-level structures <<6  " C H" P  lManually combining INFIS high-/ low-level structures77.2 # 3 D#` 0  zStatic UML-model of INFIS$  $ C $p l  VManually modelling INFIS dynamic behaviour,,$2 % 3 % Z  %Static and Dynamic UML-model of INFIS&&$ RB & s *D T LB '@ c $D ` 2 ( 3 t'( 9 TUML-models of INFIS high-level structures++$   * C ,ϣ*@ ` ^Manually modelling INFIS high-level structures00 FB + S D` u:2 , 3 &cRB 0@ s *DPP pRB 3@ s *Do RB 5@ s *D[H  0޽h ? ̙33m     J(  l  C |<;    ; C 4;p P fExtract and model requirements  2 < 3 `O<pp fRequirements Model$    = C Q=Pp  hRedesign of System&   LB > c $D@ B pLB ? c $D@ @ 2 @ 3 p@@)  dRedesigned Model$    A C tA p   "Code generation + reimplementation&#"   LB B c $D @ @ 0 2 C 3 \C&   gReengineered System$   LB E c $D/`0FB F S D `  G C G` PZ  fNew requirements&   B H ZgֳgֳD?0`` FB I S D ` B J@ ZgֳgֳD?@ H  0޽h ? a(0  @QVp(  r  S ,;q   :  3 7D$ 9  6L- J  aINFIS,(2  :  3 7D   6ȴ L 7 bDomain,(2  :  3 7DU`   6o e Data Base, (2     6Sn cHandler,(2  :  3 7D  6Iaz e Subsystem, (2   :  3 7D +   6(ǣ ;  bKernel,(2  :  3 7D     6pˣ yqi  _DBS,(2  :  3 7D    6 i  `DBSD,(2  :  3 7D   6X 8 r  `DBAP,(2  :  3 7D    6t\ 2  _GUI,(2  4B  # 7D- 4B @ # 7D 4B  # 7D 4B  # 7D- 4B  # 7D   6` \ `1..*,(2  4B ! # 7D`  4B "@ # 7D 0 4B # # 7D k0 4B $ # 7D` k 4B % # 7D0  4B & # 7D4B '@ # 7D L4B ( # 7D` L4B ) # 7D` 4B * # 7D 4B + # 7D` 4B , # 7DUV - 6`hA `1..*,(2  4B . # 7D U4B / # 7DU4B 0@ # 7DUA4B 1 # 7D UA4B 2@ # 7DU4B 3 # 7DT 4B 4@ # 7DT  4B 5 # 7DT  4B 6 # 7DT 4B 7 # 7D  4B 8 # 7D5`T 4B 9@ # 7DT 5` 4B : # 7DT 5 4B ; # 7D 5T 4B < # 7D 56  = 6- _!  `0..*,(2  4B >@ # 7D` @K 4B ?@ # 7D @ 4B @ # 7D  4B A # 7D` K 4B B@ # 7D i 4B C@ # 7Di  4B D # 7D= KT 4B E # 7DT  4B F # 7D  4B G # 7D= K 4B H # 7D  i 4B I # 7Di k  J 64  k  `0..*,(2  4B K # 7D. / 4B L # 7Dg  h 4B M # 7D\ +g 4B N # 7D 4B O@ # 7D  4B P # 7D  4B Q@ # 7D  4B R # 7D  4B S # 7D 4B T@ # 7D  4B U # 7D  4B V # 7D  H  0޽h ? ̙33  ` ( 6' r  S ;q     T 1?g D(2     `gֳgֳA t? ?"p$ tH  0޽h ? ̙33   80L(  Lr L S 8;q    L C AxU:\dienstliche Dateien\paper\2001RTASymp\Knoten_INH_RE2.emfV L T gֳgֳ ?`Yf ^automatically produced by reengineering component of CASE-Tool Software through Pictures / UML,_ 2?$5H L 0޽h ? ̙33   nf4( pP 4x 4 c $HO ;q  O  4  @Ogֳgֳ     @  5% 8c8c     ?A)BCD|E||0 J@ O  4  `gֳgֳA x? ?sop xH 4 0޽h ? ̙33   B:D( pP Dr D S $q    D  `gֳgֳA y? ?=> y|" D Tgֳgֳ? YH D 0޽h ? ̙33V:   :9I 9(  Hr H S   ;q   : I 3 7D-5X I 6\Owj g Application, (2     I 6DO% cControl,(2   4B I # 7D-.: I 3 7DVjC:B I 3 4rs: I 3 7Df}+ I 6=OY2 g Application, (2    4B I # 7D:  I 3 7DC2: !I 3 7D8 M "I 6" .  cSession,(2    #I 6& " 1 cControl,(2   4B $I # 7D8-  9: %I 3 7Db 0 O: &I 3 7D" 'I 6+lD e Data Base, (2     (I 6/w cControl,(2   4B )I # 7D"i#: *I 3 7DVRC: +I 3 7D- ,I 64Q% _GUI,(2   4B -I # 7D-h.: .I 3 7DRO /I 6? `User,(2   4B 0I # 7D"(#: 1I 3 A C4B 2I@ # 7DJ l 4B 3I # 7D3 J 4B 4I@ # 7DJ K 4B 5I # 7DJ K  6I 6z'   nwriting permission,(2   4B 7I@ # 7D8 4B 8I # 7D8 4B 9I@ # 7D5O4B :I # 7Dx  ;I 6}8  lname of template,(2   4B I@ # 7D  4B ?I # 7D @I 60 Z zget information about template,(2   4B AI # 7D  4B BI # 7D  4B CI # 7D4B DI@ # 7D  EI 6`  {send information about template, (2   4B FI # 7D54B GI # 7D54B HI # 7DC 4B II@ # 7D5y JI 60oMo  {send information about template, (2   4B KI # 7D%4B LI # 7D%G4B MI # 7D%&4B NI@ # 7D%& OI 6ra {send information about template, (2   4B PI@ # 7D4B QI # 7D4B RI@ # 7D4B SI # 7D TI 6 7 ldisplay template,(2   4B UI@ # 7D(8 ?4B VI # 7D8 (4B WI@ # 7D(5Z)4B XI # 7D(b ) YI 6Kq d ldisplay template,(2   4B ZI@ # 7D04B [I # 7D04B \I@ # 7D  4B ]I # 7D ^I 6I ,  ldisplay template,(2   4B _I # 7DY  { 4B `I # 7D{  4B aI # 7D{ ?| 4B bI@ # 7D{ |  cI 6tOX U  ntemplate displayed,(2   4B dI # 7D 5 4B eI # 7D 5 4B fI # 7D 4B gI@ # 7D 58  hI 6U "   ntemplate displayed,(2   4B iI@ # 7D 8 4B jI # 7D 8 4B kI@ # 7D 5D 4B lI # 7D  mI 6XZ /  nwriting permission,(2   4B nI # 7D  4B oI # 7D  4B pI # 7D  4B qI@ # 7D   rI 6_   ntemplate displayed,(2   4B sI@ # 7Do ~ 4B tI # 7DM ~o 4B uI@ # 7Do p 4B vI # 7Do p  wI 6eL   h notification, (2    4B xI # 7D  4B yI # 7D : 4B zI # 7D  4B {I@ # 7D   |I 64B I # 7Dq4B I@ # 7D5 I 6 %X f input data, (2    4B I@ # 7D4B I # 7D4B I@ # 7D4B I # 7D I 6h; application specific behaviour,(2    4B I@ # 7D7 0M 4B I # 7D 07 4B I@ # 7D7 8 4B I # 7D7 48  I 6D; Hs  nwriting permission,(2   H H 0޽h ? ̙33l  ( $ l  C n;   l  C po0 J     T4vgֳgֳ ?@'  F(2   C ArU:\dienstliche Dateien\paper\2001sigAda\applications.emf0H  0޽h ? a(  @ (  l  C T;  E l  C ]0    |  Tgֳgֳ?00|B  Tgֳgֳ?p  H  0޽h ? a(Z     p (  l  C x);     Zgֳgֳ ?; @   C p P fExtract and model requirements  2  3 pp fRequirements Model$     C Pp  hRedesign of System&   LB  c $D@ B pLB  c $D@ @ 2   3  @)  dRedesigned Model$      C   p   "Code generation + reimplementation&#" &   LB   c $D @ @ 0 2   3 0 &   vReimplemented System$    LB   c $D/`0FB  S D `   C ` PZ  fNew requirements&   B  ZgֳgֳD?0`` FB  S D ` B @ ZgֳgֳD?@ H  0޽h ? a(   $(  r  S P"(`;  ( r  S  #(p  ( H  0޽h ? ̙33D 0 @( @ X  C pZ   (  S Ѐ(p I}  ( Ladies and Gentleman, I want to describe the experiences in an ongoing project of our institute in reengineering an Ada95-programmed C2I System by Using the Unified Modelling Language UML. The project is an ongoing project. That is a reason why we changed our considerations during the project, in particular during the time between writing the paper in the proceedings and this talk. Nevertheless, I will start from the starting point of the project, discuss the different phases of the project and illustrate why we have decided to change our considerations. But first of all, I want to give an overview over the Talk s outline !  (;5  ,  9 # H  0!i@ ? ̙33  0 @ 8 p (  X  C pZ   E8   S  p I}  E  The project is a reengineering project. That means, it started from an existing system called INFIS, which had been developed in our institute. First of all, I will describe the structure of this system by using a selfdefined annotation as it has been used by my colleagues, before the described project was started. By mentioning some disadvantages of this approach, I will motivate why we have decided to use the Unified modelling language. After that, I will present INFIS Reengineering Process as it was defined at the beginning of the project. Then I will describe the different phases of this process, namely modelling INFIS High-Level and Low-Level Architectures and how to combine the two levels of models. This combination has only a static characteristic. That is why I will explain how we model the dynamic behaviour of INFIS. Furthermore, I will describe how requirements are extracted from the models and how they are illustrated in the requirements model. And in the conclusion I will explain why we decided to stop the reengineering process of INFIS at this point and why we decided to build a completely new system by using more modern software development techniques, as the Java 2 Enterprise Edition.*    H  0!i@ ? ̙33 0 A9(  X  C pZ   (9  S 1p I}  ( UI start with the description of the existing system called INFIS, which is an experimental integration platform for C2 information systems that has been developed in the Department Command and Control of our institute In particular, it serves as a test bed for the German part in the context of the ATCCIS study and the MIP. Those are both experiments to implement command and control information systems that are interoperable to other systems of different countries The INFIS system is almost completely implemented in Ada95, where a user access via Java-applet in a browser is implemented. This kind of access realizes a platform independent access to the system which extremely reduces the amount of costs for portations to other platforms. Upto the beginning of the project the system has only been modelled in a self-defined annotation. I will use two models to give an impression how the system is designed and how it has been modelled in former times. After that, I will show the corresponding models in UML to give an impression about the different expressive powers of the two modelling mechanisms.bf   \     g H  0!i@ ? ̙33 0 ph( (w@ : X  C pZ   (h  S Ep I}  ( The most global model is the model of INFIS global architecture: INFIS consists of finitely many domains, where every domain consists of: one data base system DBS, where we use the ORACLE 8 system at least one subsystem that consists of: one Kernel that implements application logic and connection to other systems 0 .. n GUIs implemented as a Java-applet Connection between GUIs and Kernel: CORBA (standard connection) Connection between Kernel and DBS: proprietary for realising a concurrent access to the system Connection to other systems: TCP/IP Most interesting part: Kernel that will be explained on the further transparencyf~35 N 3 H  0!i@ ? ̙33+ 0 ia(  X  C pZ   (a  S 3p I}  ( Structure of a Kernel: four tasks which communicate via a process system Application Control interface between Applications and other tasks Basic Operating System proprietary multitask and multiuser system It is implemented as a proprietary system to increase the portability of the system Data Base Control implements the access to the database system Session Control which controls user sessions; for example a workflow system Those four tasks serve as an application server for the applications at the upper level. This will be the main point why we decided to build a new system, but before I will go into details, I will continue by motivating why we decided to use the UML. As we see if we consider the two diagrams, we have used a selfdefined annotation that can be only understood with additional explanations. There is no formal meaning and there exist no case tools that support this annotation. That means there is no automatic code generation starting from those models.201:F        H  0!i@ ? ̙33K 0  ( % X  C pZ     S 0$p I}   sThese are the reasons why we decided to model INFIS by UML. UML is the short form for Unified modelling language It is very popular. Thus it is understood by most of other interesting people. It has a nearly formal meaning which omit further explanations It is standardised by the Object Management Group (OMG) and it is supported by a lot of case-tools which support automatic code generation and reengineering of existing systems. The main part of our reengineering process is the modelling process of the existing INFIS with UML. In the following I will give a detailed description of the complete reengineering process.t H  0!i@ ? ̙33 0 &(  X  C pZ     S ,<p I}   (~The process is modelled as UML-state-transition diagram It is an example for that kind of diagram type. We start from INFIS without UML-model Then we manually model INFIS high-level structures that have been modelled in the previous two models of the selfdefined annotation This results in the UML-models of INFIS high-level structures On the other side we automatically produce INFIS low-level structures by the reengineering component of the case-tool Software through Picutres/UML from Aonix. This results in separate UML-models of INFIS high/low-level structures These different kinds of models are manually combined which results into the static UML-model of INFIS Then we also have to model INFIS dynamic behaviour. This is done by manually modelling the behaviour of INFIS objects and the interactions of the objects.$@b        N H  0!i@ ? ̙33@ 0 P( 04v X  C pZ     S < p I}   Corresponding to the previous models, we start with the UML-model of INFIS global architecture which is a model of INFIS high-level structure. The rectangle boxes denote classes. The  consist of -relations are called aggregations. They are denoted by lines with rhombs. For example: .... Associations are denoted by pure lines. Two classes are associated, if they can exchange messages. For example: ... The ends of associations and aggregations can be labeled by Cardinalities. If we compare this model with the model on transparency 4, then we can state that it is more expressive more detailed more semantic This can also be seen by the following model which corresponds to the model on transparency 5 ; W<X,]F     H  0!i@ ? ̙33 0 vnp(  X  C pZ   n  S Xp I}   This is the UML-model for a kernel. It consists of at least one application and exactly one: basic operating system session control data base control application control Every task is connected to every other one except the applications which are only connected to the application control. Comparison with Transparency 5 This model will be the main high-level model in the integration with low-level models@! ? H  0!i@ ? ̙33 ( 0 [(  X  C pZ     S  Op I}   ]The low-level models are automatically produced by the reengineering component of the case-tool Software through Pictures/UML For giving an impression of the result of the reengineering component, I present a macroscopic view and a microscopic view. On this transparency we illustrate the inheritance tree of the application control: Every connection is an inheritance relation, where the root of the tree class is called node. In the complete system there exist up to 1000 derivations from this class. These are only derivations of the components of Application Control, for giving an impression of the complete complexity of the system. Beneath this macroscopic view, I will also present a specific result of the reengineering component.He+{ H  0!i@ ? ̙33# 0 R(  X  C pZ   (  S |p I}  ( TThis model illustrates the associations of the package INFIS.Applications.Move_Unit which implements the Move_Unit application. The Move_Unit application changes the position of the display of a unit on the screen. As we see, the package is associated to its parents packages, as well as to the class Move_Unit_Menues which stores the name and the coordinates of the unit that should be moved. The classes also contain their included attributes, but their functions have to be manually added to the models. Another application is illustrated in the example of the combination with INFIS high-level structures.6d B 47  J H  0!i@ ? ̙33& 0 8(  X  C pZ     S p I}   :The abstract class Application in the high-level model is implemented by the implementations of the concrete applications. Thus we have to combine this abstract class in high-level model with the package INFIS.Applications in low-level models. With respect to the specification of the UML, it is not allowed to introduce an association between an abstract class and a package. For this purpose, we have to introduce an interface Application Interface. And this is the point where we connect the high-level model with the concrete low-level ones. We introduce one additional application Lokalis the model of which has exactly the same structure as the model for the application Move_Unit. The structure is nearly the same for every other application which should be added to this diagram. But then the Diagram would become too big. This diagram completes the model of the static structure of INFIS. But we also have to model its dynamic behaviour.6*J  f H  0!i@ ? ̙33' 0 N( = X  C pZ     S PUp I}   P$ The behaviour of INFIS single objects is modelled by state-transition diagrams as shown during the illustration of the reengineering process. It would be to specific to present an example of such a model. But, I hope you can imagine such models. Furthermore, the interactions between objects are modelled by sequence diagrams, as shown on the transparency. The letters are very small on the projection, but you also find this figure in the proceedings and I give some further explanations. In this diagram we model the behaviour of the computation of a general application. In the sequence diagram there is one bar for every object and one bar for the user, if the user is involved in the process. The time axis is vertically from top to bottom. When the user starts an Application, the GUI, the Data Base Control, the Session Control, and the Application Control are still running, but the Application object does not exist. Then the Application s initiation is sent from the GUI via the Session Control to the Application Control which starts the Application by creating an Application object. The information of the associated template is recalled from the Data Base by the Data Base Control and the template is displayed by the GUI which sends a confirmation to the Application. After that, the user s writing permission is sent to the GUI and the user is notified about this permission. Then the user may write data to the template which is transferred to the application. The rest of the Application s behavior depends on the specific Application. (H? "  %     3AE -  &/"7  H  0!i@ ? ̙33 0 #(  X  C pZ     S xp I}   %For finishing my talk I will give some conclusions. In the reengineering process we have created a complete documentation of the existing system in UML, which is readable by new developers. Furthermore, we have extracted and modelled the requirements which are fulfilled by the old system Depending on the applicability of new techniques we decided to create a completely new system with the Java 2 Enterprise Edition and hope that, by using this technology, the greatest part of the work has to be done in implementing applications, whereas in the old system the greatest part of the work would have to be done in implementing the application server.z .# V<  "7#H  0!i@ ? ̙33, 0 0K(  X  C pZ     S 7p I}   MFrom the static and dynamic models we extract the requirements of the system and model them. Then the system should be redesigned and we use the code generation component to produce new code and the rest of the code is manually added This results in the reengineered system where we can add new requirements by extending the requirements model. There is no final state in the diagram. That means, the process will never end, since always new applications for implementing new requirements can be added to the system. This was the structure of the process as it was designed at the beginning of the project, and in the following I will give some examples for the different phases on the previous transparency. j[NI]    M  ( #H  0!i@ ? ̙33}- 0 =5( P X  C pZ   5  S L5p I}   {For getting a complete requirements model, for every application a use case is inserted into the use case diagramm. This is illustrated by the two discussed applications. By this figure the strong correspondence between use cases and applications is expressed. In fact, this correspondence is responsible for the loop in the reengineering process. The developer would desire that for expanding the system by a new requirement simply a new application has to be added. That means, it is a strong wish that only the topmost level of the architecture, namely the level of applications has to be extended. But as we consider by the dynamic model, in the existing implementation also the lower levels in the design have to be extended. And that is not the way of a component-based developement of the system. We took the following two alternatives of further development into consideration: 8 /5Y0<;%        )H  0!i@ ? ̙33. 0 ~vP(  X  C pZ   v  S ;p I}   The first alternative is to Redesign the complete system, such that only the application level has to be extended in further extensions. But this exactly means to build our own application server. The other alternative is to use new techniques and buy an application server as it is standardized in the Java 2 Enterprise Edition. We decided to act corresponding to the second alternative, because of less work and a lot of products and support. But does this mean that we have to change the second phase of the reengineering process. The answer is  no Let us have a look to this phase of the reengineering process   $          5 +H  0!i@ ? ̙33/ 0 L( @0 X  C pZ     S p I}   NWe have extract and modelled the requirements fulfilled by the old system. The Redesigning process consists of designing a complete new system by using the Java 2 Enterprise Edition From the models of the applications code is automatically generated as much as possible bei STP/Architecture Centric Design. The rest is manually implemented. and the loop still remains for adding new requirements.I.!  X  #H  0!i@ ? ̙33px= tTEUt'!PH CP|Q *@0Q "spљ|ٳ ʠ3:kPQtT.eUu~ݝN=7ܪz[Wi}#Ƨ|HB*"QlqD^B|GGݑ)@ن2]*&=ɀ)f\ 4t={`f^8V!<,82"3=aY  *d?%7[xrEPY*P2&̫"6.vЉ@t\'R:$e,ԓ'SRo @5dQ.ȏ]`q$0 (ƃ@][b#}&/۸i欙Ko3b6Lҹl.psoi/&gF*uD'._\su?WEk/ꍴ,rH&O3,eVQ2A5@>Ijլ(e@y_W_w]b@藐̯w^Ɛڎ"Ry7R\k:4@tV?oąHeDžm/1/<$@jԞ >9X(&[:uP/&MmTTQ͆Y ٬E9PŦ={!tlSYt&m3f7˙eV0w%sW1ײR/w) $RKfʣ9<67;ȣ;#ŔG*sf7Ұާ(>wX˺Qce$| 9eV`1ĨV 35Hc4Lc1jdVfJh;K""eRmT܏:k&\:Y`Ԡrw:?:,H`*:?mf OU\I겗]*x be)(}ׄ+ zԲ}^G U=!Sx525P$"*ڹ n5^+@CfaGa?;j{tPp,A?ڛE(QFI׎e- D >3skߍ&ӡ?Vd}d.7ԧo?CJ7azJ־*z {aXZ>y_;(jPF>)7ZيWSQJ>VubRYW)F2ĨTW+UFRcUQ*#OyV6=톢Nk|*f6^7vGXmc[kۍF0}x2&ZcUV:LhZZ$AZA*66R;mۭf+f#fYt3M[Y$=IѷӴ_;mimErV(ikk\zE-)dӊxW oVn.CiҒ*U^6Rh3Y J [L*>(*s*Lti|F{q9{6KqIm}ArH1}/霊5Òaƶ4/,M"hR5uq֕|@Q`MB4F뮏rQ5&>dyki$0O \P8Ѧ_YZFȕa:9?g gQwguJ+k)O M7#Xx_H?ӹ-z3\?vISvZ+ښm?Hd550 }kRkWsPfB硻A{_]4z5l_7#FuiTLJWo+n^yQcΦϐH*w^IMz_hSkȫR$Vܻ[)I :-F7IkݡGq"eIDC?gybWSY'Yѹ:YXY% k]MX&4$En!3K&F \Y[~/j O* !N|'܂Xp [#mn1yA%>Z/?+Ze.]G|otk=]nNR<(>ϤR+[SRܒR(=$NϦM'{ۤxg*R2fC[&2:?J¥xXO EW#ʫcPb&]bΥۤbwR_@z@"[ (_cW> +lnVB;V[' B oO@rs IޢSBmx*.VIZEd&^O;D8w d4= QO4<'Oެ`f/շ4#+a][LF᰺8=(Us,%HyQ,R;f*{J1C =BHif(;xuEo|b  IKdRfQe]RɄ1QJcwt"-ߚO߆}NAdӷϱ7Ҝisg[[{3%ru2,-~W\?9=POPtn|?#}Ig Z>N JWFzҷm*X,yhݭfBC[z{pF~cZ6L7&piyHlif x~Q+(W{wK?m႔7|ᚲjy!xp/q /p3B\2Cbv!qŰ|=/ݗ~gxg=@>|+{|y T*j)@erPTBP BEm"ׁ.-Sxa)BeiQM3o)Enݷtl?3I PߜdQHfg*UvRzC :V>i]k C{,<Mq=( ']l/4ṀVCC5kLIp$袉&YҚ.%l8lX8Gfa&fޚtH.v[rQN> Cbk0 o kR⢉?oM|6idhIP@2ލ_ x, X(o+j6iV,rvґ9)o5\Q5LH5J+\R7$צ0j<6r2[yZH TޚI0BHy2_ςA`\j0j5lɽHEF}V ?oT ߃"7B1tٰjx&@(sȪYjF q<5?B>7q]S6N\~:]þSý@iV Wn~Dz"ǰ+G'Oӵ_XЦ-yf^7uFNmYJ1ZqqIP54IFXsZ%u^fgE omΣyΡLP;{I}"(277],MMg5g-1 Ϛ GK彇*mc?)0ӾQsւmakg~ r Cŝ@x ?yQ遼2>Ews_Mڌo뽃nDE!ʊCML/^[VqQnwREk,51Q1U?86={GH֘2:QB={{WW:jnUwJ–+oqQcũ=Xo8