Diagrama de secventa

Diagramele de secvenţe descriu interacţiunile dintre două sau mai multe entităţi şi ordinea în care mesajele sunt schimbate între acestea. Sun folosite în special pentru a reprezentat interacţiunile dintre obiecte.

Diagramele de secvenţe sunt utilizate pentru:

  • Descrierea scenariilor de utilizare a aplicaţiei. Pentru fiecare diagramă a cazurilor de utilizare definită în cadrul procesului de analiză se pot defini unul sau mai multe scenarii de utilizare prin care se evidenţiază fluxurile de mesaje între sistem şi utilizator sau intre componentele sistemului;
  • Descrierea logicii metodelor – diagramele de secvenţe pot fi folosite pentru a descrie logica de funcţionare a funcţiilor sau proceselor complexe;
  • Descrierea logicii unui serviciu sau proces – pentru a implementa o funcţie complexă la nivelul sistemului este nevoie ca două sau mai multe componente să interacţioneze. Diagramele de secvenţe permit reprezentarea fluxurilor de mesaje între componentele sistemului, evidenţiind şi constrângerile temporare (ordine de execuţie, durate de execuţie, termene limită).

Elementele asociate cu diagramele de secvenţe sunt: liniile de viaţă, mesajele şi fragmentele.

Linia de viaţă este un obiect sau o entitate ce recepţionează mesaje sau transmite mesaje către componente de acelaşi tip. Este reprezentată sub forma unui dreptunghi ce conţine numele şi \ sau tipul componentei. De la acest dreptunghi pleacă o linie punctată ce reprezintă linia timpului.

În figura 1 este reprezentat un obiect al cărui nume este ctrl şi este instanţă a clasei ManualControl.

FIGURA 1

Mesajele sunt utilizate pentru a reprezenta schimburile de date şi informaţii dintre liniile de viaţă. Pentru a arăta faptul că un obiect transmite un mesaj către un alt obiect se trasează o săgeată orizontală având capătul localizat pe linia de viaţă a obiectului transmiţător şi vârful pe linia de viaţă a obiectului receptor.

FIGURA 2

În exemplul din figura 2. este reprezentată interacţiunea dintre două obiecte. Numele mesajului este trecut în dreptul săgeţii şi reprezintă un serviciu sau o metodă pe care obiectul receptor o implementează. Opţional, pot fi reprezentate în cadrul diagramelor de secvenţe şi mesajele de răspuns prin săgeţi punctate având vârful localizat pe obiectul ce primeşte răspunsul. Există situaţii în care un obiect trebuie să trimită un mesaj către el însuşi. În aceste situaţii săgeata reprezentând mesajul are capătul şi vârful localizate pe aceiaşi linie de viaţă.

Mesajele transmise între liniile de viaţă pot fi de tip sincron sau asincron. Mesajele de tip sincron sunt reprezentate sub forma unor săgeţi pline iar mesajele asincrone sub forma unor săgeţi simple conform exemplului din figura 3.

FIGURA 3

În versiunea UML 2.0 au fost introduse în cadrul diagramelor de secvenţe fragmentele combinate. Un fragment delimitează într-o zonă rectangulară unul sau mai multe mesaje. Acestea sunt utilizate pentru a denota anumite caracteristici speciale ale setului de mesaje marcate.

În figura 4 este reprezentat un fragment loop ce marchează un set de mesaje ce se execută în mod repetitiv şi un fragment optional ce se execută dacă se îndeplineşte o condiţie.

FIGURA 4

Fiecare fragment combinat poate avea ataşată o condiţie care defineşte regulile de intrare sau de ieşire din acel fragment după cum se observă în figura de mai sus. Fragmentele alternative modelează secvenţe de mesaje ce se execută alternativ în funcţie de valoarea de adevăr a unei expresii (similar structurii if-else). În figura 5 este exemplificat un fragment alternativ.

FIGURA 5

Pentru sistemele de timp real, informaţiile referitoare la timp pot fi ataşate la diagrame fie prin adnotaţii de text fie prin atribute ataşate elementelor diagramei. Putem ataşa la diagramele de tip atribute cu privire la duratele de execuţie, întârzierile mesajelor şi constrângerile temporare. Astfel este posibil ca folosind diagramele de secvenţe să se specifice şi să se identifice constrângerile de timp la care trebuie să facă faţă sistemul. În figura 6 este exemplificată o diagramă de secvenţe în care sunt ataşate constrângerile de timp mesajelor şi activităţilor.

FIGURA 6

Diagramele de secvenţe sunt utile atât în procesul de documentare a cerinţelor cât şi în procesul de proiectare a aplicaţiei. Acestea permit reprezentarea logicii de interacţiune a componentelor cât şi ordinea în care mesajele sunt transmise. Diagramele de secvenţe nu reprezintă în mod explicit asocierile şi relaţiile între componente, şi de aceea ele trebuiesc completate de diagrame de tip structural care permite reprezentarea relaţiilor între componente.