Sunteți pe pagina 1din 74

CUPRINS 1. Etapele principale de dezvoltare a limbajului UML ......................................................................3 2. Componente de baza ale limbajului UML ......................................................................................5 2.1.

Structura general a limbajului UML ....................................................................................... 2.2. !articularitatea "#peci$icul% limbajului UML ...........................................................................& 2.2.1. UML ' limbaj de vizualizare ............................................................................................( 2.2.2. UML ' limbaj de #peci$icare .............................................................................................( 2.2.3. UML ' limbaj de con#truire ..............................................................................................( 2.2.). UML ' limbaj de documentare .......................................................................................1* 2.3. Entit+i ,n UML ......................................................................................................................11 2.). -ela+ii UML ...........................................................................................................................1) 2.5. .iagrame UML ......................................................................................................................1/ 3. .iagarama cazurilor de utilizare "u#e ca#e diagram% ....................................................................1 3.1. Cazul de utilizare ....................................................................................................................1& 3.2. 0ctori ......................................................................................................................................1( 3.3. 1nter$e+e ..................................................................................................................................1( 3.). Legturile ,n diagrama a cazurilor de utilizare ......................................................................2* 3.).1. -ela+ia de a#ociere ...........................................................................................................21 3.).2. -ela+ia de e2tindere .........................................................................................................22 3.).3. -ela+ia de generalizare ....................................................................................................23 3.).). -ela+ia de tip include .......................................................................................................2) 3.5. E2emplu de con#truirea diagramei cazurilor de utilizare .......................................................25 ). .iagrama de cla#e "cla## diagram% ................................................................................................2 ).1. Cla#a .......................................................................................................................................2& ).1.1. 3umele cla#ei ..................................................................................................................2& ).1.2. 0tributele cla#ei ...............................................................................................................2( ).1.3. 4pera+iile .........................................................................................................................31 ).2. -ela+ii ,ntre cla#e ....................................................................................................................32 ).2.1. -ela+ia de dependen+a.......................................................................................................32 ).2.2. -ela+ia de a#ociere............................................................................................................33 ).2.3. -ela+ia de agregare ..........................................................................................................3) ).2.). -ela+ia de compozi+ie ......................................................................................................3) ).2.5. -ela+ie de generalizare ....................................................................................................35 ).3. 1nter$e+e ..................................................................................................................................3/ ).). 4biecte ....................................................................................................................................3/ 5. .iagrama de #tri "#tatec5art diagram% .........................................................................................3 5.1. 0utomate ................................................................................................................................3 5.2. Stare ........................................................................................................................................3& 5.2.1. 3umele #trii ...................................................................................................................3( 5.2.2. Starea ini+ial ...................................................................................................................3( 5.2.3. Starea $inal .....................................................................................................................3( 5.3. 6ranzi+ie ..................................................................................................................................3( 5.3.1. Eveniment ........................................................................................................................)* 5.3.2. Condi+ie gard .................................................................................................................)* 5.3.3. E2pre#ia ac+iunei .............................................................................................................)1 5.). Stare 7i #ub#tare compu# .......................................................................................................)2 5.).1. Sub#tri di#juncte ............................................................................................................)2 5.).2. Sub#tri concurente .........................................................................................................)3 /. .iagrama de activit+i "activit8 diagram%.......................................................................................)5 /.1. Starea activit+ii ......................................................................................................................)5

/.2. 6ranzi+ii ..................................................................................................................................)/ /.3. !arti+ii .....................................................................................................................................)& /.). 4biecte ....................................................................................................................................5* . .iagrama de #ecven+ "#e9uence diagram% ...................................................................................51 .1. 4biecte ....................................................................................................................................51 .1.1. Linia de via+ al obiectului ..............................................................................................52 .2. :ocu# control ..........................................................................................................................52 .3. Me#aje ....................................................................................................................................52 .3.1. Stereotipuri de me#aje .....................................................................................................53 .). -e#tric+ii temporale ,n diagrama de #ecven+ .........................................................................53 &. .iagrama de colaborare "collaboration diagram% ..........................................................................5) &.1. 4biecte ....................................................................................................................................5) &.1.1. Multiobiect ......................................................................................................................5/ &.1.2. 4biect activ .....................................................................................................................5/ &.1.3. 4biect compu# .................................................................................................................5 &.2. Legturi ..................................................................................................................................5 &.2.1. 6ipuri de legturi .............................................................................................................5& &.3. Colaborare ..............................................................................................................................5( &.3.1. .iagrama de colaborare la nivel de #peci$icare .............................................................../* (. .iagrama de componente "component diagram% ........................................................................../1 (.1. Componente ............................................................................................................................/2 (.1.1. 3umele componentului .................................................................................................../3 (.1.2. :eluri de componente ....................................................................................................../) (.2. 1nter$e+e ................................................................................................................................../5 (.3. .ependen+e ............................................................................................................................./5 (.). -ecomandri la con#truirea diagramei de componente ........................................................../ 1*. .iagrama de pla#are "deplo8ment diagram% .............................................................................../& 1*.1. 3od ......................................................................................................................................./( 1*.2. Cone2are ............................................................................................................................... 1 1*.3. -ecomandri la con#truirea diagramei de pla#are ................................................................ 3

1. Etapele principale de dezvoltare a limbajului UML


Unele limbaje de modelare obiect orientate au ,nceput # apare ,n perioada ,ntre mijlocul anilor 1( * 7i #$,r7itul anilor 1(&*; c,nd di$eri+i cercettori 7i programatori propuneau diver#e metode de analiza 7i proiectare obiect orientat "0!44%. <n perioada ,ntre anii 1(&(=1(() numrul total al limbajelor de modelare cele mai cuno#cute a cre#cut de la 1* p,na la mai mult dec,t 5*. Mul+i utilizatori au avut di$icult+i #erioa#e la alegerea limbajului de 0!44; $iindc nici unul din limbajele propu#e nu #ati#$cea toate cerin+ele ctre modelarea "con#truirea modelelor% #i#temelor compu#e. 0cceptarea unor metode 7i nota+ii gra$ice ,n calitatea de #tandarde "1.E:*; 1.E:1>% nu a putut # #c5imbe #itua+ia de concuren+ acut ,ntre limbaje la ,nceputul anilor (*ci. Spre mijlocul anilor 1((* unele metode au $o#t e#en+ial per$ec+ionate 7i au ob+inut #emni$ica+ie proprie la rezolvarea di$eritor probleme 0!44. Cele mai cuno#cute ,n acea perioad au devenit?

Metoda lui @rad8 Aooc5; care e#te cuno#cut ca Aooc5 #au Aooc5B(1; Aooc5 Lite "mai t,rziu ' Aooc5B(3%. Metoda lui Came# -umbaug5; cuno#cuta ca 4bject Modeling 6ec5ni9ue ' 4M6 "mai t,rziu ' 4M6=2%. Metoda lui 1var Cacob#on; cuno#cuta ca 4bject=4riented So$tDare Engineering ' 44SE.

:iecare metod a $o#t orientat #pre #u#+inerea unor etape aparte ale 0!44. .e e2emplu; metoda 44SE con+inea mijloace de prezentare a cazurilor de utilizare; care au #emni$ica+ie e#en+ial la etapa analizei cerin+elor ,n timpul proiectrii bu#ine##=aplica+iilor. Metoda 4M6=2 era cea mai potrivit pentru analiza proce#elor de prelucrare a datelor ,n #i#temele in$orma+ionale. Metoda Aooc5B(3 era cea mai aplicabil la etapele de proiectare 7i e2ploatare a di$eritor #i#teme program. 1#toria dezvoltrii limbajului UML ,ncepe ,n luna octombrie a anului 1((); c,nd @rad8 Aooc5 7i Came# -umbaug5 din -ational So$tDare Corporation au ,nceput # lucreze ,mpreun a#upra uni$icrii metodelor Aooc5 7i 4M6. Cu toate c ace#te metode $iecare ,n parte erau de#tul de cuno#cute; lucrul ,n comun era organizat pentru cercetarea tuturor metodelor 44 cu #copul uni$icrii celor mai avantajoa#e tr#turi ale lor. !roiectul ace#tei a7a zi#e metode uni$icate "Uni$ied Met5od% ver#iunea *.& a $o#t pregtit 7i publicat ,n luna octombrie anului 1((5. <n toamna aceluia7i an a aderat la ei 7i 1v. Cacob#on; te5nologul principal al companiei 4bjector8 0E "Suedia%; cu #copul integrrii metodei #ale 44SE cu celelalte dou precedente. <ncep,nd lucrul #pre uni$icarea metodelor; @. Aooc5; C. -umbaug5 7i 1v. Cacob#on au $ormulat urmtoarele cerin+ele ctre limbajul de modelare. El trebuie?

S o$ere po#ibilitatea de a modela nu numai produ#e #o$t dar 7i cla#e mai largi de #i#teme 7i bu#ine##=aplica+ii cu utilizarea no+iunilor obiect orientate. S a#igure ,n mod evident legatura ,ntre no+iunile de baz ale modelelor nivelurilor conceptual 7i $izic. S a#igure #calarea modelelor; ce e#te o calitate important a #i#temelor complicate. S $ie clar pentru anali7ti 7i programatori; de a#emenea trebuie # $ie #u#+inut de ctre mijloace in#trumentale #peciale; realizate pe di$erite plat$orme de calculator.

.ezvoltarea #i#temei de nota+ii pentru 0!44 #=a dovedit # nu $ie a#emntoare cu dezvoltarea unui nou limbaj de programare. <n primul r,nd era nece#ar de rezolvat dou probleme? 1. 3ota+ia dat trebuie # includ ,n ea 7i #peci$icarea cerin+elorF 2. E#te nece#ar de e2tin# nota+ia dat p,na la nivelul limbajului de programare vizualF <n al doilea r,nd era nece#ar de g#it ec5ilibrul ,ntre e2pre#ivitatea 7i #implitatea limbajului. !e o parte; o prea #impl nota+ie limiteaz #$era problemelor poten+iale care pot $i rezolvate cu ajutorul #i#temului de nota+ii core#punztor. !e de alt parte; o prea complicat nota+ie creaza di$icult+i adugatoare pentru #tudierea 7i aplicarea de ctre anali7ti 7i programatori. <n cazul uni$icrii metodelor e2i#tente e#te nece#ar de a lua ,n con#idera+ie intere#ele #peciali7tilor; care au e2perien+ de lucru cu ace#te metode; $iindc introducerea #c5imbrilor #emni$icative poate atrage dup #ine ne,n+elegerea 7i re#pingerea din partea utilizatorilor altor metode. !entru a e2clude opunerea neevident din partea unor #peciali7ti; e#te nece#ar de a lua ,n con#iderar+ie intere#ele pturilor largi ale utilizatorilor. <n continuare lucrul a#upra limbajului de modelare uni$icat "Uni$ied Modeling Language% a trebuit # ia ,n con#idera+ie toate ace#te circum#tan+e. <n acea#t period #uportul elaborrii limbajului UML devine unul din #copurile con#or+iului 4M@ "4bject Management @roup%. Cu totate c con#or+iul 4M@ a $o#t creat ,nca ,n anul 1(&( cu #copul de a elabora propuneri de #tandartizare a te5nologiilor orientate pe obiecte 7i componente C4-A0; limbajul UML a captat #tatutul de a doua direc+ie #trategic ,n lucrul 4M@. 0nume ,n cadrul 4M@ e#te creat comanda de elaboratori #ub conducerea lui -ic5ard Soli care va a#igura lucrul de mai departe a#upra uni$icrii 7i #tandartizrii limbajului UML. E$orturile lui @. Aooc5; C. -umbaug5 7i 1v. Cacob#on au du# la apari+ia primelor documente care con+ineau de#crierea limbajului UML ver#iunea *.( ",n iunie 1((/% 7i ver#iunea *.(1 ",n octombrie 1((/%. 0ce#te documente cu #tatut de propuneri -6! "-e9ue#t :or !ropo#al#% au #ervit ca catalizator pentru di#cutarea ,n ma# a limbajului UML de ctre di$erite categorii de #peciali7ti. !rimele preri 7i reac+ii ,n ce prive7te limbajul UML indicau nece#itatea de a=l completa cu nota+ii 7i con#truc+ii. Compania -ational So$tDare ,mpreun cu c,teva organiza+ii; care au mani$e#tat dorin+a de a aloca re#ur#e pentru elaborarea de$ini+iei #tricte a ver#iunii 1.* limbajului UML; au $ondat con#or+iul partenerilor UML ,n care ini+ial au intrat a7a companii ca .igital E9uipment Corp.; G!; i=Logi2; 1ntellicorp; 1AM; 1C43 Computing; MC1 S8#tem5ou#e; Micro#o$t; 4racle; -ational So$tDare; 61 H Uni#8#. 0ce#te companii au a#igurat #uportul lucrului ,n continuare a#upra de$inirii unei nota+iei ,nc mai #tricte 7i preci#e; ceea ce a du# la apari+ia ver#iunii 1.* limbajului UML. !articularitatea limbajului UML con#t ,n aceea ca limbajul de$ine7te metamodelul #emantic; dar nu modelul unei inter$e+e concrete 7i metodele de prezentare 7i realizare a componentelor. <n prezent toate ,ntrebrile elaborrii ,n continuare a limbajului UML #unt concentrate ,n limitele con#or+iului 4M@. @rupul core#punztor de #peciali7ti a#igur publicarea materialelor care con+in de#crierea ver#iunilor urmtoare ale limbajului UML 7i a propunerilor -:! de #tandardizarea. 4 urmtoare etap de dezvoltare a ace#tui limbaj #=a terminat ,n martie anului 2**3 cind con#or+iul 4M@ a publicat de#crierea limbajului UML 2.*. 1#toria elaborrii 7i dezvoltrii urmtoare al limbajului UML e#te reprezentat gra$ic ,n $ig. 1. !e baza te5nologiei UML Micro#o$t; -ational So$tDare 7i al+i $urnizori de medii de dezvoltare a #i#temelor de programare au elaborat modelul in$orma+ional unic care a $o#t numit UML 1n$ormation Model. Se pre#upune c ace#t model va da po#ibilitatea di$eritor programe care #uport

ideologia UML # $ac #c5imb de componente 7i de#crieri. 6oate ace#tea vor permite crearea inter$e+ei #tandarde ,ntre mijloacele de elaborare 7i mijloacele de modelare vizuala.

Fi . 1. 1#toria dezvoltrii limbajului UML. .eja ,n prezent #unt elaborate mijloace de programare vizual pe baza lui UML care a#igura integrarea; inclu#iv generare directa 7i inver# a codului de programe cu cele mai ra#p,ndite limbaje 7i medii de programare; a7a cum #unt MS Ei#ual CII; Cava; CJ; 4bject !a#calK.elp5i; !oDer Auilder; MS Ei#ual Aa#ic; :orte; 0da; SmalltalL. .eoarece la elaborarea limbajului UML au $o#t luate ,n con#idera+ie multe idei 7i metode de $runte #e poate de a7teptat c ver#iunile urmtoare ale limbajului UML vor $i in$luen+ate 7i de alte te5nologii 7i conceptii de per#pectiv. <n plu# la acea#ta ,n baza limbajului UML pot $i de$inite multe metode per#pective noi. Limbajul UML poate $i e2tin# $r o rede$inire nucleului #u.

!. Componente de baza ale limbajului UML


Limbajul UML reprezint limbajul de de#tina+ie general al modelrii vizuale; care e#te elaborat pentru #peci$icarea; vizualizarea; con#truirea 7i documentarea componentelor produ#ului #o$t; bu#ine##=proce#elor 7i altor #i#teme. 6otodat limbajul UML e#te un mijloc de modelare #implu 7i puternic care poate $i utilizat e$ectiv pentru con#truirea modelelor conceptuale; logice 7i gra$ice ale #i#temelor comple2e de di$erit de#tina+ie. 0ce#t limbaj con+ine cele mai bune calit+i ale metodelor ingineriei de program care au $o#t utilizate cu #ucce# pe parcur#ul ultimilor ani la modelarea #i#temelor comple2e. Limbajul UML e#te bazat pe un anumit numr de no+iuni principale care pot $i #tudiate 7i aplicate de ctre majoritatea programi7tilor 7i elaboratorilor cuno#cu+i cu metodele de analiza 7i proiectarea obiect orientate. 6otodat no+iunile de baz pot $i combinate 7i e2tin#e ,n a#a $el c #peciali7tii

modelrii orientate pe obiecte pot elabora de #ine#tttor modele ale #i#temelor comple2e ,n di$erite domenii de aplicare. Utilizarea con#tructiv a limbajului UML e#te bazat pe in+elegerea principiilor comune de modelare a #i#temelor comple2e 7i a particularit+ilor proce#ului de analiza 7i proiectarea obiect orientate. 0legerea mijloacelor e2pre#ive pentru con#truc+ia modelelor ale #i#temelor comple2e #tabile7te din vreme problemele care pot $i rezolvate cu ajutorul utilizrii ace#tor modele. 6otodat unul din principiile de baz pentru con#truirea modelelor ale #i#temelor comple2e e#te principiul de ab#tractizare care pre#upune includerea ,n model numai a acelor a#pecte ale #i#temului proiectat; care au nemijlocit legtura cu e2ecutarea de ctre #i#tem a $unc+iilor #ale #au cu de#tina+ia lui de baza. 6otodat toate detalii de importan+a #ecundar #unt omi#e pentru ca proce#ul de analiza 7i cercetare a modelului primit # nu $ie $oarte complicat. 0lt principiu de con#truc+ie a modelelor ale #i#temelor comple2e e#te principiul de multi=modele. 0ce#t principiu reprezint a$irma+ia c nici un model unic nu poate de#crie di$erite a#pecte ale #i#temului comple2. Cu privire la metodologia 0!44 acea#ta ,n#eamn c un model de#tul de complet al unui #i#tem comple2 admite un anumit numr de reprezentri "vieD#% legate reciproc; $iecare din ele re$lect,nd adecvat un anumit a#pect de comportare #au #tructura a #i#temului. 6otodat cele mai generale reprezentri ale unui #i#tem comple2 #unt con#iderate reprezentri #tatice 7i dinamice care la r,ndul lor pot $i divizate ,n alte reprezentri particulare. <nca un principiu al analizei aplicate de #i#tem e#te principiul de con#truire ierar5ic a modelelor #i#temelor comple2e. 0ce#t principiu pre#upune cercetarea proce#ului de con#truire a modelului la di$erite nivele de ab#tractizare #au detaliere ,n limitele reprezentrilor #tabilite. 6otodat modelul ini+ial #au elementar al unui #i#tem comple2 are reprezentarea cea mai generala "meta=reprezentare%. Un a#t$el de model #e con#truie7te la etapa ini+ial de proiectare 7i poate # nu con+in multe detalii 7i a#pecte ale #i#temului modelat.
Reprezentare lo ica Utilizatorul $inal -ela+ii #tructurale e2terioare 7i in$erioare Reprezentare realiz#rii !rogrami#tul -ela+ii ,ntre componente ale produ#ului #o$t Model $tatic

Reprezentare proce$ului de "unc%ionare 1ntegratorul de #i#tem -andamentul 7i volumul componentelor al unui #i#tem Model conceptual

Model al unui $item comple&

Reprezentare depla$#rii componentelor 0dmini#tratorul de #i#tem 6opologia legaturilor 7i comunica+iilor ale componentelor Model "izic

Model dinamic

Fi . ! Sc5ema comun legturilor modelelor 7i reprezentrilor ale unui #i#tem comple2 ,n proce#ul 0!44. <n a7a $el; un proce# 0!44 poate $i reprezentat ca o cobor,re pe nivele? de la cele mai generale modele 7i reprezentri de nivel conceptual #pre reprezentri mai particulare 7i detaliate ale nivelului logic 7i $izic. 6otodat la $iecarea etap a proce#ului 0!44 modelele date #unt completate con#ecvent cu un numr din ce ,n ce mai mare de detalii ce le premite # re$lecte mai adecvat di$erite a#pecte ale realizrii unui anumit #i#tem comple2. Sc5ema comun legturilor modelelor 0!44 e#te reprezentat ,n $ig. 2. /

2.1. Structura general a limbajului UML


UML con#t din dou par+i interdependente?

Semantica limbajului UML reprezint un careva metamodel; care de$ine7te #inta2a ab#tracta 7i #emantica no+iunilor modelrii orientate pe obiecte ,n limbajul UML. 3ota+ia limbajului UML reprezint o nota+ie gra$ica pentru reprezentarea vizual a #emanticii limbajului UML.

Sinta2a ab#tract 7i #emantica limbajului UML #unt de#cri#e cu ajutorul unei anumite #ubmul+imi de nota+ii ale UML. <n completare la acea#ta; notatia UML de#crie core#punderea #au reprezentarea nota+iei gra$ice ,n #emantica no+iunilor de baza. <n a7a $el din punct de vedere $unc+ional ace#te dou pr+i completeaz una pe alt. 6otodat #emantica limbajului UML e#te de#cri# pe baza unui metamodel care are trei reprezentri aparte? #inta2a ab#tract; reguli de con#truc+ia corect a e2pre#iilor 7i #emantica. Cercetarea #emanticii limbajului UML pre#upune un careva #til #emi$ormal de redare; care uni$ica limbaje naturale 7i $ormale pentru reprezentarea no+iunilor de baza 7i regulilor de e2tindere a lor. Semantica #e de$ine7te pentru dou tipuri de modele de obiecte? de #tructura 7i de comportare. Modelele de #tructur; cuno#cute ca modele #tatice; de#criu #tructura entit+ilor #au a componentelor unui #i#tem inclu#iv cla#e; inter$e+e; atribute 7i rela+ii. Modelele de comportare; numite uneori dinamice; de#criu comportarea #au $unc+ionarea obiectelor unui #i#tem; inclu#iv metodele lor; colaborarea ,ntre ele; 7i proce#ul de #c5imbare a #trilor unor componente aparte 7i al #i#temului ,ntreg. !entru rezolvarea unui diapazon at,t de larg de probleme de modelare e#te elaborat #emantica de#tul de complet pentru toate componentele nota+iilor gra$ice. Cerin+ele #emanticii limbajului UML #unt concretizate la con#truirea anumitor tipuri de diagrame. 3ota+ia limbajului UML include ,n #ine de#crierea elementelor #emantice care pot $i utilizate la con#truc+ia diagramelor. .e#criere $ormal a limbajului UML #e bazeaza pe careva #tructur ierar5ic comun a reprezentrilor de model care con#t din patru nivele?

Meta=metamodelul Metamodelul Modelul 4biectele utilizatorului

3ivelul de meta=metamodel creaz o baz ini+ial pentru toate reprezentri de metamodele. .e#tinatia principal a ace#tui nivel con#t ,n de$ini+ia limbajului pentru #peci$icarea metamodelului. Meta=metamodelul de$ine7te modelul limbajului UML la cel mai ,nalt nivel de ab#tractizare 7i cea mai compact de#criere a lui. .in alt parte; meta=metamodelul poate #peci$ica c,teva metamodele ce permite atingerea $le2ibilit+ii poten+iale de includere a no+iunilor adugtoare. Ca e2emple de nota+ii ale ace#tui nivel pot $i meta=cla#a; meta=atribut; meta=opera+ie. Semantica meta=metamodelului nu intra ,n de#crierea limbajului UML. 0cea#ta $ace limbajul UML mai #implu pentru #tudiere; $iindc nu cere cunoa7terea teoriei limbajelor $ormale 7i a logicii $ormale. Metamodelul e#te un e2emplar #au concretizarea meta=metamodelului. Scopul principal ace#tui nivel e#te de$inirea limbajului pentru #peci$icarea modelelor. 0ce#t nivel e#te mai con#tructiv dec,t

cel precedent; $iindc #emantica lui ale no+iunilor de baz e#te mai dezvoltat. 6oate no+iunile de baz ale limbajului UML #unt no+iunile nivelului de metamodel. E2emple de ace#te notiuni #unt cla#a; atributul; opera+ia; componenta; a#ocierea 7i multe alte. Modelul ,n conte2tul limbajului UML e#te e2emplarul metamodelului ,n #en#ul c $iecare model concret a unui #i#tem trebuie # utilizeze numai no+iunile lui metamodel concretiz,ndu=le cu privire la #itua+ia dat. 0ce#t nivel e#te pentru de#crierea in$orma+iei de#pre un domeniu concret "de obiecte%.Ca e2emple a ace#tui nivel pot $i numele c,mpurilor ale bazei de date proiectate; de e2emplu; numele 7i prenumele angajatului; v,r#ta; po#tul; adre#a; numrul de tele$on. 6otodat no+iunile date #unt utilizate numai ca nume ale atributelor in$orma+ionale core#punztoare. .e#crierea #emanticii limbajului UML pre#upune cercetarea no+iunilor de baz numai ale nivelului metamodel care reprezint numai e2emplu #au caz particular al nivelului meta=metamodel.

2.2. Particularitatea (specificul) limbajului UML


UML e#te un in#trument #tandard pentru crearea carca#elor de documentare "Mde#enelorN% ale produ#ului #o$t. UML e#te un limbaj de vizualizare; #peci$icare; con#truc+ie 7i documentare arte$actelor #i#temelor de program. Eom aminti c arti$actul ' o diagrama; un document; un model; o lege 7.a. ' e#te ceva ce de#crie o anumit no+iune a domeniului de obiecte. UML e#te elaborat ,n a7a $el c # poat #ati#$ace cerin+ele ctre modelarea oricrui #i#tem ,ncep,nd cu #i#teme in$orma+ionale de dimen#iunea unei ,ntreprinderi p,na la Oeb=aplica+ii di#tribuite 7i #i#teme integrate ,n timp real. UML e#te un limbaj e2pre#iv care permite cercetarea #i#temei din toate punctele de vedere care au legtura cu elaborarea 7i de#$#urarea ei urmtoare. 3ectind la numrul mare de po#ibilitti e2pre#ive; ace#t limbaj rm,ne #implu pentru intelegere 7i utilizare. Cercetarea UML vom incepe cu modelul lui conceptual care con+ine trei elemente de baz? con#truc+ii de baz; reguli; care determin $elul ,n care con#truc+ii pot $i combinate; 7i unele mecanizme comune ale limbajului. Cu totate c UML nu depinde de realitate modelat e#te mai bine # $ie utilizat c,nd proce#ul de modelare e#te bazat pe cercetarea de#crierei te2tuale a proce#elor e2ecutate ,n domeniu de obiecte 7i #i#temul are ar5itectura #trict eviden+iat. <n a#a $el limbajul e#te ideal pentru Uni$icarea proce#ului de elaborare. Ca 7i oricare limbaj; UML con#t dintr=un dic+ionar 7i reguli care permit combinarea cuvintelor de intare 7i primirea con#truc+iilor cu #en#. <n limbajul de modelare dic+ionarul 7i regulile #unt orientate #pre reprezentarea conceptual 7i $izic ale unui #i#tem. Limbajul de modelare; a7a cum e#te UML; e#te un mijloc #tandard pentru elaborarea Mde#enelorN produ#ului #o$t. Modelarea e#te nece#ar pentru in+elegerea #i#temului. <n mod obi7nuit un model unic nu poate $i de ajun#. .in contra; pentru in+elegerea practic a oricrui #i#tem netrivial e#te nece#ar dezvolaterea unui numr enorm de modele interdependente. <n aplicare ctre #i#teme de program acea#ta ,n#eamn nece#itatea unui limbaj cu ajutorul cruia din toate punctele de vedere poate $i de#cri# ar5itectura unui #i#tem pe parcur#ul ciclului de dezvoltare. .ictionarul 7i regulile unui a7a limbaj ca UML e2plic modul de creare 7i de citire a anumitor modele; dar nu e2plic care modele #unt mai potrivite pentru di$erite cazuri. 0cea#ta e#te #arcina principal pentru tot proce#ul de elaborare a produ#ului #o$t. 4rganizarea unui a7a proce# e#te un lucru deo#ebit de individual ,n limitele di$eritor companii de program 7i grupelor de elaboratori ai produ#ului #o$t. Un proce# bine organizat trebuie # arate care arte$acte trebuie#c; care re#ur#e #unt &

nece#are pentru crearea lor; cum pot $i utilizate ace#te arte$acte pentru aprecierea lucrului e2ecutat 7i admini#trarea proiectului ,n ,ntregime.

2.2.1. UML limbaj de vi uali are


