Analiza si gestiunea sistemelor informatice complexe
Curs 8

Diagrame de implementare

Back Up Next

        Diagramele de implementare surprind aspecte privind modelele de implementare, fizice, ale sistemelor informatice, inclusiv structura codului sursă şi arhitectura sistemului in executie.  În UML există două tipuri distincte de diagrame de implementare:
            - diagramele de componente, care descriu dependentele dintre componentele software (cod sursa, fisiere binare, executabile) şi
            - diagramele de exploatare, care descriu configuratia elementelor de procesare a executiei unui sistem informatic si componentele, procesele si obiectele ce se executa in cadrul acestor elemente de procesare.

Diagrame de componente

        O diagramă de componente prezintă dependenţele existente între diverse componente software (cod sursă, cod binar, executabile, librarii cu legare dinamica etc) ce compun un sistem informatic.  Aceste dependente sunt statice (au loc in etapele de compilare sau link-editare) sau dinamice (au loc in timpul executiei).

        O componenta este un modul soft (cod sursa, cod binar, dll, executabil etc) cu o interfata bine definita. Un tip de componentă reprezintă o parte distinctă, realocabilă,  a implementării unui sistem.  Instanţa unei componente este o unitatea de implementare în execuţie şi poate fi utilizată pentru reprezentarea unităţilor de implementare care au o identitate în momentul execuţiei.

        Reprezentarea grafică a componentelor în UML este dată în figura 1. Un tip de componentă are asociat un nume, iar o instanţă a unei componente are asociate (opţional) un nume şi un tip. In general numele unei componente este numele fisierului reprezentat de componenta. Obiectele implementate de o instanţă de componentă se reprezintă grafic în interiorul simbolului instanţei de componentă.  În mod analog se reprezintă grafic clasele implementate în componente.


Figura 1.
Reprezentarea grafica a componentelor in UML

         Diagrama de componente este un graf de componente între care există relaţii de dependenţă sau de compunere (componente incluse fizic în alte componente).

        Dependentele intre componente se reprezinta grafic prin linii întrerupte între o componentă client şi o componentă furnizor de servicii, orientate spre componenta furnizor. Relatia de dependeta semnifica faptul ca clasele incluse in componenta client pot mosteni, instantia sau utiliza clase incluse in componenta furnizor (sau server). 

        O diagramă care conţine tipuri de componente poate fi utilizată, spre exemplu, pentru reprezentarea de dependenţe statice, cum este dependenţa de compilare între diverse programe (figura 2).  


Figura 2. Dependente statice si doua reprezentari grafice alternative 
a componentelor in Rational Rose

        De asemenea, pot exista relatii de dependenta intre componente si interfete ale altor componente, relatii care semnifica faptul ca clientul utilizeaza operatii ale componentei server (figura 3).


Figura 3.
Dependente dinamice
intre componentele unui sistem informatic
de gestiune a biletelor de calatorie cu avionul

        Compunerile se reprezinta grafic prin 'incuibarirea' simbolurilor asociate obiectelor sau claselor in cadrul simbolului unei componente.

        Instrumentul Rational Rose introduce o serie de stereotipuri predefinite pentru componente:
            - programe principale (<<Main Program>>)
            - subprograme (<<SubProgram>>)
            - pachete (<<Package>>)
            - librarii cu legare dinamica (<<DLL>>)
            - procese ( <<Task>> )
            - executabile ( <<EXE>> )

Diagrame de exploatare

        Diagramele de exploatare prezintă configuraţia elementelor de procesare din timpul execuţiei şi componentele, procesele şi obiectele care le conţin.  Fiecare model al unui sistem informatic are asociata o singura diagrama de exploatare.  Instanţele componentelor soft reprezintă manifestări a unor unităţi de cod în cadrul execuţiei.  Componentele care nu există ca entităţi de execuţie nu apar în aceste diagrame, ci doar în diagramele de componente.

        O diagramă de exploatare este un graf de noduri conectate prin asocieri de comunicare.  Nodurile pot conţine instanţe ale componentelor (componenta există sau se execută pe nodul respectiv). Componentele pot conţine obiecte (acestea sunt localizate în componente).  Componentele sunt conectate cu alte componente sau interfeţele acestora prin intermediul unor relaţii de dependenţă (săgeţi întrerupte) ceea ce reprezintă faptul că o componentă foloseşte serviciile altei componente.  Pot fi utilizate stereotipuri pentru a preciza în detaliu tipul dependenţei dintre componente.

        Un nod este o entitate fizică ce reprezintă o resursă de procesare, având o memorie şi anumite capabilităţi de procesare (dispozitive de calcul, resurse umane, resurse de procesare mecanică).

        Un nod este reprezentat grafic prin intemediul unui paralelipiped. Un tip de nod are asociat un nume, iar o instanţă a unui nod are asociate (opţional) un nume de instanţă şi un nume de tip (nume instanţă : nume tip).  O asociere între două noduri indică existenţa unei căi de comunicare între noduri.  Asocierea poate avea un stereotip care să indice tipul de comunicare (tipul de canal, reţea).

        Diagramele de exploatare pot fi utilizate pentru reprezentarea componentelor ce pot aparţine anumitor noduri. Această relaţie se reprezintă grafic prin intermediul unei linii întrerupte între un nod şi o componentă, având stereotipul <<support>> sau prin ‘încuibărirea’ grafică a  simbolului componentei în cadrul simbolului ce reprezintă nodul (figura 4).


Figura 4.
Diagrama de exploatare pentru o aplicatie
de gestiune a biletelor de calatorie cu avionul

        Migrarea instanţelor de componente dintr-un nod în altul, sau migrarea obiectelor de la o componentă la alta poate fi implementată grafic utilizând stereotipul <<become>> ataşat relaţiei de dependenţă.  În această situaţie instanţa componentei/obiectul vor aparţine unei instanţe a unui nod/unei instanţe de componentă doar o perioadă de timp din ciclul lor de viaţă.

        Instrumentul Rational Rose contine un editor de diagrame de exploatare particulare. Aceste diagrame de exploatare contin noduri de doua tipuri: procesoare si dispozitive.  Intre aceste noduri se pot trasa relatii de conexiune.  

        Procesoarele reprezinta componente hard capabile sa execute programe. La nivelul fiecarui procesor pot fi identificate procese si modul de planificare al acestora (preemptiv, non-preemptiv, ciclic, prin intermediul unui algoritm particular sau manual) - figura 5.  

        In aceste diagrame, procesele reprezintă fire de excutiedistince (ex. programul principal, sau obiecte active).


Figura 5.
Reprezentarea grafica a procesoarelor in Rational Rose

        Dispozitivele reprezinta componente hard fara putere de calcul. Numele asociat unui dispozitiv este in general unul generic (ex. imprimanta, modem, terminal etc) - figura 6.

        O conexiune reprezinta o legatura hard (in general bidirectionala) intre doua dispozitive sau procesoare. 


Figura 6.
Diagrama de exploatare a unui sistem informatic oarecare

 

Back Up Next