Diagrama de colaborare

Diagramele de colaborare (cunoscute şi sub numele de diagramele de comunicare) ilustrează fluxurile de mesaje şi legăturile dintre componentele sistemului. Sunt similare cu diagramele de secvenţe dare spre deosebire de acestea timpul nu este reprezentat ca o dimensiune separată.

Diagramele de colaborare sunt utilizate pentru:

  • A descrie diverse scenarii de funcţionare a aplicaţiei prin reprezentarea fluxurilor de mesaje dintre obiecte;
  • A prezenta organizarea spaţială a obiectelor şi legăturile dintre acestea;

Principalele elemente ale unei diagrame de colaborare sunt:

  • Obiectele sunt reprezentate sub forma unor dreptunghiuri în interiorul cărora este scris numele obiectului şi clasa din care face parte (ex: obiect:Clasa);
  • Legăturile sunt reprezentate sub forma unor linii ce conectează obiectele între care are loc schimbul de mesaje. Legăturile nu oferă informaţii cu privire la tipul şi direcţia în care mesajele sunt transmise ci doar specifică faptul că între două obiecte există un schimb de mesaje;
  • Mesajele sunt reprezentate sub forma unor săgeţi cu capătul orientat înspre obiectul ce transmite mesajul şi vârful orientat spre obiectul ce recepţioneză mesajul. Săgeata este însoţită de numele mesajului transmis şi un număr de ordine. Mesajele sunt adăugate pe legăturile dintre obiecte.

În figura 1 este reprezentată diagrama de colaborare dintre două obiecte.

FIGURA 1

Deoarece atât diagrama de secvenţe cât şi diagrama de colaborare sunt specializate pe reprezentarea fluxurilor de mesaje, o diagrama de colaborare poate fi convertită într-o diagrama de secvenţe. De exemplu diagrama din figura de mai poate fi convertită într-o diagramă de secvenţe conform cu cea din figura 2.4.6. din paragraful anterior.

În figura 2 este exemplificată o diagramă de colaborare între patru obiecte.

FIGURA 2

Împreună cu diagramele de secvenţe, diagramele de colaborare sunt folosite pentru descrierea comportamentului sistemului din punctul de vedere al interacţiunilor dintre componente.

Un caz particular al diagramelor de colaborare sunt diagramele de concurenţă cunoscute şi sub numele de diagrame de task-uri. Acestea sunt o îmbunătăţire adusă în cadrul UML odată cu versiunea 2.0 şi sunt utile în cadrul procesului de descriere a sistemelor de timp real. Aceste diagrame capturează informaţii cu privire la structura de taskuri a aplicaţiei şi mecanismele de comunicare şi sincronizare folosite. În acest scop următoarele tipuri de elemente pot fi folosite pentru a descrie structura unui proces de timp real: task-uri, evenimente, cozi de mesaje, căsuţe de mesaje şi elemente de temporizare.