6r#tura caracteri#tica a majorit+ii programi7tilor e#te $aptul c g,ndurile de#pre realizarea proiectului #unt ec5ivalente #crierei codului pentru ace#t proiect. .ac g,ndim de#pre proiectul ,n#eamn c ,l codi$icm; de#igur; unele lucruri #unt mai bine e2primate ,n codul al unui anumit limbaj de programare; $iindc codul #ur#ei "li#tingul programului% e#te cel mai #curt drum #pre #crierea algoritmelor 7i calcului. <n unele cazuri programi#tul #e ocup cu modelarea cu toate c ace#t proce# nu e#te $ormal. 6ratare de a7a $el e#te plin de neplceri. Mai ,nt,i #c5imbarea prrilor de#pre modelul proiectat #e poate numai atunci c,nd to+i participan+ii #e e2prim ,n acela7i limbaj. 0cea#ta ,n#eamn ca compania .= #tr n=ar putea # angajeze un programi#t e2celent ,n C dac el utilizeaz .elp5iP Sau noul angajat n=ar putea # in+eleag de#pre ce merge vorba. <n al doilea r,nd nu putem # in+elegem a#pectele de program al unui #i#tem $r modelul re#pectiv marginele cruia nu intr ,n cadrul limbajului te2tual de programare. .e e2emplu rolul ierar5iei cla#elor #e poate de in+ele# #tudiind codul $iecrei cla#e; dar de in+ele# toat #tructura e#te $oarte greu. 0nalogic cercetarea codului unui #i#tem nu permite # ave+i o imagine complet de#pre di#tribuirea $izic #au de#pre migra+ia obiectelor ,n aplica+ii Oeb. <n al treilea r,nd dac anali#tul de #i#tem al companiei .=#tre niciodat n=a creat modelurile proiectate ,n $orm clar toat in$orma+ia va $i pierdut daca anali#tul va $i atra# de $irma concurent. <n cel mai bun caz rezultatele analizei ace#tui anali#t vor $i re#tabilite par+ial reie7ind din realizarea lor. Utilizarea UML=lui permite rezolvarea ace#tor problemelor. 0ce#t limbaj de programare nu e#te doar un #et de #imboluri gra$ice; $iecare din ele #e bazeaz pe #emantica re#pectiv; ce ,n#eamn c modelul creat de un elaborator poate $i uni$orm interpretat de altul 7i nu neaparat de alt om; ,n calitate de al doilea elaborator poate $i 7i un anumit mijloc in#trumental. S$,r7itul primei probleme. Unele tr#aturi ale #i#temului #unt mai bine modelate ca te2tuale; alte ' ca gra$ice. !ratica arat ca ,n toate #i#temele intere#ante e2i#t #tructuri care nu pot $i interpretate $r ajutorul unui limbaj de programare. UML e#te un limbaj gra$ic ce permite rezolvarea ace#tei probleme "a doua problem%. <n #$,r7it modelul clar u7ureaz comunicarea; ce ,n#eman c a treia problem nu #e mai pune.

2.2.2. UML limbaj de specificare


<n conte2tul dat prin #peci$icare #ub,n+elegem con#truirea modelelor preci#e 7i complete. UML permite #peci$icarea tuturor #olu+iilor importante care #e re$er la analiza; proiectarea 7i realizarea ,n proce#ul elaborrii produ#ului #o$t.

2.2.!. UML limbaj de c"nstruire


UML nu e#te un limbaj de programare vizual; dar toate modele elaborate ,n baza lui pot $i tran#$ormate ,n codul #ur# a diver#elor limbaje de programare obiect orientate. 0cele no+iuni care #unt u7or reprezentate gra$ic a7a 7i #unt tran#$ormate "inclu#e% ,n UML; dar acele care mai bine #unt decri#e ,n codul #ur#ei #e tran#$orm cu ajutorul limbajului de programare. 07a mod de reprezentare ,n limbaj de programare permite proiectarea direct #au generarea codului dup modelul UML ,ntr=un anumit limbaj de programare. !roblema inver# tot poate $i rezolvat; ea permite recon#truirea unui model con$orm realizrii e2i#tente. 0cea#t proiectare inver# nu prezint ceva neobi7nuit. .aca n=am codi$icat in$orma+ia ,n realizare atunci ea poate $i pierdut la trecerea direct de la modelul la codul #ur#ei. <n#eamn c pentru proiectarea inver# "indirecta% (

#unt nece#are mijloace in#trumentale 7i colaborarea programi#tului #au anali#tului de #i#tem. Combinarea generrii directe a codului 7i proiectrii indirecte permite a lucra ,n prezentare gra$ic 7i te2tual dac programele in#trumentale a#igur coordonare ,ntre ace#te dou prezentri al proiectului. <n a$ar de re$lectare direct datorit e2pre#ivit+ii 7i uni$ormit+ii limbajul UML permite e2ecutarea modelelor; imitarea colaborrii #i#temului 7i controlul #i#temului care $unc+ioneaz.

2.2.#. UML limbaj de d"cumentare


Compania ce lan#eaz programul #o$t pe l,nga codul #ur# produce 7i alte arte$acte; inclu#iv?

cerin+e ctre #i#temQ ar5itecturaQ proiectulQ codul ini+ialQ planuri de proiecteQ te#teQ prototipuriQ ver#iuni #.a.

<n dependen+a de metodica elaborrii #tabilit unele lucrurile #e e2ecut mai $ormal dec,t altele. 0rti$actele men+ionate mai #u# #unt nece#are pentru admini#trarea; aprecierea rezultatelor 7i ca mijloc de comunicare ,ntre membrii colectivului ,n timpul elaborrii proiectului 7i de#$7urrii lui. UML permite rezolvarea problemei de documentare a ar5itecturii #i#temului; o$er limbajul pentru de$inirea $ormal a cerin+elor ctre #i#temul 7i ctre te#te; de$ine7te mijloace pentru modelarea lucrurilor pe etapa plani$icrii proiectului 7i admini#trrii ver#iunelor. Limbajul UML e#te de#tinat ,n primul r,nd elaborrii #i#temului de programare. Utilizarea lui e#te cu mult mai e$icienta ,n urmatoarele #$ere?

#i#teme in$orma+ionaleQ #ervicii bancare 7i $inanciareQ telecomunica+ieQ tran#portQ indu#tria de aprare; avia+ie; co#monauticQ #i#teme comercialeQ electronica medicalQ 7tiin+aQ di#tribuirea #i#temului Oeb.

1*

S$era de aplicare a limbajului UML nu #e limiteaz la modelarea produ#ului #o$t. E2pre#ivitatea lui permite modelarea documentelor ,n #i#teme juridice; modelarea #tructurii 7i $unctionalitatea #i#temelor de de#ervire a pacien+elor ,n #pitale; proiectarea aparaturii. !entru in+elegerea limbajului e#te nece#ar de cuno#cut principiile de baz a #tructurii ace#tui limbaj. Sunt numai trei principii 7i limbajul parc con#t din trei pr+i? con#truc+ii de baz ale limbajului; reguli de colaborare 7i anumite mecanizme comune. Rtiind toate ace#te ideile vom putea citi modelele ,n UML 7i # le proiectm; de#igur c vom ,ncepe cu cele mai #imple. !e parcur#ul ob+inerii e2perien+ei de lucru cu limbajul vom ,nv+a # utilizm po#ibilit+ile limbajului mai avan#ate. .ic+ionarul limbajului ,nclude trei tipuri de con#truc+ii de baz?

entit+i ' ab#trac+ii ce #unt elemente de baz a modeluluiQ rela+ii ' legturi ,ntre entit+iQ diagrame ce grupeaz intere#ele entit+ilor 7i rela+iilor.

2.!. $ntit%i &n UML


<n UML #unt patru tipuri de entit+i?

de #tructurQ de comportamentQ de grupareQ de adnotare.

Entit+i #unt elementele 44 de baz ale limbajului. Cu ajutorul entit+ilor e#te po#ibil crearea modelelor corecte. Entittile de #tructur #unt #ub#tantivele ,n modelurile ale limbajului UML. .e regul ele reprezint pr+i #tatice ale modelelor care core#pund elementelor conceptuale 7i $izice ale #i#temului. E2i#t 7apte variet+i de entit+i de #tructur? Clasa "cla##% e#te o de#criere a unei totalit+i de obiecte cu atribute; opera+ii; rela+ii 7i #emantica comun. @ra$ic o cla#a #e reprezint printr=un dreptung5i ,n care #e #peci$ic numele; atributele 7i opera+iile cla#e; e2emplu e#te artat ,n $ig. 3.
NumeleClasei <<->> AtributPrivat : char <<#>> AtributProtejat <<+>> AtributPublic <<+>> op1() <<+>> op2()

Fi . '. Cla#a. Interfaa "inter$ace% e#te o totalitate de opera+ii care de$ine#c #ervicii o$erite de cla# #au component. <n diagrame inter$a+a #e reprezint printr=un cerc etic5etat cu numele inter$e+ei; $ig. ). 1nter$a+a $oarte rar e2i#t aparte ' de obicei ea e#te legat cu cla#a #au componenta care o realizeaz.

11

Interfata1

Fi . (. 1nter$a+a. Colaborarea "collaboration% de$ine7te o interac+iune; ea reprezint o totalitate de roluri 7i alte elemente care produc un e$ect cooperativ 7i care nu #e aduce numai la #uma termenilor unei adunri. @ra$ic colaborarea #e reprezint printr=o elip# cu linie ,ntrerupt; interiorul creia con+ine numai numele colaborrii; $ig. 5.

Colaborare1

Fi . ). Colaborare. Cazul de utilizare "u#e ca#e% e#te o de#criere a con#ecutivit+ii de ac+iuni ,ndeplinite de #i#tem care produc un rezultat #emni$icativ pentru un anumit actor. @ra$ic cazul de utilizare #e reprezint printr=o elip# cu linie continue ,n interiorul creia #e con+ine denumirea cazului de utilizare; $ig. /.
Ca ul !e utili are 1

Fi . *. Caz de utilizare. Clasa activ "active cla##% #e nume7te o cla# obiectele creia #unt antrenate ,n unul #au mai multe proce#e #au ,n 7iruri "t5read#% 7i deaceea ele pot ini+ia o ac+iune admini#trativ. @ra$ic o cla# activ #e reprezint ca 7i o cla# #impl; dar #e limiteaz cu un dreptung5i cu marginile groa#e 7i care con+ine numele; atributele 7i opera+iile cla#ei date; $ig. .
NumeleClasei <<->> AtributPrivat : char <<#>> AtributProtejat <<+>> AtributPublic <<+>> op1() <<+>> op2()

Fi . +. Cla#a activ. Componenta "component% e#te o parte $izic a #i#temului; care core#punde unui anumit #et de inter$e+e 7i a#igur realizarea lui. @ra$ic o component #e reprezint printr=un dreptung5i cu ane2e; care de obicei con+ine numai numele componentei; $ig. &.
Co"ponenta1

12

Fi . ,. Component. Nodul "node% e#te un element real "$izic% al unui #i#tem care reprezint un mijloc de calcul cu un anumit volum de memorie 7i de#eori cu capacitate de prelucrare a in$orma+iei 7i care e2i#t ,n timpul $unc+ionrii unui produ# #o$t. @ra$ic pentru reprezentarea nodului #e utilizeaz cubul care con+ine numele nodului; $ig. (.
#o! 1

Fi . -. 3od. Rapte elemente de baz enumerate? cla#e; inter$ete; colaborri; cazuri de utilizare; cla#e active; componente 7i noduri #unt entit+ile principale de #tructur care pot $i utilizate ,n diagramele UML. E2i#t 7i alte varietti ale entit+ilor de #tructur? actori; #emnale; utilite "tipurile de cla#e%; proce#e 7i 7iruri "tipuri de cla#e active%; aplica+ii; documente; $i7iere; biblioteci; pagini 7i tabele "tipuri de componente%. Entit+ile de comportament "be5aviour t5ing#% #unt pr+ile dinamice ale modelului UML. 0ce#tea #unt verbele limbajului care de#criu comportarea modelului ,n timpul 7i ,n #pa+iu. E2i#t numai doua tipuri de entit+i de comportament. Interaciunea "interaction% e#te un mod de comportare care con#t ,n #c5imb reciproc de me#aje "me##age#% ,ntre obiecte ,n cadrul unui anumit conte2t pentru a atinge un anumit #cop. Cu ajutorul interac+iunii #e de#crie atSt o opera+ie cSt 7i comportarea unui #et de obiecte. 1nterac+iunea pre#upune un 7ir de alte elemente ca me#aje; con#ecutivitate de ac+iuni "comportare; ini+ializat de ctre me#aje% 7i legturi ",ntre obiecte%. @ra$ic me#ajul #e reprezint print=o #geat dea#upr careia #e indic numele me#ajului; $ig. 1*.
CreazaObiect()

Fi . 1.. Me#aj. Automatul "#tate mac5ine% e#te un algoritm de comportare care de$ine7te o #ucce#iune de #tri prin care trece un obiect #au o interac+iune pe parcur#ul ciclului de via+a r#punz,nd la di$erite evenimente 7i reac+iile lui la ace#te evenimente. Cu ajutorul automatului #e de#crie comportarea unei cla#e #au a unei colaborri de cla#e. Cu automatul e#te legat un 7ir de alte elemente? #tri; tranzi+ii de la o #tare la alt; evenimente care #unt entitti ce ini+iaz tranzi+ii 7i tipuri de actiuni = reac+ii la tranzi+ii. @ra$ic o #tare #e reprezint printr=un dreptung5i cu col+uri rotungite care con+ine numele #trii #au po#ibil 7i #trile intermediare; $ig. 11.
$tare 1

Fi . 11. Stare.

13

1nterac+iunile 7i automatele #unt entit+ile principale de comportament care pot $i utilizate ,n diagramele UML. Semantic ele #unt legate cu di$erite elemente de #tructur; ,n primul r,nd cu cla#e; cooperri 7i obiecte. Entit+ile de grupare #unt pr+ile organizatorice ale modelului UML. Ele reprezint blocuri ,n care poate $i divizat modelul. 4 a#t$el entitate primar e#te unic ' pac5etul. Pachetele "pacLage#% reprezint un mecani#m univer#al de organizare ,n grupe. <n pac5et pot $i pla#ate entit+ile de #tructur; de comportament 7i alte entit+i de grupare. Spre deo#ebire de componentele care e2i#t real; ,n timpul e2ecu+iei unui program; pac5etele au caracter pur conceptual; adic ele e2i#t doar ,n timpul elaborrii. !entru reprezentarea unui pac5et #e utilizeaz nota+ia unei mape cu #emn de carte care con+ine de#eori numai numele 7i doar uneori 7i con+inutul; $ig. 12.

Fi . 1!. !ac5et. Entit+ile de adnotare #unt pr+ile e2plicative ale unui model UML. 0ce#tea #unt comentarii de#tinate de#crierii adi+ionale; e2plica+iei #au ob#erva+iei ctre orice element al unui model. E2i#t numai un #ingur tip de baz al elementelor de adnotare ' remarca. Remarca "note% e#te numai un #imbol pentru reprezentarea comentariilor #au a con#trSngerilor; legate de un element #au de un grup de elemente. @ra$ic o remarc #e reprezint printr=un dreptung5i cu col+ul de #u# din dreapta ,ndoit 7i care con+ine comentariul te2tual #au gra$ic; $ig. 13.

Fi . 1'. -emarca. 0ce#t element e#te entitatea de adnotare principal care poate $i utilizat ,n modelul UML. .e obicei remarca #e utilizeaz pentru a a#igura diagramele cu comentarii #au cu con#trSngeri care pot $i reprezentate #ub $orm de te2t $ormal #au ne$ormal. E2i#t 7i variante ale ace#tui element; de e2emplu cerin+e care de#criu comportarea dorit a unui #i#tem din punct de vedere e2terior modelului.

2.#. 'ela%ii UML


1n limbajul UML #unt de$inite patru tipuri de rela+ii?

.ependen+a 0#ocierea @eneralizarea -ealizarea

0ce#te rela+ii #unt con#truc+ii principale de legare ,n UML 7i #unt utilizate pentru con#truirea modelelor corecte. 1)

Dependena "dependenc8% e#te o rela+ie #emantic ,ntre dou entit+i a#t$el ,nc,t modi$icarea uneia din ele;a celei independente; poate in$luen+a #emantica celeilalte; dependente. @ra$ic pentru reprezentarea dependen+ei #e utilizeaza o linie ,ntrerupt; de#eori cu #geat care poate con+ine o etic5et.

