Documente Academic
Documente Profesional
Documente Cultură
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
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.
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
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. /
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?
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.
nece#are pentru crearea lor; cum pot $i utilizate ace#te arte$acte pentru aprecierea lucrului e2ecutat 7i admini#trarea proiectului ,n ,ntregime.
#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.
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.
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.
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.
.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#.
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&
!.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.
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.
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.
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.
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 tip include ,ntre cazuri de utilizare. 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[.
.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%
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.
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.
-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.
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.
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
*loc !e &i&te"
+onitor
,a&tatura
+ou&e
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%.
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()
#.#. /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.
3/
(.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&
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.
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.
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.
)1
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.
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#.
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.
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.
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%.
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)%.
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.!. 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
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.
53
a : Abonat
: 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
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.
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/
2: tipar(!ocu"ent) : I"pri"anta
Fi . *1. :ragmentul diagramei de colaborare pentru apelare $unc+iei de tipar din redactor te2tual.
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
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
: 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
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
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.
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.
/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.
<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.
<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.
.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.
/&
<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.
<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.
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.