Diagrama de componente

Diagramele de componente reprezintă relaţiile dintre componentele sistemului descris. În cadrul UML 2.0 o componentă este considerată independentă şi oferă altor componente acces la anumite funcţionalităţi prin intermediul unor interfeţe. În mod uzual diagramele de componentele sunt utilizate pentru descrierea la nivel înalt a structurii sistemului.

Principalele elemente ale unei diagrame de componente sunt:

O componentă expune un set de interfeţe ce reprezintă servicii pe care aceasta le oferă sau pe care le utilizează. În figura 1 este exemplificată diagrama de componente compusă din componentele Sensor ce implementează interfaţa ISensorData şi componenta Controller ce utilizează interfaţa pusă la dispoziţie de Sensor.

FIGURA 1

Între două componente pot fi reprezentate şi asocieri simple reprezentate printr-o linie ce le uneşte. Aceste asocieri specifică o relaţie de colaborare între două componente fără a intra în detalii cu privire la interfeţele expuse sau cele folosite. Un exemplu de asociere între două componente este prezentat în figura 3. A se remarca modul în care componentele sunt reprezentate, această notaţie fiind introdusă în versiunea UML 2.0.

FIGURA 3

O componentă poate fi formată la rândul ei din mai multe componente. În această situaţie elementul componentă poate fi reprezentat având o dimensiune mai mare şi înăuntrul ei fiind plasate alte componente ce fac parte din aceasta. În figura 2.4.35 este reprezentată componenta CofeeMaker formată din componentele Heater, DosageUnit şi Controller ce interacţionează.

FIGURA 4

În figură a fost introdusă şi notaţia de port. În sensul diagramelor UML portul este un mecanism prin care o componentă internă a unei componente expune către exterior o serie de funcţionalităţi ( de exemplu componenta Controller expune interfaţa IOrderProduct) sau prin care o componentă internă accesează funcţii externe (de exemplu componenta Controller utilizează interfaţa IPayment a unei entităţi externe). În mod uzual între o componentă internă şi un port se realizează o asociere de tip delegat.

Pentru a specifica faptul că două componente comunică între ele prin intermediul porturilor se poate realiza atât asociere directă între cele două porturi cât şi asociere prin intermediul interfeţelor expuse de porturi. Un exemplu în acest sens este prezentat în figura 6.

FIGURA 5

Diagrama de componente este o diagramă utilă folosită de arhitectul de sistem în fazele iniţiale de proiectare a sistemului pentru a evidenţia principalele componente software ale acestuia şi modul în care acestea colaborează.