KMLBNPOQ R S T UWV XZY[]\^ _P`ba#c'd ËÍÌ5ÎÐÏ ÌgÑ3ÒÓÑ Ô'ÕÖ ØÏÓÙBÌÍ ÛÚ3Ü!Ý ÒÓÑgÞ Ò! #" $ %'& (*) +-,/.103254 687:9;6=<?> @BA CD8EFCHGJI egfwhbibjk1h l mon'p!qbrs tubvwxmy#zw{ P} ~3' B~ ƒ# P o! ˆ BŠ*ˆ ŠW P Œ bƒˆ W Ž F b P b b b ; 'šf š# bœ žz 'Ÿ* #œ 3Ÿ# ; o Komponent to fizyczna, wymienna czß'à á systemu, która wykorzystuje i realizuje pewien zbiór interfejsów; na diagramie moâ e byã przedstawiany jako prostokä t z bolcami Så uæpç do modelowania elementów fizycznych, które mogç byè umieszczane na wé zå ach; sç to m. in. programy wykonalne, biblioteki, tabele, pliki i dokumenty Komponent to fizyczne opakowanie bytów logicznych takich jak klasy, interfejsy i kooperacje Nazwé komponentu podaje sié zwykle w formie krótkiego rzeczownika lub wyraæ enia rzeczownikowego, pochodzç cego ze så ownictwa implementacji; nazwa komponentu obejmuje teæ rozszerzenia pliku, zaleæ ne od systemu operacyjnego (np..java czy.dll) = ; 8 bª «' o±b² ³ ² µ* Z Z o µ¹f ºµ±b² µf» ¼½ o¾p ZÀ;Á Â Ã Ä Å Æ Ç ÈÉoÊ Z [\][^ _^`badcec ^`f_gbhb_jifkla Podobie stwa komponentów i klas: maj nazwy i realizuj pewien zbiór interfejsów; mog bra udzia w zale! no" ciach, uogólnieniach i powi# zaniach; mog# by$ zagnie% dzone, mie$ egzemplarze i uczestniczy$ w interakcjach Ró& nice: klasy reprezentuj' abstrakcje logiczne, a komponenty - elementy fizyczne (komponenty mog' by( umiejscowione w w) z* ach a klasy nie) komponenty reprezentuj+ fizyczne opakowanie sk* adników logicznych i znajduj+ si) na innym poziomie abstrakcji klasy bezpo, rednio posiadaj+ atrybuty i operacje, komponenty w zasadzie maj+ jedynie operacje, które s+ udost) pniane przez ich interfejsy Komponent jest fizyczn- implementacj- zbioru innych sk. adników logicznych takich jak klasy i kooperacje (zwi/ zek pomi0 dzy komponentem i klasami mo1 e by2 zobrazowany za pomoc3 zale4 no5 ci) ê ë ì íoëbî ï ð î ñ*òzózð òoô ð ñõ½ò öñëbî ñ½ ø½ízùbúûpü ý þ ñ ÿ Interfejs to zestaw operacji, które wyznaczajm usn ugi oferowane przez klaso lub komponent We wszystkich popularnych udogodnieniach komponentowych (np. COM+, CORBA czy Enterprise Java Beans) up ywa sio interfejsów do n m czenia komponentów Umop liwia to podzielenie fizycznej implementacji na czobq ci: okreq lane sm interfejsy, które reprezentujm podstawowe szwy w systemie; dostarczane sm komponenty realizujm ce te interfejsy oraz komponenty, które korzystajm z usn ug przez te interfejsy Interfejs realizowany przez komponent nazywamy eksportowanym (komponent udosto pnia usn ugi innym poprzez ten interfejs); komponent mop e mier wiele interfejsów eksportowanych NCOQP R S Ž e d e e bš œ ž ŸG ÈÉ ÊlË Ì Í ÎÏfÐÒÑdÓ ÔÕÍ Ñ ÖØ ÑÚÙ ÛÜjÑeÝÞdßà Ó Ôeá Ó Û âñ Interfejs z którego komponent korzysta nosi nazw importowanego (komponent jest zgodny z tym interfejsem i na jego podstawie buduje swoje us ugi); komponent mo e korzysta z wielu interfejsów importowanych Jeden komponent mo e zarówno importowa jak i eksportowa interfejsy Istnienie interfejsu pomi dzy komponentami rozbija ich bezpo redni zale no (komponent korzystaj cy z danego interfejsu b dzie dzia a poprawnie niezale nie od tego, jaki komponent realizuje ten interfejs) Interfejsy yj ponad logicznymi i fizycznymi granicami (interfejs importowany (eksportowany) przez komponent jest tak e u ywany (realizowany) przez klasy implementowane w komponencie «s t u v:t<w x y w za{c Cy {:} y zf~l{ IzFt<w zl LvC <ƒf ˆ z Š Œ Wszystkie udogodnienia komponentowe majã za zadanie umoä liwienie zå oä enie systemu z czæbç ci wymiennych na poziomie kodu binarnego; oznacza to, ä e moä na zbudowaè system z komponentów a nastæ pnie rozwijaè go poprzez dodawanie nowych komponentów i wymianæ starych Komponent - fizyczna i wymienna czé ê ë systemu, która wykorzystuje i realizuje pewien zbiór interfejsów fizyczny - istnieje w ì wiecie bitów, a nie pojíqî wymienny - moï e zostaî zastð piony przez inny korzystajð cy z tych samych interfejsów czíqì:î systemu - rzadko wystí puje samodzielnie; wspóñ pracuje z innymi komponentami i w ten sposób wplata sií w otoczenie architektoniczne lub technologiczne; jest fizycznie i logicznie spójny - strukturalna lub czynnoì ciowa porcja systemu; potencjalnie wielokrotnie wykorzystywany w wielu systemach; reprezentuje podstawowy blok ±: <² konstrukcyjny ³ ² µa C C : µf¹g ºIµF <² µg» ¼L±:½ ¾C QÀ Á  µ Ã Ä Å Æ Ç:Å 1
4!#"%$&(')')*,+.- [&\^]_\a`b]cd&efcfg_efh)ikj Komponenty wdro/ enia - niezb0 dne a zarazem wystarczaj1 ce do scalenia dzia2 aj1 cego systemu, takie jak biblioteki dowi1 zywane dynamicznie (DLL) i pliki wykonywalne (EXE); Definicja komponetu w UML jest na tyle szeroka, 3 e dotyczy klasycznych modeli obiektowych (np. COM+, CORBA,...) a tak3 e innych jak dynamiczne strony WWW, tabele baz danych oraz programy wykonywalne korzystaj1 ce z nietypowych mechanizmów komunikacji Komponenty procesu wytwórczego - powsta2 e w trakcie opracowywania oprogramowania, sk2 adaj1 ce si0 z takich elementów jak pliki z kodem ród5 owym i pliki danych na podstawie których generuje si6 komponenty wdro7 enia. Nie s8 one bezpo9 rednio sk5 adnikiem dzia5 aj8 cego systemu: s8 produktami opracowanymi w procesie wytwórczym, niezb6 dnym do utworzenia systemu wykonywalnego Komponenty wykonania - powstaj8 w wyniku dzia5 ania systemu, np. obiekty COM+ 5 adowane z DLL ò ó ô õ:ó<ö ø ö ùaúcûcø ú:ü ø ùfýlú þiùfó<ö ùlÿlõ ù Wszelkie mechanizmy rozszerzania mogl bym zastowane do komponentów, w szczególnon ci metki definiujl ce nowe wo asnon ci (np. okren lajl ce numer wersji) i stereotypy wprowadzajl ce nowe rodzaje komponentów (np. specyficzne dla systemu operacyjnego) Standardowe stereotypy komponentów (UML 1.5): executable -komponent, który mop na wykonam na wq,r le library - dynamiczna lub statyczna biblioteka obiektów table - komponent reprezentujs cy tabelq bazy danych file - komponent reprezentujs cy dokument zawierajs cy kod r ródt owy lub dane document - komponent reprezentujs cy dokument (. k f ( š( œ ) ž Ÿ! ^Ÿ^žk ( ^Ÿ& ª )««(. f Je eli system sk ada si z wielu plików wykonywalnych i licznych bibliotek obiektowych to przy u yciu komponentów mo na zobrazowa± decyzje projektowe dotycz² ce systemu fizycznego Rola tego procesu jest jeszcze wi ksza, gdy chce si panowa± nad wieloma wersjami systemu i zarz² dza± konfiguracj² jego sk adników Zobrazowanie zale no³ ci mi dzy komponentami jest w istocie skrócon² form² przedstawienia prawdziwego zwi² zku (komponenty zwykle s² niezale ne, jedynie importuj² interfejsy eksportowane przez inny komponent) u v w x>v y z { y D} ~ { }> { M} J v y M ƒmx ˆ Š Œ Ž ÐÒÑÓÔ(Õ Ñ.ÖØ Ù(Ú ÔÜÛÝ fþ&ôßõ àâá(õ Ú ãåä&öæúçófñã è(éêôù)ûýä)ö Istniejë inne rodzaje (niì programy wykonywalne i biblioteki) pomocniczych komponentów, które së niezbí dne w dziaî ajë cym systemie Skî adnikami implementacji mogë byï np. dokumenty pomocy, skrypty oraz pliki dzienników, inicjalizacyjne, z danymi, instalacyjne i z procedurami kasowania Modelowanie takich komponentów jest istotnë czí_ð cië procesu zarzë dzania konfiguracjë systemu Najczí,ð ciej wystí pujë cymi zwië zkami pomií dzy komponentami pomocniczymi i wî að ciwymi së zaleì noð ci wskazujë ce wpî yw potencjalnych zmian jednego skî adnika na drugi µ >µ ¹ º»D¼ ½ º ¼>¾ º» H¼ ÀJ» µ»há ÂM >Ã Ä ÅRÆ Ç È» É Ê Ë Ì ÍÎÏ "!$#&%')(*,+.-$#/0#'12340$65'798;:=< d 3$ 6e)+ f g'hi j kl3m4n$k Programista buduj> cy system z gotowych komponentów musi zna? ich interfejsy programowe, umo@ liwiaj> ce A > czenie ich ze sob>. Interfejsy te reprezentuj> szwy systemu, który modelujemy za pomoc> interfejsów i kompoonentów Operacje wchodz> ce w ska ad niebanalnego API, s> zwykle bardzo liczne; ich listb warto zapamib ta? wewn> trz modelu i u@ ywa? interfejsów jako wygodnych uchwytów, za pomoc> których mo@ na mie? dostb p do tych zbiorów operacji Nale@ y obrazowa? jedynie te elementy interfejsu, które s> istotne w danym otoczeniu Graficzne modelowanie kodu o ródp owego jest szczególnie uq yteczne do obrazowania zaleq nor ci kompilacyjnych mis dzy plikami Up atwia to panowanie nad podziap em i p t czeniem grup tych plików, gdy konieczne jest np. rozwidlanie i scalenie r cieq ek procesu wytwórczego Do zarzt dzania konfiguracjt i kontroli wersji uq yteczne st metki okrer lajt ce np. numer wersji, autora lub informacje dotyczt ce pobrania ñ ò ó ô>ò õ ö õ ødù ú ù>û ø ümù ýjø ò õ ømþ ÿmô ø C D E FGD H I J H KML N J LGO J K PQL R=K D H KQS TUFGV W XY Z [ K \ ] ^ _ à_cb 2
Æ A 9 4 ' d., š œ " "žd "Ÿ Ç È É Ê.ËÍÌÏÎ$Ð/ÑÌ3Ò4ÓÈÕÔ$Ö Ô Pierwszy z dwóch rodzajów diagramów przedstawiaj cych fizyczne aspekty systemów obiektowych Przedstawiaj uporz dkowanie komponentów i zale no ci mi dzy nimi; s u y do modelowania statycznych aspektów perspektywy implementacyjnej systemu, w których bierze si przede wszystkim pod uwag zarz dzanie konfiguracj poszczególnych cz & ci systemu Zawieraj : komponenty (lub ich egzemplarze) interfejsy zale no ci, uogólnienia, powi zania i realizacje Podobne do diagramu klas (komponenty w roli klas) u v w xgv y z { y M} ~ { }G { U} = v y U ƒux ˆ Š Œ Ž Wszystkie komponenty systemu informatycznego sø wdraù ane na sprzú cie komputerowym - niezaleù nie od tego czy napisano je od nowa, czy wykorzystano od nowa => SI ze swej natury obejmuje zarówno oprogramowanie jak i sprzú t OpracowujØ c architekturú SI naleù y rozwaù aû zarówno wymiar logiczny (klasy, interfejsy,...) jak i fizyczny (komponenty reprezentujø ce fizyczne opakowanie bytów logicznych oraz wú zü y reprezentujø ce sprzú t na którym te komponenty sø posadowiane) WÝ zeþ to fizyczny skß adnik dziaß ajà cego systemu; reprezentuje zasoby obliczeniowe; ma zwykle pewnà iloá&â pamiã ci i zdolnoá/â przetwarzania Wã zß ów uä ywa siã do modelowania ukß adu sprzã tu komputerowego, na którym dziaß a system; zwykle reprezentujà procesory lub urzà dzenia, na których wdraä ane sà komponenty ª «G«±M² ³ ²G ± µq² =± «±Q U G¹ º»¼ ½ ¾ ± À Á  ÃaÄcÅ B C D EGFIHKJMLONPJQSRTQPU E W ze przedstawiany jest w postaci sze cianu z nazw (prost lub cie kow ); zwykle symbol w z a zwiera jedynie nazw, ale mog by metki i dodatkowe sekcje Stosuj c stereotypy modyfikuje si ten symbol, aby wyró ni specyficzne rodzaje procesorów i urz dze W praktyce nazw podaje si na ogó w formie krótkiego rzeczownika lub wyra enia pochodz cego ze s ownictwa implementacji W z y mog mie egzemplarze Zbiór obiektów i komponentów przypisanych w z owi nazywamy jednostk rozproszenia å æ ç ègæ é ê ë é ìmí î ë ígï ë ì ðuí ñ=ì æ é ìuò óuè ô õ ö ø ù ì ú û ü ö ýþÿ Pod wieloma wzglv dami wv zw y przypominajx komponenty, np.: mogy braz udzia[ w zale\ no] ciach, uogólnieniach i powiy zaniach mogy byz zagnie\ dzone mogy uczestniczyz w interakcjach Ale sx miedzy nimi podstawowe ró^ nice: komponenty uczestniczy w dzia[ aniach systemu, a w_ z[ y realizujy dzia[ ania komponentów (komponenty sy elementami dzia[ ajy cymi na w_ z[ ach) komponenty reprezentujy fizyczne opakowanie el. logicznych a w_ z[ y reprezentujy fizyczne wdro\ enie komponentów WV zw y sx podobne w pewien sposób do klas, gdy^ mo^ na okre` lia ich atrybuty i operacje: atrybuty: prb dkoc d Procesora czy rozmiarpamie ci operacje: wf g cz, wyh%g cz i wstrzymaj ˆ Š Œ Ž ÁÀÂÃÄ ÀÆÅÈÇTÉÊ ÃÌËTÍÎÀÏÐÃSÑÒÀ ÍÔÓPÅÕÊPÖTÍÎ Ø Â Òà ٠Najcz 6 ciej wyst puj cym zwi zkiem pomi dzy w z ami jest powi zanie, które w tym przypadku oznacza po š czenie fizyczne (np. sie Ethernet, š cze szeregowe lub wspólna szyna) Powiš zaœ mo na u yž te do modelowania poÿ czeœ po rednich (np. komunikacja satelitarna mi dzy odlegÿ ymi Aby rozró niaž rodzaje poÿ czeœ (np. siež maszynami) Ethernet od Ÿ cza szeregowego) warto u ywaž W przypadku powi zania stereotypów dotycz cych powi zaœ w zÿ ów (analogicznie jak dla W zÿ y mog byž równie poÿ czone zwi zkiem powi zania klas) mog byž uogólnienia, aby pokazaž ogólny opis w zÿ a z wykorzystane role, liczebno 'ž i jego specyficznymi wariantami ograniczenia i j k lj m n o m p%q'r'o qs o p*t0q u-p*j m p0v w0l'x y*z3{ } p ~ @ ƒ6 Standardowe konfiguracje: wolnostojú cy komputer, system wbudowany, system klient-serwer i system rozproszony Procesor to wû zeü, który ma zdolnoý@þ przetwarzania, czyli moß e realizowaþ dziaü ania komponentów Urzà dzenie to wá zeâ, który nie ma zdolnoã ci przetwarzania (lub nie jest ona modelowana) i zwykle reprezentuje sprzá g ze ã wiatem zewná trznym Stereotypy mogä i powinny sâ uå yæ do specyfikowania nowych typów procesorów i urzä dzeç (wprowadzenie specjalnych symboli graficznych) ª%«' ' «ª* +«-ª* ª+ ±0 ²3³' 6µ ª ¹ º'» ¼?½@¾ 3
"!#$&%' )(*+ +, - 67 8(9!:); < Modeluj. c uk/ ad systemu, mo0 na zobrazowa1 fizyczne rozproszenie jego komponentów po procesorach i urz. dzeniach wchodz. cych w jego sk/ ad Komponent zwykle jest przypisany do jednego w2 z/ a ale mo0 e by1 te0 umieszczony na kilku (np. specyficzne programy wykonywalne i biblioteki) Po/ o0 enie komponentów jest zwykle obrazowane przez ich wymienienie w dodatkowej sekcji symbolu w2 z/ a Komponenty nie musz. by1 przypisane do w2 z/ ów na sta/ e (mo0 na modelowa1 dynamiczn. migracj2 komponentów mi2 dzy w2 z/ ami, np. w systemach wieloagentowych) è é ê ëé ì í î ì ï%ð'ñ'î ðò î ï*ó0ð ô-ï*é ì ï0õ ö0ë' ø*ù3ú û ü ï ý þ ÿ Drugi z dwóch rodzajów diagramów przedstawiaj= cych fizyczne aspekty systemów obiektowych Obrazuje konfiguracj> w> z? ów dzia? aj= cych w czasie wykonania i zainstalowane na nich komponenty Bierze pod uwag> przede wszystkim rozproszenie, dostarczenie i instalacj> cz>;@ ci systemu Zawiera: w2 z/ y zale0 noa ci i powi. zania Komponenty mog= wyst> powab na diagramie wdroc enia o ile s= przypisane do jakiego@ w> z? a è é ê ëé ì í î ì ï%ð'ñ'î ðò î ï*ó+ð ô-ï*é ì ï+õ ö0ë 3ø'ù6ú û ü ï ý þ 3 4 5 D EF!G,4(H-IKJL+ M+!+#$ System wbudowany to zestaw sprz> tu oprogramowanego, który kontaktuje si> ze @ wiatem rzeczywistym Obejmuje oprogramowanie, które steruje takimi urz= dzeniami jak silniki, si? owniki i wy@ wietlacze, a na jego dzia? ania maj= wp? yw bodn ce zewn> trzne (dane z mierników, ruch i zmiany temperatury); Wymaga zarz= dzania @ wiatem realnym, w którym ruchome cz>;@ ci ulegaj= awariom, sygna? y s= zak? ócane, a zachowanie nieliniowe Aby u? atwib porozumienie pomi> dzy programistami a specjalistami od sprz> tu nalec y wykorzystab streotypowanie w> z? ów (symbole przypominaj= ce prawdziwe urz= dzenia) Diagramy wdroc enia u? atwiaj= analiz> kompromisów mi> dzy sprz> tem i oprogramowaniem è é ê ëé ì í î ì ï%ð'ñ'î ðò î ï*ó0ð ô-ï*é ì ï0õ ö0ë' ø*ù3ú û ü ï ý þ ÿ D O EG!G, (:LP,Q!L %+,4R4QM Pytania podczas budowy systemu: Jak najlepiej przydzielib poszczególne komponenty programowe do w> z? ów? Jak komponenty b> d= si> porozumiewab? Jak radzib sobie z awariami i zak? óceniami? Architektura klient-serwer k? adzie nacisk na oddzielenie poj> B dotycz= cych interfejsu (na stacji klienta) i danych trwa? ych (na serwerze);kluczow= kwesti= jest zwykle umieszczenie komponentów obejmuj= cych tzw. logik> biznesow= Cienki klient (niewielka moc obliczeniowa, zadania ograniczone do zarz= dzania interfejsem uc ytkownika i wy@ wietlanie informacji; nie jest na ogó? w? a@ cicielem komponentów) Klient gruby (wi> ksza moc, wi> cej czynno@ ci - zgodnie z regu? ami logicznymi systemu i przyj> tymi regu? ami przedsi> biorstwa) è é ê ëé ì í î ì ï%ð'ñ'î ðò î ï*ó+ð ô-ï*é ì ï+õ ö0ë 3ø'ù6ú û ü ï ý þ 4 5 D T#U V %U W #+ Q UQ FX +8 G!G,4(*L [G!% V &) +8);(:L&%U )(:+ +,- System rozproszony to zarówno dwuprocesorowy jak i zainstalowany na wielu \]X^ ]'_5_;` acb w> z? ach rozsianych po ca? ym @ wiecie DuC e systemy rzadko s= statyczne (w wyniku zmian obci=yc dfeudfgihkj enia i awarii pojawiaj= si> nowe i znikaj= stare w> z? y; powstaj= nowe kana? l m n4o p qqr s t u4v wxqy z {U y komunikacyjne; zmianie ulega tec roz? oc enie komponentów programowych) Specyfikowaniem i dokumentowaniem uk? adu ca? kowicie rozproszonego systemu zajmuje si> administrator panuj= cy nad zasobami informatycznymi przedsi> biorstwa SieB (lokalna, rozleg? a czy Internet) moc e byb przedstawiona w postaci sterotypowanego w> z? a (atrybuty i operacje mog= pos? uc yb do okre@ lenia w? a@ ciwo@ ci sieci) è é ê ëé ì í î ì ï%ð'ñ'î ðò î ï*ó0ð ô-ï*é ì ï0õ ö0ë' ø*ù3ú û ü ï ý þ S è é ê ëé ì í î ì ï%ð'ñ'î ðò î ï*ó+ð ô-ï*é ì ï+õ ö0ë 3ø'ù6ú û ü ï ý þ Z 4 5 4
±² '³ ³Q µc f U f¹ kº œ GžŸ & ) OœQ : : )œ; ª«& 7 k Ö F Mž X± '³5³; µc f U f¹ kº œ FžŸ + & ) OœQ : : 9 OœQ ª«& 7 " Ö ª+ ª * ¼ œ; ž } ~ ~i ƒ ˆ Šc Œ ~i cž c i Y š } ~ ~i ƒ ˆ Š» Œ ~i»ž c Y š 4 5š 5