Documente Academic
Documente Profesional
Documente Cultură
Metoda lui Grady Booch, care este cunoscut ca Booch sau Booch91, Booch Lite (mai
trziu Booch93).
Metoda lui James Rumbaugh, cunoscuta ca Object Modeling Technique OMT (mai
trziu OMT-2).
Metoda lui Ivar Jacobson, cunoscuta ca Object-Oriented Software Engineering OOSE.
Fiecare metod a fost orientat spre susinerea unor etape aparte ale APOO. De exemplu, metoda
OOSE coninea mijloace de prezentare a cazurilor de utilizare, care au semnificaie esenial la
etapa analizei cerinelor n timpul proiectrii business-aplicaiilor. Metoda OMT-2 era cea mai
potrivit pentru analiza proceselor de prelucrare a datelor n sistemele informaionale. Metoda
Booch93 era cea mai aplicabil la etapele de proiectare i exploatare a diferitor sisteme program.
Istoria dezvoltrii limbajului UML ncepe n luna octombrie a anului 1994, cnd Grady Booch i
James Rumbaugh din Rational Software Corporation au nceput s lucreze mpreun asupra
unificrii metodelor Booch i OMT. Cu toate c aceste metode fiecare n parte erau destul de
cunoscute, lucrul n comun era organizat pentru cercetarea tuturor metodelor OO cu scopul
unificrii celor mai avantajoase trsturi ale lor. Proiectul acestei aa zise metode unificate (Unified
Method) versiunea 0.8 a fost pregtit i publicat n luna octombrie anului 1995. n toamna aceluiai
an a aderat la ei i Iv. Jacobson, tehnologul principal al companiei Objectory AV (Suedia), cu
scopul integrrii metodei sale OOSE cu celelalte dou precedente.
ncepnd lucrul spre unificarea metodelor, G. Booch, J. Rumbaugh i Iv. Jacobson au formulat
urmtoarele cerinele ctre limbajul de modelare. El trebuie:
S ofere posibilitatea de a modela nu numai produse soft dar i clase mai largi de sisteme i
business-aplicaii cu utilizarea noiunilor obiect orientate.
S asigure n mod evident legatura ntre noiunile de baz ale modelelor nivelurilor
conceptual i fizic.
S asigure scalarea modelelor, ce este o calitate important a sistemelor complicate.
S fie clar pentru analiti i programatori, de asemenea trebuie s fie susinut de ctre
mijloace instrumentale speciale, realizate pe diferite platforme de calculator.
Dezvoltarea sistemei de notaii pentru APOO s-a dovedit s nu fie asemntoare cu dezvoltarea
unui nou limbaj de programare. n primul rnd era necesar de rezolvat dou probleme:
1. Notaia dat trebuie s includ n ea i specificarea cerinelor?
2. Este necesar de extins notaia dat pna la nivelul limbajului de programare vizual?
n al doilea rnd era necesar de gsit echilibrul ntre expresivitatea i simplitatea limbajului. Pe o
parte, o prea simpl notaie limiteaz sfera problemelor poteniale care pot fi rezolvate cu ajutorul
sistemului de notaii corespunztor. Pe de alt parte, o prea complicat notaie creaza dificulti
adugatoare pentru studierea i aplicarea de ctre analiti i programatori. n cazul unificrii
metodelor existente este necesar de a lua n consideraie interesele specialitilor, care au experien
de lucru cu aceste metode, fiindc introducerea schimbrilor semnificative poate atrage dup sine
nenelegerea i respingerea din partea utilizatorilor altor metode. Pentru a exclude opunerea
neevident din partea unor specialiti, este necesar de a lua n considerarie interesele pturilor largi
ale utilizatorilor. n continuare lucrul asupra limbajului de modelare unificat (Unified Modeling
Language) a trebuit s ia n consideraie toate aceste circumstane.
n aceast period suportul elaborrii limbajului UML devine unul din scopurile consoriului OMG
(Object Management Group). Cu totate c consoriul OMG a fost creat nca n anul 1989 cu scopul
de a elabora propuneri de standartizare a tehnologiilor orientate pe obiecte i componente CORBA,
limbajul UML a captat statutul de a doua direcie strategic n lucrul OMG. Anume n cadrul
OMG este creat comanda de elaboratori sub conducerea lui Richard Soli care va asigura lucrul de
mai departe asupra unificrii i standartizrii limbajului UML.
Eforturile lui G. Booch, J. Rumbaugh i Iv. Jacobson au dus la apariia primelor documente care
conineau descrierea limbajului UML versiunea 0.9 (n iunie 1996) i versiunea 0.91 (n octombrie
1996). Aceste documente cu statut de propuneri RTP (Request For Proposals) au servit ca
catalizator pentru discutarea n mas a limbajului UML de ctre diferite categorii de specialiti.
Primele preri i reacii n ce privete limbajul UML indicau necesitatea de a-l completa cu notaii i
construcii.
Compania Rational Software mpreun cu cteva organizaii, care au manifestat dorina de a aloca
resurse pentru elaborarea definiiei stricte a versiunii 1.0 limbajului UML, au fondat consoriul
partenerilor UML n care iniial au intrat aa companii ca Digital Equipment Corp., HP, i-Logix,
Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI
Unisys. Aceste companii au asigurat suportul lucrului n continuare asupra definirii unei notaiei
nc mai stricte i precise, ceea ce a dus la apariia versiunii 1.0 limbajului UML.
Particularitatea limbajului UML const n aceea ca limbajul definete metamodelul semantic, dar nu
modelul unei interfee concrete i metodele de prezentare i realizare a componentelor.
n prezent toate ntrebrile elaborrii n continuare a limbajului UML sunt concentrate n limitele
consoriului OMG. Grupul corespunztor de specialiti asigur publicarea materialelor care conin
descrierea versiunilor urmtoare ale limbajului UML i a propunerilor RFP de standardizarea. O
urmtoare etap de dezvoltare a acestui limbaj s-a terminat n martie anului 2003 cind consoriul
OMG a publicat descrierea limbajului UML 2.0. Istoria elaborrii i dezvoltrii urmtoare al
limbajului UML este reprezentat grafic n fig. 1.
Pe baza tehnologiei UML Microsoft, Rational Software i ali furnizori de medii de dezvoltare a
sistemelor de programare au elaborat modelul informaional unic care a fost numit UML
Information Model. Se presupune c acest model va da posibilitatea diferitor programe care suport
ideologia UML s fac schimb de componente i descrieri. Toate acestea vor permite crearea
interfeei standarde ntre mijloacele de elaborare i mijloacele de modelare vizuala.
Reprezentare realizrii
Utilizatorul final
Relaii structurale
exterioare i inferioare
Programistul
Relaii ntre componente
ale produsului soft
Reprezentare procesului de
funcionare
Integratorul de sistem
Randamentul i volumul
componentelor al unui sistem
Model conceptual
Model al
unui sitem
complex
Reprezentare deplasrii
componentelor
Administratorul de sistem
Topologia legaturilor i
comunicaiilor ale
componentelor
Model
static
Model
dinamic
Model fizic
Fig. 2 Schema comun legturilor modelelor i reprezentrilor ale unui sistem complex n procesul
APOO.
n aa fel, un proces APOO poate fi reprezentat ca o coborre pe nivele: de la cele mai generale
modele i reprezentri de nivel conceptual spre reprezentri mai particulare i detaliate ale nivelului
6
logic i fizic. Totodat la fiecarea etap a procesului APOO modelele date sunt completate
consecvent cu un numr din ce n ce mai mare de detalii ce le premite s reflecte mai adecvat
diferite aspecte ale realizrii unui anumit sistem complex. Schema comun legturilor modelelor
APOO este reprezentat n fig. 2.
Semantica limbajului UML reprezint un careva metamodel, care definete sintaxa abstracta
i semantica noiunilor modelrii orientate pe obiecte n limbajul UML.
Notaia limbajului UML reprezint o notaie grafica pentru reprezentarea vizual a
semanticii limbajului UML.
Sintaxa abstract i semantica limbajului UML sunt descrise cu ajutorul unei anumite submulimi
de notaii ale UML. n completare la aceasta, notatia UML descrie corespunderea sau reprezentarea
notaiei grafice n semantica noiunilor de baza. n aa fel din punct de vedere funcional aceste
dou pri completeaz una pe alt. Totodat semantica limbajului UML este descris pe baza unui
metamodel care are trei reprezentri aparte: sintaxa abstract, reguli de construcia corect a
expresiilor i semantica. Cercetarea semanticii limbajului UML presupune un careva stil semiformal
de redare, care unifica limbaje naturale i formale pentru reprezentarea noiunilor de baza i
regulilor de extindere a lor.
Semantica se definete pentru dou tipuri de modele de obiecte: de structura i de comportare.
Modelele de structur, cunoscute ca modele statice, descriu structura entitilor sau a componentelor
unui sistem inclusiv clase, interfee, atribute i relaii. Modelele de comportare, numite uneori
dinamice, descriu comportarea sau funcionarea obiectelor unui sistem, inclusiv metodele lor,
colaborarea ntre ele, i procesul de schimbare a strilor unor componente aparte i al sistemului
ntreg.
Pentru rezolvarea unui diapazon att de larg de probleme de modelare este elaborat semantica
destul de complet pentru toate componentele notaiilor grafice. Cerinele semanticii limbajului
UML sunt concretizate la construirea anumitor tipuri de diagrame. Notaia limbajului UML include
n sine descrierea elementelor semantice care pot fi utilizate la construcia diagramelor.
Descriere formal a limbajului UML se bazeaza pe careva structur ierarhic comun a
reprezentrilor de model care const din patru nivele:
Meta-metamodelul
Metamodelul
Modelul
Obiectele utilizatorului
produsului soft. Un proces bine organizat trebuie s arate care artefacte trebuiesc, care resurse sunt
necesare pentru crearea lor, cum pot fi utilizate aceste artefacte pentru aprecierea lucrului executat
i administrarea proiectului n ntregime.
trecerea direct de la modelul la codul sursei. nseamn c pentru proiectarea invers (indirecta)
sunt necesare mijloace instrumentale i colaborarea programistului sau analistului de sistem.
Combinarea generrii directe a codului i proiectrii indirecte permite a lucra n prezentare grafic
i textual dac programele instrumentale asigur coordonare ntre aceste dou prezentri al
proiectului.
n afar de reflectare direct datorit expresivitii i uniformitii limbajul UML permite executarea
modelelor, imitarea colaborrii sistemului i controlul sistemului care funcioneaz.
n dependena de metodica elaborrii stabilit unele lucrurile se execut mai formal dect altele.
Artifactele menionate mai sus sunt necesare pentru administrarea, aprecierea rezultatelor i ca
mijloc de comunicare ntre membrii colectivului n timpul elaborrii proiectului i desfurrii lui.
UML permite rezolvarea problemei de documentare a arhitecturii sistemului, ofer limbajul pentru
definirea formal a cerinelor ctre sistemul i ctre teste, definete mijloace pentru modelarea
lucrurilor pe etapa planificrii proiectului i administrrii versiunelor.
Limbajul UML este destinat n primul rnd elaborrii sistemului de programare. Utilizarea lui este
cu mult mai eficienta n urmatoarele sfere:
sisteme informaionale;
servicii bancare i financiare;
telecomunicaie;
transport;
industria de aprare, aviaie, cosmonautic;
sisteme comerciale;
electronica medical;
tiina;
distribuirea sistemului Web.
Sfera de aplicare a limbajului UML nu se limiteaz la modelarea produsului soft. Expresivitatea lui
permite modelarea documentelor n sisteme juridice, modelarea structurii i functionalitatea
sistemelor de deservire a pacienelor n spitale, proiectarea aparaturii.
Pentru inelegerea limbajului este necesar de cunoscut principiile de baz a structurii acestui limbaj.
Sunt numai trei principii i limbajul parc const din trei pri: construcii de baz ale limbajului,
reguli de colaborare i anumite mecanizme comune. tiind toate aceste ideile vom putea citi
modelele n UML i s le proiectm, desigur c vom ncepe cu cele mai simple. Pe parcursul
10
obinerii experienei de lucru cu limbajul vom nva s utilizm posibilitile limbajului mai
avansate.
Dicionarul limbajului nclude trei tipuri de construcii de baz:
de structur;
de comportament;
de grupare;
de adnotare.
Entiti sunt elementele OO de baz ale limbajului. Cu ajutorul entitilor este posibil crearea
modelelor corecte. Entittile de structur sunt substantivele n modelurile ale limbajului UML. De
regul ele reprezint pri statice ale modelelor care corespund elementelor conceptuale i fizice ale
sistemului. Exist apte varieti de entiti de structur:
Clasa (class) este o descriere a unei totaliti de obiecte cu atribute, operaii, relaii i semantica
comun. Grafic o clasa se reprezint printr-un dreptunghi n care se specific numele, atributele i
operaiile clase, exemplu este artat n fig. 3.
NumeleClasei
<<->> AtributPrivat : char
<<#>> AtributProtejat
<<+>> AtributPublic
<<+>> op1()
<<+>> op2()
Fig. 3. Clasa.
Interfaa (interface) este o totalitate de operaii care definesc servicii oferite de clas sau
component. n diagrame interfaa se reprezint printr-un cerc etichetat cu numele interfeei, fig. 4.
Interfaa foarte rar exist aparte de obicei ea este legat cu clasa sau componenta care o realizeaz.
Interfata1
Fig. 4. Interfaa.
Colaborarea (collaboration) definete o interaciune, ea reprezint o totalitate de roluri i alte
elemente care produc un efect cooperativ i care nu se aduce numai la suma termenilor unei
adunri. Grafic colaborarea se reprezint printr-o elips cu linie ntrerupt, interiorul creia conine
numai numele colaborrii, fig. 5.
11
Colaborare1
Fig. 5. Colaborare.
Cazul de utilizare (use case) este o descriere a consecutivitii de aciuni ndeplinite de sistem care
produc un rezultat semnificativ pentru un anumit actor. Grafic cazul de utilizare se reprezint
printr-o elips cu linie continue n interiorul creia se conine denumirea cazului de utilizare, fig. 6.
Cazul de
utilizare 1
Fig. 8. Component.
Nodul (node) este un element real (fizic) al unui sistem care reprezint un mijloc de calcul cu un
anumit volum de memorie i deseori cu capacitate de prelucrare a informaiei i care exist n
timpul funcionrii unui produs soft. Grafic pentru reprezentarea nodului se utilizeaz cubul care
conine numele nodului, fig. 9.
Nod 1
12
Fig. 9. Nod.
apte elemente de baz enumerate: clase, interfete, colaborri, cazuri de utilizare, clase active,
componente i noduri sunt entitile principale de structur care pot fi utilizate n diagramele UML.
Exist i alte varietti ale entitilor de structur: actori, semnale, utilite (tipurile de clase), procese
i iruri (tipuri de clase active), aplicaii, documente, fiiere, biblioteci, pagini i tabele (tipuri de
componente).
Entitile de comportament (behaviour things) sunt prile dinamice ale modelului UML. Acestea
sunt verbele limbajului care descriu comportarea modelului n timpul i n spaiu. Exist numai
doua tipuri de entiti de comportament.
Interaciunea (interaction) este un mod de comportare care const n schimb reciproc de mesaje
(messages) ntre obiecte n cadrul unui anumit context pentru a atinge un anumit scop. Cu ajutorul
interaciunii se descrie att o operaie ct i comportarea unui set de obiecte. Interaciunea
presupune un ir de alte elemente ca mesaje, consecutivitate de aciuni (comportare, iniializat de
ctre mesaje) i legturi (ntre obiecte). Grafic mesajul se reprezint print-o sgeat deasupr careia
se indic numele mesajului, fig. 10.
CreazaObiect()
Dependena
Asocierea
Generalizarea
Realizarea
Aceste relaii sunt construcii principale de legare n UML i sunt utilizate pentru construirea
modelelor corecte.
Dependena (dependency) este o relaie semantic ntre dou entiti astfel nct modificarea uneia
din ele,a celei independente, poate influena semantica celeilalte, dependente. Grafic pentru
reprezentarea dependenei se utilizeaza o linie ntrerupt, deseori cu sgeat care poate conine o
etichet.
14
linia ce corespunde asocierei. Grafic asocierea se reprezint printr-o linie (care uneori se termin cu
o sgeat sau este etichetat), fig. 15.
NewClass
Angajeaza
1
-Angajat
NewClass2
-Angajator
Parte
Parent
15
Realizarea (realization) este o relaie semantic ntre clasificatori n care un clasificator definete un
contract, iar cellat garanteaz ndeplinirea lui. Relaia de realizare se ntlnete n cazurile
urmtoare: ntre interfee i clase sau componente care realizeaz aceste interfee, i ntre cazuri de
utilizare i colaborri care le realizez. Relaia de realizare se reprezint printr-o linie ntrerupt cu o
sgeat goal, ca ceva intermediar ntre relaiile generalizare i dependena, fig. 19.
Lista acestor diagrame i denumirilor respective este canonica n caz dac diagramele reprezint
partea integrant a notaiei grafice a limbajului UML. Mai mult dect att, procesul APOO este
strns legat de procesul construirii acestor diagrame. Totodat o totalitate de diagrame construite n
aa fel este suficient n caz dac diagramele conin informaia necesar pentru realizarea
proiectului unui sistem complex.
Fiecare din aceste diagrame detalizeaz i concretizeaz diferite reprezentri despre modelul unui
sistem complex n termenii limbajului UML. Totodat diagrama cazurilor de utilizare reprezint cel
mai general model conceptual al unui sistem complex care este iniial pentru construirea tuturor
celorlalte diagrame. Diagrama de clase este un model logic care reflect aspectele statice ale
procesului de construire structural a unui sistem complex.
Diagramele de comportament la fel sunt varieti ale unui model logic care reflect aspectele
dinamice ale procesului de funcionare a unui sistem complex. Diagramele de realizare sunt
destinate reprezentrii fizice a componentelor sistemului complex i de aceea sunt atribuite
modelului fizic. Modelul integrat al unui sistem complex n notaia UML (fig. 20) se reprezint ca
totalitatea diagramelor enumerate mai sus.
16
Esena acestei diagrame const n faptul c: sistemul proiectat se reprezint ca o colecie de entiti
i actori care colaboreaz cu sistemul cu ajutorul aa numitor cazuri de utilizare. Totodat orice
entitate care colaboreaz cu sistemul din afar poate fi numit actor. Aceasta poate fi un om, o
instalare tehnic, un program sau oricare alt sistem care poate fi surs de aciune pentru sistemul
proiectat n aa mod, cum l determin colaboratorul. La rndul su, use case-ul este creat pentru
descrierea serviciilor pe care sistemul le ofer actorului. Cu alte cuvinte fiecare caz de utilizare
definete o colecie de aciuni executate de sistem n timpul dialogului cu actorul. Totodat nimic nu
este spus despre aceea n ce mod va fi realizat colaborare ntre actori i sistem.
n caz general, diagrama cazurilor de utilizare reprezint un graf deosebit, care este o notaie grafic
pentru prezentarea cazurilor de utilizare concrete, actorilor, poate i a unora interfee i pentru
prezentarea legturilor ntre aceste elemente. Totodat componente aparte ale diagramei pot fi
incluse ntr-un dreptunghi, care semnific sistemul proiectat n ntregime. Trebuie de specificat c
legturile acestui graf pot fi de numai anumite tipuri de interaciuni ntre actori i cazuri de utilizare,
care mpreun descriu servicii i cerine funcionale ctre sistemul modelat.
17
3.2. Actori
Actorul reprezint orice entitate extern sistemului modelat, care colaboreaz cu sistemul i
utilizeaz posibilitile lui funcionale pentru atingerea anumitor scopuri i pentru rezolvarea
problemelor particulare. Totodat actorii sunt utilizai pentru notarea mulimii rolurilor coordonate
ale utilizatorilor n procesul de colaborare cu sistemul proiectat. Fiecare actor poate fi considerat un
anumit rol aparte relativ unui caz de utilizare concret. Notaia grafic standard a unui actor n
diagram este omuleul sub care se indic numele actorului (fig. 21).
18
3.3. Interfee
Interfaa (interface) specific parametrii modelului care sunt vizibili din afar fr indicarea
structurii lor interne. n limbajul UML interfaa este clasificatorul care caracterizez numai o parte
limitat a comportrii unei entiti modelate. Referitor la diagrama cazurilor de utilizare interfeele
definesc o totalitate de operaii ce asigur serviciile necesare sau funcionalitatea pentru actorii.
Interfeele nu pot conine nici atribute, nici stri, nici asocieri dirijate. Ele conin numai operaii fr
indicarea specificaiilor de realizare a lor. O interfa este formal echivalent clasei abstracte fr
atribute i metode numai cu prezena operaiilor abstracte.
n diagrama cazurilor de utilizare o interfa este reprezentat ca un cercule mic lng care este
indicat numele lui. (fig. 22, a). n calitatea de nume poate fi un substantiv, ce caracterizeaza
informaia corespunztoare sau serviciu (de exemplu, sirena, camera video), dar mai des este
oricare rnd de text (de exemplu, sensor, interpolare ctre baza de date, forma de
introducere, dispozitiv de semnalizare sonor). Dac numele este nscris n limba englez,
atunci acest nume trebuie s inceap cu majuscula I, de exemplu, ISecurelnformation, ISensor (fig.
22, ).
19
Simbolul grafic al unei interfee aparte n diagram poate fi conectat cu cazul de utilizare ce l
susine cu o linie nentrerupt (continu). Linia nentrerupt n acest caz indic faptul c cazul de
utilizare legat cu interfaa trebuie s realizeze toate operaiile necesare pentru aceast interfa, sau
poate i mai mult (fig. 23, a). n afar de aceasta, interfeele pot fi legate cu cazurile de utilizare cu o
linie ntrerupt cu o sgeat (fig. 23, b), ce nseamna c cazul de utilizare specific numai cel
serviciu, care este necesar pentru realizarea interfeei date.
Totodat proprietile generale ale cazurilor de utilizare pot fi reprezentate prin trei metode diferite,
i anume cu ajutorul relaiei de extindere, generalizare i cuplare.
20
Fig. 24. Reprezentare grafic relaiei de asociere ntre acotr i caz de utilizare.
Multiplicitatea (multiplicity) asocierei se indic lnga notaia componentului diagramei care este
membru acestei asocieri. Multiplicitatea caracterizeaz cantitate total de exemplare concrete al
unui component anumit care pot fi n calitate de elemente acestei asocieri. Cu privire la diagrame
cazurilor de utilizare multiplicitate are o notaie specific n forma de una sau mai multe cifre i
posibil simbolul special *.
Pentru diagrama cazurilor de utilizare mai rspndite sunt patru forme de nscriere a multiplicitii
relaiilor de asociere:
Numr ntreg nenegativ (inclusiv cifra 0) este destinat indicaiei multiplicitii care este
strict fixat pentru elementul corespunztor asocierii. n acest caz cantitate de exemplare a
actorilor sau cazurilor de utilizare, ce pot fi i elemente ale relaiei de asociere, ntocmai este
egal cu numrul indicat.
Dou numere ntregi nenegative, separate cu dou puncte i scrise n forma: primul
numr..al doilea numr. Aceast nregistrare n limbajul UML corespunde notaiei pentru o
mulime sau pentru un interval de numere ntregi, care se utilizeaz n unele limbaje de
programare pentru indicarea limitelor masivului de elemente. Aceast nregistrare trebuie s
fie neleas ca o mulime de numere ntregi nenegative care sunt n ordinea crescatoare:
{numar_1, numar_1+1, numar_1+2, , numar_2}. Evident c primul numr trebuie s fie
strict mai mic dect al doilea numr n sens aritmetic, totodat primul numr poate fi egal cu
0.
asocieri, este egal unui numr preliminar necunoscut din mulimea numerelor ntregi {1, 2, 3, 4,
5}. Aceast situaie are loc cnd n calitate de actor este clientul bncii, dar n calitate de caz de
utilizare este procedura deschiderii contului n banc. Totodat cantitatea de conturi ale fiecrui
client n aceast banca, reieind din consideraii tactice, poate fi nu mai mult dect 5. Aceste
consideraii tocmai i sunt cerinele exterioare sistemului proiectat i sunt definite de ctre client la
etapele iniiale de APOO.
Dou simboluri separate cu doua puncte. Totodat primul dintre ele este un numr ntreg
nenegativ sau 0, iar al doilea este simbolul special *. Aici simbolul * nseamn un
numr arbitrar ntreg nenegativ, valoarea cruia este necunoscut la momentul nregistrrii
unei relatii de asociere.
Simbolul *, care este prescurtarea nregistrrii intervalului 0..*. n acest caz cantitatea
de exemplare ale acestui component al relaiei de asociere poate fi oricare numr ntreg
nenegativ. Totodat 0 nseamn c pentru careva exemplare ale componentului
corespunztor aceast relaie de asociere poate nici s nu aib loc.
Ca exemplu acestei forme de nregistrare poate fi cercetat multiplicitatea asocierei pentru cazul de
utilizare ntocmire creditului pentru clientul bncii (fig. 24). n acest caz * nseamn fiecare
client aparte al acestei bnci poate ntocmi pentru sine cteva credite, totodat numrul lor comun
este necunoscut i nelimitat. Unele clieni pot s nu aib credite deloc (cazul valorii 0).
Dac multiplicitatea asocierei nu este indicat atuinci implicit se ia valoarea egal cu 1.
Fig. 25. Exemplu de reprezentare grafic a relaiei de extindere ntre cazurile de utilizare.
Relaia de extindere indic acel fapt c unul din cazurile de utilizare poate fi conectat la
comportamentul su care-va comportament adugtor, definit pentru un alt caz de utilizare. Relaia
dat include o anumit condiie i exilri la puncte de extensie n cazul de utilizare de baz. Pentru
alocarea extinderii este necesar de a executa o anumit condiie a relaiei date. Exilri la puncte de
22
extensie definesc acele locuri n cazul de utilizare de baz n care trebuie s fie pus extinderea
respectiv n timpul executrii condiiei.
Unul din cazurile de utilizare pot fi extinderea pentru cteva cazuri de baz i pot avea ca extinderi
proprii nc cte-va alte cazuri. Cazul de utilizare de baz poate fi adugtor independent de la alte
extensii.
Semantica relaiei de extensie este definit n felul urmtor. Dac exemplarul cazului de utilizare
execut anumit consecven de aciuni, care definete comportamentul lui i n urma cruia exist
un punct de extensie la alt exemplar a cazului de utilizare, care este unul din primele puncte de
extensie a cazului iniial, atunci controleaz condiia relaiei date. Dac condiia este executat,
consecvena iniial de aciuni extinde datorit includerea aciunii altui exemplar a cazului de
utilizare. Trebuie de meninut, c condiia relaiei de extensie este controlat numai o dat n timpul
exilrii la un punct de extensie i dac aceasta este executat, atunci toate cazurile de extindere
utilizate se folosesc n cazul de baz.
Fig. 26. Exemplu de reprezentare grafic a relaiei de generalizare ntre cazuri de utilizare.
Relaia de generalizare ntre cazurile de utilizare este folosit n acele cazuri cnd este necesar de
indicat c cazul de utilizare derivat conine toate atributele i particularitile comportamentului
cazurilor de baz. n urma cruia cazurile de utilizare derivate pot participa n relaii cazurilor de
baz. n urma sa cazurile derivate pot avea proprieti noi de comportament, care nu au cazurile de
utilizare de baz, dar i de a preciza sau modifica proprietile de comportament motenite.
Relativ cu relaia dat un variant de utilizare poate avea cte-va cazuri de baz. n acest caz se
realizeaz motenirea multipl a proprietilor i comportamentului cazurilor de baz. Din alt parte
un caz de utilizare poate fi printe pentru cte-va cazuri de utilizare derivate, ce corespunde
caracterului taxonometric relaiei de generalizare.
ntre actori aparte de asemenea poate exista relaia de generalizare. Aceast relaie este direct i
indic faptul c specializarea unor actori este relativ cu alii. De exemplu, relaia de generalizare de
la actorul A la actorul B indic faptul c fiecare exemplar a actorului A este concomitent cu
exemplarul actorului B i are toate proprietile lui. n acest caz actorul B este printe relativ cu
actorul A, iar actorul A este descendentul actorului B. n urma cruia actorul A are posibilitatea de
joac a aceleeai mulimi de roluri ca i actorul B. Grafic relaia dat este reprezentat cu sgeata de
generalizare, adic cu linia ntreag cu sgeat n form de triunghi nehaurat, care indic printele
actorului (fig. 27).
23
Fig. 28. Exemplu de reprezentare grafic a relaiei de tip include ntre cazuri de utilizare.
cumprare a mrfii. Este evedent din cerinele adresate la sistem c servisul reprezint cazul de
utilizare a diagramei, strutura de baz poate include numai doi actori i un singur caz de utilizare
(fig. 29).
Fig. 29. Diagrama cazurilor de utilizare pentru exemplu de perefectare a sistemului de vindere a
mrfurilor dup catalog.
Valorile divizibilitilor n diagrama dat reflect regulile de baz sau logica de formare a cerinelor
la vinderea mrfurilor. Conform regulilor respective un vnztor poate participa n formarea a ctorva comenzi, n acelai timp fiecare comand poate fi format numai de un singur vnztor, care are
responsabilitatea pentru corectitudinea formrii lui i respectiv va avea rsplat pentru formarea
dat. Din alt parte, fiecare cumprtor poate forma cteva comenzi i n acelai timp fiecare
comand trebuie s fie format la un singur cumprtor, care va avea drepturile de proprietate la
marf dup achiziionarea ei.
Etapul urmtor n diagrama dat este A perfecta comanda de cumprare a mrfii poate fi precizat
pe baza ntroducerii a patru cazuri de utilizare adugtoare. Acest lucru este evident din analiza mai
detaliat a procesului de vindere a mrfii, ce permite de alege ca servicii separate acele aciuni ca
asigurarea cumpratorului cu informaia despre marf, coordonarea condiiilor de plat i
comandarea mrfii de la depozit. Evident c aciunile indicate desfoar comportamentul cazului
de utilizare iniial i anume concretizarea lui i de aceea ntre ele v-a exista relaia de tip include.
n cazul nostru catalogul cu mrfuri poate fi comandat de cumprtor sau vnztor cnd apare
necesitatea de a alege marfa i precizarea detaliilor de vindere. Corect este reprezentat serviciul
Cererea catalogului cu mrfuri ca caz de utilizare independent.
Dup detalizare diagrama cazurilor de utilizare va avea 5 cazuri de utilizare i 2 actori (fig. 30),
ntre care este stabilit relaia de tip includ i extend.
25
Fig. 30. Variantul mai detaliat a diagramei cazurilor de utilizare pentru exemplu de perefectare a
sistemului de vindere a mrfurilor dup catalog.
Diagrama cazurilor de utilizare de mai sus, la rndul su poate fi mai detaliat pentru precizarea mai
adnc, ce se cere de la sistemul de comand i concretizarea detaliilor pentru realizarea urmtoare.
Detalizarea poate fi executat pe baza indicrii relaiilor adugtoare de tipul relaiei generalizareaspecializarea pentru componentele diagramei deja existente. n sistemul de vindere a mrfurilor
poate avea valoarea independent i proprietile specifice o categorie independent de mrfuri
calculatoare. n acest caz n diagram poate fi adugat un caz de utilizare Perfectarea comenzii de
achiziionare a calculatorului i cu actori Cumprator de calculatoare i Vnztor de
calculatoare, care sunt legate cu componentele corespunztoare a diagramei relaiei de generalizare
(fig. 31).
26
Fig. 31. Unul din variantele de concretizare a diagramei cazurilor de utilizare pentru exemplul de
sistem de vindere.
Construirea diagramei cazurilor de utilizare este primul etap a procesului analizei a obiectului
orientat i proiectri, scopul cruia este de reprezentarea totalitii de cereri la comportamentul
sistemului proiectat. Specificaia de cereri la sistemul proiectat n form de diagram a cazurilor de
utilizare reprezint un model independent, care se numete modelul cazurilor de utilizare n limbajul
UML i are un nume propriu stanadard sau steriotip UseCaseModel.
27
Diagrama de clase reprezint un graf cu noduri elemente de tip clasificatori care sunt legate
prin diferite tipuri de relaii de structur. Trebuie de menionat c diagrama de clase poate conine
interfee, pachete, relaii i chiar exemplare, aa ca obiecte i legturi. Prin diagrama de clase se
subnelege modelul structural static al sistemului proiectat, de accea diagrama de clase deseori se
socoate o reprezentare grafic a legturilor structurale ale modelului logic al sistemului care sunt
independente i invariante n timp.
4.1. Clasa
Clasa (class) n limbajul UML definete totalitatea de obiecte care au aceeai structur,
comportament i relaii cu obiectele din alte clase. Grafic o clas se reprezint printr-un dreptunghi
care poate fi divizat de linii orizontale n seciuni, fig. 3.
Elementul obligtoriu n notaia clasei este numele lui. Pe etapele iniiale ale elaborrii diagramei,
clase aparte pot fi notate prin dreptunghiuri simple cu indicaia numelui clasei respective. Pe
parcursul elaborrii componentelor diagramei descrierea claselor este completat cu atribute i
operaii.
Se presupune c varianta final a diagramei conine descrierea complet a claselor care const din
cele trei seciuni. Uneori n notaia claselor se utilizeaz a patra seciune suplementar n care se
indic informaia semantic de caracter informativ i se indic situaiile excepionale.
Dac seciunea atributelor i operaiilor clasei nu este completat, n notaia clasei ea se evidentiaz
cu o linie orizontal pentru a deosebi clasa de alte elemente ale limbajului UML. Exemple de notaii
grafice ale claselor n diagrama de clase sunt artate n fig. 32. n primul caz pentru clasa
Dreptunghi (fig. 32, a) sunt indicate numai atributele clasei punctele pe planul de coordonate
care i definesc poziia. Pentru clasa Fereastr (fig. 32, b) sunt indicate numai operaiile, seciunea
de atribute este lsat necompletat. Pentru clasa Contul (fig. 32, c) suplementar este indicat
seciunea de excepii refuz de la prelucrarea cartelei bancare expirate (nevalabile).
Dreptunghi
p1.Pont
p2.Pont
Fereastra
arata()
ascunde()
Cont
verifica()
exceptiile
cartela bancara
nu este valabila
a)
b)
c)
Specificatorul de vizibilitate poate fi omis. n acest caz nu este present, pur i simplu nseamn c
vederea acestui atribut nu este indicat. Aceast situaie difer de nelegerile de baz n limbile de
29
tradiionale programare, cnd nu este prezent specificatorul de vizibilitate este tratat ca public sau
privat.
Numele atributului prezint aliniat de text, care este folosit n calitate de identificator a atributului
corespunztor i de aceea trebuie s fie unic n clasa corespunztoare. Numele atributului este unic,
un element obligator al nsemnrii sintaxice al atributului.
Ca exemplu de multiplicitate al atributelor putem vedea urmtoarele variante:
[0..1] nseamn c, multiplicitatea atributului poate primi semnificaia 0 sau 1. n acest caz 0
nseamn c semnificaia pentru acest atribut nu este prezent.
[0..*] nseamn c, multiplicitatea atributului poate primi orice semnificaie pozitiv
ntreag mai mult sau egal cu 0. Aceast multiplicitate poate fi scris mai scurt n calitate
de simbolul - [*].
[1.:*] nseamn c, multiplicitatea atributului poate primi orice semnificaie pozitiv
ntreag mai mult sau egal cu 1.
[1..5] nseamn c, multiplicitatea atributului poate primi orice semnificaie din numerele: 1,
2, 3, 4, 5.
[1..3,5,7] nseamn c, multiplicitatea atributului poate primi orice semnificaie din
numerele: 1, 2, 3, 5, 7.
[1..3,7.. 10] nseamn c, multiplicitatea atributului poate primi orice semnificaie din
numerele: 1, 2, 3, 7, 8, 9, 10.
[1..3,7..*] nseamn c, multiplicitatea atributului poate primi orice semnificaie din
numerele: 1, 2, 3, de asemenea orice semnificaie pozitiv ntreag mai mult sau egal cu 7.
Dac multiplicitatea atributului nu este specificat, atunci dup starea iniial voloarea ei este egal
cu 1..1, adic exact 1.
Tipul atributului prezint o expresie, semantica cruia este definit dup limbajul specificaiei al
modelului corespunztor. n notaii UML-ului tipul atributului uneori este specificat n dependen
de limbajul de programare, care va fi utilizat pentru realizarea modelului dat. n cazul elementar
tipul atributului este specificat n rndul textului, care are un sens n limita pachetului sau modelului,
la care are atitudinea clasa dat.
Sublinierea rndului atributului nseamn c acest atribut corespunztor poate avea o submulime de
valori din oarecare domeniu al valorilor atributului, definit de tipul lui. Aceste valori pot fi
considerate ca trus de notie cu acelai tip sau ca masiv, care n ansamblu caracterizeaz fiecare
obiect al clasei.
De exemplu, dac oarecare atribut este dat n form de forma: Dreptunghi, aceasta va semna c
toate obiectele clasei date poate avea cteva forme diferite, dintre care fiecare prezint un
dreptunghi. Ca alt exemplu poate fi atribut n form de numrul_contului:Integer, ce poate nsemna
pentru obiect Colaborator prezena submulimii de conturi, valoarea total crora nu este fixat din
timp.
Aliniat proprietatea este utilizat pentru indicarea valorilor atributului, care nu poate fi shimbat
n program n lucrul cu tipul dat al obiectelor. n paranteze ... anume este indicat valorea fix al
atributului propriu pentru toat clas, care trebuie s conin toate exemplarele clasei, care vor fi
create, fr excepie.
Aceast valoare este considerat ca valoare iniial a atributului, care nu poate fi reiniializat n
continuare. Absena aliniatului proprietatea de baz se trateaz n felul urmtor, valoarea
30
4.1.3. Operaiile
n a treia secie a dreptunghiului de clas se nscriu operaii sau metodele clasei. Operaia
(operation) prezint un anumit serviciu, care prezint fiecare exemplar al clasei dup anumit
cerin. Totalitatea de operaii caracterizeaz un aspect funcional n comportamentul clasei. Notaia
operaiei clasei n limbajul UML este la fel standartizat i este subordonat de careva regulli
sintactice. n urma acesteia fiecare operaie clasei corespunde un rnd aparte, care este compus din
specificator de vizibilitate al operaiei, numele operaiei, expresiei de tipul valoarei returnat de
opearaia i posibil, aliniat proprietate operaiei date:
<specificator de vizibilitate><numele operaiei>(lista de parametri):
<expresie de tipul valoarei returnate>{aliniat - proprietate}
Specificator de vizibilitate ca i n cazul atributelor clasei, poate primi unul din trei valori posibile i
n mod corespunztor este specificat cu un simbol special. Simbolul + nseamn operaia cu
specificator de vizibillitate de tip public(public). Simbolul # nseamn operaia cu specificator de
vizibilitate de tip protecie(protected). n sfrit, simbolul este utilizat pentru identificarea
operaiei cu regiunea de vizibilitate de tip privat (private).
Specificator de vizibilitate pentru operaie poate fi absent. n acest caz absena lui nseamn c
vizibilitatea operaiei nu este indicat. n locul nsemnrii grafice convenionale de asemenea poate
nscrie un cuvnt cheie corespunztor: public, protected, private.
Numele operaiei prezint aliniat de text, care este utilizat ca identificator al operaiei
corespunztoare i de aceea trebuie s fie unic n mediul clasei date. Numele atributului este un
element unic obligator n indicarea sintactic operaiei.
Operaia, care nu poate schimba starea sistemului i n mod corespunztor nu are nici un efect
suplimentar, este specificat cu aliniat proprietate {interpelare} ({query}). n caz contrar
operaia poate schimba starea sistemului, dei nu sunt garanii c ea va face acest lucru.
Lista parametrilor formate i tipul de valoare redus pot fi nespecificate. Specificator de vizibilitate
atributelor i operaiilor pot fi indicate de un semn sau simbol special, care sunt utilizate pentru
prezena modelelor grafice n careva mijloace de instrumente. Numele operaiilor la fel ca i a
atributelor, sunt scrise cu minuscule, iar tipurile lor cu majuscule. n urma cruia o parte obligatorie
al aliniatului de text al operaiei este prezena numelelui i parantezelor rotunde.
Ca exemplu al nscrierei operaiei pot fi urmtorii specificatori al operaiilor:
+a crea() pot indica o operaie abstract n fondarea obiectului separat, care este public i
nu conine parametri formali. Aceast operaie nu reduce nici o valoare dup executarea sa.
31
Fiecare din relaiile aceste are reprezentare grafic proprie pe diagram, care reflect
interconexiunele ntre obiectele claselor corespunztoare.
Clasa_B
32
sgeat, care corespunde relaiei date. Exemple de stereotipuri pentru relaie de dependen sunt
urmtoarele:
33
Forma special sau caz particular a relaiei de asociere este relaia de agregare, care n rndul su are
o form special relaie de compoziie. ntruct relaiile acestea au notaii speciale i aparin
noiunelor de baz a limbajului UML, vor fi examinate consecutiv.
Bloc de sistem
Monitor
Tastatura
Mouse
34
Fig. 36. Reprezentarea grafic a relaiei de compoziie pentru Fereastra programului n diagrama
claselor.
Acest exemplu poate ilustra i alte proprietile programei computerizate, care nu a fost specificat
pentru acest exemplu. Deci, specificarea divizibitii 1 lng clasa Regiunea de lucru este utilizat
n anexe unidocumentate (aplicaii).
Fig. 37. Variantul grafic a relaiei de generalizare n cazul unirii liniilor aparte.
Lng sgeat de generalizare poate fi amplasat aliniat de text, care specific care-va proprieti
adugtoare a acestei relaii. Textul dat va fi referitor la toate linile de generalizare, care trec n
clase descendente. Cu alte cuvinte, proprietatea marcat se refer la toate subclase relaiei date. n
urma cruia textul trebuie s fie examinat ca restricie i atunci el va fi scris n paranteze.
Ca restricie pot fi folosite urmtoarele cuvintecheie din limbajul UML:
clase descendente el nu are. n diagrama acestei clase poate fi indicat evident cu ajutorul
scrierii liniei de generalizare cu aceast aliniat limit;
{disjoint} nseamn c clasele descendente nu pot conine obiecte, care concomitent sunt
exemplare a dou sau mai multor clase. n exemplu precedent acest condiie se
ndeplinete, deoarece este presupus c nici o persoan fizic nu poate fi concomitent i
companie concret. n cazul acesta alturi de linie de generalizare poate fi scris aliniat
limit dat;
{incomplete} este cazul contrar a primului caz. Anume, presupune c n diagrama nu sunt
indicate toate clase descendente. n continuare poate fi restabilit lista lor fr schimbarea
n diagrama construit. Exemplu: diagrama de clas Automobil, pentru care indicarea
tuturor modelelor de automobile este echivant cu formarea catalogului respectiv. Din alt
parte, pentru o alt problem ca elaborarea sistemului de vindere automobilelor de modele
concrete nu este necesitate. Iar indicarea structurii incomplete a claselor descendente este
necesar;
{overlapping} nseamn c care-va exemplare a claselor descendente pot aparine mai
multor clase. Exemplu: clasa Multilateral este clasa printe pentru clasa Dreptunghi i
clasa Rombul. Totui exist clasa Ptrat, exemplarele cruia concomitent sunt obiectele
a primelor dou clase. Este clar c aceast situaie trebuie s fie marcat cu aliniat limit.
4.3. Interfee
Interfeele sunt exemplarele diagramelor cazurilor de utilizare. Totui n construirea diagramei de
clas care-va interfee pot fi precizate i n cazul dat pentru reprezentarea lor este folosit un simbol
grafic special dreptunghi de clas cu cuvntul-cheie i stereotip interfaa (fig. 38). n urma
cruia secia de atribute a dreptunghiului lipsete, iar este indicat numai secia de operaii.
"interface" Element_termomentric
valoarea_temperaturii()
4.4. Obiecte
Obiect (object) este un exemplar special al clasei, care este creat n timpul executrii programului.
El are un propriu nume i valoare concret atributelor. n urma care-va motivelor poate aprea
necesitatea de reprezentare a interconexiunelor nu numai ntre clasele modelului, dar i ntre obiecte
aparte, care realizeaz clase date. n acest caz poate fi elaborat diagrama de obiecte, care nu este
canonic n metamodelul limbajului UML, dar are destinaie proprie.
Pentru reprezentarea grafic a obiectelor este utilizat acelai simbol a dreptunghiului ca i pentru
clase. Diferena este n indicarea numelelor obiectelor, care n cazul de obiecte este obligatoriu
subliniat (fig. 39). n urma cruia notarea numelelui obiectului reprezint aliniat de text numele
obiectului: numele clasei, separat cu dou puncte (fig. 39 a, b). Numele obiectului poate lipsi, n
acest caz presupunem c obiectul este anonim i dou puncte indic acest lucru (fig. 39 d). Numele
clasei poate lipsi. Atunci este indicat numele obiectului (fig. 39 c). Atributele obiectelor primesc
valorile concrete.
36
5.1. Automate
Un automat (state machine) n limbajul UML reprezint o formalizare pentru modelarea
comportamentului elementelor modelului i a sistemului ntreg. n metamodelul UML automatul
este un pachet, n care sunt definite o mulime de definiii, necesare pentru reprezentarea
comportamentului entitii modelate n form de spaiu discret cu un numr finit de stri i treceri.
Din alt parte, automatul descrie comportamentul obiectului n forma consecutivitilor de stri,
care conine toate etapele ciclului de via, ncepnd cu formarea obiectului i sfrind cu
destrugerea lui. Fiecare diagrama de stri reprezint un automat.
37
Fig. 40. Un simplu exemplu de diagram de stri pentru echipamentul tehnic de tip calculator.
Noiunile de baz care intr n formalizmul automatului sunt starea i trecerea. Diferena principal
ntre ele este durata aflrii sistemului n stare aparte, care depete mult timpul, care este utilizat
pentru trecerea de la o stare la alt. Presupune c iniial timpul de trecere de la o stare la alta este
egal cu zero (dac nu exist informaie suplimentar). Cu alte cuvinte, trecerea obiectului de la o
stare la alt este momental.
n cazul general automatul reprezint aspecte dinamice a sitemului modelat n forma de graf
orientat, vrfurile crui corespunde cu strile, iar arcurile cu trecerile. n urma cruia
comportamentul modeleaz ca deplasare consecutiv n graful de stri de la vrf la vrf dup arcurile
legate innd cont de orientaia lor.
5.2. Stare
n limbajul UML starea este subneles ca metaclas abstract, ce se utilizeaz pentru modelarea
situaiei aparte, pe parcursul crei este prezent executarea anumitei condiii.
Starea (state) poate fi n form de valori concrete a atributului clasei sau obiectului, n acest caz
modificarea anumitelor valorilor va respinge modificarea clasei modelate sau obiectului.
Trebuie de meninut c nu fiecare atribut al clasei poate caracteriza starea lui. Ca regul, sunt
valoroase numai acele proprieti a elementelor sistemului, care respinge aspectul dinamic i
funcional a comportamentului lui. n acest caz starea va fi caracterizat ca o condiie invariat, care
include n sine numai cele mai semnificative clase a atributului pentru comportarea i semnificarea
lor.
De exemplu, invariant poate reprezenta o situaie static, cnd obiectul este n stare de ateptare a
aprrii care-va eveniment extern. Din alt parte, invariantul este utilizat pentru modelarea
aspectelor dinamice, cnd n timpul procesului sunt executate anumite aciuni. Atunci n cazul dat
elementul modelat trece n starea dat n momentul iniial al activitii respective i iese din starea
dat n momentul finalizrii ei.
Starea pe diagram este reprezentat ca dreptunghi cu vrfurile rotungite (fig.41). Acest dreptunghi,
la rndul su, poate fi desprit n dou seciuni cu ajutorul liniei orizontale. Dac este indicat
numai o seciune, atunci n ea este scris numai numele strii (fig. 41, a). n caz contrar n prima din
ele este scris numele strii, iar n a doilea lista cror-va aciuni interne sau treceri n starea dat
(fig. 41, b). n urma cruia dup aciunea limbajului UML se subnelege o anumit operaie
atomic, executarea creia duce la schimbarea strii sau red o anumit valoare (exemplu, adevr
sau fals).
5.3. Tranziie
O simpl tranziie reprezint o relaie ntre dou stri consecutive indicnd faptul schimbrii a unei
stri cu alt. Prezena obiectului modelat n prima stare va efectua anumite aciuni, dar trecerea n
starea a doua va fi atunci cnd anumite aciuni vor fi terminate i dup ndeplinirea anumitor
condiii adugtoare. Tranziia ncepe cnd un anumit eveniment se petrece: terminarea executrii
39
aciunii (do activity), trimiterea mesajului sau emiterea semnalului. n trecere se indic numele
aciunii. Mai mult, n tranziie poate fi indicat aciunea produs de un obiect ca reacia tranziiei de
la o stare la alta. Executarea tranziiei poate depinde nu numai de petrecerea unui anumit eveniment,
dar i de la ndeplinirea condiiei corespunztoare, care se numete condiie gard. Obiectul va trece
de la o stare la alta, numai n caz dac a fost aciunea indicat i condiia de gard este adevrat.
n diagrama de stri tranziia este reprezentat ca linie ntreag cu sgeat, care este ndreptat n
starea de int (exemplu, defect n fig. 40). Fiecare tranziie poate fi marcat cu aliniat de text,
care are urmtorul format general:
<signatura evenimentului>'['<condiia de paz>']' <exprimarea aciunii>.
Signatura aciunii descrie un anumit eveniment cu argumentele necesare:
<numele evenimentului>'('<lista parametrilor mprite cu virgule>')'.
5.3.1. Eveniment
Termenul eveniment (event) trebuie explicat aparte, deoarece el este un element independent al
limbajului UML. Opional evenimentul reprezint specificaia anumitui fapt, care are ataat o
locaie n timp i n spaiu. Despre fapte se spune c ele se petrec, n acelai timp evenimente
aparte trebuie s fie aranjate n timp. Dup sosirea evenimentului este imposibil de a ne ntoarce la
evenimentul precedent, dac aceast posibilitate nu este prevzut n model.
n limbajul UML evenimentele joac rol de stimule, care iniializeaz treceri de la o stare la alta. n
calitate de evenimente destingem semnale, apeluri, terminarea intervalurilor fixate de timp sau
momentele de finisare a executrii anumitor aciuni. Numele evenimentului identific fiecare
tranziie aparte n diagrama de stri i pot conine aliniat de text, care ncepe cu minuscul. n acest
caz tranziia va fi triger, adic care specific un eveniment triger. De exemplu, tranziii n fig. 40
sunt trigere, deoarece cu fiecare din ei sunt legate care-va eveniment triger, care petrece asincron
n momentul ieirii din funciune a echipamentului tehnic sau n timpul terminrii reparaiei lui.
Dac alturi de sgeata trecerii nu este indicat nici un aliniat de text, atunci trecerea corespunztoare
este netriger i n acest caz din contextul diagramei de stri trebuei s fie clar dup care terminare a
aciunii el ncepe a funciona. Dup numele evenimentului pot urma paranteze rotungite pentru
parametrii evenimentului triger. Dac nu exist aa parametri, atunci lista parametrilor cu
paranteze pot lipsi.
42
43
Dac unul din subautomate a venit n starea sa final mai degrab dect altele, atunci el trebuie s
ateapte pn cnd alte subautomate vor veni n strile sale finale.
Exemplu a diagramei de stri, care reprezint modelarea comportamentului obiectului concret este
procesul funcionrii aparatului de telefon (fig. 47). Aceast diagram de stri reprezint un automat
cu o stare depus. Din exteriorul strii depuse exist numai o stare ateptare, care caracterizeaz
aparatul de telefon funcionat i conectat. Tranziia n starea urmtoare se ntmpl dup riricarea
receptorului. Tranziia cu aciunea atomic emiterea semnalului de ton transfer aparatul n starea
compus, adic n substarea lui iniial.
Totui n rezultatul conectrii poate s se ntmple ca aparatul abonatului este ocupat (trecerea n
starea ocupat) sau liber (trecerea n starea sunetul la abonat). n primul caz sunetul poate fi
repetat, dup punerea receptorului (ieirea din starea compus). n al doilea caz se ntmpl
controlarea condiiei gard convorbirea este accesibil. Dac ea este adevrat, ceea ce
corespunde cu ridicarea receptorului cu abonatul, ncepe convorbirea telefonic. n caz contrar
(aceast condiie nu se execut, adic este fals) telefonul abonatului va continua s sune, ceea ce ne
spune c ori abonatul nu este, sau din care-va alt motiv nu putem continua cinvorbirea la telefon. n
urma cruia noi nu avem alt soluie dect s punem receptorul.
Dac convorbirea a avut loc, atunci dup cuvinte de adio i executarea condiiei de gard
confirmarea la terminarea convorbirii noi iari punem receptorul la loc. n urma cruia aparatul
de telefon trece n starea ateptarea, n care poate s se afle un timp nelimitat.
45
6.2. Tranziii
Tranziia ca element al limbajului UML a fost studiat n capitolul despre diagrama de stri. La
construirea diagramei de activiti se utilizeaz careva tranziii netrigere care acioneaz deodat
dup perfectarea activitii sau dup executarea aciunii corespunzatoare. Aceast tranziie transmite
activitatea n urmtoarea stare imediat dup ce se termin aciunea din starea precedent. n
diagram aceast tranziie se reprezint printr-o linie continu cu o sgeat.
Dac din starea dat iese numai o tranziie atunci ea poate s nu fie marcat (indicat), dar dac
tranziiile de ieire sunt mai multe atunci poate s acioneze numai una din ele. Anume n acest caz
pentru fiecare din tranziii trebuie s fie indicat n paranteze patrate o condiie de supraveghere.
Totodat pentru toate strile de ieire trebuie s fie executat numai o cerin de veridicitate a unei
tranziii. Acest caz are loc cnd activitatea consecvent executat trebuie s fie divizat n ramuri
alternative independent de valoarea unui rezultat intermediar. Aceast situaie se numete
ramificaie. Grafic ramificaie se reprezint printr-un romb gol (fig. 50). n acest romb numai o
sgeat de la o aciune corespunztoare poate s intre. Sgeata de intrare se unete cu vrful de sus
sau cu cel din stnga al simbolului de ramificaie. Pot fi mai multe sgei de ieire, dar pentru fiecare
din ele trebuie s fie indicat condiia de supraveghere sub form de expresie boolean.
Ca exemplu vom cerceta calcularea costului total al produciei procurate cu o cartel bancar. Dac
costul depete 50$ atunci se acioneaz identificarea proprietarului cartelei bancare. n caz dac
46
cartela este valabil i contul nu depete suma n 50$ atunci suma se scoate de pe cont i se achit
producia procurat. n caz contrar (dac cartela nu este valabil) achitarea nu se execut i
producia rmne la vnztor.
47
6.3. Partiii
Diagramele de stri pot fi utilizate nu numai pentru specificarea algoritmelor de calculare sau
fluxurilor de control n sistemele de programare. Un domeniu de utilizare este legat cu modelarea
busimes-proceselor. ntra-devr, activitatea oricrei companii reprezint totalitatea aciunilor
independente ndreptate la atingerea rezultatului. Totui relativ de businesprocese este de dorit
efectuarea fiecarei aciuni asociative cu subdivizare a companiei concrete. n acest caz aceste
subdiviziuni au responsabilitatea de realizare a unor aciuni, iar businesprocesele reprezint
trecerea aciunilor de la o subdivizare la alta.
48
Pentru modelarea acestor particulariti n limbajul UML se folosete construcia special, care are
denumire de partiii (swimlanes), care sunt divizate unul cu altul cu linii verticale. Dou linii vecine
formeaz o partiie, iar un grup de stri ntre aceste linii sunt executate de subdiviziunea separat
(secie, filial, diviziuni) a companiei (fig. 53).
Denumirele subdiviziunelor sunt indicate n partea de sus a partiiei. A ntretia linia partiiei pot
numai tranzaciile, care n acest caz indic ieirea sau intrarea fluxului de control n subdiviziunea
respectiv a companiei. Ordinea trecerii partiiilor nu are care-va informaie simantic i este
definit dup motivele de comfortabilitate.
Ca exemplu vom lua fragmentul diagramei de activitate a companiei de vindere, care servesc
clienii cu ajutorul telefonului. Subdiviziunele companiei sunt secia de acceptare i perfectare a
cerinelor, secia de vindere i depozitul. Acestor subdiviziuni vor corespunde trei partiii n
diagrama de activitate, fiecare din care specific zona de responsabilitate a subdiviziunei. n cazul
dat diagrama de activitate ntreine nu numai informaie despre consecutivitatea executrii a aciunii
lucrtorilor, dar i care subdiviziuni a companiei de vindere trebuie s execute o aciune sau alta
(fig. 53).
6.4. Obiecte
n cazul general aciunile n diagrama de activitate sunt efectuate cu obiecte. Aceste obiecte sau
iniializeaz executarea aciunelor sau definesc un anumit rezultat a acestor aciuni. n urma cruia
aciunile specific apelurile, care trec de la un obiect a grafului de activitate la altul. ntruct n acest
racurs obiectele joac un anumit rol n nelegerea procesului de activitate, uneori apare necesitatea
indicrii lor n diagrama de activitate. Pentru reperezentarea grafic a obiectelor sunt utilizate
dreptunghiurile clasei cu o deosebire: numele obiectului se subliniaz. Dup nume poate fi indicat
caracteristica strii obiectului n paranteze ptrate. Aceste dreptunghiuri a obiectelor sunt unite cu
strile de activiti a relaiei de dependen cu linia punctir cu sgeat. Dependena respectiv
definete starea concret a obiectului dup efectuarea aciunii precedente.
n diagrama de activitate cu partiii deplasarea obiectelor poate avea un sens adugtor. i anume,
dac obiectul este amplasat la hotarul ambilor partiii, aceast lucru nseamn c trecerea la starea de
aciune urmtoare n partiia vecin este asociat cu un document finit (obiectul n care-va stare).
Dar dac obiectul este amplasat nuntrul partiiei, atunci starea acestui obiect este definit de
aciunile partiiei date.
Revenind la exemplul precedent cu compania de vindere, poate nota c obiectul central a procesului
de vindere este comanda, anume starea ei de executare. La nceput, pn la primirea sunetului de la
client, comanda ca obiect lipsete i apare numai dup ce a am primit sunetul de la client. Totui,
aceast comand nu este ndeplinit pn la urm, deoarece este necesar de alege o marf concret
din secia de vindere. Dup pregtirea lui el transfer marfa la depozit, unde mpreun cu eliberarea
mrfurilor comanda este perfectat. La sfrit, dup trimiterea confirmrii despre achiziionarea
mrfii aceast informaie nscrie n comand i el este ndeplinit i sfrit (fig. 54).
7.1. Obiecte
n diagrama de secven se descriu numai obiectele care sunt direct implicate n interaciune i nu
reflect asocierile statice cu alte obiecte. Pentru diagrama de secven momentul principal este
dinamica colaborrii ntre obiecte n timp. Grafic fiecare obiect se reprezint printr-un dreptunghi i
se plaseaz n partea de sus a ciclului su de via (fig. 54). n nteriorul dreptunghiului se indic
numele obiectului i numele clasei desprite prin dou puncte. Totodat toat nregistrare se
subliniaz, ce indic c obiectul este exemplarul unei clase. n caz dac numele obiectului lipsete,
atunci se indic numai numele clasei i obiectul se consider anonim.
51
7.3. Mesaje
Scopul colaborrii n contextul limbajului UML const n specificarea comunicaiei ntre o mulime
de obiecte. Fiecare interaciune este descris de un set de mesaje cu care obiectele-participante se
schimb intre. n acest sens mesajul (messaje) reprezint un fragment de informaie care este
transferat de ctre un obiect altuia. Totodat acceptarea mesajului iniializeaz anumite aciuni
ndreptate spre rezolvarea problemei de ctre obiectul cruia mesajul i este transferat.
Mesajele nu numai transmit informaia, ci i presupun executarea aciunilor ateptate de ctre
obiectul acceptabil. Mesajele pot iniia executarea operaiilor de ctre obiectul unei clase, dar
parametrii acestor operaii sunt transferai mpreun cu mesajul. n diagrama de secven toate
mesajele sunt coordonate dup timpul de apariie n sistemul modelat.
n acest context, fiecare mesaj are o direcie de la obiect, care iniiaz i trimite un mesaj la obiectul
care le primete. Uneori, expeditorul mesajului se numete client i beneficiar - server. Totodat
mesajul de la client este sub form de iniializare a unui anumit serviciu, iar reacia aa numitului
server dup primirea mesajului presupune executarea anumitor aciuni i transmiterea informaiei
sub forma a unui mesaj ctre client.
n limbajul UML pot fi folosite mai multe tipuri de mesaje, fiecare dintre ele are propria
reprezentare grafic.
52
n unele cazuri, obiectele pot transmite mesaje sie nsui, iniiind aa-numita comunicare reflexiv.
n afar de stereotipuri, mesajul poate avea denumirea sa proprie, a operaiunii. n acest caz lng
sgeat se scrie numele operaiei cu paranteze rotunde n care se indic parametrii sau argumentele
operaiei respective. Dac parametrii lipsesc atunci parantezele rmn neaprat dup numele
operaiei.
c: Aparat de
telef on
ridica receptorul
: Comutator
a : Abonat
d: Aparat de
telef on
b : Abonat
signal ton()
roteste discul
f ormeaza un
numar
: Conv orbire
"create"
conexare()
"send"
"send"
ridica receptorul
termina
conv orbire
pune receptorul
conexare(a)
pune receptorul
sunet()
conexare(b)
termina
conv orbire
"destroy "
8.1. Obiecte
Obiecte sunt elementele de baz sau primitivele grafice din care const diagrama de colaborare.
Pentru reprezentarea grafic a obiectelor se utilizeaz acelai dreptunghi ca i pentru reprezentarea
clasei.
54
Obiectul (object) este un exemplar aparte al clasei care este creat la etapa executrii a unui program.
El poate avea un nume propriu i valorile atributelor. Referitor la obiecte formatul liniei ce conine
clasificatorul se completeaz cu numele obiectului:
<Numele obiectului>'/' <Numele rolului al clasificatorului> ':' <Numele clasificatorului>
[':' <Numele clasificatorului >]*
Aici Numele rolului clasificatorului poate s nu fie indicat. n acest caz el se exclude din context
mpreun cu dou puncte. Numele rolului poate fi omis n caz daca exist mai multe roluri n
colaborarea obiectelor create pe baza clasei date. Pentru definirea rolului clasificatorului este de
ajuns a indica numele clasei (mpreuna cu dou puncte) sau numele rolului (mpreuna cu /). n caz
contrar dreptunghiul va corespunde clasei ordinare. Dac rolul unui obiect se motenete de la mai
multe clase, atunci ele toate trebuie s fie indicate i desprite prin virgul i dou puncte.
Urmtoarele sunt variante de indicare a textului n nteriorul dreptunghiului.
Fig. 58. Exemple de moduri de indicare a numelor obiectelor, rolurilor i claselor n diagrama de
colaborare.
n primul caz (fig. 58, a) obiectul cu numele client cu rolul iniiatorul cerinei. n cazul
(fig. 58, b) este indicat un obiect anonim cu rolul iniiatorului cerinei. n ambele cazuri nu este
indicat clasa pe baza creia sunt create aceste obiecte. n cazul (fig. 58, c) clasa este determinat,
dar obiectul rmne anonim. Referitor la nivelul de specificare n diagramele de colaborare pot fi
specificate clase denumite cu indicarea rolurilor (fig. 58, d) sau clase anonime dar tot cu indicarea
rolurilor (fig. 58, e). Ultimul caz reflect situaia cnd n model pot fi prezente cteva clase cu
numele Client, de aceea este necesar specificarea numelui pachetului Baza de date (fig. 58, f).
55
8.1.1. Multiobiect
Multiobiect (multiobject) reprezint o mulime de obiecte n una din terminaiile asocierei. n
diagrama de colaborare multiobiectul se utilizeaz pentru a arat operaiile i semnalele care sunt
adresate ctre toat mulimea de obiecte. Multiobiectul se reprezint n forma a dou dreptunghiuri,
unul din care iese n afara laturei de sus a altui dreptunghi (fig. 59, a). Totodat sgeata mesajului se
refer la toat mulime de obiecte care definesc multiobiect dat. n diagrama de colaborare poate fi
indicat relaia compoziiei (structura) ntre multiobiect i un obiectul aparte din mulime care l
definete (fig. 59, b).
c:
Conectare
56
1: aImprimanta:=alege()
: Redactor
textual
: Imprimanta
F
2: tipar(document)
: Imprimanta
Fig. 61. Fragmentul diagramei de colaborare pentru apelare funciei de tipar din redactor textual.
8.2. Legturi
Legtura (link) este exemplarul sau exemplul asocierii arbitrare. Legtura ca element al limbajului
UML poate fi ntre dou sau mai multe obiecte. Legtura binar n diagrama de colaborare se
reprezint n form de segment al liniei drepte care leag dou dreptunghiuri ale obiectelor (fig. 61).
La fiecare terminal al acestui segment pot fi indicate numele rolurilor asocierii date. Lng linie, n
mijlocul ei, se indic numele asocierii respective. Legturile nu au numele proprii fiindc sunt
identice ca exemplare ale asocierii. Cu alte cuvinte toate legturile n diagrama de colaborare pot fi
numai anonime i se indic fr dou puncte naintea numelui asocierii. Pentru legaturi nu se indic
nici multiplicitatea. ns alte reprezentri ale cazurilor particulare de asociere (agregare,
compoziia) pot fi la terminaiile legturilor. De exemplu, simbolul de tip compoziia ntre
multiobiectul Imprimant i obiectul aparte Imprimant (fig. 61).
57
"association" asociere (se presupune implicit, de aceea acest tip poate s nu fie indicat).
"parameter" parametrul metodei. Obiectul respectiv poate s fie doar paramentru al unei
metode.
"local" variabila local a metodei. Domeniul ei de vizibilitate este limitat de ctre obiectul
vecin.
"global" variabila global. Domeniul ei de vizibilitate este toat diagrama de colaborare.
"self" legtura reflexiv a obiectului care presupune transferul mesajelor ctre sine. n
diagrama de colaborare legtura reflexiv se reprezint n form de bucl n partea de sus al
dreptunghiului obiectului.
Unele exemple de legturi cu diferite stereotipuri sunt prezentate n fig. 63. Aici este reprezentat
schema unei companii cu numele C care const din secii (multiobiect anonim Secie). Seciile
constau din angajai (multiobiect anonim Angajat). Legtura reflexiv indic faptul c managerul
seciei este i angajatul acesteia.
c : Compania
"local" subsectie
: Sectie
"self" manager
"local" executa lucrul
: Angajat
58
5: comutatie(a,b)
: Comutator
4: formeaza un numar(i)
8: apeleaza_abonatul(b)
legatura telefonica
legatura telefonica
c : Aparat
de telefon
1: ridica_receptorul()
3: roteste_discul()
"local"
7: confirma()
2: signal_ton()
6: creaza()
: Convorbire
d : Aparat
de telefon
10: ridica_receptorul()
"local"
transient
12: incepe_convorbire()
11: incepe_convorbire()
"global" participant_convorbirei
"global" participant_convorbire
a : Abonat
9: sunet()
b : Abonat
8.3. Colaborare
Noiune de colaborare (collaboration) este una din noiunile fundamentale ale limbajului UML. Ea
nseamn o mulime de obiecte care interacioneaz n contextul comun al sistemului modelat.
Scopul colaborrii const n specificarea particularitilor realizrii a celor mai semnificative
operaii n sistem. Colaborarea determin structura comportamentului sistemului dat n termeni de
colaborare a participanilor.
Colaborarea poate fi prezentat n dou nivele:
Una i aceeai totalitate de obiecte poate participa n mai multe colaborri. Totodat, n dependen
de colaborarea cercetat, unele proprieti ale obiectelor pot s se schimbe aa precum i legturile
ntre ele. Anume acest fapt deosebete diagrama de colaborare de diagrama de clase n care sunt
indicate toate proprietile i asocierile ntre elementele diagramei.
60
61
Destinaie principala a reprezentrii logice const n analiza relaiilor structurale i funcionale ntre
elementele unui model de sistem. Pentru crearea unui sistem fizic real este necesar a transforma
toate elementele reprezentrii logice n entiti materiale. Pentru descrierea acestor entiti este
destinat aspectul reprezentrii modelare fizice.
Pentru a explica diferena ntre reprezentarea logic i fizic vom cerceta procesul de elaborare a
unui sistem de program. n calitate de reprezentare logic iniial a acestui sistem pot fi schemele
structurale ale algoritmelor i procedurilor, descrieri a unor interfee i baza de date conceptual.
Pentru realizarea acestui sistem este necesar de a elabora codul surs n anumit limbaj (C++, Pascal,
Basic/VBA, JAVA). Totodat n codul surs se presupune divizarea acestui cod n module aparte.
Cu toate c codurile surs iniiale sunt fragmente ale reprezentrii fizice a unui proiect, ele nu
prezint realizarea final a lui. Sistemul program poate fi considerat realizat numai n caz daca el va
putea executa funciile destinaiei sale. Aceasta este posibil dac codul surs al unui sistem va fi
realizat n forma de module executate, biblioteci ale claselor i procedurilor, interfeelor grafice
standarde, fiierelor bazelor de date. Anume aceste componente sunt necesare pentru reprezentarea
fizic a unui sistem.
Proiectul complet al unui sistem al programului reprezint o totalitate de modele ale reprezentrii
logice i fizice care sunt coordonate ntre ele. n limbajul UML pentru reprezentarea fizic a unui
model al sistem sunt utilizate diagramele de realizare (implementation diagrams) care includ dou
diagrame canonice: diagrama de componente i diagrama de plasare. Specifica crerii primei din ele
va fi cercetat n capitolul dat, al ultimei diagrame n capitolul urmtor.
Diagrama de componente, spre deosebire de diagramele cercetate, descrie particularitile
reprezentrii fizice a unui sistem. Diagrama de componente permite determinarea arhitecturii
sistemului elaborat prin stabilirea dependenei ntre componentele de program n calitate de care
poate fi codul iniial, binar i executabil. n mai multe domenii de elaborare modul i componenta
corespund fiierului. Sgeile punctate care leag modulele arat relaiile de dependena analogice
celor ce au loc la compilarea codurilor sursei iniiale. Elementul grafic de baz al diagramei de
componente sunt componentele, interfeele i dependenele ntre ele.
Diagrama de componente se elaboreaz pentru urmatoarele scopuri:
9.1. Componente
Pentru reprezentarea entitilor fizice n limbajul UML se utilizeaz componenta (component).
Componenta realizeaz un set de interfee i desemneaz elementele reprezentrii fizice a unui
model. Grafic componenta se reprezint printr-un dreptunghi cu anexe (fig. 67). n nteriorul acestui
dreptunghi se indic numele componentei i posibil informaia suplementar. Reprezentarea acestui
simbol variaz n dependen de informaia asociat cu componenta dat.
62
63
64
9.2. Interfee
Urmtorul element a diagramei a componentelor sunt interfeele. Ultimele au fost desrise mai sus,
de aceea aici vor fi indicate numai acele proprieti, care sunt tipice pentru reprezentarea la
diagramele de componente. Ne reamentim c n cazul general interfaa este reprezentat n form de
circumferin, care este legat cu componentul cu ajutorul liniei fr sgeat (fig. 70, a). n urma
cruia numele interfeei, care obligatoriu trebuie s fie scris cu majuscul I, este scris alturi de
circumferin. Semantic linia nseamn interfaa, iar prezena interfeelor la componente nseamn
c componentul dat realizeaz trus de interfee respective.
9.3. Dependene
n cazul general relaia de dependen a fost examinat mai sus. Reamentim c relaia de
dependen nu este asociere, dar este utilizat numai pentru reprezantarea faptului existenei acestei
legturi, cnd modificarea unui element a modelului nflueneaz sau duce la schimbarea altui
element a modelului. Relaia de dependen n diagrama de componente reprezint o linie punctir
cu sgeat orientat de la client (element dependent) la surs (element independent).
Relaia poate indica legturile modulelor programului la etapa de compilare i generare a codului.
n alt caz dependena poate indica existena n componentul independent descrierea clasei, care sunt
utilizate n componentul dependent pentru crearea obiectelor respective. n diagrama de
65
n cazul dat, din diagrama de componente nu reiese c clasele sunt realizate de acest component.
Dac este necesar de subliniat c care-va component realizeaz anumite clase, atunci pentru
indicarea componentului este utilizat simbolul n form de dreptunghi. n urma cruia dreptunghiul
componentului divizeaz n dou seciuni cu linia orizontal. Secia de sus este utilizat pentru
notarea numelui componentului, iar cea de jos pentru indicarea informaiei adugtoare (fig. 74).
Fig. 74. Reprezentarea grafic a componentului cu informaia adugtoare despre clase realizate.
nuntrul simbolului a componentului sunt indicate alte elemente a notaiei grafice, aa clase ca
(componentele nivelului de tip) sau obiectele (componentele nivelului de exemplare). n acest caz
simbolul componentului este reprezentat n aa fel ca s ntroduc aceste simboluri adugtoare. De
exemplu, componentul realizat mai jos (fig. 75) este exemplar i realizeaz trei obiecte.
67
Dup ce putem duce la structurizarea general a diagramei de componente. n primul rnd este
necesar de a hotr din care pri (fiiere) fizice va fi compus sistemul de programare. La aceast
etap este necesar de a ateniona la aa fel de realizare a sistemului care va garanta nu numai
posibiliatea utilizrii repetate a codului pe seama decompoziiei componentelor, dar i crearea
obiectelor n urma necesitii.
Merge vorba despre producerea general sistemului de programare care n mare parte depinde mult
de utilizarea raional a ei de resursele de calcul. Pentru acest scop este necesar descrierea marii
pri a claselor, operaiilor i metodelor lor de a scoate n librriile dinamice, lsnd n
componentele de executare numai cele mai necesare fragmente pentru iniializare a codului
programului.
Dup structurizarea general reprezentrii fizice a sistemului este necesar de adugat modelul cu
interfee i schemele bazei de date. n elaborarea interfeelor este necesar de a atrage atenia la
coordonarea diferitor pri a sistemului de programare. Includerea n modelul bazelor de date
presupune specificarea tabelelor i stabilirea legturilor informaionale ntre tabele.
n sfrit, etapa final de construire a diagramei de componente este legat de stabilirea i depunerea
n diagram a nteraciunilor ntre componente i relaiile de realizare. Aceste relaii trebuie
desfurate n toate aspectele importante a realizrii fizice a sistemului, ncepnd cu particularitile
compilrii textelor iniiale a programului i terminnd cu ndeplinirea unor pri a programului la
etapa de executare. Pentru aceast scop pot fi utilizate diferite feluri de reprezentare grafic a
componentelor.
n timpul alaborrii programului trebuie de inut cont de principiile generale a crerii modelului n
limbajul UML. i anume, n primul rnd este necesar de a utiliza componente i stereotipuri, care
exist n limbajul UML. Pentru majoritatea proiectelor tipice aceast trus nu este suficient pentru
reprezentarea componentelor i dependenelor ntre ele.
Dar dac proiectul conine anumite elemente fizice, descrierea crora lipsete n limbajul UML,
atunci trebuie de utilizat mecanizmul de extindere. i anume, utilizarea stereotipuri adugtoare
pentru unele componente netipice sau valorile marcate pentru precizarea unor caracteristici a lor.
n sfrit trebuie de atras atenia c diagrama de componente este, ca regul, elaborat cu diagrama
de plasare, care reprezint informaia despre deplasarea fizic a componentelor sistemului a
programei dup nodurile ei. Particularitile construirii diagramei de plasare vor fi definite n
capitolul urmtor.
68
10.1. Nod
Nodul (node) reprezint un anumit element fizic a sitemului, care are o anumit resurs de
calculare. Ca resurs de calculare a nodului poate fi o valoarea electronic sau magnitioptic a
memoriei sau procesorului. n ultima versiune a limbajului UML definiia nodului este extins i
pot conine nu numai echipamente pentru calculare, dar i mprimant, modemuri, camere digitale,
scanere i altele.
69
Adnotare
Posibilitatea de a include oamenii (personal) n definiia nodului d posibilitate de a crea mijloacele
limbajului UML modele a diferitor sisteme, inclusiv bisnes procese i complexe tehnice.
Realizarea business logicei ntreprinderii trebuie de examinat n calitate de noduri a sitemului,
subdiviziunele organizatorice, care este compus din personal. Automatizarea conducerii
complexurilor tehnice trebuie de examinat ca element independent omul operator, care are
posibilitate de a accepta deciziile n situaii complicate i de a purta rspunderea pentru diferite
consecine a deciziilor lui.
Reprezentaea grafic a nodului n diagrama de plasare este n form de cub trigonometric. Nodul
are un propriu nume, care este indicat nuntrul acestui simbol grafic. Nodurile pot fi prezentate n
form de tipuri (fig. 76, a), dar i n calitate de exemplare (fig. 76, b).
Fig. 77. Reprezentarea grafic a nodului exemplar cu informaie adugtoare ca valoare marcat.
Dac este necesar de indicat componentele, care sunt deplasate n nodul separat, atunci pentru
aceast exist dou moduri. Primul din ei d posibilitate de a mpri simbolul grafic n dou secii
70
cu linie orizontal. n seciunea cea de sus este scris numele nodului, iar n cea de jos- componente
deplasate la nodul dat (fig. 78, a).
Al doilea mod permite deplasarea n diagrama de plasare nodurile cu componentele depuse
(fig. 78, b). Ca componente depuse pot fi numai componentele executante.
10.2. Conexare
Pe lng reprezentarea nodurilor n diagrama de plasare sunt indicate relaiile ntre ele. n calitate de
relaii sunt conectri fizice ntre noduri i dependena ntre noduri i componente, reprezentarea
crora poate fi n diagramele de plasare.
Conectrile sunt un fel de asociere i sunt prezentate n form de linii fr sgei. Prezena liniei
indic necesitatea organizrii canalului fizic pentru schimbarea informaiei ntre nodurile respective.
Caracter de conectare poate fi adugtor specificat de adnotare, indicat de valoare sau restricie. n
fragmentul prezentat mai jos n diagrama de plasare (fig. 79) sunt specificate nu numai cererea la
viteza de transfer a datelor n reea local cu ajutorul valorii indicate, dar i recomandarea la
tehnologia fizic a realizrii conexelor n form de adnotare.
71
n afar de conectri n diagrama de plasare pot fi relaiile de dependen ntre nod i componentele
lui. Acest caz este alternativ pentru reprezentarea componentelor depuse nuntrul simbolului al
nodului, ce nu este ntodeauna comod, deoarece simbolul devine valoros. De aceea cnd exist
mulimea de componente desfurate n nod, o informaie respectiv poate fi reprezentat n fel de
relaie de dependen (fig. 80).
Diagrama de plasare poate avea o structur mai compus, care include componentele, interfee i
alte echipamente. n diagrama de plasare mai jos (fig. 81) este prezentat fragmentul reprezentrii
fizice a sistemului serviciului ndreptat pentru clienii bncii. Nodurile acestui sistem sunt
terminalul ndreptat (nodul - tip) i serverul bncii (nodul - exemplar).
Fig. 80. Diagrama de plasare cu relaia de dependen ntre nod i componenii desfurrii n el.
Fig. 81. Diagrama de plasare pentru sistemul serviciului ndreptat clienelor bncii.
n aceast diagram de plasare este indicat dependena componentul de realizare a dialogului
dialog.exe n terminalul ndreptat de la interfaa Iuthorise, realizat de componenii main.exe,
care la rndul su se desfoar la nodul exemplar anonim Serverul bncii. Ultimul depinde de
componentul bazei de date Clienii bncii, care de asemenea este desfurat la acest nod.
Adnotarea indic necesitatea utilizrii liniei protejate de comunicare pentru schimbarea datelor n
sistemul dat. Alt variant a acestei notaii a informaiei este n adugarea nodului n diagrama cu
stereotipul reea inchis.
Elaborarea sistemelor depuse presupune nu numai crearea codului programului, dar i coordonarea
totalitii de mijloace de aparate i echipamente macanice. Ca exemplu, vom urmri fragmentul
modelul de conducere a mijloacelor mecanice ndreptate de tip platformei de transport. Aceast
platform este specificat pentru deplasarea n regiunele de agresiune, unde prezena omului este
imposibil n urma cazurilor fizice.
72
Fig. 82. Diagrama de plasare pentru modelul sistemului de conducere a platformei de transport.
Diagrama dat conine informaia general despre desfurarea sistemului i n continuare poate fi
detalizat n timpul elaborrii componentelor de conducere a programului. Este evident din desen c
n timpul elaborrii acestui program de plasare sunt utilizai steriotipul adugtor receptoremitor, care lipsete n descrierea limbajului UML i descriere special pentru care-va
echipamente mecanice.
73
deplasate, atunci aceast situaie trebuie s fie exclus prin introducerea n modelul nodutilor
adugtori, care conin procesorul i memorie.
n timpul elaborrii programelor simple, care sunt executate local n un calculator aa ca n cazul de
diagrama de componente necesitatea n diagrama de plasare pot lipsi deloc. n cazurile mai
compuse diagrama de plasare este construit pentru aa restricii ca:
Modelarea sistemelor de programare, ce realizeaz tehnologie de acces la datele clientserver. Pentru aa fel de sisteme este caracter divizare strict a puterilor i respectiv
componentelor ntre stanii lucrtoare a clienilor i serverul bazei de date. Posibilitatea
realizrii clienelor fine n terminalele sau organizarea accesului la depozitul de date duce
la necesitatea preciziei nu numai topologiei sistemului,dar i la coninutul componentelor .
Modelarea arhitecturilor desfurate diferite. Aceast este despre intrareelele corporative,ce
conin sute de calculatoare i altor echipamentelor pereferice, care funcioneaz n diferite
platforme i sub diferite sisteme operaionale. n urma cruia unele noduri sistemului acest
au distana ntre sine sute de kilometre (filialele companiei). n cazul acest diagrama de
plasare devine un instrument important de vizualizare topologiei generale a sistemului i
controlului migraiei unor componente ntre noduri.
n sfrit, sistemele cu microprocesoare, care pot funciona autonom. Aa fel de sisteme pot
conine diferite echipamente adugtoare, care garanteaz autonomia funcionrii lor i
rezolvarea problemelor. Pentru aceste sisteme diagrama de plasare d posibilitate de a
vizualiza coninutul acestor echipamente i intreconexiunea lor n sistemul.
Ca regul, elaborarea diagramei de plasare este realizat la etapa final a OOAP, ce caracterizeaz
sfiritul fazei de proiectare reprezentrii fizice. Din alt parte, diagrama de plasare poate fi
construit pentru analiza sistemului respectiv cu scopul analizei i modificrii urmtoare. n urma
cruia analiza presupune elaborarea acestei diagrame la etapa ei iniial ,ce caracterizeaz direcia
general analizei de la reprezentarea fizic la logic.
n timpul modelrii busines-proceselor diagrama de plasare n afar de calculatoare reelei
corporative poate conine n calitate de noduri diferite mijloace a orgtehnicei (fax, staii multicanale
de telefon). n urma cruia fiecare din echipamente respective poate funciona autonom i n
structura reelei corporative.
Dac este necesar de introdus n model surs de Internet, atunci n diagrama de plasare Internet
reprezint norul cu numele respectiv. Aceast indicare nu este specificat n limbajul UML, totui
ea este rar utilizat n timpul elaborrii modelelor a sistemelor desfurate.
n sfrit este necesar de a nota o situaie important, caracter elaborrii tuturor diagramelor
canonive. Dei n limbajul UML este definit notarea grafic pentru toate elemente a diagramelor
canonice, metode de reprezentare grafic a unor mijloacelor instrumentale au particularitile
specifice. Utilizarea CASE- mijloc instrumental duce la restricie la vizualizarea modelelor
sistemelor de programare. Merge vorba despre aceea c, unele elemente a limbajului UML pot lipsi
n CASE mijloace. Ieirea din aceast situaie poate fi legat ori cu alegearea altui instrument, ce
susine ultimile versiuni a limbajului UML, ori simplificarea modelului la baza de tipizrii ei.
n capitolul 12 care-va din aceste aspecte vor fi desfurate mai detaliat n exemplul CASE
mijloace Rational Rose 98/981.
74