Fi . 1(. .ependen+a. Asocierea "a##ociation% e#te o rela+ie de #tructur care de#crie o totalitate de legturi; prin legtur #e #ub,n+elege cone2iunea #emantic ,ntre obiecte. <n calitate de #imboluri #uplementare pot $i utilizate numele unei a#ocieri; numele 7i multiplicitatea cla#elor ' rolurile a#ocierii. 3umele a#ocierii nu e#te un element obligatoriu. .ac numele e#te dat; atunci el #e #crie cu maju#cul l,nga linia ce core#punde a#ocierei. @ra$ic a#ocierea #e reprezint printr=o linie "care uneori #e termin cu o #geat #au e#te etic5etat%; $ig. 15.
#e%Cla&& 1 -An(ajat Angajeaza -An(ajator ' #e%Cla&&2

Fi . 1). 0#ocierea. 4 $orm #pecial #au caz particular al rela+iei de a#ociere #e #ocoate rela+ia agregrii care la r,ndul #u are o $orm #pecial ' compozi+ia. Agregare "aggregation% e#te o anumit rela+ie ,ntre ,ntreg 7i pr+ile lui componente. 0cea#t rela+ie are un #en# $undamental pentru de#crierea #i#temelor comple2e $iindc #e utilizeaz pentru reprezentarea legturilor Mparte=,ntregN. .ezvluind #tructura interioar a #i#temului; rela+ia de agregare arat din ce elemente con#t #i#temul 7i cum elementele #unt legate. .in punct de vedere al modelului pr+ile aparte ale #i#temului pot $i #ocotite ca elemente 7i ca #ub#i#teme care la r,ndul lor pot crea componente #au #ub#i#teme. @ra$ic rela+ia de agregare #e reprezint printr=o linie continu; unul din capetele creia reprezint un romb gol. 0ce#t romb arat M,ntregulN 7i re#tul = Mpr+ileN; $ig. 1/.
Intre( Parte

Fi . 1*. 0gregare. -ela+ia compoziie e#te cazul particular al rela+iei de agregare. 0cea#t rela+ie e#te de#tinat prezentrii $ormei #peciale a rela+iei Mparte=,ntregN ,n care pr+ile componente #unt ,n interiorul pr+iii ,ntregi. Speci$ica legturii ,ntre ele con#t ,n aceea c pr+ile componente nu pot e2i#ta $r partea ,ntreag; adic cu di#trugerea ,ntregului #e de#trug 7i pr+ile componente a lui. @ra$ic rela+ia de compozi+ie #e reprezint printr=o linie continu; unul din capetele cruia reprezint un romb 5a7urat. 0ce#t romb arat cla#a=compozi+ie #au M,ntregulN 7i re#tul #unt Mpr+ileN lui; $ig. 1 .

Fi . 1+. Compozi+ie. 15

Generalizarea "generalization% e#te o rela+ie de tip M#pecializareKgeneralizareN ,n urma creia un obiect al elementului #pecializat "de#cendent% poate #ub#titui obiectul elementului generalizat "printe%. .e#cendentul "c5ild% mo7tene7te #tructura 7i comportamentul printelui "parent% #u. @ra$ic rela+ia de generalizare #e reprezint printr=o linie cu o #geat goal care arat printe; $ig. 1&.
Child Parent

Fi . 1,. @eneralizarea. Realizarea "realization% e#te o rela+ie #emantic ,ntre cla#i$icatori ,n care un cla#i$icator de$ine7te un McontractN; iar cellat garanteaz ,ndeplinirea lui. -ela+ia de realizare #e ,nt,lne7te ,n cazurile urmtoare? ,ntre inter$e+e 7i cla#e #au componente care realizeaz ace#te inter$e+e; 7i ,ntre cazuri de utilizare 7i colaborri care le realizez. -ela+ia de realizare #e reprezint printr=o linie ,ntrerupt cu o #geat goal; ca ceva intermediar ,ntre rela+iile generalizare 7i dependen+a; $ig. 1(.

Fi . 1-. -ealizare.

2.(. )iagrame UML


<n cadrul limbajului UML toate reprezentrile modelului unui #i#tem comple2 #unt $i2ate ,n calitate de con#truc+ii #peciale gra$ice care de#eori #unt reprezentate #ub $orm de gra$ cone2 cu noduri ' entit+i 7i muc5ii ' rela+ii. <n UML #unt de$inite nou tipuri de diagrame?

.iagrame cazurilor de utilizare "u#e ca#e diagram% .iagrame de cla#e "cla## diagram% .iagrame de comportament "be5avior diagram#% o .iagrame de #tri "#tatec5art diagram% o .iagrame de activit+i "activit8 diagram% o .iagrame de interac+iune "interaction diagram#% .iagrame de #ecven+ "#e9uence diagram% .iagrame de colaborare "collaboration diagram% .iagrame de realizare "implementation diagram#% o .iagrame de componente "component diagram% o .iagrame de pla#are "deplo8ment diagram%

Li#ta ace#tor diagrame 7i denumirilor re#pective e#te canonica ,n caz dac diagramele reprezint partea integrant a nota+iei gra$ice a limbajului UML. Mai mult dec,t atSt; proce#ul 0!44 e#te #tr,n# legat de proce#ul con#truirii ace#tor diagrame. 6otodat o totalitate de diagrame con#truite ,n a7a $el e#te #u$icient ,n caz dac diagramele con+in in$orma+ia nece#ar pentru realizarea proiectului unui #i#tem comple2. :iecare din ace#te diagrame detalizeaz 7i concretizeaz di$erite reprezentri de#pre modelul unui #i#tem comple2 ,n termenii limbajului UML. 6otodat diagrama cazurilor de utilizare reprezint cel mai general model conceptual al unui #i#tem comple2 care e#te ini+ial pentru con#truirea tuturor celorlalte diagrame. .iagrama de cla#e e#te un model logic care re$lect a#pectele #tatice ale proce#ului de con#truire #tructural a unui #i#tem comple2.

1/

.iagramele de comportament la $el #unt variet+i ale unui model logic care re$lect a#pectele dinamice ale proce#ului de $unc+ionare a unui #i#tem comple2. .iagramele de realizare #unt de#tinate reprezentrii $izice a componentelor #i#temului comple2 7i de aceea #unt atribuite modelului $izic. Modelul integrat al unui #i#tem comple2 ,n nota+ia UML "$ig. 2*% #e reprezint ca totalitatea diagramelor enumerate mai #u#.

Fi . !.. Model al unui #i#tem comple2 ,n nota+ia UML.

'. /ia arama cazurilor de utilizare 0u$e ca$e dia ram1


Modelarea vizual ,n UML poate $i reprezentat ca un oarecare proce# de lan#are pe niveluri de la cel mai general 7i ab#tract model conceptual al #i#temului ini+ial ctre model logic 7i mai apoi $izic; ce core#punde unui #i#tem de program. !entru atingerea ace#tui #cop de la ,nceput #e creaz un model ,n $orm de diagarama cazurilor de utilizare "u#e ca#e diagram% care de#crie de#tina+ia $unctional a #i#temului #au cu alte cuvinte de#crie ceea ce #i#temul va e2ecuta ,n proce#ul #u de $unc+ionare. .iagrama cazurilor de utilizare reprezint un model ini+ial conceptual al unui #i#tem ,n proce#ul de proiectare 7i e2ploatare. !roiectarea a unei diagrame a cazurilor de utilizare urmre7te #copurile urmtoare?

determinarea limitelor comune 7i a conte2tului domeniului de modelare la etapele ini+iale de proiectare a unui #i#temQ $ormularea cerin+elor comune ctre comportare $unc+ional a #i#temului proiectatQ elaborarea modelului ini+ial conceptual al unui #i#tem pentru detalierea de mai t,rziu ,n $orma modelelor logice 7i $iziceQ pregtirea documentrei ini+iale pentru interac+iunea elaboratorilor unui #item cu clien+ii 7i utilizatorii.

E#en+a ace#tei diagrame con#t ,n $aptul c? #i#temul proiectat #e reprezint ca o colec+ie de entit+i 7i actori care colaboreaz cu #i#temul cu ajutorul a7a numitor cazuri de utilizare. 6otodat orice entitate care colaboreaz cu #i#temul din a$ar poate $i numit actor. 0cea#ta poate $i un om; o in#talare te5nic; un program #au oricare alt #i#tem care poate $i #ur# de ac+iune pentru #i#temul proiectat ,n a7a mod; cum ,l determin colaboratorul. La r,ndul #u; u#e ca#e=ul e#te creat pentru de#crierea #erviciilor pe care #i#temul le o$er actorului. Cu alte cuvinte $iecare caz de utilizare 1

de$ine7te o colec+ie de ac+iuni e2ecutate de #i#tem ,n timpul dialogului cu actorul. 6otodat nimic nu e#te #pu# de#pre aceea ,n ce mod va $i realizat colaborare ,ntre actori 7i #i#tem. <n caz general; diagrama cazurilor de utilizare reprezint un gra$ deo#ebit; care e#te o nota+ie gra$ic pentru prezentarea cazurilor de utilizare concrete; actorilor; poate 7i a unora inter$e+e 7i pentru prezentarea legturilor ,ntre ace#te elemente. 6otodat componente aparte ale diagramei pot $i inclu#e ,ntr=un dreptung5i; care #emni$ic #i#temul proiectat ,n ,ntregime. 6rebuie de #peci$icat c legturile ace#tui gra$ pot $i de numai anumite tipuri de interac+iuni ,ntre actori 7i cazuri de utilizare; care ,mpreun de#criu #ervicii 7i cerin+e $unc+ionale ctre #i#temul modelat.

!.1. *a ul de utili are


Structura #au elementul #tandart al limbajului UML ' caz de utilizare #e $olo#e7te pentru #peci$icarea particularit+ilor comune ale comportrii unui #i#tem #au a oricrei alte entitti ,n domeniul de lucru $r cercetarea #tructurii interne a ace#tei entit+i. :iecare caz de utilizare determin o #ucce#iune de ac+iuni care trebuie #a $ie e2ecutate de ctre #i#temul poiectat la colaborarea lui cu actorul core#punztor. .iagrama cazurilor de utilizare poate $i completat cu te2t e2plicativ; care de#$7oar #en#ul #au #emantica componentelor ce o compun. 0ce#t te2t #e nume7te adnotare #au #cenariu. Cazul de utilizare aparte #e noteaz cu o elip# ,n interiorul creia #e con+ine denumirea pre#curtat #au numele ,n $orm de verb cu cuvinte e2plicative "$ig. /%. Scopul cazului de utilizare con#t ,n determinarea a#pectului terminal #au $ragmentului de comportare a unei entit+i $r de#$7urarea #tructurii interne a ace#tei intit+i. <n calitate de a7a entitate poate $i un #i#tem ini+ial #au un element al modelului care di#pune de comportament propriu; precum e#te #ub#itemul #au cla#a ,n modelul unui #i#tem. :iecare caz de utilizare core#punde unui #erviciu aparte; care reprezint o entitate modelat #au un #i#tem la cererea utilizatorului "actorului%; mai preci# determin metoda aplicat ctre anumit entitate. Serviciul care e#te ini+ializat la cererea utilizatorului reprezint o #ucce#iune terminat de ac+iuni. 0cea#ta ,n#eamn c dup ce #i#temul va termina prelucrarea cererii utilizatorului el "#i#temul% trebuie #a #e intoarc ,n #tarea ini+ial ,n care e#te gata pentru a indeplini cererile urmtoare. Cazurile de utilizare de#criu nu numai colaborarea ,ntre utilizatori 7i entit+i; dar 7i reac+ia entit+ii la primirea anumitor me#aje de la utilizatori 7i a#upra percep+iei ace#tor me#aje ,n a$ar entit+ii. Cazurile de utilizare pot include "con+ine% de#crierea #peci$ica+iilor modurilor de realizare a #erviciului 7i a di$eritor #itua+ii e2cep+ionale; a7a cum e#te prelucrarea corect a erorilor unui #i#tem. Mul+imea cazurilor de utilizare ,n total poate determina toate a#pecte po#ibile comportrii a7teptate a unui #i#tem. !entru comoditate mul+imea cazurilor de utilizare poate $i con#iderat ca un pac5et aparte. .in punct de vedere #i#temo=analitic cazurile de utilizare pot $i $olo#ite pentru #peci$icarea cerin+elor e2terne ctre #i#temul proiectat 7i pentru #peci$icarea comportrii $unc+ionale a #itemului deja e2i#tent. E2emple de cazuri de utilizare pot $i ac+iunile urmtoare? veri$icarea #trii contului curent al clientului; intocmirea comenzii la procurarea mr$ii; ob+inerea in$orma+iei #uplimentare de#pre #olvabilitatea clientului; reprezentarea $ormei gra$ice la ecranul monitorului #.a.

1&

!.2. +ct"ri
0ctorul reprezint orice entitate e2tern #i#temului modelat; care colaboreaz cu #i#temul 7i utilizeaz po#ibilit+ile lui $unc+ionale pentru atingerea anumitor #copuri 7i pentru rezolvarea problemelor particulare. 6otodat actorii #unt utiliza+i pentru notarea mul+imii rolurilor coordonate ale utilizatorilor ,n proce#ul de colaborare cu #i#temul proiectat. :iecare actor poate $i con#iderat un anumit rol aparte relativ unui caz de utilizare concret. 3ota+ia gra$ic #tandard a unui actor ,n diagram e#te Momule+ulN #ub care #e indic numele actorului "$ig. 21%.

Fi . !1. 0ctor. <n unele cazuri actorul poate $i notat ca dreptung5iul cla#ei cu cuv,ntul=c5eie MactorN 7i cu elementele comune ale cla#ei. 3umele actorilor trebuie # $ie #cri#e cu litere maju#cule 7i trebuie # re#pecte recomandrile la utilizarea numelor pentru tipurile 7i cla#ele modelului. 6otoadat #imbolul actorului aparte leag de#crierea core#punztoare a actorului cu un anumit nume. 3umele actorilor ab#trac+i; a7a cum 7i a altor elemente ab#tracte ,n limbajul UML; #e recomand de notat ,n italic. Ca e2emplu de actori pot $i? clientul unei bnci; angajatul unei bnci; v,nztorul unui magazin; managerul #ec+iei de v,nzare; pa#agerul unui avion; conductorul unui auto; admini#tratorul unui 5otel; celularul 7i alte entit+i; care au legtur cu modelul conceptual care core#punde domeniului de lucru. 0ctorii #unt utiliza+i pentru modelarea entit+ilor e2eterne #itemului de entit+i proiectat; care ac+ioneaz reciproc cu #i#temul 7i pe care ,l utilizez ,n calitate de utilizatori #epara+i. <n calitate de actori pot $i 7i alte #i#teme; #ub#i#teme ale #i#temului proiectat #au cla#e aparte. E#te important # intelegem c actorul de$ine7te o anumit mul+ime de roluri coordonate; care pot $i utilizatorii unui #i#tem dat ,n proce#ul de colaborare. <n $iecare moment de timp cu #i#temul colaboreaz un anumit utilizator ,n unul din roluri date. Ca e2emplu evident de actor poate $i un anumit utilizator al #i#temului cu parametri de autenti$icare proprie.

!.!. ,nterfe%e
1nter$a+a "inter$ace% #peci$ic parametrii modelului care #unt vizibili din a$ar $r indicarea #tructurii lor interne. <n limbajul UML inter$a+a e#te cla#i$icatorul care caracterizez numai o parte limitat a comportrii unei entit+i modelate. -e$eritor la diagrama cazurilor de utilizare inter$e+ele de$ine#c o totalitate de opera+ii ce a#igur #erviciile nece#are #au $unc+ionalitatea pentru actorii. 1nter$e+ele nu pot con+ine nici atribute; nici #tri; nici a#ocieri dirijate. Ele con+in numai opera+ii $r indicarea #peci$ica+iilor de realizare a lor. 4 inter$a+ e#te $ormal ec5ivalent cla#ei ab#tracte $r atribute 7i metode numai cu prezen+a opera+iilor ab#tracte. <n diagrama cazurilor de utilizare o inter$a+ e#te reprezentat ca un cercule+ mic l,ng care e#te indicat numele lui. "$ig. 22; a%. <n calitatea de nume poate $i un #ub#tantiv; ce caracterizeaza in$orma+ia core#punztoare #au #erviciu "de e2emplu; M#irenaN; Mcamera videoN%; dar mai de# e#te oricare r,nd de te2t "de e2emplu; M#en#orN; Minterpolare ctre baza de dateN; M$orma de introducereN; Mdi#pozitiv de #emnalizare #onorN%. .ac numele e#te ,n#cri# ,n limba englez; atunci ace#t nume trebuie # inceap cu maju#cula 1; de e2emplu; 1Secureln$ormation; 1Sen#or "$ig. 22; T%. 1(

Fi . !!. -eprezentarea gra$ica a inter$e+elor ,n diagrama cazurilor de utilizare. Simbolul gra$ic al unei inter$e+e aparte ,n diagram poate $i conectat cu cazul de utilizare ce ,l #u#+ine cu o linie ne,ntrerupt "continu%. Linia ne,ntrerupt ,n ace#t caz indic $aptul c cazul de utilizare legat cu inter$a+a trebuie # realizeze toate opera+iile nece#are pentru acea#t inter$a+; #au poate 7i mai mult "$ig. 23; a%. <n a$ar de acea#ta; inter$e+ele pot $i legate cu cazurile de utilizare cu o linie ,ntrerupt cu o #geat "$ig. 23; b%; ce ,n#eamna c cazul de utilizare #peci$ic numai cel #erviciu; care e#te nece#ar pentru realizarea inter$e+ei date.

Fi . !'. -eprezentarea gra$ic a legturilor ,ntre inter$e+e 7i cazuri de utilizare. .in punct de vedere #i#temo=analitic inter$a+a nu numai #epar #peci$ica+ia opera+iilor unui #i#tem de la realizarea lor; dar 7i de$ine7te limetele comune ale #i#temului proiectat. Ulterior inter$a+a poate $i #peci$icat cu indicarea acelor opera+ii care #peci$ic un a#pect de colaborare al #i#temului. <n ace#t caz el #e reprezint ,n $orma de dreptung5i cu cuv,nt=c5eie Minter$aceN ,n #ec+ia de nume; cu #ec+ia de atribute goala 7i cu #ec+ia de opera+ii completat. .ar a7a $el de reprezentare gra$ic #e utilizeaz ,n diagrama cla#elor #au ,n diagrame ce caracterizeaz comportarea #i#temului modelat. 1mportan+a inter$e+elor con#t ,n $aptul c ele de$ine#c noduri de jonc+iune ,n #i#temul proiectat; ce e#te nece#ar pentru organizarea lucrului colectiv a#upra proiectul. Mai mult dec,t at,t; #peci$ica+ia inter$e+elor contribuie la modi$icarea Mu7oarNla trecerea la #olu+ii te5nologice ale unui #i#tem deja e2i#tent. <n ace#t caz #c5imbrii e#te #upu# numai realizarea opera+iilor; dar nu $unc+ionalitatea #i#temului. 0cea#ta a#igur compatibilitatea ver#iunilor urmtoare de program cu cele ini+iale la $olo#irea te5nologiei ,n #piral de creare #i#temelor de program.

!.#. Legturile &n diagrama a ca uril"r de utili are


<ntre componentele diagramei cazurilor de utilizare pot # e2i#te di$erite legturi care de#ciu colaborarea e2emplarelor unor actori 7i cazurilor de utilizare cu e2emplarele altor actori 7i cazuri. Un anumit actor poate # colaboreze cu mai multe cazuri de utilizare. <n ace#t caz actorul dat #e adre#eaz ctre c,teva #ervicii ale #i#temului dat. La r,ndul #u un anumit caz de utilizare poate # colaboreze cu mai mul+i actori; pentru care el acord #erviciul #u. 6rebuie de ob#ervat c dou cazuri de utilizare de$inite pentru aceea7i entitate nu pot colabora unul cu altul; $iindc $iecare din ele de#crie o variant propie terminal de utilizare a ace#tei entit+i. Mai mult dec,t atSt; cazurile de utilizare ,ntotdeauna pre#upun careva #emnale 7i me#aje pentru colaborarea cu actorii ,n a$ara limetelor #i#temului. <n acela7i timp pot $i de$inite alte metode de colaborare ,ntre elemente ,n ,nteriorul #i#temului. <n limbajul UML #unt c,teva tipuri #tandarde de rela+ii ,ntre actori 7i cazuri de utilizare?

rela+ia de a#ociere "a##ociation relation#5ip% 2*

rela+ia de e2tindere "e2tend relation#5ip% rela+ia de generalizare "generalization relation#5ip% rela+ia de cuplare "include relation#5ip%

6otodat propriet+ile generale ale cazurilor de utilizare pot $i reprezentate prin trei metode di$erite; 7i anume cu ajutorul rela+iei de e2tindere; generalizare 7i cuplare.

!.#.1. 'ela%ia de as"ciere


-ela+ia de a#ociere e#te o no+iune $undamental ,n limbajul UML 7i mai mult #au mai pu+in #e utilizeaz la crearea tuturor modelelor gra$ice ,n $orma diagramelor canonice. Cu privire la diagrama cazurilor de utilizare rela+ia de a#ociere #peci$ic rolul deo#ebit al actorului ,n cazul de utilizare aparte. Cu alte cuvinte; a#ocierea #peci$ic particularitatea #emantic de colaborare a actorilor 7i cazurilor de utilizare ,n modelul gra$ic. <n a7a mod acea#t rela+ie #tabile7te ce rol joac actorul la colaborarea cu e2emplarul cazului de utilizare. <n diagrama cazurilor de utilizare precum 7i ,n alte diagrame rela+ia de a#ociere #e noteaz cu o linie ne,ntrerupt ,ntre actor 7i cazul de utilizare. 0cea#t linie poate # aib condi+ii #uplementare; de e2emplu; numele 7i multiplicitatea "$ig. 2)%.

Fi . !(. -eprezentare gra$ic rela+iei de a#ociere ,ntre acotr 7i caz de utilizare. Multiplicitatea "multiplicit8% a#ocierei #e indic l,nga nota+ia componentului diagramei care e#te membru ace#tei a#ocieri. Multiplicitatea caracterizeaz cantitate total de e2emplare concrete al unui component anumit care pot $i ,n calitate de elemente ace#tei a#ocieri. Cu privire la diagrame cazurilor de utilizare multiplicitate are o nota+ie #peci$ic ,n $orma de una #au mai multe ci$re 7i po#ibil #imbolul #pecial MUN. !entru diagrama cazurilor de utilizare mai r#p,ndite #unt patru $orme de ,n#criere a multiplicit+ii rela+iilor de a#ociere?

3umr ,ntreg nenegativ "inclu#iv ci$ra *% e#te de#tinat indica+iei multiplicit+ii care e#te #trict $i2at pentru elementul core#punztor a#ocierii. <n ace#t caz cantitate de e2emplare a actorilor #au cazurilor de utilizare; ce pot $i 7i elemente ale rela+iei de a#ociere; ,ntocmai e#te egal cu numrul indicat.

Ca e2emplu a ace#tei $orme de ,nregi#trare a multiplicit+ii rela+iilor de a#ociere e#te indicarea multiplicit+ii M1N pentru actorul MClientul bnciiN "$ig. 2)%. 0cea#t ,nregi#trare ,n#eamna c $iecare e2emplar al cazului de utilizare M!er$ectarea creditului pentru clientul bnciiN poate # aib ,n calitate de element propriu un #ingur e2emplar de actor MClientul bnciiN. Cu alte cuvinte; la per$ectarea creditului ,n banc trebuie de luat ,n vedere c $iecare credit concret #e per$ecteaz pentru un #ingur client al ace#tei bnci.

.ou numere ,ntregi nenegative; #eparate cu dou puncte 7i #cri#e ,n $orma? Mprimul numr..al doilea numrN. 0cea#t ,nregi#trare ,n limbajul UML core#punde nota+iei pentru o 21

mul+ime #au pentru un interval de numere ,ntregi; care #e utilizeaz ,n unele limbaje de programare pentru indicarea limitelor ma#ivului de elemente. 0cea#t ,nregi#trare trebuie # $ie ,n+elea# ca o mul+ime de numere ,ntregi nenegative care #unt ,n ordinea cre#catoare? VnumarW1; numarW1I1; numarW1I2; X; numarW2Y. Evident c primul numr trebuie # $ie #trict mai mic dec,t al doilea numr ,n #en# aritmetic; totodat primul numr poate $i egal cu *. Ca e2emplu a ace#tei $orme de ,nregi#trare a multiplicict+ii a#ocierii ' M1..5N. 0cea#t ,nregi#trare ,n#eamna c cantitatea de e2emplare ale ace#tui component care pot $i 7i elemente ale ace#tei a#ocieri; e#te egal unui numr preliminar necuno#cut din mul+imea numerelor ,ntregi V1; 2; 3; ); 5Y. 0cea#t #itua+ie are loc c,nd ,n calitate de actor e#te clientul bncii; dar ,n calitate de caz de utilizare e#te procedura de#c5iderii contului ,n banc. 6otodat cantitatea de conturi ale $iecrui client ,n acea#t banca; reie7ind din con#idera+ii tactice; poate $i nu mai mult dec,t 5. 0ce#te con#idera+ii tocmai 7i #unt cerin+ele e2terioare #i#temului proiectat 7i #unt de$inite de ctre client la etapele ini+iale de 0!44.

.ou #imboluri #eparate cu doua puncte. 6otodat primul dintre ele e#te un numr ,ntreg nenegativ #au *; iar al doilea e#te #imbolul #pecial MUN. 0ici #imbolul MUN ,n#eamn un numr arbitrar ,ntreg nenegativ; valoarea cruia e#te necuno#cut la momentul ,nregi#trrii unei relatii de a#ociere.

Ca e2emplu ace#tei $orme de ,nregi#trare de multiplicitate a#ocierei ' M2 ..UN. 0cea#t ,nregi#trare ,n#eamn c cantitatea de e2emplare ale ace#tui component; care pot $i 7i elementele ace#tei a#ocieri; e#te egal cu un numr anticipat necuno#cut din mul+imea numerelor ,ntregi V2; 3; )Y.

Simbolul MUN; care e#te pre#curtarea ,nregi#trrii intervalului M*..UN. <n ace#t caz cantitatea de e2emplare ale ace#tui component al rela+iei de a#ociere poate $i oricare numr ,ntreg nenegativ. 6otodat * ,n#eamn c pentru careva e2emplare ale componentului core#punztor acea#t rela+ie de a#ociere poate nici # nu aib loc.

Ca e2emplu ace#tei $orme de ,nregi#trare poate $i cercetat multiplicitatea a#ocierei pentru cazul de utilizare M<ntocmire creditului pentru clientul bnciiN "$ig. 2)%. <n ace#t caz MUN ,n#eamn $iecare client aparte al ace#tei bnci poate ,ntocmi pentru #ine c,teva credite; totodat numrul lor comun e#te necuno#cut 7i nelimitat. Unele clien+i pot # nu aib credite deloc "cazul valorii *%. .ac multiplicitatea a#ocierei nu e#te indicat atuinci implicit #e ia valoarea egal cu 1.

!.#.2. 'ela%ia de e-tindere


-ela+ia de e2tindere de$ine7te intercone2iunea e2emplarelor cazului de utilizare cu cazul general; propriet+ile cruia #unt de$inite pe baza modului de uniune a e2emplarelor date. <n metamodelul rela+ie de e2tindere e#te direct 7i indic care condi+ii concrete pot $i utilizate pentru unele e2emple unui anumit caz de utilizare; de$inite pentru e2tinderea cazului de utilizare dat. .ac are loc rela+ie de e2tindere de la cazul de utilizare 0 la cazul de utilizare A; ace#t lucru ,n#eamn c propriet+ile e2emplarului cazului de utilizare A pot $i adugate datorit propriet+ilor e2tin#e a cazului de utilizare 0. -ela+ia de e2tindere ,ntre cazurile de utilizare reprezint o linie punctat cu #geat "cazul rela+iei de dependen+%; direct de la acel caz de utilizare; care reprezint e2tinderea cazului de utilizare ini+ial. 0cea#t linie cu #geat e#te marcat cu cuv,ntul Ze2tend[ "Ze2tinde[%; $ig. 25.

22

Fi . !). E2emplu de reprezentare gra$ic a rela+iei de e2tindere ,ntre cazurile de utilizare. -ela+ia de e2tindere indic acel $apt c unul din cazurile de utilizare poate $i conectat la comportamentul #u care=va comportament adugtor; de$init pentru un alt caz de utilizare. -ela+ia dat include o anumit condi+ie 7i e2ilri la puncte de e2ten#ie ,n cazul de utilizare de baz. !entru alocarea e2tinderii e#te nece#ar de a e2ecuta o anumit condi+ie a rela+iei date. E2ilri la puncte de e2ten#ie de$ine#c acele locuri ,n cazul de utilizare de baz ,n care trebuie # $ie pu# e2tinderea re#pectiv ,n timpul e2ecutrii condi+iei. Unul din cazurile de utilizare pot $i e2tinderea pentru c,teva cazuri de baz 7i pot avea ca e2tinderi proprii ,nc c,te=va alte cazuri. Cazul de utilizare de baz poate $i adugtor independent de la alte e2ten#ii. Semantica rela+iei de e2ten#ie e#te de$init ,n $elul urmtor. .ac e2emplarul cazului de utilizare e2ecut anumit con#ecven+ de ac+iuni; care de$ine7te comportamentul lui 7i ,n urma cruia e2i#t un punct de e2ten#ie la alt e2emplar a cazului de utilizare; care e#te unul din primele puncte de e2ten#ie a cazului ini+ial; atunci controleaz condi+ia rela+iei date. .ac condi+ia e#te e2ecutat; con#ecven+a ini+ial de ac+iuni e2tinde datorit includerea ac+iunii altui e2emplar a cazului de utilizare. 6rebuie de men+inut; c condi+ia rela+iei de e2ten#ie e#te controlat numai o dat ,n timpul e2ilrii la un punct de e2ten#ie 7i dac acea#ta e#te e2ecutat; atunci toate cazurile de e2tindere utilizate #e $olo#e#c ,n cazul de baz.

!.#.!. 'ela%ia de generali are


-ela+ia de generalizare e#te $olo#it pentru indicarea $aptului c care=va caz de utilizare 0 poate $i generalizat la cazul de utilizare A. <n urma cruia; cazul 0 va $i cazul #pecial cazului A. <n urma cruia cazul A #e nume7te printe relativ 0; iar cazul 0 ' de#cendent relativ cazului de utilizare A. E#te nevoie de men+ionat; c de#cendentul mo7tene7te toate propriet+ile 7i comportamentul printelui #u 7i poate avea propriet+ile 7i comportamentul #u adugtor. @ra$ic rela+ia dat e#te reprezentat cu linia ,ntreag cu #geat ,n $orma de triung5i ne5a7urat; care indic cazul de utilizare printe "$ig. 2/%. 0cea#t linie cu #geat are un nume #peci$ic ' #geata Zgeneralizare[.

Fi . !*. E2emplu de reprezentare gra$ic a rela+iei de generalizare ,ntre cazuri de utilizare. -ela+ia de generalizare ,ntre cazurile de utilizare e#te $olo#it ,n acele cazuri c,nd e#te nece#ar de indicat c cazul de utilizare derivat con+ine toate atributele 7i particularit+ile comportamentului cazurilor de baz. <n urma cruia cazurile de utilizare derivate pot participa ,n rela+ii cazurilor de baz. <n urma #a cazurile derivate pot avea propriet+i noi de comportament; care nu au cazurile de utilizare de baz; dar 7i de a preciza #au modi$ica propriet+ile de comportament mo7tenite. -elativ cu rela+ia dat un variant de utilizare poate avea c,te=va cazuri de baz. <n ace#t caz #e realizeaz mo7tenirea multipl a propriet+ilor 7i comportamentului cazurilor de baz. .in alt parte un caz de utilizare poate $i printe pentru c,te=va cazuri de utilizare derivate; ce core#punde caracterului ta2onometric rela+iei de generalizare. 23

<ntre actori aparte de a#emenea poate e2i#ta rela+ia de generalizare. 0cea#t rela+ie e#te direct 7i indic $aptul c #pecializarea unor actori e#te relativ cu al+ii. .e e2emplu; rela+ia de generalizare de la actorul 0 la actorul A indic $aptul c $iecare e2emplar a actorului 0 e#te concomitent cu e2emplarul actorului A 7i are toate propriet+ile lui. <n ace#t caz actorul A e#te printe relativ cu actorul 0; iar actorul 0 e#te de#cendentul actorului A. <n urma cruia actorul 0 are po#ibilitatea de joac a aceleea7i mul+imi de roluri ca 7i actorul A. @ra$ic rela+ia dat e#te reprezentat cu #geata de generalizare; adic cu linia ,ntreag cu #geat ,n $orm de triung5i ne5a7urat; care indic printele actorului "$ig. 2 %.

Fi . !+. E2emplu de reprezentare gra$ic a rela+iei de generalizare ,ntre actori.

!.#.#. 'ela%ia de tip include


-ela+ia de tip include ,n dou cazuri de utilizare indic un comportament #tabilit pentru un caz de utilizare e#te inclu# ca component compu# ,n con#ecutivitatea comporatamentului a altui caz de utilizare. -ela+ia dat e#te rela+ie binar ,ndrepatat; ,n acel #en# c perec5ea de e2emplare a cazului de utilizare ,ntodeauna #e a$l la locul ei ,n rela+ia de tip include. Semantica ace#tei rela+ii e#te de$init ,n $elul urmtor. C,nd e2emplarul primului caz de utilizare ,n timpul e2ecutrii ajunge la punctul de includere ,n con#ecutivitatea comporatamentului e2emplarului al doilea a cazului de utilizare; e2emplarul primului caz de utilizare e2ecut con#ecutivitatea ac+iunilor; care de$ine#c comportamentul e2emplarului al doilea a cazului de utilizare; dup ce continu e2ecutarea ac+iunilor comportamentului #u. <n urma cruia #e pre#upune c dac e2emplarul primului caz de utilizare poate include c,teva e2emplare a altor cazuri de utilizare; ac+iunile lor trebuie # #e #$,r7ea#c ,ntr=un anumit moment; dup ce trebuie # continue e2ecutarea ac+iunilor ,ntrerupe e2emplarele primului caz de utilizare ,n con$ormitate cu comportamentul lui dat. Unul din cazurile de utilizare poate $i inclu# ,n alte cazuri 7i poate include alte cazuri. Cazul de utilizare ce e#te inclu# poate $i independent de cazul de baz; anume el d ultimului un comportament incap#ulat; detalii realiza+iei cruia #unt a#cun#e 7i pot $i liber ,mpr+ite ,ntre c,te=va cazuri de utilizare inclu#e. Mai mult; cazul de baz poate depinde numai de rezultatele e2ecutrii comportamentului inclu# ,n el; #ar nu de la #tructura cazurilor inclu#e ,n el. -ela+ia de tip include orientat de la cazul de utilizare 0 la cazul de utilizare A indic c $iecare e2emplar al cazului 0 include propriet+i $unc+ionale #tabilite pentru cazul A. 0ce#te propriet+i #pecializeaz comportamentul cazului re#pectiv 0 ,n diagrama dat. @ra$ic rela+iile date #unt indicate cu linia punctat cu #geat "cazul rela+iei de dependen+%; ,ndreptate de la cazul de utilizare de baz la cazul ce e#te inclu#. <n urma cruia linia cu #geata e#te indicat cu cuv,ntul= c5eie Zinclude[; "$ig. 2&%.

Fi . !,. E2emplu de reprezentare gra$ic a rela+iei de tip include ,ntre cazuri de utilizare. 2)

!.(. $-emplu de c"nstruirea diagramei ca uril"r de utili are


Ca e2emplu vom lua proce#ul de modelare a #i#temului de vindere a mr$urilor dup catalog; care poate $i utilizat ,n timpul crerii #i#temelor in$orma+ionale re#pective. <n calitate de actori a #i#temului dat pot $i dou #ubiecte; unu din care e#te v,nztor; iar altul cumprtor. :iecare din actori interac+ioneaz cu #i#temul de vindere a mr$urilor dup catalog 7i e#te utilizatorul lui; adic ambele #e adre#eaz la #ervi#ul re#pectiv Z0 per$ecta comanda de cumprare a mr$ii[. E#te evedent din cerin+ele adre#ate la #i#tem c #ervi#ul reprezint cazul de utilizare a diagramei; #trutura de baz poate include numai doi actori 7i un #ingur caz de utilizare "$ig. 2(%.

Fi . !-. .iagrama cazurilor de utilizare pentru e2emplu de pere$ectare a #i#temului de vindere a mr$urilor dup catalog. Ealorile divizibilit+ilor ,n diagrama dat re$lect regulile de baz #au logica de $ormare a cerin+elor la vinderea mr$urilor. Con$orm regulilor re#pective un v,nztor poate participa ,n $ormarea a c,tor= va comenzi; ,n acela7i timp $iecare comand poate $i $ormat numai de un #ingur v,nztor; care are re#pon#abilitatea pentru corectitudinea $ormrii lui 7i re#pectiv va avea r#plat pentru $ormarea dat. .in alt parte; $iecare cumprtor poate $orma c,teva comenzi 7i ,n acela7i timp $iecare comand trebuie # $ie $ormat la un #ingur cumprtor; care va avea drepturile de proprietate la mar$ dup ac5izi+ionarea ei. Etapul urmtor ,n diagrama dat e#te Z0 per$ecta comanda de cumprare a mr$ii[ poate $i precizat pe baza ,ntroducerii a patru cazuri de utilizare adugtoare. 0ce#t lucru e#te evident din analiza mai detaliat a proce#ului de vindere a mr$ii; ce permite de alege ca #ervicii #eparate acele ac+iuni ca a#igurarea cumpratorului cu in$orma+ia de#pre mar$; coordonarea condi+iilor de plat 7i comandarea mr$ii de la depozit. Evident c ac+iunile indicate de#$7oar comportamentul cazului de utilizare ini+ial 7i anume concretizarea lui 7i de aceea ,ntre ele v=a e2i#ta rela+ia de tip include. <n cazul no#tru catalogul cu mr$uri poate $i comandat de cumprtor #au v,nztor c,nd apare nece#itatea de a alege mar$a 7i precizarea detaliilor de vindere. Corect e#te reprezentat #erviciul ZCererea catalogului cu mr$uri[ ca caz de utilizare independent. .up detalizare diagrama cazurilor de utilizare va avea 5 cazuri de utilizare 7i 2 actori "$ig. 3*%; ,ntre care e#te #tabilit rela+ia de tip includ 7i e2tend.

25

Fi . '.. Eariantul mai detaliat a diagramei cazurilor de utilizare pentru e2emplu de pere$ectare a #i#temului de vindere a mr$urilor dup catalog. .iagrama cazurilor de utilizare de mai #u#; la r,ndul #u poate $i mai detaliat pentru precizarea mai ad,nc; ce #e cere de la #i#temul de comand 7i concretizarea detaliilor pentru realizarea urmtoare. .etalizarea poate $i e2ecutat pe baza indicrii rela+iilor adugtoare de tipul rela+iei Zgeneralizarea= #pecializarea[ pentru componentele diagramei deja e2i#tente. <n #i#temul de vindere a mr$urilor poate avea valoarea independent 7i propriet+ile #peci$ice o categorie independent de mr$uri ' calculatoare. <n ace#t caz ,n diagram poate $i adugat un caz de utilizare Z!er$ectarea comenzii de ac5izi+ionare a calculatorului[ 7i cu actori ZCumprator de calculatoare[ 7i ZE,nztor de calculatoare[; care #unt legate cu componentele core#punztoare a diagramei rela+iei de generalizare "$ig. 31%.

2/

Fi . '1. Unul din variantele de concretizare a diagramei cazurilor de utilizare pentru e2emplul de #i#tem de vindere. Con#truirea diagramei cazurilor de utilizare e#te primul etap a proce#ului analizei a obiectului orientat 7i proiectri; #copul cruia e#te de reprezentarea totalit+ii de cereri la comportamentul #i#temului proiectat. Speci$ica+ia de cereri la #i#temul proiectat ,n $orm de diagram a cazurilor de utilizare reprezint un model independent; care #e nume7te modelul cazurilor de utilizare ,n limbajul UML 7i are un nume propriu #tanadard #au #teriotip ZU#eCa#eModel[.

(. /ia rama de cla$e 0cla$$ dia ram1


Locul central ,n 0!44 ,l ocup elaborarea modelului logic al unui #i#tem ,n $orma diagramei de cla#e. 3ota+ia cla#elor ,n limbajul UML e#te #impl 7i clar pentru to+i. 4 nota+ie a#emntoare #e utilizeaz 7i pentru obiecte ' care #unt e2emplare ale cla#ei; unica di$eren+ e#te ,n aceea c la numele cla#ei #e adaug numele obiectului 7i toat ,nregi#trarea #e #ubliniaz. 3ota+ia limbajului UML o$er multe po#ibilit+i pentru re$lectarea in$orma+iei #uplimentare "opera+ii ab#tracte #au cla#e; #tereotipuri; metode comune 7i particulare; inter$e+e detaliate; cla#e parametrizate%. 6otodat e#te po#ibil utilizarea reprezentrii gra$ice pentru a#ocieri 7i propriet+ile lor #peci$ice; a#t$el cum #unt rela+iile de agregare; c,nd ca pr+i componente ale cla#ei pot $i alte cla#e. .iagrama de cla#e "cla## diagram% #e utilizeaz pentru reprezentarea #tructurii #tatice a unui model de #i#tem ,n terminologia cla#elor programrii 44. .iagrama de cla#e poate re$lecta di$erite legturi ,ntre entit+ile domeniului de obiecte "obiecte 7i #ub#i#teme% 7i de#crie #tructura lor intern 7i tipurile de rela+ii. <n acea#t diagram nu e#te men+ionat in$orma+ia de#pre a#pectele temporare ale $unc+ionrii #i#temului. .in ace#t punct de vedere diagrama de cla#e e#te dezvoltarea ulterioar a modelului conceptual al #i#temului proiectat.

.iagrama de cla#e reprezint un gra$ cu noduri ' elemente de tip Mcla#i$icatoriN care #unt legate prin di$erite tipuri de rela+ii de #tructur. 6rebuie de men+ionat c diagrama de cla#e poate con+ine inter$e+e; pac5ete; rela+ii 7i c5iar e2emplare; a7a ca obiecte 7i legturi. !rin diagrama de cla#e #e #ub,n+elege modelul #tructural #tatic al #i#temului proiectat; de accea diagrama de cla#e de#eori #e #ocoate o reprezentare gra$ic a legturilor #tructurale ale modelului logic al #i#temului care #unt independente 7i invariante ,n timp.

#.1. *lasa
Clasa "cla##% ,n limbajul UML de$ine7te totalitatea de obiecte care au aceea7i #tructur; comportament 7i rela+ii cu obiectele din alte cla#e. @ra$ic o cla# #e reprezint printr=un dreptung5i care poate $i divizat de linii orizontale ,n #ec+iuni; $ig. 3. Elementul obligtoriu ,n nota+ia cla#ei e#te numele lui. !e etapele ini+iale ale elaborrii diagramei; cla#e aparte pot $i notate prin dreptung5iuri #imple cu indica+ia numelui cla#ei re#pective. !e parcur#ul elaborrii componentelor diagramei de#crierea cla#elor e#te completat cu atribute 7i opera+ii. Se pre#upune c varianta $inal a diagramei con+ine de#crierea complet a cla#elor care con#t din cele trei #ec+iuni. Uneori ,n nota+ia cla#elor #e utilizeaz a patra #ec+iune #uplementar ,n care #e indic in$orma+ia #emantic de caracter in$ormativ 7i #e indic #itua+iile e2cep+ionale. .ac #ec+iunea atributelor 7i opera+iilor cla#ei nu e#te completat; ,n nota+ia cla#ei ea #e evidentiaz cu o linie orizontal pentru a deo#ebi cla#a de alte elemente ale limbajului UML. E2emple de nota+ii gra$ice ale cla#elor ,n diagrama de cla#e #unt artate ,n $ig. 32. <n primul caz pentru cla#a M.reptung5iN "$ig. 32; a% #unt indicate numai atributele cla#ei ' punctele pe planul de coordonate care ,i de$ine#c pozi+ia. !entru cla#a M:erea#trN "$ig. 32; b% #unt indicate numai opera+iile; #ec+iunea de atribute e#te l#at necompletat. !entru cla#a MContulN "$ig. 32; c% #uplementar e#te indicat #ec+iunea de e2cep+ii ' re$uz de la prelucrarea cartelei bancare e2pirate "nevalabile%.
/reptun 2i p1.!ont p2.!ont Ferea$tra arata"% a#cunde"% Cont veri$ica"% e&ceptiile cartela bancara nu e#te valabila a% b% c%

Fi . '!. E2emple de nota+ii gra$ice ale cla#elor ,n diagrame.

#.1.1. .umele clasei


3umele cla#ei trebuie # $ie unic ,n cadrul pac5etului; care e#te de#cri# de ctre o totalitate de diagrame de cla#e. 3umele #e indic ,n prima #ec+iune de #u# a dreptung5iului. <n completare la regula general de denumire a elementelor ,n limbajul UML numele cla#ei #e #crie ,n centrul #ec+iunii cu caracter #emigro# "bold% 7i trebuie # inceap cu maju#cula. Se recomand ,n calitate de nume a cla#elor #a $ie utilizate #ub#tantivele #cri#e $r #pa+ii. E#te nece#ar de men+ionat c numele cla#elor $ormeaz dic+ionarul domeniului de obiecte pentru 0!44.

2&

<n prima #ec+iune a nota+iei cla#ei pot $i re$erin+e la modelele "7abloanele% #tandarte #au la cla#ele ab#tracte de la care e#te $ormat cla#a dat 7i re#pectiv de la care cla#a mo7tene7te propriet+ile 7i metodele. <n acea#t #ec+iune poate $i indicat in$orma+ia de#pre elaboratorul cla#ei date 7i #tarea elaborrii; ,nc pot $i indicate 7i alte propriet+i comune ale ace#tei cla#e care au legtura cu alte cla#e ale diagramei #au cu elementele #tandarde ale limbajului UML. Ca e2emple de nume ale cla#elor pot $i a7a #ub#tantive ca? M0ngajatulN; MCompaniaN; MConductorulN; MClientulN; ME,nztorulN; MManagerulN; M4$iciuN 7.a. care au legtur cu domeniul de obiecte proiectat 7i cu de#tina+ia $unc+ional a #i#temului proiectat. Cla#a poate # nu aib e2emplare #au obiecte. <n ace#t caz cla#a devine ab#tract; 7i pentru nota+ia denumirii ace#tei cla#e #e utilizeaz caractere italice. <n limbajul UML e#te adoptat o in+elegere "acord% de#pre ceea c orice te2t care #e re$er la elementele ab#tracte #e #crie ,n italic. 0cea#t circum#tan+ e#te un a#pect #emantic pentru de#crierea elementelor re#pective ale limbajului UML. <n unele cazuri e#te nece#ar de indicat clar la care pac5et #e re$er cla#a. !entru ace#t #cop #e utilizeaz un #imbol #pecial de divizare ' dou puncte duble M??N. Sinta2a liniei ce con+ine numele cla#ei ,n ace#t caz va $i urmatoarea? \3umeleWpac5etului]??\3umeleWcla#ei]. Cu alte cuvinte ,nainte de numele cla#ei trebuie # $ie indicat clar numele pac5etului la care cla#a #e re$er. .e e2emplu; dac e#te #peci$icat pac5etul cu numele MAancaN; atunci cla#a MContN ,n acea#t banca poate $i #cri# ,n $el urmtor? MAanca??ContN.

#.1.2. +tributele clasei


<n a doua #ec+ie a dreptung5iului de cla# #e ,n#criu atributele lui #au proriet+ile. <n limbajul UML #tandardizarea ,n#crierii atributelor de cla# #e #upune regulelor #intactice. :iecrui atribut de cla# ,i core#punde r,ndul te2tului; care e#te $ormat din #peci$icatorul de vizibilitate a atributului; numelui lui; tipul #en#ului 7i; po#ibil #en#ul $inal? M#peci$icatorul de vizibilitateN Mnumele atributuluiN ^multiplicitate_? Mtipul atributuluiN`M#en#ul $inalN Valiniat=proprietateY Speci$icatorul de vizibilitate poate primi unul dintre cele trei #en#uri 7i concomitent re$lect cu ajutorul #imbolurilor #peciale?

Simbolul MIN ,n#eamn atributul cu regiunea de vizibilitate de tip public "public%. 0tributul cu acea#t regiune de vizibilitate poate $i acce#at #au vzut din alt cla# de pac5et; ,n care e#te #tabilit diagrama. Simbolul MJN. ,n#eamn atributul cu regiunea de vizibilitate de tip protec+ie "protected%. 0tributul cu acea#t regiune de vi8ibilitate nu poate $i acce#at #au vzut pentru toate cla#e ,n a$ar de #ubcla#ele ace#tui cla#. <n #$,r7it; #imbolul M'N atributul cu regiunea de vizibilitate tipului privat. "private%. 0tributul cu acea#t regiune de vizibilitate nu poate $i acce#at #au vzut pentru toate cla#ele $r e2cep+ie.

Speci$icatorul de vizibilitate poate $i omi#. <n ace#t caz nu e#te pre#ent; pur 7i #implu ,n#eamn c vederea ace#tui atribut nu e#te indicat. 0cea#t #itua+ie di$er de ,n+elegerile de baz ,n limbile de tradi+ionale programare; c,nd nu e#te prezent #peci$icatorul de vizibilitate e#te tratat ca MpublicN #au MprivatN.

2(

3umele atributului prezint aliniat de te2t; care e#te $olo#it ,n calitate de identi$icator a atributului core#punztor 7i de aceea trebuie # $ie unic ,n cla#a core#punztoare. 3umele atributului e#te unic; un element obligator al ,n#emnrii #inta2ice al atributului. Ca e2emplu de multiplicitate al atributelor putem vedea urmtoarele variante?

^*..1_ ,n#eamn c; multiplicitatea atributului poate primi #emni$ica+ia * #au 1. <n ace#t caz * ,n#eamn c #emni$ica+ia pentru ace#t atribut nu e#te prezent. ^*..U_ ,n#eamn c; multiplicitatea atributului poate primi orice #emni$ica+ie pozitiv ,ntreag mai mult #au egal cu *. 0cea#t multiplicitate poate $i #cri# mai #curt ,n calitate de #imbolul = ^U_. ^1.?U_ ,n#eamn c; multiplicitatea atributului poate primi orice #emni$ica+ie pozitiv ,ntreag mai mult #au egal cu 1. ^1..5_ ,n#eamn c; multiplicitatea atributului poate primi orice #emni$ica+ie din numerele? 1; 2; 3; ); 5. ^1..3;5; _ ,n#eamn c; multiplicitatea atributului poate primi orice #emni$ica+ie din numerele? 1; 2; 3; 5; . ^1..3; .. 1*_ ,n#eamn c; multiplicitatea atributului poate primi orice #emni$ica+ie din numerele? 1; 2; 3; ; &; (; 1*. ^1..3; ..U_ ,n#eamn c; multiplicitatea atributului poate primi orice #emni$ica+ie din numerele? 1; 2; 3; de a#emenea orice #emni$ica+ie pozitiv ,ntreag mai mult #au egal cu .

.ac multiplicitatea atributului nu e#te #peci$icat; atunci dup #tarea ini+ial voloarea ei e#te egal cu 1..1; adic e2act 1. 6ipul atributului prezint o e2pre#ie; #emantica cruia e#te de$init dup limbajul #peci$ica+iei al modelului core#punztor. <n nota+ii UML=ului tipul atributului uneori e#te #peci$icat ,n dependen+ de limbajul de programare; care va $i utilizat pentru realizarea modelului dat. <n cazul elementar tipul atributului e#te #peci$icat ,n r,ndul te2tului; care are un #en# ,n limita pac5etului #au modelului; la care are atitudinea cla#a dat. Sublinierea r,ndului atributului ,n#eamn c ace#t atribut core#punztor poate avea o #ubmul+ime de valori din oarecare domeniu al valorilor atributului; de$init de tipul lui. 0ce#te valori pot $i con#iderate ca tru# de noti+e cu acela7i tip #au ca ma#iv; care ,n an#amblu caracterizeaz $iecare obiect al cla#ei. .e e2emplu; dac oarecare atribut e#te dat ,n $orm de $orma? .reptung5i; acea#ta va #emna c toate obiectele cla#ei date poate avea c,teva $orme di$erite; dintre care $iecare prezint un dreptung5i. Ca alt e2emplu poate $i atribut ,n $orm de numrulWcontului?1nteger; ce poate ,n#emna pentru obiect Colaborator prezen+a #ubmul+imii de conturi; valoarea total crora nu e#te $i2at din timp. 0liniat ' proprietatea e#te utilizat pentru indicarea valorilor atributului; care nu poate $i #5imbat ,n program ,n lucrul cu tipul dat al obiectelor. <n paranteze ... anume e#te indicat valorea $i2 al atributului propriu pentru toat cla#; care trebuie # con+in toate e2emplarele cla#ei; care vor $i create; $r e2cepSie. 0cea#t valoare e#te con#iderat ca valoare ini+ial a atributului; care nu poate $i reini+ializat ,n continuare. 0b#en+a aliniatului ' proprietatea de baz #e trateaz ,n $elul urmtor; valoarea atributului core#punztor pot $i #5imbat ,n program. .e e2emplu; aliniat ' proprietate ,n ,n#crierea atributului #alariu?Currenc8 ` ` Va5**Y poate $i utilizat pentru indicarea #alariului $i2at pentru $iecare obiect al cla#ei MColaboratorN pentru o $unc+ie de$init ,n oarecare organiza+ie. .in alt 3*

parte; ,n#crierea atributului dat ,n $orm de #alariu?Currenc8 ` ` Va5**Y ,n#eamn alt ceva; 7i anume ' ,n timpul $ormrii a unui nou e2emplar Colaborator "angajarea la lucru unui nou colaborator% pentru el #alariul de a5** e#te #tabilit automat. 6otu7i; pentru careva colaboratori pot $i $cute e2cep+ii; cum ar $i ,n cre7tere #au de#cre7tere; ce ar trebui $i prevzut ,n program.

#.1.!. /pera%iile
<n a treia #ec+ie a dreptung5iului de cla# #e ,n#criu opera+ii #au metodele cla#ei. peraia "operation% prezint un anumit #erviciu; care prezint $iecare e2emplar al cla#ei dup anumit cerin+. 6otalitatea de opera+ii caracterizeaz un a#pect $unc+ional ,n comportamentul cla#ei. 3ota+ia opera+iei cla#ei ,n limbajul UML e#te la $el #tandartizat 7i e#te #ubordonat de careva regulli #intactice. <n urma ace#teia $iecare opera+ie cla#ei core#punde un r,nd aparte; care e#te compu# din #peci$icator de vizibilitate al opera+iei; numele opera+iei; e2pre#iei de tipul valoarei returnat de opeara+ia 7i po#ibil; aliniat ' proprietate opera+iei date? \#peci$icator de vizibilitate]\numele opera+iei]"li#ta de parametri%? \e2pre#ie de tipul valoarei returnate]Valiniat = proprietateY Speci$icator de vizibilitate ca 7i ,n cazul atributelor cla#ei; poate primi unul din trei valori po#ibile 7i ,n mod core#punztor e#te #peci$icat cu un #imbol #pecial. Simbolul MIN ,n#eamn opera+ia cu #peci$icator de vizibillitate de tip public"public%. Simbolul MJN ,n#eamn opera+ia cu #peci$icator de vizibilitate de tip protec+ie"protected%. <n #$,r7it; #imbolul M'N e#te utilizat pentru identi$icarea opera+iei cu regiunea de vizibilitate de tip privat "private%. Speci$icator de vizibilitate pentru opera+ie poate $i ab#ent. <n ace#t caz ab#en+a lui ,n#eamn c vizibilitatea opera+iei nu e#te indicat. <n locul ,n#emnrii gra$ice conven+ionale de a#emenea poate ,n#crie un cuv,nt ' c5eie core#punztor? public; protected; private. 3umele opera+iei prezint aliniat de te2t; care e#te utilizat ca identi$icator al opera+iei core#punztoare 7i de aceea trebuie # $ie unic ,n mediul cla#ei date. 3umele atributului e#te un element unic obligator ,n indicarea #intactic opera+iei. 4pera+ia; care nu poate #c5imba #tarea #i#temului 7i ,n mod core#punztor nu are nici un e$ect #uplimentar; e#te #peci$icat cu aliniat ' proprietate MVinterpelareYN "MV9uer8YN%. <n caz contrar opera+ia poate #c5imba #tarea #i#temului; de7i nu #unt garan+ii c ea va $ace ace#t lucru. Li#ta parametrilor $ormate 7i tipul de valoare redu# pot $i ne#peci$icate. Speci$icator de vizibilitate atributelor 7i opera+iilor pot $i indicate de un #emn #au #imbol #pecial; care #unt utilizate pentru prezen+a modelelor gra$ice ,n careva mijloace de in#trumente. 3umele opera+iilor la $el ca 7i a atributelor; #unt #cri#e cu minu#cule; iar tipurile lor cu maju#cule. <n urma cruia o parte obligatorie al aliniatului de te2t al opera+iei e#te prezen+a numelelui 7i parantezelor rotunde. Ca e2emplu al ,n#crierei opera+iei pot $i urmtorii #peci$icatori al opera+iilor?

Ia crea"% ' pot indica o opera+ie ab#tract ,n $ondarea obiectului #eparat; care e#te public 7i nu con+ine parametri $ormali. 0cea#t opera+ie nu reduce nici o valoare dup e2ecutarea #a. Ia de#ena"$orma? multilateral`dreptung5i; culoareaWinundrii? Color `"*;*;255%% ' pot indica o opera+iune de ,n$+i7are pe ecranul monitorului regiunii dreptung5iului cu culoare alba#tr; dac nu indic alte valori ,n calitate de argumente opera+iei date. cerereaWcontululuiWclientului"numrulWcontului? 1nteger%? Currenc8 ' ,n#eamn; opera+iunea de indicare ,n contul curent a clientului bncii. <n urma cruia argumentul opera+iei date e#te 31

numrul contului clientului; care e#te #cri# ca numr ,ntreg "de e2emplu? M123)5/N%. Ca rezultat al e2ecutrii opera+iei date va $i un numr ,ntreg #cri# ,n $ormatul monetar"de e2emplu? a1;5**.**%. a daWme#ajul"%?VMEroare ,mpr+irii la nulNY ' #en#ul opera+iei ace#tea nu e#te nevoie de a e2plica; deoarece e#te ,ntre+inut ,n aliniat ' proprietatea opera+iei. Me#ajul dat poate aprea pe ecranul monitorului ,n cazul c,nd de#pr+im un numr la nul; ce e#te inadmi#ibil.

#.2. 'ela%ii &ntre clase


<n a$ar de organizarea intern #au #tructur cla#elor ,n diagrama core#punztoare #unt indicate di$erite rela+ii ,ntre cla#e. <n urma cruia totalitatea tipurilor a#t$el de rela+ii e#te $i2at ,n limbajul UML 7i e#te pre#upu# de #emantica a#t$el tipurilor de rela+ii. <n limbajul UML rela+iile de baz 7i legturile #unt?

-ela+ia de dependen+a "dependenc8 relation#5ip% -ela+ia de a#ociere "a##ociation relation#5ip% -ela+ia de generalizare"generalization relation#5ip% -ela+ia de realizare"realization relation#5ip%

:iecare din rela+iile ace#te are reprezentare gra$ic proprie pe diagram; care re$lect intercone2iunele ,ntre obiectele cla#elor core#punztoare.

#.2.1. 'ela%ia de dependen%a


-ela+ia de dependen+ ,n caz general indic o rela+ie #emantic ,ntre dou elementele modele #au ,ntre dou mul+imi de ace#te elemente; care nu e#te o rela+ie de a#ociere; generalizare #au realizare. Ea #e re$er numai la elementele modele 7i nu cere o mul+ime de e2emple pentru e2plicarea #en#ului #u. -ela+ia de dependen+ #e $olo#e7te ,n #itua+ia ,n care o #c5imbarea unui element al modelului poate cere dup #ine o #c5imbare ,n elementul dependent de elementul precedent al modelului. @ra$ic rela+ie de dependen+ #e prezint gra$ic; printr=o linie punctat ,ntre elementele cu #geat ,n captul entit+ii dependente"M=]N #au M\=N%. <n diagrama de cla#e acea#t rela+ie une7te cla#e #eparate ,ntre #ine; ,n urma cruia #geat e#te ,ndreptat de la cla#a ' client; dependent de cla#a independent #au cla#a ' ini+ial "$ig. 33%. !e de#enul urmtor #unt prezentate dou cla#e? Cla#aW0 7i Cla#aWA; ,n urma cruia Cla#aWA reprezint #ur#a unei rela+ii; iar Cla#aW0 e#te clientul ace#tei dependen+e.
Cla&a)A Cla&a)*

Fi .''. -eprezentarea gra$ic rela+iei de dependen+a ,n diagrama de cla#e. Sgeata poate $i indicat #au nu poate $i indicat cu cuv,ntul=c5eie #tandart ,n g5elimele 7i nu e#te nece#ar nume individual. !entru rela+ia de dependen+ e2i#t cuvintele ' c5eie; care indic careva $eluri de rela+ii #peciale. 0ce#te cuvintele ' c5eie "#tereotipuri% #unt #cri#e ,n g5elimele alturi de #geat; care core#punde rela+iei date. E2emple de #tereotipuri pentru rela+ie de dependen+ #unt urmtoarele?

Macce##N ' #erve7te ca indicator de acce#ibilitate unor atribute 7i opera+ii cla#ei ' #ur# pentru cla#e'clien+iiQ MbindN ' cla#a'client pote utiliza careva 7ablon pentru urmtoarea parametrizareQ 32

MderiveN ' atributul cla#ei ' client poate $i calculat dup atributele cla#ei ' #ur#Q MimportN ' atribute de#c5i#e 7i opera+ii publice cla#ei ' #ur# devine o parte a cla#ei ' client; care dac ar $i nemijlocit ,n elQ Mre$ineN ' indic c cla#a ' client #erve7te ca precizie a cla#ei ' #ur# ,n cauza caracterului i#toric; c,nd ,n timpul lucrului la un proiect apare in$orma+ia adugtoare.

#.2.2. 'ela%ia de as"ciere


-ela+ia de a#ociere core#punde prezen+ei unei rela+ii ,ntre cla#e. -ela+ia dat #e reprezint printr=o linie cu #imboluri #peciale adugtoare; care caracterizeaz unele propriet+i a a#ocierii concrete. <n calitate de #imboluri adugtoare #peciale poate $i $olo#it numele a#ocierii; dar 7i numele 7i multiplicitatea cla#elor ' rolurilor a#ocierii. 3umele a#ocierei nu e#te un element obligatoriu pentru indicarea ei. .ac numele e#te indicat; atunci e#te #cri# cu litera maju#cul alturi de linia a#ocierii core#punztoare. Cel mai #implu caz a#ocierii ' a#ocia+ia binar. Ea conecteaz e2act dou cla#e; dar ca e2cep+ie poate conecta cla#a cu #ine. <n diagrama pentru a#ocia+ia binar poate $i indicat ordinea con#ecin+ei cla#elor cu ajutorul triung5iului ,n $orm de #geat alturi de numele a#ocierii date. .irec+ia ace#tei #ge+i indic ordinea cla#elor; unul dintre care e#te primul "din partea treung5iului%; iar al doilea "din partea v,r$ului treung5iului%. 0b#en+a ace#tei #ge+ei alturi de numele a#ocierii ,n#eamn c ordinea con#ecin+ei a cla#elor ,n acea#t rela+ie nu e#te indicat. Cel mai #implu e2emplu a rela+iei a#ocia+iei binare poate $i rela+ia ,ntre dou cla#e ' cla#a MCompanieN 7i cla#a MColaboratorN "$ig. 3)%. Ele #unt legate ,ntre ele cu a#ocia+ia binar Lucru; numele cruia e#te indicat pe de#en alturi de linia a#ocierii. !entru rela+ia dat e#te indicat ordinea con#ecin+ei a cla#elor; prima e#te cla#a MColaboratorN; iar al doilea ' cla#a MCompanieN.

Fi . '(. -eprezentarea ga$ic a rela+iei a#ocierii binare ,ntre cla#e. Unul dintre #imboluri adugtoare e#te numele rolului a cla#ei aparte; care ,ntr ,n a#ociere. 3umele rolului reprezint aliniat de te2t alturi de captul a#ocierii pentru cla#a re#pectiv. Ea indic un rol #peci$ic; care joac cla#a; ce reprezint captul a#ocia+iei. 3umele rolului nu e#te un element obligatoriu 7i poate lip#i ,n diagram. Urmtorul element de indicare e#te multiplicitatea cla#elor; care #unt capetele a#ocia+iei. Multiplicitatea unei cla#e reprezint un interval de numere intregi; analogic cu multiplicitatea atributelor 7i opera+iilor cla#elor. :orma #pecial #au caz particular a rela+iei de a#ociere e#te rela+ia de agregare; care ,n r,ndul #u are o $orm #pecial ' rela+ie de compozi+ie. <ntruc,t rela+iile ace#tea au nota+ii #peciale 7i apar+in no+iunelor de baz a limbajului UML; vor $i e2aminate con#ecutiv.

33

#.2.!. 'ela%ia de agregare


-ela+ia de agregare e2i#t ,ntre c,teva cla#e ,n cazul c,nd o cla# reprezint o careva entitate care include ,n #ine ,n calitate de pr+i componente alte entit+i. 0cea#t rela+ie are un #en# $undamental ,n de#crierea #tructurei #i#temelor compu#e; deoarece e#te utilizat pentru reprezentarea interac+iunelor #i#tematice de tipul Mparte=intregN. .ezvluind #tructura #i#temei interne; rela+ia de agregare ne arat din care componente e#te compu# #i#tema 7i cum e#te legat ,ntre ele. .in punct de vedere a modelului pr+ile #i#temului pot $i reprezentate ,n calitate de elemente dar 7i ,n calitate de #ub#i#tem. 0cea#t rela+ie de#crie decompozi+ia #au ,mpr+irea unui #i#tem compu# la un #i#tem de #tructurp mai #impl; care de a#emenea pot $i decompu#e dac acea#t lucru va $i nece#ar ,n viitor. Ca e2emplu de rela+ie de agregare vom lua interac+iunea de tipul Mparte=,ntregN; care e#te ,ntre entitate MCalculatorN 7i componente MAloc de #i#temN; MMonitorN; M6a#taturaN; MMou#eN. -eprezentarea gra$ic a rela+iei de agregare e#te artat cu linia ,ntreag; unul din capetele cruia reprezint un romb ne5a7urat. 0ce#t romb indic acea cla#; care reprezint un M,ntregN. 0lte cla#e prezint Mpr+ileN lui "$ig. 35%.
Calculator

*loc !e &i&te"

+onitor

,a&tatura

+ou&e

Fi . '). -eprezentarea gra$ic a rela+iei de agregare pentru !C ,n diagrama cla#elor.

#.2.#. 'ela%ia de c"mp" i%ie


-ela+ie de compozi+ie e#te un caz particular al rela+iei de agregare. 0cea#t rela+ie #e $olo#e7te pentru o $orm #pecial de rela+ii Mparte=,ntregN; ,n care componentele apar+in unui ,ntreg "compozit%. Speci$icarea interac+iunii ,ntre ele con#t? pr+ile nu pot e2i#ta independent; adic cu de#trugerea compozitului #e vor di#truge toate pr+ile lui componente. -ela+ia gra$ic de compozi+ie e#te reprezentat ca o linie ,ntreag; una din capetele cruia reprezint un romb 5a7urat ,nauntru.0ce#t romb indic acea cla#; care reprezint cla#a ' compozi+ie #au M,ntregulN. 0lte cla#e #unt Mpr+ileN lui. <n calitate de nota+ii adugtoare pentru rela+ii de compozi+ie 7i de agregare pot $i $olo#ite nota+ii adugtoare $olo#ite pentru rela+ia de a#ociere. Ri anume; #peci$icarea divizibilit+ii cla#ei de a#ociere 7i numele a#ocierii date; care nu e#te obligatoriu. Ca e2emplu de de#criere vom lua cla#a M:erea#tra programuluiN 7i diagrama cla#elor va $i urmtoare "$ig. 3/%.

Fi . '*. -eprezentarea gra$ic a rela+iei de compozi+ie pentru :erea#tra programului ,n diagrama cla#elor. 3)

0ce#t e2emplu poate ilu#tra 7i alte propriet+ile programei computerizate; care nu a $o#t #peci$icat pentru ace#t e2emplu. .eci; #peci$icarea divizibit+ii 1 l,ng cla#a Z-egiunea de lucru[ e#te utilizat ,n ane2e unidocumentate "aplica+ii%.

#.2.(. 'ela%ie de generali are


-ela+ia de generalizare e#te o rela+ie ta2onometric ,ntre dou elemente de acela7i tip? elementul generalizat "printe% 7i elementul #pecializat "de#cendent%. 0cea#t rela+ie poate $i utilizat pentru reprezentarea interac+iunilor ,ntre pac5ete; cla#e; cazurile de utilizare 7i alte elemente ale limbajului UML. <n diagrama de cla#e rela+ia dat de#crie #tructura ierar5ic a cla#elor 7i mo7tenirea propriet+ilor 7i comportamentului lor. <n urma cruia cla#a=de#cendent mo7tene7te propriet+ile 7i comportamentul cla#ei=printe; dar are propriet+ile 7i comportamentul #u propriu; care nu are cla#a=printe. <n diagrame rela+iile de generalizare #unt reprezentate ca o linie ,ntreag cu #geat ,n $orm de triung5i la unul din capete. Sgeata arat cla#a ' generalizat "cla#a=printe #au #upercla#%; iar ab#en+a ei indic cla#a ' #pecial "cla#a=de#cendent #au #ubcla#a%. !entru #impli$icarea nota+iei ,n diagrama cla#elor totalitatea de linii ce indic aceea7i rela+ie de generalizare; poate $i unit ,ntr=o linie. <n ace#t caz liniile #unt adunate la o #ingur #geat 7i au un punct comun de inter#ec+ie "$ig. 3 %.

Fi . '+. Eariantul gra$ic a rela+iei de generalizare ,n cazul unirii liniilor aparte. L,ng #geat de generalizare poate $i ampla#at aliniat de te2t; care #peci$ic care=va propriet+i adugtoare a ace#tei rela+ii. 6e2tul dat va $i re$eritor la toate linile de generalizare; care trec ,n cla#e ' de#cendente. Cu alte cuvinte; proprietatea marcat #e re$er la toate #ubcla#e rela+iei date. <n urma cruia te2tul trebuie # $ie e2aminat ca re#tric+ie 7i atunci el va $i #cri# ,n paranteze. Ca re#tric+ie pot $i $olo#ite urmtoarele cuvinte'c5eie din limbajul UML?

VcompleteY ' ,n#eamn c ,n acea#t rela+ie de generalizare #unt #peci$icate toate cla#ele ' de#cendente 7i alte cla#e ' de#cendente nu pot e2i#ta ,n cla#a dat. .e e2emplu; cla#a ClientulWbncii e#te cla#a ' printe pentru dou cla#e? !er#oanaW$izic 7i Companie 7i alte cla#e ' de#cendente el nu are. <n diagrama ace#tei cla#e poate $i indicat evident cu ajutorul #crierii liniei de generalizare cu acea#t aliniat ' limitQ Vdi#jointY ' ,n#eamn c cla#ele ' de#cendente nu pot con+ine obiecte; care concomitent #unt e2emplare a dou #au mai multor cla#e. <n e2emplu precedent ace#t condi+ie #e ,ndepline7te; deoarece e#te pre#upu# c nici o per#oan $izic nu poate $i concomitent 7i companie concret. <n cazul ace#ta alturi de linie de generalizare poate $i #cri# aliniat ' limit datQ VincompleteY ' e#te cazul contrar a primului caz. 0nume; pre#upune c ,n diagrama nu #unt indicate toate cla#e ' de#cendente. <n continuare poate $i re#tabilit li#ta lor $r #c5imbarea ,n diagrama con#truit. E2emplu? diagrama de cla# M0utomobilN; pentru care indicarea 35

tuturor modelelor de automobile e#te ec5ivant cu $ormarea catalogului re#pectiv. .in alt parte; pentru o alt problem ca elaborarea #i#temului de vindere automobilelor de modele concrete nu e#te nece#itate. 1ar indicarea #tructurii incomplete a cla#elor ' de#cendente e#te nece#arQ VoverlappingY ' ,n#eamn c care=va e2emplare a cla#elor ' de#cendente pot apar+ine mai multor cla#e. E2emplu? cla#a MMultilateralN e#te cla#a ' printe pentru cla#a M.reptung5iN 7i cla#a M-ombulN. 6otu7i e2i#t cla#a M!tratN; e2emplarele cruia concomitent #unt obiectele a primelor dou cla#e. E#te clar c acea#t #itua+ie trebuie # $ie marcat cu aliniat ' limit.

#.!. ,nterfe%e
1nter$e+ele #unt e2emplarele diagramelor cazurilor de utilizare. 6otu7i ,n con#truirea diagramei de cla# care=va inter$e+e pot $i precizate 7i ,n cazul dat pentru reprezentarea lor e#te $olo#it un #imbol gra$ic #pecial ' dreptung5i de cla# cu cuv,ntul=c5eie 7i #tereotip Minter$a+aN "$ig. 3&%. <n urma cruia #ec+ia de atribute a dreptung5iului lip#e7te; iar e#te indicat numai #ec+ia de opera+ii.
-interface- .le"ent)ter"o"entric valoarea)te"peraturii()

Fi .',. E2emplu de reprezentarea gra$ic a inter$e+ei ,n diagrama de cla#e.

#.#. /biecte
biect "object% e#te un e2emplar #pecial al cla#ei; care e#te creat ,n timpul e2ecutrii programului. El are un propriu nume 7i valoare concret atributelor. <n urma care=va motivelor poate aprea nece#itatea de reprezentare a intercone2iunelor nu numai ,ntre cla#ele modelului; dar 7i ,ntre obiecte aparte; care realizeaz cla#e date. <n ace#t caz poate $i elaborat diagrama de obiecte; care nu e#te canonic ,n metamodelul limbajului UML; dar are de#tina+ie proprie. !entru reprezentarea gra$ic a obiectelor e#te utilizat acela7i #imbol a dreptung5iului ca 7i pentru cla#e. .i$eren+a e#te ,n indicarea numelelor obiectelor; care ,n cazul de obiecte e#te obligatoriu #ubliniat "$ig. 3(%. <n urma cruia notarea numelelui obiectului reprezint aliniat de te2t Mnumele obiectului? numele cla#eiN; #eparat cu dou puncte "$ig. 3( a; b%. 3umele obiectului poate lip#i; ,n ace#t caz pre#upunem c obiectul e#te anonim 7i dou puncte indic ace#t lucru "$ig. 3( d%. 3umele cla#ei poate lip#i. 0tunci e#te indicat numele obiectului "$ig. 3( c%. 0tributele obiectelor prime#c valorile concrete.

Fi . '-. E2emplu de reprezentare gra$ic a obiectelor ,n diagramele limbajului UML.

3/

). /ia rama de $t#ri 0$tatec2art dia ram1


!entru modelarea comporatamentului la nivelul logic ,n limbajul UML pot $i utilizate la r,nd c,teva diagrame canonice? de #tri; de activitate; de #ecven+ 7i de cooperare; $iecare din care pune accentul la a#pectul #peci$icat de $unc+ionare a #i#temului. Spre deo#ebire de alte diagrame; diagrama de #tri de#crie proce#ul de modi$icare a #trilor numai pentru o cla#; pentru un e2emplar a unei cla#e; adic de a modela toate modi$icrile po#ibile ,n #tarea unui propriu obiect. <n urma cruia modi$icarea #trii obiectului poate $i provocat de in$luen+a e2tern a altor obiecte #au din e2terior. 0nume pentru de#crierea reac+iei obiectelor la a7a $el de in$luen+e e2terne #unt utilizate diagramele de #tri. 0cea#t diagram e#te $olo#it pentru de#crierea con#ecutivit+ilor de #tri po#ibile 7i trecerilor; care ,n an#amblu caracterizeaz comportamentul elementelor modelului ,n timpul ciclului de via+. .iagrama de #tri reprezint comportamentul dinamic a entit+ilor ,n baza #peci$ica+iei reac+iei lor la perceperea cror=va evenimente concrete. .e7i diagramele de #tri #unt mai rar utilizate pentru de#crierea comporatamenrului de care=va e2emplare a cla#elor "obiectelor%; dar ele de a#emenea pot $i utilizate 7i pentru #peci$icarea $unc+ionalit+ilor altor componente a modelului; a7a cum cazurile de utilizare; actorii; #ub#i#teme; opera+ii 7i metode. .iagrama de #tri ,n realitate e#te un gra$ de ,n$+i7are #pecial; care reprezint un automat. .e$ini+ia de automat ,n conte2tul UML are o #emantic prea #peci$ic; bazat pe teoria automatelor. E,r$urile ace#tui gra$ #unt #trile 7i alte elemente a automatului "p#eudo#tri%; care #unt reprezentate cu ajutorul #imbolilor gra$ice #peciale. -azele gra$ului #unt pentru marcarea trecerilor de la o #tare la alt. .iagramele de #tri pot $i depu#e una ,n alta; $orm,nd diagramele depu#e de reprezentarea mai detaliat a cror=va elemente a modelului. !entru ,n+elegerea #emanticii diagramei de #tri concrete e#te nece#ar de a imagina nu numai deo#ebirile ,n comportamentul entit+ii modelate; dar 7i de a 7ti no+iuni generale din teoria automatelor.

(.1. +ut"mate
Un automat "#tate mac5ine% ,n limbajul UML reprezint o $ormalizare pentru modelarea comportamentului elementelor modelului 7i a #i#temului ,ntreg. <n metamodelul UML automatul e#te un pac5et; ,n care #unt de$inite o mul+ime de de$ini+ii; nece#are pentru reprezentarea comportamentului entit+ii modelate ,n $orm de #pa+iu di#cret cu un numr $init de #tri 7i treceri. .in alt parte; automatul de#crie comportamentul obiectului ,n $orma con#ecutivit+ilor de #tri; care con+ine toate etapele ciclului de via+; ,ncep,nd cu $ormarea obiectului 7i #$,r7ind cu de#trugerea lui. :iecare diagrama de #tri reprezint un automat. Ca un #implu e2emplu de reprezentare vizual de #tri 7i treceri pe baz de $ormalizmul automatului poate #ervi #itua+ia de#cri# de mai #u# cu $unc+ionizarea ec5ipamentului te5nic ca calculator. <n ace#t caz #unt introdu#e dou #tri? M$unc+ioneazN 7i Mnu $unc+ioneazN 7i dou treceri? Mde$ectN 7i MreparareN. <n mod gra$ic acea#t in$orma+ie poate $i reprezentat ,n $orm de urmtoarea diagram de #tri pentru un calculator "$ig. )*%.

Fi . (.. Un #implu e2emplu de diagram de #tri pentru ec5ipamentul te5nic de tip calculator. 3

3o+iunile de baz care intr ,n $ormalizmul automatului #unt #tarea 7i trecerea. .i$eren+a principal ,ntre ele e#te durata a$lrii #i#temului ,n #tare aparte; care dep7e7te mult timpul; care e#te utilizat pentru trecerea de la o #tare la alt. !re#upune c ini+ial timpul de trecere de la o #tare la alta e#te egal cu zero "dac nu e2i#t in$orma+ie #uplimentar%. Cu alte cuvinte; trecerea obiectului de la o #tare la alt e#te momental. <n cazul general automatul reprezint a#pecte dinamice a #itemului modelat ,n $orma de gra$ orientat; v,r$urile crui core#punde cu #trile; iar arcurile ' cu trecerile. <n urma cruia comportamentul modeleaz ca depla#are con#ecutiv ,n gra$ul de #tri de la v,r$ la v,r$ dup arcurile legate +in,nd cont de orienta+ia lor.

(.2. Stare
<n limbajul UML #tarea e#te #ub,n+ele# ca metacla# ab#tract; ce #e utilizeaz pentru modelarea #itua+iei aparte; pe parcur#ul crei e#te prezent e2ecutarea anumitei condi+ii. !tarea "#tate% poate $i ,n $orm de valori concrete a atributului cla#ei #au obiectului; ,n ace#t caz modi$icarea anumitelor valorilor va re#pinge modi$icarea cla#ei modelate #au obiectului. 6rebuie de men+inut c nu $iecare atribut al cla#ei poate caracteriza #tarea lui. Ca regul; #unt valoroa#e numai acele propriet+i a elementelor #i#temului; care re#pinge a#pectul dinamic 7i $unc+ional a comportamentului lui. <n ace#t caz #tarea va $i caracterizat ca o condi+ie invariat; care include ,n #ine numai cele mai #emni$icative cla#e a atributului pentru comportarea 7i #emni$icarea lor. .e e2emplu; invariant poate reprezenta o #itua+ie #tatic; c,nd obiectul e#te ,n #tare de a7teptare a aprrii care=va eveniment e2tern. .in alt parte; invariantul e#te utilizat pentru modelarea a#pectelor dinamice; c,nd ,n timpul proce#ului #unt e2ecutate anumite ac+iuni. 0tunci ,n cazul dat elementul modelat trece ,n #tarea dat ,n momentul ini+ial al activit+ii re#pective 7i ie#e din #tarea dat ,n momentul $inalizrii ei.

Fi . (1. -eprezentarea gra$ic #trilor ,n diagrama de #tri. Starea pe diagram e#te reprezentat ca dreptung5i cu v,r$urile rotungite "$ig.)1%. 0ce#t dreptung5i; la r,ndul #u; poate $i de#pr+it ,n dou #ec+iuni cu ajutorul liniei orizontale. .ac e#te indicat numai o #ec+iune; atunci ,n ea e#te #cri# numai numele #trii "$ig. )1; a%. <n caz contrar ,n prima din ele e#te #cri# numele #trii; iar ,n a doilea li#ta cror=va ac+iuni interne #au treceri ,n #tarea dat "$ig. )1; b%. <n urma cruia dup ac+iunea limbajului UML #e #ub,n+elege o anumit opera+ie atomic; e2ecutarea creia duce la #c5imbarea #trii #au red o anumit valoare "e2emplu; MadevrN #au M$al#N%.

3&

(.2.1. .umele strii


3umele #trii reprezint aliniat de te2t; care dezvluie #en#ul #trii date. 3umele e#te ,ntodeauna #cri# cu litera maju#cul. .eoarece #tarea #i#temului e#te partea compu# a proce#ului de $unc+ionare; e#te recomandat de $olo#it ,n calitate de nume verbele ,n timpul prezent "#un; tipre7te; a7teapt% #au participiu core#punztor "ocupat; liber%. 3umele #trii poate lip#i; adic el nu e#te obligatoriu pentru anumite #tri. <n ace#t caz #tarea e#te anonim 7i dac ,n diagrama de #tri #unt c,teva din ele; atunci ele toate trebuie # $ie di$erite ,ntre ele.

(.2.2. Starea ini%ial


!tarea iniial reprezint un caz particular de #tare; care nu con+ine nici o ac+iune intern "p#eudo#tare%. <n ace#t caz e2i#t ini+ial un obiect ,n #tarea ini+ial a timpului. Ea e#te utilizat pentru indicarea pe diagrama de #tri a #pa+iului gra$ic; de la care ,ncepe proce#ul de modi$icare a #trilor. @ra$ic #tarea ini+ial ,n limbajul UML e#te reprezentat ,n $orm de cerc 5a7urat "$ig. )2; a%; de la care poate ie7i numai #geata core#punztoare cu trecere.

Fi . (!. -eprezentarea gra$ic a #trii ini+iale 7i $inale ,n diagrama de #tri. La cel mai ,nalt nivel de reprezentare a obiectului trecerea de la #tarea ini+ial la #tarea $inal poate $i marcat ca ac+iunea de creare "ini+ializare% a obiectului dat. <n cazul contrar tranzi+ia nu e#re marcat deloc. .ac ace#t tranzi+ie nu e#te marcata; atunci ea e#te prima trecere ,n #tarea urmtoare.

(.2.!. Starea final


!tarea final reprezint un caz particular al #trii; care nu con+ine nici o ac+iune intern "p#eudo#tare%. <n acea#t #tare obiectul #e v=a a$la ,n #tarea ini+ial dup $ini#area lucrului automatului ,n ultimul moment de timp. El e#te utilizat pentru indicarea #pa+iului gra$ic pe diagrama de #tri; unde #e #$,r7e7te proce#ul de #c5imbare a #trii #au ciclului de via+ a obiectului dat. @ra$ic #tarea $inal ,n limbajul UML e#te reprezentat ,n $orm de cerc 5a7urat depla#at ,n circum$erin+ "$ig. )2; b%; ,n care poate intra numai #geata core#punztoare cu trecerea.

(.!. 0ran i%ie


4 #impl tranziie reprezint o rela+ie ,ntre dou #tri con#ecutive indic,nd $aptul #c5imbrii a unei #tri cu alt. !rezen+a obiectului modelat ,n prima #tare va e$ectua anumite ac+iuni; dar trecerea ,n #tarea a doua va $i atunci c,nd anumite ac+iuni vor $i terminate 7i dup ,ndeplinirea anumitor condi+ii adugtoare. 6ranzi+ia ,ncepe c,nd un anumit eveniment #e petrece? terminarea e2ecutrii ac+iunii "do activit8%; trimiterea me#ajului #au emiterea #emnalului. <n trecere #e indic numele ac+iunii. Mai mult; ,n tranzi+ie poate $i indicat ac+iunea produ# de un obiect ca reac+ia tranzi+iei de la o #tare la alta. E2ecutarea tranzi+iei poate depinde nu numai de petrecerea unui anumit eveniment; dar 7i de la ,ndeplinirea condi+iei core#punztoare; care #e nume7te condi+ie gard. 4biectul va trece de la o #tare la alta; numai ,n caz dac a $o#t ac+iunea indicat 7i condi+ia de gard e#te MadevratN.

3(

<n diagrama de #tri tranzi+ia e#te reprezentat ca linie ,ntreag cu #geat; care e#te ,ndreptat ,n #tarea de +int "e2emplu; Mde$ectN ,n $ig. )*%. :iecare tranzi+ie poate $i marcat cu aliniat de te2t; care are urmtorul $ormat general? \#ignatura evenimentului]b^b\condi+ia de paz]b_b \e2primarea ac+iunii]. Signatura ac+iunii de#crie un anumit eveniment cu argumentele nece#are? \numele evenimentului]b"b\li#ta parametrilor ,mpr+ite cu virgule]b%b.

(.!.1. $veniment
6ermenul eveniment "event% trebuie e2plicat aparte; deoarece el e#te un element independent al limbajului UML. 4p+ional evenimentul reprezint #peci$ica+ia anumitui $apt; care are ata7at o loca+ie ,n timp 7i ,n #pa+iu. .e#pre $apte #e #pune c ele M#e petrecN; ,n acela7i timp evenimente aparte trebuie # $ie aranjate ,n timp. .up #o#irea evenimentului e#te impo#ibil de a ne ,ntoarce la evenimentul precedent; dac acea#t po#ibilitate nu e#te prevzut ,n model. <n limbajul UML evenimentele joac rol de #timule; care ini+ializeaz treceri de la o #tare la alta. <n calitate de evenimente de#tingem #emnale; apeluri; terminarea intervalurilor $i2ate de timp #au momentele de $ini#are a e2ecutrii anumitor ac+iuni. 3umele evenimentului identi$ic $iecare tranzi+ie aparte ,n diagrama de #tri 7i pot con+ine aliniat de te2t; care ,ncepe cu minu#cul. <n ace#t caz tranzi+ia va $i triger; adic care #peci$ic un eveniment ' triger. .e e2emplu; tranzi+ii ,n $ig. )* #unt trigere; deoarece cu $iecare din ei #unt legate care=va eveniment ' triger; care petrece a#incron ,n momentul ie7irii din $unc+iune a ec5ipamentului te5nic #au ,n timpul terminrii repara+iei lui. .ac alturi de #geata trecerii nu e#te indicat nici un aliniat de te2t; atunci trecerea core#punztoare e#te netriger 7i ,n ace#t caz din conte2tul diagramei de #tri trebuei # $ie clar dup care terminare a ac+iunii el ,ncepe a $unc+iona. .up numele evenimentului pot urma paranteze rotungite pentru parametrii evenimentului ' triger. .ac nu e2i#t a7a parametri; atunci li#ta parametrilor cu paranteze pot lip#i.

(.!.2. *"ndi%ie gard


Condiia gard "guard condition%; dac e2i#t; atunci ,ntodeauna e#te #cri# ,n paranteze dreptungiulare dup evenimentul ' triger 7i reprezint e2pre#ie bulean. <ntroducerea condi+iei gard pentru tranzi+ie permite #peci$icarea #emanticii lui de e2ecutare. .ac condi+ia gard prime7te valoarea MadevratN; atunci tranzi+ia re#pectiv poate e2ecuta; 7i ca rezultat obiectul va trece la #tarea obiectiv pe acea#t tranzi+ie. <n cazul general de la o #tare pot e2i#ta c,teva tranzi+ii cu tot aceala7i eveniment ' triger. 3ici o condi+ie gard nu trebuei # con+in concomitent valoarea MadevrN. :iecare din condi+ii gard e#te nece#ar de calculat $iecare dat c,nd #o#e7te triger ' eveniment re#pectiv. @ra$ic $ragmentul de modelare de logic programului po7tal poate $i reprezentat ,n $orma de urmtoarea diagram de #tri "$ig. )3%. .up nece#itatea emiterii po7tei; utilizatorul trebuie # #tabilea#c conectarea tele$onului cu provaiderul; ce e#te indicat ,n diagrama cu trecerea de #u#. Cu alte cuvinte; utilizatorul ini+ializeaz evenimentul ' triger Mde a #tabili conectarea tele$onuluiN. Ca parametru al ace#tui eveniment trece un numr de tele$on concret a provaiderului. 0poi urmeaz veri$icarea condi+iei gard Mconectarea e#te #tabilitN; care #e #ub,n+elege ca ,ntrebare. 3umai ,n cazul r#pun#ului MdaN; adic MadevrN; #e ,nt,mpl trecerea programului po7tal de la #tarea Mactivarea programului po7talN ,n #tarea M,ncrcarea po7tei de la #ervelul provaideruluiN. <n caz )*

contrar "linie ocupat; parol incorect% nici o ,ncrcare a po7tei nu va $i 7i programul va l#a ,n $o#ta #tare.

Fi .('. .iagrama de #tri pentru modelarea programului ' client po7tal. 0 doua trecere de triger pe diagram ini+ializeaz ,ntreruperea automat a conectrii tele$onice cu provaiderul dup terminarea ,ncrcrii po7tei ,n calculatorul utilizatorului. <n ace#t cazul eveni= ment=triger Mde a $ini#a ,ncrcarea po7teiN #e petrece dup veri$icarea condi+iei gard Mpo7ta electronic pe #erver e#te de7eartN; care tot trebuie #a $ie #ub,n+ele# ,n $orm de ,ntrebare. .ac r#pun#ul e#te pozitiv "toat po7ta e#te ,ncrcat #au ea nu e#te ,n po7ta electronic% programul po7tal ,ntrerupe ,ncrcarea po7tei 7i trece ,n #tarea de activa+ie. .ar ,n cazul r#pun#ului negativ ,ncrcarea po7tei va continua.

(.!.!. $-presia ac%iunei


"#presia aciunii "action e2pre##ion% #e e2ecut atunci 7i numai atunci c,nd #e e2ecut tranzi+ia. -eprezint opera+ia atomic; care #e e2ecut dup e$ectuarea tranzi+iei re#pective ,nainte de oricare ac+iune ,n #tarea obiectiv. 0ctivitatea atomic ,n#eamn c ea nu poate $i ,ntrerupt de nici o alt activitate p,n c,nd nu termin e2ecutarea lui. 0cea#t ac+iune poate in$luen+a ca la obiectul; dar 7i la mijlocul lui; dac acea#t e#te evident din conte2tul modelului. E2pre#ia #e #crie dup #emnul MKN ,n linia te2tului conectat cu tranzi+ia re#pectiv. <n cazul general; e2pre#ia ac+iunii poate con+ine o li#t ,ntreag de activit+i particulare; #eparate cu #imbolul MQN. Condi+ie obligatorie ' toate ac+iune din li#t trebuie # $ie di$er ,ntre ele 7i # urmeze ,n ordinea #crierii lor. Sinta2a nota+iei e2pre#iei de ac+iune nu are care=va limite. Cel mai principal ' notarea lor trebuie # $ie clar pentru elaboratorii modelului 7i programi7tilor. .e aceea e2pre#iile #unt #cri#e mai rar ,n unul din limbajele de programare; care e#te pre#upu# de utilizare pentru realizarea modelului. Ca e2emplu de e2pre#ie a ac+iunii "$ig. )3% poate #ervi Mde a ,ntrerupe conectarea "numrul tele$onului%N; care trebuie e$ectuat e2act dup #tabilirea adevrului "MadevrulN% condi+iei gard Mpo7ta electronic pe #erver e#te de7eartN. Ca un alt e2emplu poate $i #itua+ia evident cu alocarea obiectelor gra$ice pe ecranul monitorului prin ap#area butonului #t,ng a mou#e=ului. <n ace#t caz tranzi+ia re#pectiv poate avea urmtorul aliniat de te2t? Me#te ap#at 7i eliberat butonul #t,ng a mou#e=ului "coordonate% ^coordonate ,n regiunea obiectului gra$ic_ K de alocat obiectului "culoarea%N. -ezultatul trecerii ace#tui triger poate $i de e2emplu activizarea anumitor propriet+i a obiectului "dimen#iunea $ailului ,n linia de #tare% #au e2tragerea.

)1

(.#. Stare 1i substare c"mpus


!tare compus "compo#ite #tate% ' e#te o #tare compu#; care e#te alctuit din alte #tri depu#e. Ultimile vor $i #ub#trile "#ub#tate% pentru primul element. .e7i ,ntre ele e2i#t rela+ia de compozi+ie; gra$ic toate v,r$urile diagramei; care core#pund #ub#trilor depu#e; #unt reprezentate ,nuntrul #imbolului #trii compu#e "$ig. ))%. <n ace#t caz dimen#iunele #imbolului gra$ic a #trii compu#e #e mre7te ,n a7a $el ca toate #ub#trile vor $i inclu#e.

Fi . ((. -eprezentarea gra$ic a #trii compu#e. Starea compu# poate con+ine dou #au mai multe #ubautomate paralele #au c,te=va #ub#tri con#ecutive. :iecare #ub#tare compu# poate $i precizat numai ,ntr=un #ingur mod; artat mai #u#. <n urma cruia oricare din #ub#tri la r,ndul #u pot $i #tare compu# 7i con+ine ,nuntru alte #ub#tri depu#e. Cantitatea nivelelor depu#e a #trilor compu#e nu #unt $i2ate ,n limbajul UML.

(.#.1. Substri disjuncte


!ubstri dis$uncte "#e9uential #ub#tate#% #unt utilizate pentru modelarea a7a $el de comportament a obiectului; ,n timpul cruia ,n $iecare moment de timp obiectul poate $i numai ,ntr=o #ub#tare. Comportamentul obiectului ,n ace#t caz reprezint #c5imbarea di#junct a #ub#trilor; ,ncep,nd cu #tarea ini+ial 7i #$,r7ind cu #ub#tarea $inal. .e7i obiectul continu de a $i ,n #tarea compu#; ,ntroducerea ,n e2aminarea #ub#trilor di#juncte d po#ibilitatea de a enumera mai $in a#pectele logice a comporatamentului lui intern. Ca e2emplu lum ,n con#idera+ie ,n calitate de obiectul modelat un tele$on obi7nuit. El poate $i ,n di$erite #tri; una din care e#te #tarea conectrii cu abonatul. Evident; c pentru conectare e#te nece#ar de redicat receptorul; # a#cult tonul #emnalului; dup care $ormm numrul de tele$on re#pectiv. <n a7a $el; #tarea de conectare cu abonatul e#te #tare compu# 7i con#t din dou #ub#tri di#juncte? Mridicarea receptoruluiN 7i M$ormarea numrului de tele$onN. :ragmentul de diagram de #tri pentru ace#t e2emplu con+ine o #tare compu# 7i dou #ub#tri di#juncte "$ig. )5%.

Fi . (). E2emplu de #tare compu# cu dou #ub#tri di#juncte depu#e. )2

4arecare lmuriri pot nece#ita tranzi+ii. .ou din ele #peci$ic eveniment ' triger $ormarea numrului; care are numele de Mci$raN cu parametru MnN. Ca e2emplu parametrului meni$e#t o ci$r ,n di#cul tele$onului. 6ranzi+ia din #ub#tarea ini+ial e#te netriger; deoarece ea nu con+ine nici un aliniat de te2t. Ultima tranzi+ie ,n #ub#tarea $inal nu are eveniment=triger; dar are condi+ie gard; care veri$ic corectitudinea $ormrii numrului abonatului. 3umai ,n cazul c,nd acea#t condi+ie e#te adevrat aparatul de tele$on poate duce ,n #ub#tarea $inal; care caracterizeaz #uper#tarea Mconectarea cu abonatulN ,n ,ntregime. Starea compu# poate con+ine ca depozit #ub#tarea ini+ial 7i $inal. <n urma creia #ub#tarea ini+ial e#te punct de plecare; c,nd #e ,nt,mpl tranzi+ia obiectului ,n #tarea compu#. .ac #tarea compu# con+ine ,nuntru #ub#tarea $inal; atunci tranzi+ia ,n acea#t #tare $inal depu# ,n#eamn $ini#area con#iderrii obiectului ,n #tarea depu#. E#te imporatant ca pentru #ub#tri di#juncte #tarea ini+ial 7i $inal trebuie # $ie unic ,n $iecare #tare depu#.

(.#.2. Substri c"ncurente


!ubstri concurente "concurrent #ub#tate#% pot #peci$ica dou #au mai multe #ubautomate; care pot e2ecuta paralel ,nuntrul #trii compu#e. :iecare din #ubautomate ocup un anumit region ,nuntrul #trii compu#e; care e#te de#pr+it de la altele cu linia orizontal punctat. .ac ,n diagrama de #tri e2i#t #tarea compu# cu #ub#trile paralele depu#e; atunci obiectul poate $i concomitent ,n $iecare din ace#te #ub#tri. 6otu7i #ub#trile paralele pot $i compu#e din c,te=va #ub#tri concomitente "#ubautomatele 1 7i 2 ,n $ig. )/%. <n ace#t caz dup de$ini+ia obiectul poate # #e a$le numai ,n una din #ub#trile di#juncte automatului. 07adar; pentru un e2emplu ab#tract "$ig. )/% permitem prezen+a concomitent a obiectului ,n #ub#trile "1; 3; )%; "2; 3; )%; "1; 3; 5%; "2; 3; 5%. 1nadmi#ibil e#te prezen+a concomitent a obiectului ,n #ub#trile "1;2;3% #au "3; ); 5%.

Fi .(*. -eprezentarea gra$ic a #trii compu#e #u #ub#trile concurente depu#e. !entru ca $iecare region a #trii depu#e #peci$ic un anumit #ubautomat; atunci pentru $iecare din #ubautomate depu#e pot $i de$inite #ub#tarea ini+ial 7i $inal "$ig. )/%. <n timpul tranzi+iei ,n #tarea depu# dat $iecare din #ubautomate devine ,n #ub#tarea #a ini+ial. Mai departe #e ,nt,mpl e2ecutarea concurent a $iecrui din #ubautomatele date; iar ie7irea din #tarea depu# va $ipo#ibil numai ,n cazul c,nd toate automatele vor $i ,n #trile #ale $inale. .ac unul din #ubautomate a venit ,n #tarea #a $inal mai degrab dec,t altele; atunci el trebuie # a7teapte p,n c,nd alte #ubautomate vor veni ,n #trile #ale $inale. )3

E2emplu a diagramei de #tri; care reprezint modelarea comportamentului obiectului concret e#te proce#ul $unc+ionrii aparatului de tele$on "$ig. ) %. 0cea#t diagram de #tri reprezint un automat cu o #tare depu#. .in e2teriorul #trii depu#e e2i#t numai o #tare Ma7teptareN; care caracterizeaz aparatul de tele$on $unc+ionat 7i conectat. 6ranzi+ia ,n #tarea urmtoare #e ,nt,mpl dup riricarea receptorului. 6ranzi+ia cu ac+iunea atomic Memiterea #emnalului de tonN tran#$er aparatul ,n #tarea compu#; adic ,n #ub#tarea lui ini+ial.

Fi . (+. .iagrama de #tri a proce#ului de $unc+ionare a aparatului de tele$on. 0poi aparatul de tele$on va $i ,n #tarea M#emnalul de tonN. <n urma cruia el va #coate ace#t #emnal p,n c,nd nu v=a avea loc evenimentul=triger M$ormarea ci$rei"n%N; #au nu trec 15 #ecunde de la momentul ridicrii receptorului. <n primul caz aparatul va trece ,n #tarea M$ormarea numruluiN; dar ,n #tarea doua M#$,r7irea timpului de a7teptareN. Ultima #itua+ie poate $i ca rezultat a ,ndoielii M# #un #au # nu #unPFN ,n urma cruia auzim bipuri ,n receptor; ,n urma cruia noi nu avem ce # $acem; ,n a$ar de a pune receptorul. <n timpul $ormrii numrului #e e2ecut evenimentul=triger M$ormarea ci$rei "n%N cu condi+ia gard Mnumrul incompletN. 0cea#t luru ,n#eamn c numrul $ormat nu con+ine numrul nece#ar de ci$re; atunci e#te nevoie de a continua $ormarea ci$rei urmtoare; rm,n,nd ,n #tarea M$ormarea numruluiN. .ac numrul $ormat e#te incomplet; atunci putem duce ,n #tarea Mnumrul gre7itN #au MconectareaN. <n cazul numrului gre7it "condi+ia gard Mgre7itN e#te adevr% nu avem alt alternativ dec,t # ie7im din #tarea compu# cu punerea receptorului. .ar dac numrul e#te corect; atunci are loc conectarea pe ace#t numr. 6otu7i ,n rezultatul conectrii poate # #e ,nt,mple ca aparatul abonatului e#te ocupat "trecerea ,n #tarea MocupatN% #au liber "trecerea ,n #tarea M#unetul la abonatN%. <n primul caz #unetul poate $i ))

repetat; dup punerea receptorului "ie7irea din #tarea compu#%. <n al doilea caz #e ,nt,mpl controlarea condi+iei gard Mconvorbirea e#te acce#ibilN. .ac ea e#te adevrat; ceea ce core#punde cu ridicarea receptorului cu abonatul; ,ncepe convorbirea tele$onic. <n caz contrar "acea#t condi+ie nu #e e2ecut; adic e#te $al#% tele$onul abonatului va continua # #une; ceea ce ne #pune c ori abonatul nu e#te; #au din care=va alt motiv nu putem continua cinvorbirea la tele$on. <n urma cruia noi nu avem alt #olu+ie dec,t # punem receptorul. .ac convorbirea a avut loc; atunci dup cuvinte de adio 7i e2ecutarea condi+iei de gard Mcon$irmareaN la terminarea convorbirii noi iar7i punem receptorul la loc. <n urma cruia aparatul de tele$on trece ,n #tarea Ma7teptareaN; ,n care poate # #e a$le un timp nelimitat.

*. /ia rama de activit#%i 0activit3 dia ram1


!entru modelarea proce#ului de e2ecutare a opera+iilor ,n limbajul UML #e utilizeaz a7a numitele diagrame de activit+i. 3ota+ia gra$ica acceptat pentru ace#te diagrame are mult comun cu nota+ia diagramei de #tri ce #e eviden+iaz prin notarea #trilor 7i tranzi+iilor. .eo#ebirea con#t ,n #emantica #trilor care #unt utilizate pentru prezentarea ac+iunilor dar nu activit+ilor; 7i ,n aceea c tranzi+iile evenimentelor nu #unt etic5etate. :iecare #tare ,n diagrama de activit+i core#punde e2ecutrii unei opera+iuni elimentare; dar trecere ,n alt #tare #e e2ecut numai la terminarea opera+iei ,n #tarea precedent. @ra$ic diagrama de activit+i #e reprezint ,n $orma unui gra$ de activitate cu nodurile ' #tri activitate 7i muc5ile ' tranzi+ii de la o #tare la alt. <n a7a $el; diagramele de activit+i pot $i con#iderate cazuri particulare ale diagramelor de #tri. 0nume ace#te diagrame permit realizarea admini#trrii procedurale 7i #incrone care depinde de terminarea activit+ii interne ,n limbajul UML. Sen#ul principal al utilizrii ace#tor diagrame con#t ,n vizualizarea particularit+ilor opera+iilor unor cla#e pentru reprezentarea algoritmilor e2ecutrii lor. 6otodat $iecare #tare realizeaz opera+iile unei cla#e anumite 7i permite utilizarea diagramei de activit+i pentru de#crierea reac+iilor la evenimente interne ace#tui #i#tem. <n conte2tul limbajului UML activitatea "activit8% reprezint o totalitate de calcule e2ecutate de ctre automat. 6otodat calculele elementare pot duce la un anumit rezultat #au careva ac+iune "action%. <n diagrama de activit+i #e re$lect logica #au con#ecutivitatea tranzi+iilor de la o ac+iune la alta; totodat #e eviden+iaz rezultatul activit+ii. -ezultatul; la r,ndul #u poate duce la #c5imbarea #trii #i#temului dat #au la returnarea unei valori.

2.1. Starea activit%ii


Starea activit+ii e#te un caz particular a #trii. Starea activit+ii nu poate avea tranzi+ii interne $iindc ea nu e#te elementar. Starea activit+ii #e utilizeaz pentru modelarea unui pa# de e2ecutarea a algoritmului "procedurii% #au a unui $lu2 de control. @ra$ic #tarea activit+ii #e reprezint printr=o $igur a#emanatoare cu dreptung5iul; laturile laterale ale cruia #unt #ub#tituite cu arcuri conve2e "printr=un dreptung5i cu col+uri rotunjite% "$ig. )&%. <n interiorul ace#tei $igure #e indic e2pre#ia unei ac+iuni care trebuie # $ie unic ,n cadrul unei diagrame de activit+i.

Fi . (,. Starea activit+ii "a ' actiune #impl; b ' e2pre#ie%. )5

4 ac+iune poate $i indicat ,n limbaj natural; ,n p#eudocod #au ,n limbaj de programare. 3u #unt re#tric+ii #uplimentare pentru indicarea ac+iunilor. Se recomand ,n calitate de nume al unei ac+iuni #imple # #e utilizeze un verb cu cuvinte e2plicative "$ig. )&; a%. .ac ac+iunea nu poate $i reprezentat ,ntr=un mod $ormal; atunci e#te util a=l indica ,n limbaj de programare pentru realizarea proiectului dat "$ig. )&; b%. Uneori e#te nece#ar a reprezinta ,n diagrama de activit+i o ac+iune comple2 care la r,ndul #u con#t din mai multe ac+iuni #imple. <n ace#t caz poate $i utilizat nota+ia #pecial a #trii de #ubactivitate "#ubactivit8 #tate%. 07a $el de #tare e#te un gra$ de activitate care #e noteaz cu un #emn #pecial ,n col+ul drept de jo# "$ig. )(%. 0cea#t con#truc+ie poate $i aplicat oricrui element al limbajului UML care #u#+ine imbricarea pentru #tructura #a. 6otodat #emnul #pecial poate $i etic5etat cu tipul #tructurii.

Fi . (-. Starea #ubactivit+ii. :iecare diagrama de activit+i trebuie # aib o #ingur #tare ini+ial 7i o #ingur #tare $inal.

2.2. 0ran i%ii


6ranzi+ia ca element al limbajului UML a $o#t #tudiat ,n capitolul de#pre diagrama de #tri. La con#truirea diagramei de activit+i #e utilizeaz careva tranzi+ii netrigere care ac+ioneaz deodat dup per$ectarea activit+ii #au dup e2ecutarea ac+iunii core#punzatoare. 0cea#t tranzi+ie tran#mite activitatea ,n urmtoarea #tare imediat dup ce #e termin ac+iunea din #tarea precedent. <n diagram acea#t tranzi+ie #e reprezint printr=o linie continu cu o #geat. .ac din #tarea dat ie#e numai o tranzi+ie atunci ea poate # nu $ie marcat "indicat%; dar dac tranzi+iile de ie7ire #unt mai multe atunci poate # ac+ioneze numai una din ele. 0nume ,n ace#t caz pentru $iecare din tranzi+ii trebuie # $ie indicat ,n paranteze patrate o condi+ie de #upraveg5ere. 6otodat pentru toate #trile de ie7ire trebuie # $ie e2ecutat numai o cerin+ de veridicitate a unei tranzi+ii. 0ce#t caz are loc c,nd activitatea con#ecvent e2ecutat trebuie # $ie divizat ,n ramuri alternative independent de valoarea unui rezultat intermediar. 0cea#t #itua+ie #e nume7te rami$ica+ie. @ra$ic rami$ica+ie #e reprezint printr=un romb gol "$ig. 5*%. <n ace#t romb numai o #geat de la o ac+iune core#punztoare poate # intre. Sgeata de intrare #e une7te cu v,r$ul de #u# #au cu cel din #t,nga al #imbolului de rami$ica+ie. !ot $i mai multe #ge+i de ie7ire; dar pentru $iecare din ele trebuie # $ie indicat condi+ia de #upraveg5ere #ub $orm de e2pre#ie boolean. Ca e2emplu vom cerceta calcularea co#tului total al produc+iei procurate cu o cartel bancar. .ac co#tul dep7e7te 5*a atunci #e ac+ioneaz identi$icarea proprietarului cartelei bancare. <n caz dac cartela e#te valabil 7i contul nu dep7e7te #uma ,n 5*a atunci #uma #e #coate de pe cont 7i #e ac5it )/

produc+ia procurat. <n caz contrar "dac cartela nu e#te valabil% ac5itarea nu #e e2ecut 7i produc+ia rm,ne la v,nztor.

Fi . ).. .iver#e variante ale rami$ica+iilor ,n diagrama de activit+i. Unul din cele mai #emni$icative neajun#uri ale #c5emelor=blocL #au ale #c5emelor ce reprezint algoritmi e#te legat cu problema reprezentrii ramurilor paralele ale unor calcule. .in motiv c divizarea calculelor ,n ramuri aparte mare7te viteza produ#ului #o$t; #unt nece#are primitive gra$ice pentru reprezentarea proce#elor paralele. <n limbajul UML pentru ace#t #cop #e utilizeaz #imboluri pentru diviziune 7i unire a calculelor paralele #au a $lu2urilor de control. 0ce#t #imbol e#te o linie dreapt analogic nota+iei unei tranzi+ii ,n $ormali#mul re+elelor !etri. .e regul acea#t linie #e reprezint printr=un #egment al unei linii orizontale; gro#imea creia e#te mai mare dec,t gro#imea liniilor ,n diagrama de activit+i. 6otodat $orL "diviziunea ' concurrent $orL% are o tranzi+ie de intrare 7i mai multe de ie7ire "$ig. 51; a%. Coin "unirea ' concurrent join% inver# are mai multe tranzi+ii de intrare 7i numai o tranzi+ie de ie7ire "$ig. 51; b%.

Fi . )1. :orL 7i join a mai multor $lu2urilor paralele de control. !entru ilu#trarea particularit+ilor proce#elor paralele de e2ecutare a ac+iunilor e#te util a cerceta e2emplul devenit cla#ic de pregtire a a unei buturi. 0vantajul ace#tui e2emplu con#t ,n $aptul c e2emplul practic nu cere e2plica+ii adugtoare; $iindc e#te con#iderat evident "$ig. 52%.

Fi . )!. .iagrama de activitate pentru un e2emplu de preparare a buturii.

2.!. Parti%ii
.iagramele de #tri pot $i utilizate nu numai pentru #peci$icarea algoritmelor de calculare #au $lu2urilor de control ,n #i#temele de programare. Un domeniu de utilizare e#te legat cu modelarea bu#ime#=proce#elor. <ntra=devr; activitatea oricrei companii reprezint totalitatea ac+iunilor independente ,ndreptate la atingerea rezultatului. 6otu7i relativ de bu#ine#'proce#e e#te de dorit e$ectuarea $iecarei ac+iuni a#ociative cu #ubdivizare a companiei concrete. <n ace#t caz ace#te #ubdiviziuni au re#pon#abilitatea de realizare a unor ac+iuni; iar bu#ine#'proce#ele reprezint trecerea ac+iunilor de la o #ubdivizare la alta. )&

!entru modelarea ace#tor particularit+i ,n limbajul UML #e $olo#e7te con#truc+ia #pecial; care are denumire de parti+ii "#Dimlane#%; care #unt divizate unul cu altul cu linii verticale. .ou linii vecine $ormeaz o parti+ie; iar un grup de #tri ,ntre ace#te linii #unt e2ecutate de #ubdiviziunea #eparat "#ec+ie; $ilial; diviziuni% a companiei "$ig. 53%. .enumirele #ubdiviziunelor #unt indicate ,n partea de #u# a parti+iei. 0 ,ntretia linia parti+iei pot numai tranzac+iile; care ,n ace#t caz indic ie7irea #au intrarea $lu2ului de control ,n #ubdiviziunea re#pectiv a companiei. 4rdinea trecerii parti+iilor nu are care=va in$orma+ie #imantic 7i e#te de$init dup motivele de com$ortabilitate. Ca e2emplu vom lua $ragmentul diagramei de activitate a companiei de vindere; care #erve#c clien+ii cu ajutorul tele$onului. Subdiviziunele companiei #unt #ec+ia de acceptare 7i per$ectare a cerin+elor; #ec+ia de vindere 7i depozitul. 0ce#tor #ubdiviziuni vor core#punde trei parti+ii ,n diagrama de activitate; $iecare din care #peci$ic zona de re#pon#abilitate a #ubdiviziunei. <n cazul dat diagrama de activitate ,ntre+ine nu numai in$orma+ie de#pre con#ecutivitatea e2ecutrii a ac+iunii lucrtorilor; dar 7i care #ubdiviziuni a companiei de vindere trebuie # e2ecute o ac+iune #au alta "$ig. 53%.

Fi . )'. :ragmentul diagramei de activitate pentru compania de vindere. .in acea#t diagram de activitate e#te evident c dup acceptarea comandei de la client a #ec+iei de acceptare 7i per$ectare a cerin+elor #e realizeaz diviziunea activit+ii la dou $lu2uri "tranzac+ie = diviziune%. !rimul din ei rm,ne ,n aceea7i #ec+ie 7i e#te legat cu acceptarea mr$urilor ,n #ec+ia de vindere "modelul mr$ii; dimen#iuna; culoarea; anul de editare etc.%. .up $ini#area lucrului ace#ta ini+ializeaz ac+iunea de eliberare a mar$urilor din depozit. 6otu7i pregtirea mr$ii pentru e2pedierea ,n #ec+ia de vindere ,ncepe numai dup ac5izi+onarea mr$ii de la client 7i mar$a va $i e2pediat din depozit "tranzi+ie = conectare%. 3umai dup acea#ta mar$a e#te e2pediat la client 7i devine proprietatea lui. )(

2.#. /biecte
<n cazul general ac+iunile ,n diagrama de activitate #unt e$ectuate cu obiecte. 0ce#te obiecte #au ini+ializeaz e2ecutarea ac+iunelor #au de$ine#c un anumit rezultat a ace#tor ac+iuni. <n urma cruia ac+iunile #peci$ic apelurile; care trec de la un obiect a gra$ului de activitate la altul. <ntruc,t ,n ace#t racur# obiectele joac un anumit rol ,n ,n+elegerea proce#ului de activitate; uneori apare nece#itatea indicrii lor ,n diagrama de activitate. !entru reperezentarea gra$ic a obiectelor #unt utilizate dreptung5iurile cla#ei cu o deo#ebire? numele obiectului #e #ubliniaz. .up nume poate $i indicat caracteri#tica #trii obiectului ,n paranteze ptrate. 0ce#te dreptung5iuri a obiectelor #unt unite cu #trile de activit+i a rela+iei de dependen+ cu linia punctir cu #geat. .ependen+a re#pectiv de$ine7te #tarea concret a obiectului dup e$ectuarea ac+iunii precedente. <n diagrama de activitate cu parti+ii depla#area obiectelor poate avea un #en# adugtor. Ri anume; dac obiectul e#te ampla#at la 5otarul ambilor parti+ii; acea#t lucru ,n#eamn c trecerea la #tarea de ac+iune urmtoare ,n parti+ia vecin e#te a#ociat cu un document $init "obiectul ,n care=va #tare%. .ar dac obiectul e#te ampla#at ,nuntrul parti+iei; atunci #tarea ace#tui obiect e#te de$init de ac+iunile parti+iei date. -evenind la e2emplul precedent cu compania de vindere; poate nota c obiectul central a proce#ului de vindere e#te comanda; anume #tarea ei de e2ecutare. La ,nceput; p,n la primirea #unetului de la client; comanda ca obiect lip#e7te 7i apare numai dup ce a am primit #unetul de la client. 6otu7i; acea#t comand nu e#te ,ndeplinit p,n la urm; deoarece e#te nece#ar de alege o mar$ concret din #ec+ia de vindere. .up pregtirea lui el tran#$er mar$a la depozit; unde ,mpreun cu eliberarea mr$urilor comanda e#te per$ectat. La #$,r7it; dup trimiterea con$irmrii de#pre ac5izi+ionarea mr$ii acea#t in$orma+ie ,n#crie ,n comand 7i el e#te ,ndeplinit 7i #$,r7it "$ig. 5)%.

Fi . )(. :ragmentul diagramei de activitate a companiei de vindere cu obiect ' comand. 5*

+. /ia rama de $ecven%# 0$e4uence dia ram1


<n limbajul UML colaborarea ,ntre elemente #e cerceteaz ,n a#pectul in$ormativ al comunica+iilor lor; adic obiectele care interac+ioneaz $ac #c5imb de in$orma+ie anumit. !entru modelarea colaborrii ,ntre obiecte ,n limbajul UML #e utilizeaz diagramele de #ecven+. Eorbind de#pre ace#te diagrame #e iau ,n con#idera+ie dou a#pecte. Mai ,nt,i; colaborarea ,ntre obiecte poate $i cercetat ,n timp 7i atunci pentru reprezentarea particularit+ilor temporale 7i modului de acceptare a me#ajelor #e utilizeaz diagrama de #ecven+. <n al doilea r,nd pot $i cercetate particularit+ile #tructurale ale colaborrii ,ntre obiecte. !entru reprezentarea particularit+ilor de tran#mitere 7i acceptare a me#ajelor ,ntre obiecte #e utilizeaz diagrama de colaborare.

3.1. /biecte
<n diagrama de #ecven+ #e reprezint numai obiectele care ac+ioneaz 7i nu #e re$lect a#ocierile #tatice cu alte obiecte. !entru diagrama de #ecven+ momentul principal e#te dinamica colaborrii ,ntre obiecte ,n timp. @ra$ic $iecare obiect #e reprezint printr=un dreptung5i 7i #e pla#eaz ,n partea de #u# a ciclului #u de via+ "$ig. 5)%. <n ,nteriorul dreptung5iului #e indic numele obiectului 7i numele cla#ei de#pr+ite prin dou puncte. 6otodat toat ,nregi#trare #e #ubliniaz; ce indic c obiectul e#te e2emplarul unei cla#e. <n caz dac numele obiectului lip#e7te; atunci #e indic numai numele cla#ei 7i obiectul #e con#ider anonim.

Fi . )). !rimitivele gra$ice ale diagramei de #ecven+. 4biectul din #t,nga diagramei e#te cel care ini+iaz colaborarea "obiectul 1 ,n $ig. 55%. Mai la dreapt #e reprezint obiectul care interac+ioneaz cu primul. 6otate obiecte ,n diagrama de #ecven+ $ormeaz o anumit ordine determinat de activitatea colaborrii lor. 0 dou m#ur a diagramei de #ecven+ e#te a2a vertical de timp "din #u# ,n jo#%. Momentului ini+ial de timp ,i core#punde partea de #u# al diagramei. 6otodat colaborarea obiectelor e#te realizat prin me#ajele tran#$erate. Me#ajele #e reprezint #ub $orma de #ge+i drepte cu numele me#ajelor; ele de a#emenea #unt ,ntr=o ordine anumit ,n timp. Cu alte cuvinte; me#ajele pla#ate ,n diagrama de #ecven+ mai #u# #unt ini+iate mai devreme dec,t cele din jo#. 6otodat propor+iile pe a2a temporal nu #e indic $iindc diagrama de #ecven+ modeleaz doar ordonarea ,n timp a legturilor de tip Mmai devreme'mai t,rziuN.

51

3.1.1. Linia de via% al "biectului


%inia de via a obiectului "object li$eline% #e reprezint printr=o linie vertical punctat a#ociat cu un #ingur obiect ,n diagrama de #ecven+. Linia de via+ de$ine7te intervalul de timp ,n care obiectul e2i#t 7i interac+ioneaz cu #i#temul dat. 4biecte aparte; dup terminarea activit+ii #ale; pot $i di#tru#e pentru eliberarea re#ur#elor alocate. !entru ace#te obiecte linia lor de viata M#e rupeN ,n momentul de di#trugere. !entru reprezentarea momentului de di#trugere al unui obiect ,n limbajul UML #e utilizeaz un #imbol #pecial #ub $orma de litera latin M>N. Mai jo# de ace#t #imbol; linia punctat nu poate $i de#enat $iindc obiectul ,n #i#temul deja nu e#te 7i ace#t obiect e#te e2clu# din toate interac+iunile ulterioare. 3u e#te obligatoriu a crea obiecte la momentul ini+ial de timp. 4biecte aparte ,n #i#temul dat pot $i create la nece#itate; economi#ind re#ur#ele ace#tui #i#tem 7i major,nd randamentul lui. <n ace#t caz dreptung5iul obiectului re#pectiv #e de#enaz ,n partea diagramei care core#punde momentului de creare a obiectului.

3.2. 4"cus c"ntr"l


<n proce#ul de $unc+ionare a #i#temelor 44 unele obiecte pot $i ,n #tare activ e2ecut,nd ac+iuni anumite #au pot $i pa#ive a7tept,nd me#aje de la alte obiecte. !entru a eviden+ia obiectele active ,n limbajul UML #e utilizeaz nota+ia #pecial ' focus control "$ocu# o$ control%. :ocu# control #e reprezint ,n $orm de dreptung5i #ub+ire; latura de #u# a cruia determin "re$lect% ,nceputul activit+ii; latura de jo# ' termina+ia $ocu#ului de control "activit+ii%. <n unele cazuri ca ini+iator al activit+ii ,n #i#tem poate $i un actor #au utilizatorul e2tern. <n ace#t caz actorul #e de#eneaz primul din #t,nga cu $ocu# control re#pectiv. 6otodat actorul poate # aib un nume propriu #au # rm,n anonim.

3.!. Mesaje
Scopul colaborrii ,n conte2tul limbajului UML con#t ,n #peci$icarea comunica+iei ,ntre o mul+ime de obiecte. :iecare legtura #e de#crie cu o totalitate de me#aje tran#$erate cu care obiectele= participante #e #c5imb. <n ace#t #en# mesa$ul "me##aje% reprezint un $ragment de in$orma+ie care e#te tran#$erat de ctre un obiect altuia. 6otodat acceptarea me#ajului ini+ializeaz anumite ac+iuni ,ndreptate #pre rezolvarea problemei de ctre obiectul cruia me#ajul ,i e#te tran#$erat. Me#ajele nu numai tran#mit in$orma+ia; ele pre#upun e2ecutarea ac+iunilor a7teptate de ctre obiectul acceptabil. Me#ajele pot ini+ia e2ecutarea opera+iilor de ctre obiectul unei cla#e; dar parametrii ace#tor opera+ii #unt tran#$era+i ,mpreun cu me#ajul. <n diagrama de #ecven+ toate me#ajele #unt coordonate dup timpul de apari+ie ,n #i#temul modelat. <n conte2t dat me#ajul e#te de#tinat de ctre obiect care ini+iaz #au tran#$er me#ajul ctre obiectul care ,l accept. Uneori e2peditorul al unui me#aj e#te numit clinet; dar de#tintarul ' #erver. 6otodat me#ajul de la un anumit client e#te o cerin+ a unui #erver. -eac+ia ace#ctui #erver la cerin+a dup primirea me#ajului pre#upune e2ecutarea anumitor ac+iuni 7i tran#miterea in$orma+iei #ub $orma a unui me#aj ctre client. <n limbajul UML #unt c,teva variet+i de me#aje; $iecare din ele are nota+ia gra$ic proprie. <n unele cazuri obiectul poate tran#mite me#aje ctre #ine ini+ializ,nd me#aje re$le2ive. 52

3.!.1. Stere"tipuri de mesaje


<n limbajul UML #unt pre#upu#e numai ac+iuni #tandarde; care #e e2ecut la primirea me#ajului re#pectiv. Ele pot $i indicate ,n diagrama de #ecven+ #ub $orma de #tereotipuri l,nga me#aje re#pective. <n ace#t caz ele #e #criu ,n g5ilimele. Se utilizeaz nota+iile urmtoare?

ccallc ' invoc o opera+ie #au procedur a obiectului=de#tinatarQ creturnc ' returneaz valoarea opera+iei e2ecutate obiectului apelantQ ccreatec ' creaz alt obiect pentru e2ecutarea anumitor ac+iuniQ cde#tro8c ' di#truge un obiect. Se tran#mite ,n caz dac e#te nece#ar a termina ac+iunile din partea obiectului e2i#tent #au dac obiectul trebuie # elibereze re#ur#ele alocateQ c#endc ' trimite un #emnal unui obiect care #e ini+ializeaz a#incron de ctre un obiect 7i e#te acceptat de altul. .i$eren+a ,ntre un #emnal 7i un me#aj con#t ,n $apt c #emnalul trebuie # $ie de#cri# ,n cla#a obiectul creia ini+ializeaz tran#miterea lui.

Me#ajele pot avea nota+ii proprii pentru opera+ii; apelarea crora ele o ini+ializeaz. <n ace#t caz l,ng #geat #e #crie numele opera+iei cu paranteze rotunde ,n care #e indic parametrii #au argumentele opera+iei re#pective. .ac parametrii lip#e#c atunci parantezele rm,n neaprat dup numele opera+iei.

Fi . )*. 3ota+iile me#ajelor in diagrama de #ecven+.

3.#. 'estric%ii temp"rale &n diagrama de secven%


<n unele cazuri e2ecutarea unor ac+iuni ,n diagrama de #ecven+ poate nece#ita #peci$ica+ia unor re#tric+ii temporale ctre intervalul e2ecutrii unei opera+ii #au tran#miterii me#ajelor. <n limbajul UML pentru #crierea re#tric+iilor temporale #e utilizeaz acoladele. Ca e2emple de re#tric+ii ,n diagrama de #ecven+ #unt #itua+ii de #peci$icare a timpului pentru tran#miterea a unui me#aj de la client ctre #erver #au #ituatii de prelucrare a cerin+ei clientului.

VtimpulWdeWa7teptareWaWr#pun#ului \ 5 #ec.Y VtimpulWdeWtrn#mitereWaWpac5etului \ 1* #ec.Y

53

a : Abonat

c: Aparat !e telef on ri!ica receptorul &i(nal ton() rote&te !i&cul

: Co"utator

!: Aparat !e telef on

b : Abonat

f or"ea a un nu"ar

: Conv orbire -createcone/are() cone/are(a) pune receptorul ter"ina conv orbire -!e&tro0 ter"ina conv orbire -&en!-&en!&unet() ri!ica receptorul cone/are(b) pune receptorul

1upa cone/are Abonatul a &i Abonatul b pot incepe conv orbire

Fi . )+. E2emplu de con#truc+ie a unei diagrame de #ecven+.

,. /ia rama de colaborare 0collaboration dia ram1


!articularitatea principal a diagramei de colaborare con#t ,n po#ibilitatea de a reprezenta gra$ic nu numai con#ecutivitatea colaborrii dar 7i toate rela+ii #tructurale ,ntre obiecte. <n primul r,nd ,n diagrama de colaborare #ub $orm de dreptung5iuri #e reprezint obiectele care con+in numele obiectului; cla#ei; valorile atributului. Mai departe; ca 7i ,n diagrama de cla#e #e indic a#ocierile ,ntre obiecte #ub $orma de linii de conectare. 6otodat pot $i indicate numele a#ocierilor 7i al rolurilor obiectelor pentru a#ocierea dat. Suplimentar pot $i reprezentate legturile dinamice ' $lu2urile de me#aje. Ele #e reprezint ca linii ,ntre obiecte cu #ge+i care indic derec+ia; numele me#ajului 7i numrul de ordine ,n con#ecutivitatea de ini+ializare a me#ajelor. Spre deo#ebire de diagrama de #ecven+ ,n diagrama de colaborare #unt reprezentate rela+iile ,ntre obiecte care #unt importante pentru colaborare. .in alt parte ,n acea#t diagrama nu #e indic timpul ,n calitate de m#ur. Con#ecutivitatea de ac+iuni 7i $lu2 paralel pot $i determinate cu ajutorul numerelor de ordine; deci e#te po#ibil #peci$icarea legturilor ,ntre obiecte ,n timp real. !entru atingerea unui #cop #au pentru realizarea unui #erviciu comportamentul unui #i#tem poate $i de#cri# la nivelul obiectelor care $ac #c5imb de me#aje. .in punct de vedere a unui anali#t #au a unui con#tructor e#te important re$lectarea legturilor #tructurale ale obiectelor aparte. .iagrama de colaborare re$lect un $el de reprezentare #tatic a unui #i#tem ca totalitate de obiecte dependente.

5.1. /biecte
4biecte #unt elementele de baz #au primitivele gra$ice din care con#t diagrama de colaborare. !entru reprezentarea gra$ic a obiectelor #e utilizeaz acela7i dreptung5i ca 7i pentru reprezentarea cla#ei. 5)

biectul "object% e#te un e2emplar aparte al cla#ei care e#te creat la etapa e2ecutrii a unui program. El poate avea un nume propriu 7i valorile atributelor. -e$eritor la obiecte $ormatul liniei ce con+ine cla#i$icatorul #e completeaz cu numele obiectului? \3umele obiectului]bKb \3umele rolului al cla#i$icatorului] b?b \3umele cla#i$icatorului] ^b?b \3umele cla#i$icatorului ]_U 0ici 3umele rolului cla#i$icatorului poate # nu $ie indicat. <n ace#t caz el #e e2clude din conte2t ,mpreun cu dou puncte. 3umele rolului poate $i omi# ,n caz daca e2i#t mai multe roluri ,n colaborarea obiectelor create pe baza cla#ei date. !entru de$inirea rolului cla#i$icatorului e#te de ajun# a indica numele cla#ei ",mpreuna cu dou puncte% #au numele rolului ",mpreuna cu K%. <n caz contrar dreptung5iul va core#punde cla#ei ordinare. .ac rolul unui obiect #e mo7tene7te de la mai multe cla#e; atunci ele toate trebuie # $ie indicate 7i de#pr+ite prin virgul 7i dou puncte. Urmtoarele #unt variante de indicare a te2tului ,n ,nteriorul dreptung5iului.

? d ' un obiect anonim creat pe baza cla#ei d. K - ' un obiect anonim cu rolul -. K - ? d ' un obiect anonim creat pe baza cla#ei d cu rolul -. e K - ' un obiect cu numele 4 cu rolul -. e ? d ' un obiect cu numele 4 creat pe baza cla#ei d. e K - ? d ' un obiect cu numele 4 creat pe baza cla#ei d cu rolul -. e #au obiectul cu numele e. e ? ' un cobiect or$anc cu numele e. K - ' un rol cu numele -. ? d ' un rol anonim pe baza cla#e d. K - ? d 'un rol cu numele - pe baza cla#e d.

Fi . ),. E2emple de moduri de indicare a numelor obiectelor; rolurilor 7i cla#elor ,n diagrama de colaborare. <n primul caz "$ig. 5&; a% obiectul cu numele MclientN cu rolul Mini+iatorul cerin+eiN. <n cazul "$ig. 5&; b% e#te indicat un obiect anonim cu rolul ini+iatorului cerin+ei. <n ambele cazuri nu e#te indicat cla#a pe baza creia #unt create ace#te obiecte. <n cazul "$ig. 5&; c% cla#a e#te determinat; dar obiectul rm,ne anonim. -e$eritor la nivelul de #peci$icare ,n diagramele de colaborare pot $i #peci$icate cla#e denumite cu indicarea rolurilor "$ig. 5&; d% #au cla#e anonime dar tot cu indicarea rolurilor "$ig. 5&; e%. Ultimul caz re$lect #itua+ia c,nd ,n model pot $i prezente c,teva cla#e cu numele MClientN; de aceea e#te nece#ar #peci$icarea numelui pac5etului Aaza de date "$ig. 5&; $%.

55

5.1.1. Multi"biect
&ultiobiect "multiobject% reprezint o mul+ime de obiecte ,n una din termina+iile a#ocierei. <n diagrama de colaborare multiobiectul #e utilizeaz pentru a arat opera+iile 7i #emnalele care #unt adre#ate ctre toat mul+imea de obiecte. Multiobiectul #e reprezint ,n $orma a dou dreptung5iuri; unul din care ie#e ,n a$ara laturei de #u# a altui dreptung5i "$ig. 5(; a%. 6otodat #geata me#ajului #e re$er la toat mul+ime de obiecte care de$ine#c multiobiect dat. <n diagrama de colaborare poate $i indicat rela+ia compozi+iei "#tructura% ,ntre multiobiect 7i un obiectul aparte din mul+ime care ,l de$ine7te "$ig. 5(; b%.

Fi . )-. Multiobiect.

5.1.2. /biect activ


<n conte2tul limbajului UML toate obiecte #e ,mpart ,n doua categorii? pa#ive 7i active. 4biectul pa#iv $olo#e7te numai datele 7i nu poate ini+ializa activitatea de control. 4biecte pa#ive pot tran#mite #emnale pe parcur#ul proce#ului de realizare a cerin+elor. biectul activ "active object% are un $ir "t5read% de control propriu 7i poate ini+ializa activitatea de control. 6otodat #ub no+iune de $ir #e #ub,n+elege un anumit $lu2 de control care poate $i e2ecutat ,n paralel cu alte $ire de calcul #au cu $ire de control ,n cadrul unui proce# de calcul #au control. 4biectele active ,n diagramele canonice #unt reprezentate ,n $orm de dreptung5i cu laturi groa#e "$ig. /*%. Uneori pentru a eviden+ia obiectul activ ,n diagram poate $i indicat cuv,ntul=c5eie "valoarea marcat% VactiveY. :iecare obiect activ poate ini+ia un #ingur $ir #au proce# de control 7i # prezinte punctul ini+ial al $lu2ului de control. <n $ragmentul diagramei de colaborare dat obiect activ Ma? 0bonatul arogantN e#te ini+iatorul proce#ului de #tabilire convorbirii pentru #c5imb de in$orma+ie ,ntre abonen+i.
1: create a : Abonatul aro(ant c: Conectare

Fi . *.. 4biect activ. <n e2emplu urmtor #e cerceteaz #itua+ia de apelare a $unc+iei de tipar a unui redactor te2tual "$ig. /1%. 4biectul activ anonim M-edactor te2tualN mai ,nt,i trimite me#ajul ctre multiobiectul M1mprimantN care ini+iaz alegearea unui #ingur obiect M1mprimantN care #ati#$ace cerin+ele #uplementare. .up aceea obiectului ale# i #e tran#mite me#ajul de tipar al unui document ,ncrcat ,n redactorul te2tual.

5/

1: aI"pri"anta:3ale(e() : 2e!actor te/tual : I"pri"anta


4

2: tipar(!ocu"ent) : I"pri"anta

Fi . *1. :ragmentul diagramei de colaborare pentru apelare $unc+iei de tipar din redactor te2tual.

5.1.!. /biect c"mpus


biectul compus "compo#ite object% #au obiectul=container e#te de#tinat pentru reprezentarea obiectului care are #tructura proprie 7i $ire interne de control. 4biectul compu# e#te e2emplarul cla#ei compu#e care e#te legat cu par+ile #ale prin rela+ii de agregare #au compozi+ie. -ela+ii analogice leag obiectele re#pective. <n diagramele de colaborare a7a $el de obiecte compu#e #e reprezint ,n $orma a unui obiect ordinar care con#t din dou #ec+ii. <n #ec+ia de #u# #e indic numele obiectului compu#; ,n cea de jo# ' pr+ile compu#e ,n locul li#tei atributelor lui "$ig. /2%. 6otodat ,n calitate de pr+i pot $i obiecte compu#e.

Fi . *!. 4biect compu#.

5.2. Legturi
%egtura "linL% e#te e2emplarul #au e2emplul a#ocierii arbitrare. Legtura ca element al limbajului UML poate $i ,ntre dou #au mai multe obiecte. Legtura binar ,n diagrama de colaborare #e reprezint ,n $orm de #egment al liniei drepte care leag dou dreptung5iuri ale obiectelor "$ig. /1%. La $iecare terminal al ace#tui #egment pot $i indicate numele rolurilor a#ocierii date. L,ng linie; ,n mijlocul ei; #e indic numele a#ocierii re#pective. Legturile nu au numele proprii $iindc #unt identice ca e2emplare ale a#ocierii. Cu alte cuvinte toate legturile ,n diagrama de colaborare pot $i numai anonime 7i #e indic $r dou puncte ,naintea numelui a#ocierii. !entru legaturi nu #e indic nici multiplicitatea. <n# alte reprezentri ale cazurilor particulare de a#ociere "agregare; compozi+ia% pot $i la termina+iile legturilor. .e e2emplu; #imbolul de tip Mcompozi+iaN ,ntre multiobiectul M1mprimantN 7i obiectul aparte M1mprimantN "$ig. /1%. 5

5.2.1. 0ipuri de legturi


6ipul de legtura #e ,n#crie l,nga termina+ia ei 7i indic po#ibilitatea realizrii ace#tei legturi. <n limbajul UML pentru ace#t #cop #e utilizeaz?

ca##ociationc ' a#ociere "#e pre#upune implicit; de aceea ace#t tip poate # nu $ie indicat%. cparameterc ' parametrul metodei. 4biectul re#pectiv poate # $ie doar paramentru al unei metode. clocalc ' variabila local a metodei. .omeniul ei de vizibilitate e#te limitat de ctre obiectul vecin. cglobalc ' variabila global. .omeniul ei de vizibilitate e#te toat diagrama de colaborare. c#el$c ' legtura re$le2iv a obiectului care pre#upune tran#$erul me#ajelor ctre #ine. <n diagrama de colaborare legtura re$le2iv #e reprezint ,n $orm de bucl ,n partea de #u# al dreptung5iului obiectului.

Unele e2emple de legturi cu di$erite #tereotipuri #unt prezentate ,n $ig. /3. 0ici e#te reprezentat #c5ema unei companii cu numele MCN care con#t din #ec+ii "multiobiect anonim MSec+ieN%. Sec+iile con#tau din angaja+i "multiobiect anonim M0ngajatN%. Legtura re$le2iv indic $aptul c managerul #ec+iei e#te 7i angajatul ace#teia.
c : Co"pania

-local- &ub&ectie : $ectie -&elf- "ana(er -local- e/ecuta lucrul

: An(ajat

Fi . *'. Legturi de di$erite tipuri. !entru obiectul MConvorbire2 #e indic valoarea Vtran#ientY care ,n#eamn c obiectul e#te creat pe parcur#ul e2ecutrii proce#ului 7i #e di#truge ,nainte de termina+ia lui.

5&

5: co"utati e(a6b)

: Co"utator
:: for"ea a un nu"ar(i) =: apelea a)abonatul(b)

le(atura telefonica c : Aparat !e telefon


8: confir"a()

le(atura telefonica
7: crea a()

! : Aparat !e telefon

1: ri!ica)receptorul() 9: rote&te)!i&cul ()

-local-

2: &i(nal)ton()

: Convorbire
tran&ient

1<: ri!ica)receptorul()

-local11: i ncepe)convorbire()

;: &unet()

12: i ncepe)convorbire()

-(lobal- participant)convorbirei

-(lobal- participant)convorbire

a : Abonat

b : Abonat

Fi . *(. E2emplu de con#truire a diagramei de colaborare.

5.!. *"lab"rare
3o+iune de colaborare "collaboration% e#te una din no+iunile $undamentale ale limbajului UML. Ea ,n#eamn o mul+ime de obiecte care interac+ioneaz ,n conte2tul comun al #i#temului modelat. Scopul colaborrii con#t ,n #peci$icarea particularit+ilor realizrii a celor mai #emni$icative opera+ii ,n #i#tem. Colaborarea determin #tructura comportamentului #i#temului dat ,n termeni de colaborare a participan+ilor. Colaborarea poate $i prezentat ,n dou nivele?

3ivelul de #peci$icare ' arat rolurile cla#i$icatorilor 7i rolurile a#ocierilor ,n colaborarea dat. 3ivelul de e2emple ' indic e2emplare 7i legturi; roluri ,n colaborare.

.iagrama de colaborare la nivel de #peci$icare arat rolurile elementelor ce particip ,n colaborare. Elementele colaborrii la ace#t nivel #unt cla#e 7i a#ocieri care reprezint rolurile unor cla#i$icatori 7i a#ocieri ,ntre participan+ii ace#tei colaborari. .iagrama de colaborare la nivel de e2emple reprezint o totalitate de obiecte "e2emplare de cla#e% 7i legturi "e2emplare de a#ociere%. 6otodat legturi #unt completate cu #ge+ile me#ajelor. La ace#t nivel #unt re$lectate numai obietce relevante; adic obiectele care au legtur cu realizarea opera+iei #au cla#i$icatorului. <n colaborare la nivel de e2emple #unt de$inite propriet+i $iecrui e2emplar pentru participarea ,n colaborare. <n a$ara de propriet+ile obiectului; ,n diagrama de colaborare #unt indicate a#ocierile ,ntre obiectele ace#tei colaborri. <n momentul c,nd cla#i$icatorul nece#it de#crierea complet a tuturor e2emplarilor; rolul cla#i$icatorului nece#it de#crierea numai propriet+ilor 7i a#ocierilor pentru participarea ,ntr=o colaborare anumit. 5(

Una 7i aceea7i totalitate de obiecte poate participa ,n mai multe colaborri. 6otodat; ,n dependen+ de colaborarea cercetat; unele propriet+i ale obiectelor pot # #e #c5imbe a7a precum 7i legturile ,ntre ele. 0nume ace#t $apt deo#ebe7te diagrama de colaborare de diagrama de cla#e ,n care #unt indicate toate propriet+ile 7i a#ocierile ,ntre elementele diagramei.

5.!.1. )iagrama de c"lab"rare la nivel de specificare


Colaborarea la nivel de #peci$icare #e reprezint printr=o elip# punctat ,n interiorul creia #e indic numele ace#tei colaborri "$ig. /5%. 07a $el de reprezentare #e re$era la un caz de utilizare particular 7i care detaliaz particularit+ile realizrii lui urmtoare. Simbolul elip#ei a colaborrii #e leag cu $iecare din participan+ii ace#tei colaborri "care pot $i obiecte #au cla#e% cu #egmente de linie punctat. :iecare din ace#te #egmente punctate #e marc5eaz cu rolul "role% participantului. -olurile core#pund numelor elementelor ,n conte2tul ,ntregii colaborri. 0ce#te numele #unt tractate ca parametrii care limiteaz #peci$icarea elementelor la orice apari+ie a lor ,n reprezentrile modelului.

Fi . *). Colaborarea ,n diagrame la nivel de #peci$icare. Cla#a elementar ,n diagrama de colaborare #e reprezint printr=un dreptung5i ,n ,nteriorul creia #e indic te2tul. 0ce#t te2t e#te "de$ine7te% rolul cla#i$icatorului "cla##i$ier role%. -olul cla#i$icatorului #peci$ic utilizarea obiectelor cla#ei date. .e#eori ,n dreptung5i #e indic numele cla#ei; dar nu #e e2clude po#ibilitatea de a indica atribute 7i opera+ii. 6e2tul ,n dreptung5i e#te de $el urmtor? bKb \3umele rolului cla#i$icatorului] b?b \3umele cla#i$icatorului] ^b?b \ 3umele cla#i$icatorului ]_U 0ici 3umele cla#i$icatorului poate # con+in direc+ia tuturor pac5etelor componente. 6otodat un pac5et #e divezeaz de altul prin dou puncte duble M??N. .ac acea#t nu ,ncurc atunci #e poate de indica numai pac5etul apropiat care con+ine colaborare dat. Simbolul MUN arat po#ibilitatea de repetare iterativ a numelui cla#i$icatorului. .ac colaborarea permite reprezentarea generalizat; atunci ,n diagrame pot $i indicate rela+ii de generalizare a elementelor re#pective. 0ce#t principiu determin colaborri aparte; care #unt cazuri particulare #au #pecializare ale altei colaborri. 0cea#ta #itua+ie de#eori #e reprezint ,n $orm de #geat de generalizare ,ndreptat de la #imbolul colaborrii al de#cendentului #pre #imbolul colaborrii alunui MprinteN "$ig. //%.

/*

Fi . **. -ela+ii de generalizare ,ntre colaborrii la nivel de #peci$icare. <n unele cazuri apare nece#itatea de a indica $aptul c colaborarea e#te realizarea unei opera+ii #au a unui cla#i$icator. 0ce#t $apt poate $i reprezentat ,n doi $eluri. <n primul r,nd #imbolul colaborrii poate $i conectat cu ajutorul liniei punctate cu #geata generalizrii cu #imbolul cla#ei; realizarea opera+iei cruia #peci$ic colaborarea data "$ig. / ; a%. .ac ,n calitate de cla# va $i cercetat MComanda la procurarea produc+ieiN care are opera+ia M,ntocmireaWcomandei"%N atunci realizarea ei poate $i #peci$icat ,n $orm de colaborare.

Fi . *+. Metode de reprezentare a colaborrii care realizeaz opera+iunea cla#ei. <n al doilea r,nd e#te u7or de reprezentat #imbolul colaborrii ,n ,nteriorul cruia #e poate de indicat toat in$orma+ia nece#ar con$orm regulii #peciale "$ig. / ; b%. 0ce#te reguli de$ine#c $ormatul de ,nregi#trare a numelui de colaborare; dup care #e #criu dou puncte 7i numele cla#ei; dup numele cla#ei #e #criu dou puncte duble 7i numele opera+iei. 07a $el de reprezentare generalizat a colaborrii la nivel de #peci$icare #e utilizeaz la etapele ini+iale de proiectare. Ulterior $iecare din colaborri poate $i detaliat la nivel de e2emple; la care #e de#$7oar con+inutul 7i #tructura legturilor elementelor ace#tei colaborri ,n diagrama de colaborare aparte. 6otodat ,n calitate de elemente ale diagramei pot $i obiecte 7i legturi completate cu me#aje. 0nume a#t$el de elemente #unt obiectul cercetrii ,n capitolul dat.

-. /ia rama de componente 0component dia ram1


6oate diagramele cercetate mai #u# re$lectau a#pectele conceptuale de proiectare a unui model de #i#tem 7i #e re$eriau la nivelul logic de reprezentare. Speci$icul reprezentrii logice con#t ,n $aptul c el utilizeaz no+iuni care nu au per#oni$icare material proprie. Cu alte cuvinte di$erite elemente ale reprezentrii logice "cla#e; a#ocieri; #tri; me#aje% nu e2i#t ,n mod material #au $izic. Ele numai re$lect ,n+elegerea noa#tr de#pre #i#temul $izic #au de#pre a#pectele comportamentului ace#tui #i#tem.

/1

.e#tina+ie principala a reprezentrii logice con#t ,n analiza rela+iilor #tructurale 7i $unc+ionale ,ntre elementele unui model de #i#tem. !entru crearea unui #i#tem $izic real e#te nece#ar a tran#$orma toate elementele reprezentrii logice ,n entit+i materiale. !entru de#crierea ace#tor entit+i e#te de#tinat a#pectul reprezentrii modelare ' $izice. !entru a e2plica di$eren+a ,ntre reprezentarea logic 7i $izic vom cerceta proce#ul de elaborare a unui #i#tem de program. <n calitate de reprezentare logic ini+ial a ace#tui #i#tem pot $i #c5emele #tructurale ale algoritmelor 7i procedurilor; de#crieri a unor inter$e+e 7i baza de date conceptual. !entru realizarea ace#tui #i#tem e#te nece#ar de a elabora codul #ur# ,n anumit limbaj "CII; !a#cal; Aa#icKEA0; C0E0%. 6otodat ,n codul #ur# #e pre#upune divizarea ace#tui cod ,n module aparte. Cu toate c codurile #ur# ini+iale #unt $ragmente ale reprezentrii $izice a unui proiect; ele nu prezint realizarea $inal a lui. Si#temul program poate $i con#iderat realizat numai ,n caz daca el va putea e2ecuta $unc+iile de#tina+iei #ale. 0cea#ta e#te po#ibil dac codul #ur# al unui #i#tem va $i realizat ,n $orma de module e2ecutate; biblioteci ale cla#elor 7i procedurilor; inter$e+elor gra$ice #tandarde; $i7ierelor bazelor de date. 0nume ace#te componente #unt nece#are pentru reprezentarea $izic a unui #i#tem. !roiectul complet al unui #i#tem al programului reprezint o totalitate de modele ale reprezentrii logice 7i $izice care #unt coordonate ,ntre ele. <n limbajul UML pentru reprezentarea $izic a unui model al #i#tem #unt utilizate diagramele de realizare "implementation diagram#% care includ dou diagrame canonice? diagrama de componente 7i diagrama de pla#are. Speci$ica crerii primei din ele va $i cercetat ,n capitolul dat; al ultimei diagrame ' ,n capitolul urmtor. .iagrama de componente; #pre deo#ebire de diagramele cercetate; de#crie particularit+ile reprezentrii $izice a unui #i#tem. .iagrama de componente permite determinarea ar5itecturii #i#temului elaborat prin #tabilirea dependen+ei ,ntre componentele de program ,n calitate de care poate $i codul ini+ial; binar 7i e2ecutabil. <n mai multe domenii de elaborare modul 7i componenta core#pund $i7ierului. Sge+ile punctate care leag modulele arat rela+iile de dependen+a analogice celor ce au loc la compilarea codurilor #ur#ei ini+iale. Elementul gra$ic de baz al diagramei de componente #unt componentele; inter$e+ele 7i dependen+ele ,ntre ele. .iagrama de componente #e elaboreaz pentru urmatoarele #copuri?

Eizualizarea #tructurii comune a codului #ur# a unui #i#tem de program. Speci$icarea variantei e2ecutabile a unui #i#tem de program. 0#igurarea utilizrii repetate a unor $ragmente ale codului #ur#. -eprezentarea conceptual 7i $izic a #c5emelor bazei de date.

<n elaborarea diagramei de componente particip anali7tii de #i#tem; ar5itectorii; 7i programi7tii. .iagrama de componente a#igur trecere coordonat de la reprezentare logic #pre o realizare a unui proiect ,n $orm de cod #ur#. Unele componente pot e2i#ta numai la etapa compilrii codului #ur#ei; altele ' la etapa realizrii lui. .iagrama de componente re$lect dependen+ele ,ntre componente la cercetarea componentelor ,n calitate de cla#i$icatori.

6.1. *"mp"nente
!entru reprezentarea entit+ilor $izice ,n limbajul UML #e utilizeaz componenta "component%. Componenta realizeaz un #et de inter$e+e 7i de#emneaz elementele reprezentrii $izice a unui model. @ra$ic componenta #e reprezint printr=un dreptung5i cu ane2e "$ig. / %. <n ,nteriorul ace#tui dreptung5i #e indic numele componentei 7i po#ibil in$orma+ia #uplementar. -eprezentarea ace#tui #imbol variaz ,n dependen+ de in$orma+ia a#ociat cu componenta dat. /2

<n metamodelul limbajului UML componentul e#te de#cendentul cla#i$icatorului. El reprezint organiza+ia ,n cadrul unui pac5et $izic cu care el e#te a#ociat cu ajutorul elementelor unui model. <n calitate de cla#i$icator componentul poate # aib a7a propriet+i ca atribute 7i opera+ii.

Fi . *,. Componenta. <n primul caz "$ig. /&; a% cu e2emplarul componentei #e leag numai numele lui; ,n al doilea caz "$ig. /&; b% #e leag ,n completare numele pac5etului 7i valoarea marcat. 5dnotare -eprezantarea componentului devine de la marcare modulului programului; care a $o#t utilizat un anumit timp pentru reprezentarea particularit+ilor incap#ularii datelor 7i procedurilor. <n a7a $el; un dreptung5i mic de #u# #e a#ociaz cu datele; care realizeaz ace#t component "anterior a $o#t #emnat cu oval%. Un dreptung5i mic de jo# #e a#ociaz cu opera+ii 7i metode; realizate de component. <n cazurile mai #imple numele de date 7i metode au $o#t #cri#e ,n ace#te dreptung5iuri mici; totu7i ele nu #unt indicate ,n limbajul UML.

6.1.1. .umele c"mp"nentului


3umele componentului e#te #ubardonat de regulele generale a numelelor elementelor modelului ,n limbajul UML 7i poate $i compu# din orice numr de litere; ci$re 7i anumite #emnuri de punctua+ie. Un component poate $i reprezentat la nivel de tip #au de e2emplar. .e7i reprezentarea gra$ic lui ,n ambele cazuri e#te identic; regulile de notare a numelui componentului di$er pu+in. .ac componentul e#te reprezentat la nivelul tipului; atunci ca numele lui e#te #cri# numai numele tipului cu maju#cul. .ar dac componentul e#te reprezentat la nivelul e2emplarului; atunci numele e#te #cri# \numele componentuluiB?Bnumele tipului]. <n urma cruia toat alinierea numelui e#te #ubliniat. 5dnotare .e7i regulile de notare a obiectelor ,n limbajul UML cere #ublinierea numelor anumitor e2emplare; relativ de componentele ,n literatur #ublinierea numelelor lor nu e#te obligatorie. <n ace#t caz notarea numelui componentului cu maju#cul va caracteriza componentul nivelului de e2emplar. <n calitate de nume #imple #unt utilizate numele $i7ierelor e2ecutabile "cu indicarea e2ten#iei.e2e dup punct%; numele librriilor dinamice "cu e2ten#ia .dll%; numele Oeb ' paginilor "cu e2ten#ia .5tml%; numele $i7ierilor de te2t "cu e2ten#ia .t2t #au .doc% #au $i7iere de adeverin+ ".5ip%; numele $i7ierelor bazelor de date ".db% #au numele $i7ierelor cu te2turi ini+iale a programelor" cu e2ten#ia .5; .cpp pentru limbajul CII; cu e2ten#ia .java pentru limbajul Cava%; #cripturi ".pi;.a#p% 7i altele. <ntruc,t realizarea concret reprezentrii logice modelului a #itemei depinde de in#trumentarea programului utilizat; de aceea numele componentelor vor $i de$inite de particularit+ile #inta2ei limbajului de programare re#pectiv. /3

6.1.2. 4eluri de c"mp"nente


<ntruc,t componentul ca element a realizrii $izice a modelului reprezint un modul al codului; de#eori el e#te comentat cu indicarea #imbolelor gra$ice adugtoare; care marc5eaz particularit+ile concrete realizrii lui. 0ce#te nota+ii adugtoare pentru adnotare nu #unt #peci$icate ,n limbajul UML. 6otu7i utilizarea lor #impli$ic ,n+elegerea diagramei de componente 7i per$ec+ioneaz reprezentarea ei gra$ic. Unele nota+ii pentru componente #unt prezentate mai jo# "$ig. /(%. <n limbajul UML #unt #peci$icate trei $eluri de componente?

<n primul rSnd componente de regrupare; care #peci$ic e2ecutarea de ctre #i#tem a $unc+iilor #ale. 07a $el de componente pot $i librrii conectate dinamic cu e2ten#ia .dll "$ig. /(; a%; Oeb ' pagini ,n limbajul de tra#are 5iperte2tului cu e2ten#ia .5tml "$ig. /(; b% 7i $i7ierele de adeverin+ cu e2ten#ia .5ip "$ig. /(; c%. <n al doilea r,nd; componente ' produ#e de lucru. Ca regul ace#tea #unt $i7ierele cu te2te ini+iale a programului; de e2emplu; cu e2ten#ia .5 #au .cpp pentru limbajul CII "$ig. /(; d%. <n al treilea r,nd; componentele de e2ecutare; ce reprezint modulele ' $i7ierele cu e2ten#ia .e2e. Ei #e indic obi7nuit.

Fi . *-. Eariantele reprezentrii gra$ice a componentelor diagramei de componente. 0ce#te elemente #unt uneori numite arte$acte; #ubliniaz ,n a7a $el con+inutul lor in$orma+ional $init; dependent de te5nologie de realizare concret a componentelor re#pective. Mai mult dec,t at,t; elaboratorii pentru ace#t #cop pot utiliza nota+ii independente; deoarece ,n limbajul UML nu e2i#t notare #trict pentru reprezentarea gra$ic a nota+iilor. Un alt mod de #peci$icare a di$eritor $eluri componentelor e#te indicarea #teriotipului componentului ,naintea numelui lui. <n limbajul UML pentru componente #unt #peci$icate urmtori #teriotipuri?

Librrie "librar8% ' de$ine7te prima #pecie a componentuluui; care reprezent librrie dinamic #au #tatic. 6abel "table% ' de$ine7te prima #pecie a componentului; care reprezent un tabel de baze de date. :i7ier "$ile% ' de$ine7te a doua #pecie a componentului; care reprezint un $i7ier cu te2te ini+iale a programului. .ocument "document% ' de$ine7te a doua #pecie a componentului; care reprezint un document. E2ecutare "e2ecutable% ' de$ine7te a treia #pecie componentului; care poate $i e2ecutat ,n nod.

/)

6.2. ,nterfe%e
Urmtorul element a diagramei a componentelor #unt inter$e+ele. Ultimele au $o#t de#ri#e mai #u#; de aceea aici vor $i indicate numai acele propriet+i; care #unt tipice pentru reprezentarea la diagramele de componente. 3e reamentim c ,n cazul general inter$a+a e#te reprezentat ,n $orm de circum$erin+; care e#te legat cu componentul cu ajutorul liniei $r #geat "$ig. *; a%. <n urma cruia numele inter$e+ei; care obligatoriu trebuie # $ie #cri# cu maju#cul M1N; e#te #cri# alturi de circum$erin+. Semantic linia ,n#eamn inter$a+a; iar prezen+a inter$e+elor la componente ,n#eamn c componentul dat realizeaz tru# de inter$e+e re#pective.

Fi . +.. -eprezentarea gra$ic inter$e+elor ,n diagrama de componente. Un alt mod de reprezentare a inter$e+elor ,n diagrama de componente e#te reprezentarea lui ,n $orma de dreptung5i a cla#ei cu #tereotipul Minter$a+aN 7i cu #ec+iuni po#ibile a atributelor 7i opera+iilor "$ig. *; b%. Ca regul; ace#t caz de notare e#te utilizat pentru reprezentarea #tructurii interne a inter$e+ei; care poate $i important pentru realizarea. <n urma elaborrii #i#temelor de programare inter$e+ele a#igur nu numai coinciderea di$eritor ver#iuni; dar 7i po#ibilitatea de ,ntroducere a #c5imbrilor ,n unele pr+i a programului ne#c5imb,nd altele pr+i a ei. <n a7a $el; de#tina+ia inter$e+ilor e#te mai ad,nc; dec,t #peci$ica+ia interac+iunii cu utilizatorii #i#temului "actorii%. 5dnotare Caracter de utilizare a inter$e+elor cu unele componente poate $i di$erit. .e aceea e2i#t dou $eluri de legtur a inter$e+ei 7i componentului. .ac componentul realizeaz o anumit inter$a+; atunci acea#t inter$a+ e#te numit de e2port; deoarece ace#t component prezint ,n el modul de #erviciu pentru altele componente. .ac componentul utilizeaz o anumit inter$a+; care e#te realizat de un alt component; atunci acea inter$a+ pentru primul component e#te numit de import. !articularit+ile inter$e+ei de import con#t ,n aceea c ,n diagrama de componente acea#t rela+ie e#te reprezentat cu ajutorul dependen+ei.

6.!. )ependen%e
<n cazul general rela+ia de dependen+ a $o#t e2aminat mai #u#. -eamentim c rela+ia de dependen+ nu e#te a#ociere; dar e#te utilizat numai pentru reprezantarea $aptului e2i#ten+ei ace#tei legturi; c,nd modi$icarea unui element a modelului ,n$luen+eaz #au duce la #c5imbarea altui element a modelului. -ela+ia de dependen+ ,n diagrama de componente reprezint o linie punctir cu #geat orientat de la client "element dependent% la #ur# "element independent%. -ela+ia poate indica legturile modulelor programului la etapa de compilare 7i generare a codului. <n alt caz dependen+a poate indica e2i#ten+a ,n componentul independent de#crierea cla#ei; care #unt utilizate ,n componentul dependent pentru crearea obiectelor re#pective. <n diagrama de /5

componente dependen+ele pot conecta componentele 7i inter$e+ele de import de component; dar 7i di$erite $eluri de componente ,ntre #ine. <n primul caz #e de#eaneaz #geat de la component ' client la inter$a+a de import "$ig. 1%. !rezen+a #ge+ii ,n#eamn c componetul nu realizeaz inter$a+a re#pectiv; dar utilizeaz ,n ea proce#ul #u de e2ecutare. <n acea#t diagram mai poate e2i#ta 7i un alt component; care realizeaz acea#t inter$a+. .e e2epmplu; $ragmentul diagramei de componente prezentat mai jo# reprezint o in$orma+ie de#pre componentul cu numele Mmain.e2eN dependent de inter$a+a de import 1 dialog; care la r,ndul #u e#te realizat de componentul cu numele Mimage.javaN. !entru al doilea component acea7i inter$a+ e#te de e2port.

Fi . +1. :ragmentul diagrameide componente cu rela+ie de dependen+a. 4b#ervm; c de a reprezentarea al doilea component cu numele Mimage.javaN ,n $orm de variant de adnotare nu e#te po#ibil; deoarece ace#t component realizeaz inter$a+a. Un alt caz de rela+ie de dependen+ ,n diagrama de componente e#te rela+ia ,ntre di$erite $eluri de componente "$ig. 2%. !rezen+a dependen+ei ace#tea ,n#eamn c #5imbrile ,n te2te a programelor #au librrii dinamice vor duce la #c5imbarea componentului. <n urma cruia caracterul #c5imbrii poate $i indicat adugtor.

Fi . +!. -eprezentarea gra$ic rela+ie de dependen+a ,ntre componente. Ri ,n #$,r7it; ,n diagrama de componente pot $i reprezentate rela+iile de dependen+ ,ntre componente 7i realizate ,n ele cla#e. 0cea#t in$orma+ie e#te $oarte imporatant pentru coordonarea reprezentrii logice 7i $izice a modelelor #i#temului. S5imbrile ,n #tructura de#crierii cla#elor poate duce la #c5imbarea componentului. Mai jo# e#te prezentat $ragmentul dependen+ei; c,nd un anumit component depinde de cla#e re#pective.

Fi . +'. -eprezentarea $ra$ic dependen+ei ,ntre componente 7i cla#e. //

<n cazul dat; din diagrama de componente nu reie#e c cla#ele #unt realizate de ace#t component. .ac e#te nece#ar de #ubliniat c care=va component realizeaz anumite cla#e; atunci pentru indicarea componentului e#te utilizat #imbolul ,n $orm de dreptung5i. <n urma cruia dreptung5iul componentului divizeaz ,n dou #ec+iuni cu linia orizontal. Sec+ia de #u# e#te utilizat pentru notarea numelui componentului; iar cea de jo# ' pentru indicarea in$orma+iei adugtoare "$ig. )%.

Fi . +(. -eprezentarea gra$ic a componentului cu in$orma+ia adugtoare de#pre cla#e realizate. <nuntrul #imbolului a componentului #unt indicate alte elemente a nota+iei gra$ice; a7a cla#e ca "componentele nivelului de tip% #au obiectele "componentele nivelului de e2emplare%. <n ace#t caz #imbolul componentului e#te reprezentat ,n a7a $el ca # ,ntroduc ace#te #imboluri adugtoare. .e e2emplu; componentul realizat mai jo# "$ig. 5% e#te e2emplar 7i realizeaz trei obiecte.

Fi . +). -eprezentarea gra$ic a componentului nivelului de e2emplar; ce realizeaz obiectele. 4biecte; care #e a$l ,n componentul ' e2emplar #unt reprezentate ,ntr=un $el de elementele depu#e ,n #imbolul componentului dat. 07a $el de depunere ,n#eamn c e$ectuarea componentului duce la e2ecutarea obiectelor re#pective. Cu alte cuvimte; e2i#ten+a componentului ,n timpul e2ecutrii programului a aprozivionat e2i#ten+a 7i po#ibil acce#ul tuturor obiectelor depu#e. Ce #e re$er la acce#ul ace#tor obiecte; el poate $i adugtor #peci$icat cu ajutorul #peci$icatorul de vizibilitate ca 7i la vizibilit+ile pac5etelor. Sen#ul vizibilit+ii poate $i di$erit pentru di$erite $eluri de pac5ete. .e e2emplu; pentru pac5etul programului cu te2t ini+ial vizibilitatea ,n#eamn po#ibilitatea ,ntroducerii #c5imbrii ,n te2te a programului re#pectiv cu recompilarea lor. !entru componente cu codul programului e2ecutabil vizibilitatea poate caracteriza po#ibilitatea de a e2ecuta componentul re#pectiv #au c5emarea opera+iilor #au metodelor realizate ,n el.

6.#. 'ec"mandri la c"nstruirea diagramei de c"mp"nente


Elaborarea diagramei de componente pre#upune utilizarea in$orma+iei de#pre reprezentarea logic a modelului #i#temului; dar 7i de#pre particularit+ile realizrii ei $izice. <nainte de elaborare e#te nece#ar de a $ace o decizie de#pre alegerea programei de calcul 7i #i#temului opera+ional; dup care # realizm #i#tema; dar 7i alegerea bazelor de date concrete 7i limbajelor de programare. /

.up ce putem duce la #tructurizarea general a diagramei de componente. <n primul r,nd e#te nece#ar de a 5otr, din care pr+i "$i7iere% $izice va $i compu# #i#temul de programare. La acea#t etap e#te nece#ar de a aten+iona la a7a $el de realizare a #i#temului care va garanta nu numai po#ibiliatea utilizrii repetate a codului pe #eama decompozi+iei componentelor; dar 7i crearea obiectelor ,n urma nece#it+ii. Merge vorba de#pre producerea general #i#temului de programare care ,n mare parte depinde mult de utilizarea ra+ional a ei de re#ur#ele de calcul. !entru ace#t #cop e#te nece#ar de#crierea marii pr+i a cla#elor; opera+iilor 7i metodelor lor de a #coate ,n librriile dinamice; l#,nd ,n componentele de e2ecutare numai cele mai nece#are $ragmente pentru ini+ializare a codului programului. .up #tructurizarea general reprezentrii $izice a #i#temului e#te nece#ar de adugat modelul cu inter$e+e 7i #c5emele bazei de date. <n elaborarea inter$e+elor e#te nece#ar de a atrage aten+ia la coordonarea di$eritor pr+i a #i#temului de programare. 1ncluderea ,n modelul bazelor de date pre#upune #peci$icarea tabelelor 7i #tabilirea legturilor in$orma+ionale ,ntre tabele. <n #$,r7it; etapa $inal de con#truire a diagramei de componente e#te legat de #tabilirea 7i depunerea ,n diagram a ,nterac+iunilor ,ntre componente 7i rela+iile de realizare. 0ce#te rela+ii trebuie de#$7urate ,n toate a#pectele importante a realizrii $izice a #i#temului; ,ncep,nd cu particularit+ile compilrii te2telor ini+iale a programului 7i termin,nd cu ,ndeplinirea unor pr+i a programului la etapa de e2ecutare. !entru acea#t #cop pot $i utilizate di$erite $eluri de reprezentare gra$ic a componentelor. <n timpul alaborrii programului trebuie de +inut cont de principiile generale a crerii modelului ,n limbajul UML. Ri anume; ,n primul r,nd e#te nece#ar de a utiliza componente 7i #tereotipuri; care e2i#t ,n limbajul UML. !entru majoritatea proiectelor tipice acea#t tru# nu e#te #u$icient pentru reprezentarea componentelor 7i dependen+elor ,ntre ele. .ar dac proiectul con+ine anumite elemente $izice; de#crierea crora lip#e7te ,n limbajul UML; atunci trebuie de utilizat mecanizmul de e2tindere. Ri anume; utilizarea #tereotipuri adugtoare pentru unele componente netipice #au valorile marcate pentru precizarea unor caracteri#tici a lor. <n #$,r7it trebuie de atra# aten+ia c diagrama de componente e#te; ca regul; elaborat cu diagrama de pla#are; care reprezint in$orma+ia de#pre depla#area $izic a componentelor #i#temului a programei dup nodurile ei. !articularit+ile con#truirii diagramei de pla#are vor $i de$inite ,n capitolul urmtor.

1.. /ia rama de pla$are 0deplo3ment dia ram1


-eprezentarea $izic a #i#temului de programare nu poate $i plin; dac lip#e7te in$orma+ia de#pre programele 7i metode de realizare a calcului. .ac e#te elaborat un #implu program; care poate $i e2ecutat local la calculatorul utilizatorului $r ,ntroducearea ec5ipamentelor peri$erice 7i re#ur#elor; atunci ,n ace#t caz nu e#te nece#itate de a elabora diagrame adugtoare. 6otu7i; ,n timpul elaborrii ane2ei #itua+ia e#te alta. <n primul r,nd; #i#temele de programare compu#e pot $i realizate ,n $orm de re+ea ,n di$erite programe de calcul 7i te5nologiile de acce#are la baze de date. !rezen+a re+elei locale corporative nece#it rezolvarea totalit+ii de probleme adugtoare de#pre ampla#area ra+ional a componentelor dup nodurile re+elei; ce de$ine#c producerea general a #i#temului de programare.

/&

<n al doilea r,nd; integrarea #i#temului de programare cu 1nternet de$ine7te nece#itatea deciziei ,ntrebrilor adugtoare ,n timpul proiectrii #i#temului ,n a7a $el ca a#igurarea #ecurit+ii; ... 7i acce#ul #tabil la in$orma+ie pentru clien+ii corporativi. 0ce#te a#pecte depind mult de realizarea proiectului ,n $orm de noduri a #i#temului; care e2i#t $izic; a7a ca #erveri; centralele $unc+ionale; brandmauzeri; canale de conectare 7i p#trrile de date. 6e5nologiile de acce# 7i de manipulare a datelor ,n #c5ema general Mclientul=#erverN tot trebuie de ampla#at baze de date mair ,n di$erite #egmente de re+elei corporative; copierea lor rezerv; ar5ivarea pentru garantarea producerii nece#are a #i#temului. 0ce#te a#pecte tot nece#it reprezentarea vizual pentru #peci$icarea particularit+ilor te5nologice 7i de programare a realizrii ar5itecturei di#tribuite. <n capitolul ( prima diagrama reprezentrii $izice e#te diagrama de componente. 0l doilea $orm de reprezentarea $izic #i#temului de programare e#te diagrama de pla#are. Ea e#te utilizat pentru reprezentarea general con$igurarei 7i topologiei #i#temului de programare di#tribuite 7i con+ine repartizarea componentelor dup nodurile a #i#temului. !e l,ng c diagrama de pla#are indic prezint legturile $izice ' rutele de tran#$er a in$orma+iei ,ntre ec5ipamente; utilizate ,n realizarea #i#temului. .iagrama de pla#are e#te #peci$ic pentru vizualizarea elementelor 7i componentelor a programului; ce e2i#t numai la etapa e2ecutrii lui "runtime%. <n urma cruia #unt prezentate numai componen= te ' e2emplare a programului; care #unt $i7iere de e2ecutare #au librriile dinamice. 0cele componente; care nu #unt utilizate la etapa e2ecutrii; ,n diagrama de pla#are nu #unt indicate. Componente cu te2te ini+iale a programului pot $i numai ,n diagrama de componente. <n diagrama de rezervare nu #unt indicate. .iagrama de rezervare con+ine reprezentarea gra$ic a proce#orilor; ec5ipamentelor; proce#elor 7i legturilor ,ntre ele. <n deo#ebire de diagrama reprezentrii logice; diagrama de pla#are e#te un #i#tem unic; deoarece trebuie # de#$7oare toate particularit+ile realizrii ei. 0cea#t diagram $inalizeaz proce#ul pentru un #i#tem concret de programare 7i elaborarea ei e#te ultima etapa de #peci$icarea a modelului. 07adar; enumrm #copurile; ce #unt urmrite ,n timpul elaborrii diagramei de pla#are?

.e de$init di#tribuirea componentelor a #i#temului dup nodurile $izice. .e prezentat legturile $izice ,ntre toate nodurile de realizare a #i#temului la etapa de e2ecutare. .e a g#i locurile ,ngu#te a #i#temului 7i de a recon$igura topologia ei pentru atingerea producerii nece#are. !entru garantarea cerin+elor diagramei de pla#are #e elaboreaz ,mpreun cu anali#tele a #i#temului; ingineri de re+ele 7i altele. 0poi vom e2amena elemente din care #unt con+inute diagramele de pla#are.

17.1. ."d
Nodul "node% reprezint un anumit element $izic a #itemului; care are o anumit re#ur# de calculare. Ca re#ur# de calculare a nodului poate $i o valoarea electronic #au magnitioptic a memoriei #au proce#orului. <n ultima ver#iune a limbajului UML de$ini+ia nodului e#te e2tin# 7i pot con+ine nu numai ec5ipamente pentru calculare; dar 7i ,mprimant; modemuri; camere digitale; #canere 7i altele.

/(

5dnotare !o#ibilitatea de a include oamenii "per#onal% ,n de$ini+ia nodului d po#ibilitate de a crea mijloacele limbajului UML modele a di$eritor #i#teme; inclu#iv bi#ne# ' proce#e 7i comple2e te5nice. -ealizarea bu#ine## ' logicei ,ntreprinderii trebuie de e2aminat ,n calitate de noduri a #itemului; #ubdiviziunele organizatorice; care e#te compu# din per#onal. 0utomatizarea conducerii comple2urilor te5nice trebuie de e2aminat ca element independent omul ' operator; care are po#ibilitate de a accepta deciziile ,n #itua+ii complicate 7i de a purta r#punderea pentru di$erite con#ecin+e a deciziilor lui. -eprezentaea gra$ic a nodului ,n diagrama de pla#are e#te ,n $orm de cub trigonometric. 3odul are un propriu nume; care e#te indicat ,nuntrul ace#tui #imbol gra$ic. 3odurile pot $i prezentate ,n $orm de tipuri "$ig. /; a%; dar 7i ,n calitate de e2emplare "$ig. /; b%.

Fi . +*. -eprezentarea gra$ic a nodului ,n diagrama de pla#are. <n primul caz numele nodului e#te #cri# $r #ubliniere 7i ,ncepe cu maju#cul. <n al doilea caz numele nodului ' e2emplar e#te #cri# ,n $orm de \numele nodului b?b numele tipului nodului]. 3umele tipului nodului indic #pecia nodurilor; ce #e a$l ,n modelul #i#temului. .e e2emplu; partea de aparat a #i#temului poate $i compu# din c,te=va calculatoare; $iecare din cre core#punde nodului ' e2emplar ,n model. 6otu7i toate nodurile ' e2emplare #unt legate cu un tip de noduri; anume nodul cu numele de tip MCalculatorN. <n de#enul precedent "$ig. /; a% nodul cu numele MServerN #e re$er la tipul general 7i nu #e concretizeaz. 0l doilea nod "$ig. /; b% e#te nodul ' e2emplar anonim a modelului concret a imprimantei. La $el ca ,n diagrama de componente reprezentarea nodurilor poate $i e2tin# pentru includerea in$orma+iei adugtoare de#pre #peci$icarea nodului. .ac in$orma+ia adugtoare e#te legat cu numele nodului; atunci ea e#te #cri# mai jo# de nume ca valoare marcat "$ig. %.

Fi . ++. -eprezentarea gra$ic a nodului ' e2emplar cu in$orma+ie adugtoare ca valoare marcat. .ac e#te nece#ar de indicat componentele; care #unt depla#ate ,n nodul #eparat; atunci pentru acea#t e2i#t dou moduri. !rimul din ei d po#ibilitate de a ,mpr+i #imbolul gra$ic ,n dou #ec+ii *

cu linie orizontal. <n #ec+iunea cea de #u# e#te #cri# numele nodului; iar ,n cea de jo#= componente depla#ate la nodul dat "$ig. &; a%. 0l doilea mod permite depla#area ,n diagrama de pla#are nodurile cu componentele depu#e "$ig. &; b%. Ca componente depu#e pot $i numai componentele e2ecutante.

Fi . +,. -eprezentarea gra$ic a nodurilor ' e2emplare cu componentele depla#ate. Ca adugare la numele nodului pot $i utilizate di$erite #tereotipuri; care #peci$ic de#tina+ia nodului. .e7i ,n limbajul UML #tereotipuri pentru noduri nu #unt #peci$icate; ,n literatur e2i#t urmtoarele variante? Mproce#orulN; MmodemN; Mre+eaN 7i altele; care pot $i #peci$icate de elaborator. Mai mult dec,t at,t; ,n diagramele de pla#are pot $i indica+ii #peciale pentru di$erite ec5ipamente $izice; reprezentarea gra$ic clari$ic de#tina+ia #au $unc+iile lor. 5dnotare Eorbind de#pre reprezentri gra$ice adugtoare pentru nodurile diagramei de pla#are au ,n vedere eviden+a lor ,n prezentare. .e e2emplu; proce#orul poate $i prezenat ca un nod general ":ig. 11.1% 7i ca inter$a+a calculatorului. <n mod core#punztor; con#oli pot $i prezentate ,n mod de ta#tatur. Elaboratorul trebuie # aib adugtor 7i ,n#u7iri creatoare.

17.2. *"ne-are
!e l,ng reprezentarea nodurilor ,n diagrama de pla#are #unt indicate rela+iile ,ntre ele. <n calitate de rela+ii #unt conectri $izice ,ntre noduri 7i dependen+a ,ntre noduri 7i componente; reprezentarea crora poate $i ,n diagramele de pla#are. Conectrile #unt un $el de a#ociere 7i #unt prezentate ,n $orm de linii $r #ge+i. !rezen+a liniei indic nece#itatea organizrii canalului $izic pentru #c5imbarea in$orma+iei ,ntre nodurile re#pective. Caracter de conectare poate $i adugtor #peci$icat de adnotare; indicat de valoare #au re#tric+ie. <n $ragmentul prezentat mai jo# ,n diagrama de pla#are "$ig. (% #unt #peci$icate nu numai cererea la viteza de tran#$er a datelor ,n re+ea local cu ajutorul valorii indicate; dar 7i recomandarea la te5nologia $izic a realizrii cone2elor ,n $orm de adnotare.

Fi . +-. :ragmentul diagramei de pla#are cu conectri ,ntre noduri. 1

<n a$ar de conectri ,n diagrama de pla#are pot $i rela+iile de dependen+ ,ntre nod 7i componentele lui. 0ce#t caz e#te alternativ pentru reprezentarea componentelor depu#e ,nuntrul #imbolului al nodului; ce nu e#te ,ntodeauna comod; deoarece #imbolul devine valoro#. .e aceea c,nd e2i#t mul+imea de componente de#$7urate ,n nod; o in$orma+ie re#pectiv poate $i reprezentat ,n $el de rela+ie de dependen+ "$ig. &*%. .iagrama de pla#are poate avea o #tructur mai compu#; care include componentele; inter$e+e 7i alte ec5ipamente. <n diagrama de pla#are mai jo# "$ig. &1% e#te prezentat $ragmentul reprezentrii $izice a #i#temului #erviciului ,ndreptat pentru clien+ii bncii. 3odurile ace#tui #i#tem #unt terminalul ,ndreptat "nodul = tip% 7i #erverul bncii "nodul = e2emplar%.

Fi . ,.. .iagrama de pla#are cu rela+ia de dependen+ ,ntre nod 7i componen+ii de#$7urrii ,n el.

Fi . ,1. .iagrama de pla#are pentru #i#temul #erviciului ,ndreptat clien+elor bncii. <n acea#t diagram de pla#are e#te indicat dependen+a componentul de realizare a dialogului Mdialog.e2eN ,n terminalul ,ndreptat de la inter$a+a 1fut5ori#e; realizat de componen+ii Mmain.e2eN; care la r,ndul #u #e de#$7oar la nodul ' e2emplar anonim MServerul bnciiN. Ultimul depinde de componentul bazei de date MClien+ii bnciiN; care de a#emenea e#te de#$7urat la ace#t nod. 0dnotarea indic nece#itatea utilizrii liniei protejate de comunicare pentru #c5imbarea datelor ,n #i#temul dat. 0lt variant a ace#tei nota+ii a in$orma+iei e#te ,n adugarea nodului ,n diagrama cu #tereotipul Mre+ea inc5i#N. Elaborarea #i#temelor depu#e pre#upune nu numai crearea codului programului; dar 7i coordonarea totalit+ii de mijloace de aparate 7i ec5ipamente macanice. Ca e2emplu; vom urmri $ragmentul modelul de conducere a mijloacelor mecanice ,ndreptate de tip plat$ormei de tran#port. 0cea#t plat$orm e#te #peci$icat pentru depla#area ,n regiunele de agre#iune; unde prezen+a omului e#te impo#ibil ,n urma cazurilor $izice.

!lat$orma de tran#port are un propriu microproce#or; camer digital; cu indicatoare de temperatur 7i ampla#ament; de a#emenea di#pozitiv de conducere pentru #c5imbarea direc+iei 7i vitezei de depla#are a plat$ormei. 1n$orma+ie de conducere 7i telemetric de la plat$orm dup linii radio e#te tran#$erat ,n centrul de conducere; dotat cu calculator de conducere; manipulatoare de conducere 7i un tablou mare de in$orma+ie. <n microproce#or plat$ormele #unt de#$7urate componentele de program pentru realizarea in$luen+ei #imple de conducere la di#pozitive; ce permite de a #c5imba di#cret direc+ia 7i viteza de depla#are a plat$ormei. <n calculator centrele de conducere #unt de#$7urate componentele de program a analizei in$orma+iei telemetrice; care caracterizeaz #tarea unor ec5ipamente a plat$ormei 7i #unt realizate algoritmele conducerii depla#rii plat$ormei. Earianta reprezentrii gra$ice ace#tui #i#tem de tran#port e#te prezentat ,n urmtoare diagrama de pla#are "$ig. &2%.

Fi . ,!. .iagrama de pla#are pentru modelul #i#temului de conducere a plat$ormei de tran#port. .iagrama dat con+ine in$orma+ia general de#pre de#$7urarea #i#temului 7i ,n continuare poate $i detalizat ,n timpul elaborrii componentelor de conducere a programului. E#te evident din de#en c ,n timpul elaborrii ace#tui program de pla#are #unt utiliza+i #teriotipul adugtor Mreceptor= emi+torN; care lip#e7te ,n de#crierea limbajului UML 7i de#criere #pecial pentru care=va ec5ipamente mecanice.

17.!. 'ec"mandri la c"nstruirea diagramei de plasare


Elaborarea diagramei de pla#are n,ncepe cu identi$icarea tuturor tipuri de ec5ipamente; care #unt nece#are pentru e2ecutarea de ctre #i#tem $unc+iilor #ale. <n primul r,nd #unt #peci$icate nodurile de calculare a #i#temului;ce con+in memorie 7iK#au proce#orul. <n urma cruia #unt utilizate #teriotipuri limbajului UML; iar ,n cazul de lip#irea lor; elaboratorii pot #peci$ica #tereotipurile noi. Unele cerin+ele la con+inutul mijloacelor de aparate pot $i ,n $orma de re#tric+ie; particularit+i 7i valorilor marcate. Con#truirea urmtoare a diagramei de pla#are e#te legat de depla#are tuturor componentelor e2ecutabile a diagramei dup nodurile #i#temului. .ac unele componente e2ecutate n=au $o#t

depla#ate; atunci acea#t #itua+ie trebuie # $ie e2clu# prin introducerea ,n modelul nodutilor adugtori; care con+in proce#orul 7i memorie. <n timpul elaborrii programelor #imple; care #unt e2ecutate local ,n un calculator a7a ca ,n cazul de diagrama de componente nece#itatea ,n diagrama de pla#are pot lip#i deloc. <n cazurile mai compu#e diagrama de pla#are e#te con#truit pentru a7a re#tric+ii ca?

Modelarea #i#temelor de programare; ce realizeaz te5nologie de acce# la datele Mclient= #erverN. !entru a7a $el de #i#teme e#te caracter divizare #trict a puterilor 7i re#pectiv componentelor ,ntre #tan+ii lucrtoare a clien+ilor 7i #erverul bazei de date. !o#ibilitatea realizrii clien+elor M$ineN ,n terminalele #au organizarea acce#ului la depozitul de date duce la nece#itatea preciziei nu numai topologiei #i#temului;dar 7i la con+inutul componentelor . Modelarea ar5itecturilor de#$7urate di$erite. 0cea#t e#te de#pre intrare+elele corporative;ce con+in #ute de calculatoare 7i altor ec5ipamentelor pere$erice; care $unc+ioneaz ,n di$erite plat$orme 7i #ub di$erite #i#teme opera+ionale. <n urma cruia unele noduri #i#temului ace#t au di#tan+a ,ntre #ine #ute de Lilometre "$ilialele companiei%. <n cazul ace#t diagrama de pla#are devine un in#trument important de vizualizare topologiei generale a #i#temului 7i controlului migra+iei unor componente ,ntre noduri. <n #$,r7it; #i#temele cu microproce#oare; care pot $unc+iona autonom. 07a $el de #i#teme pot con+ine di$erite ec5ipamente adugtoare; care garanteaz autonomia $unc+ionrii lor 7i rezolvarea problemelor. !entru ace#te #i#teme diagrama de pla#are d po#ibilitate de a vizualiza con+inutul ace#tor ec5ipamente 7i intrecone2iunea lor ,n #i#temul.

Ca regul; elaborarea diagramei de pla#are e#te realizat la etapa $inal a 440!; ce caracterizeaz #$ir7itul $azei de proiectare reprezentrii $izice. .in alt parte; diagrama de pla#are poate $i con#truit pentru analiza #i#temului re#pectiv cu #copul analizei 7i modi$icrii urmtoare. <n urma cruia analiza pre#upune elaborarea ace#tei diagrame la etapa ei ini+ial ;ce caracterizeaz direc+ia general analizei de la reprezentarea $izic la logic. <n timpul modelrii bu#ine#=proce#elor diagrama de pla#are ,n a$ar de calculatoare re+elei corporative poate con+ine ,n calitate de noduri di$erite mijloace a orgte5nicei "$a2; #ta+ii multicanale de tele$on%. <n urma cruia $iecare din ec5ipamente re#pective poate $unc+iona autonom 7i ,n #tructura re+elei corporative. .ac e#te nece#ar de introdu# ,n model #ur# de 1nternet; atunci ,n diagrama de pla#are 1nternet reprezint MnorulN cu numele re#pectiv. 0cea#t indicare nu e#te #peci$icat ,n limbajul UML; totu7i ea e#te rar utilizat ,n timpul elaborrii modelelor a #i#temelor de#$7urate. <n #$,r7it e#te nece#ar de a nota o #itua+ie important; caracter elaborrii tuturor diagramelor canonive. .e7i ,n limbajul UML e#te de$init notarea gra$ic pentru toate elemente a diagramelor canonice; metode de reprezentare gra$ic a unor mijloacelor in#trumentale au particularit+ile #peci$ice. Utilizarea C0SE= mijloc in#trumental duce la re#tric+ie la vizualizarea modelelor #i#temelor de programare. Merge vorba de#pre aceea c; unele elemente a limbajului UML pot lip#i ,n C0SE ' mijloace. 1e7irea din acea#t #itua+ie poate $i legat ori cu alegearea altui in#trument; ce #u#+ine ultimile ver#iuni a limbajului UML; ori #impli$icarea modelului la baza de tipizrii ei. <n capitolul 12 care=va din ace#te a#pecte vor $i de#$7urate mai detaliat ,n e2emplul C0SE ' mijloace -ational -o#e (&K(&1.