Diagrame de interacțiune, colaborare și secvență cu exemple
Ce este Diagrama de interacțiune?
Diagrama de interacțiune sunt folosite în UML pentru a stabili comunicarea între obiecte. Nu manipulează datele asociate cu calea de comunicare particulară. Diagramele de interacțiune se concentrează în principal pe transmiterea mesajelor și pe modul în care aceste mesaje alcătuiesc o funcționalitate a unui sistem. Diagramele de interacțiune sunt concepute pentru a afișa modul în care obiectele vor realiza cerințele specifice ale unui sistem. Componenta critică într-o diagramă de interacțiune este linia de viață și mesajele.
Diverse elemente UML dețin de obicei diagrame de interacțiune. Detaliile interacțiunii pot fi afișate folosind mai multe notații, cum ar fi diagrama de secvență, diagrama de sincronizare, diagrama de comunicare/colaborare. Diagramele de interacțiune surprind comportamentul dinamic al oricărui sistem.

Următoarele sunt diferitele tipuri de diagrame de interacțiune definite în UML:
- Diagrama secvenței
- Diagrama de colaborare
- Diagrama de timp
Scopul unei diagrame secvențe în Diagrama UML este de a vizualiza secvența unui flux de mesaje în sistem. Diagrama de secvență din Inginerie software arată interacțiunea dintre două linii de viață ca o secvență de evenimente ordonată în timp.
Diagrama de colaborare în UML se mai numește și diagramă de comunicare. Scopul unei diagrame de colaborare este de a sublinia aspectele structurale ale unui sistem, adică modul în care se conectează diferite linii de viață din sistem.
Diagramele de timp se concentrează pe momentul în care un mesaj este trimis de la un obiect la altul.
Scopul unei diagrame de interacțiune
Diagramele de interacțiune vă ajută să vizualizați comportamentul interactiv al unui sistem. Diagramele de interacțiune sunt folosite pentru a reprezenta modul în care unul sau mai multe obiecte din sistem se conectează și comunică între ele.
Diagramele de interacțiune se concentrează pe comportamentul dinamic al unui sistem. O diagramă de interacțiune ne oferă contextul unei interacțiuni între una sau mai multe linii de viață din sistem.
In UML, diagramele de interacțiune sunt utilizate în următoarele scopuri:
- Diagramele de interacțiune sunt folosite pentru a observa comportamentul dinamic al unui sistem.
- Diagrama de interacțiune vizualizează comunicarea și secvența transmiterii mesajelor în sistem.
- Diagrama de modelare a interacțiunii reprezintă aspectele structurale ale diferitelor obiecte din sistem.
- Diagrama de interacțiune reprezintă succesiunea ordonată de interacțiuni în cadrul unui sistem.
- Diagrama de interacțiune oferă mijloacele de vizualizare a datelor în timp real prin UML.
- Diagramele de interacțiune UML pot fi folosite pentru a explica arhitectura unui sistem orientat pe obiecte sau a unui sistem distribuit.
Terminologie importantă
O diagramă de interacțiune conține linii de viață, mesaje, operatori, invarianți de stare și constrângeri.
Linia vieții
O coadă de salvare reprezintă un singur participant la o interacțiune. Descrie modul în care o instanță a unui anumit clasificator participă la interacțiune.
O linie de salvare reprezintă un rol pe care o instanță a clasificatorului îl poate juca în interacțiune. Următoarele sunt diverse atribute ale unui colac de salvare,
- Nume
- Este folosit pentru a trimite linia de salvare în cadrul unei interacțiuni specifice.
- Numele unei coloane de salvare este opțional.
- Tip
- Este numele unui clasificator al cărui linie de salvare reprezintă o instanță.
- Selector de
- Este o condiție booleană care este utilizată pentru a selecta o anumită instanță care satisface cerințele.
- Atributul selector este, de asemenea, opțional.
Notarea liniei de viață este explicată în secțiunea de notare.
Chat cont
Un mesaj este un tip specific de comunicare între două linii de salvare într-o interacțiune. Un mesaj presupune următoarele activități,
- Un mesaj de apel care este folosit pentru a apela o operație.
- Un mesaj pentru a crea o instanță.
- Un mesaj pentru a distruge o instanță.
- Pentru trimiterea unui semnal.
Când o linie de salvare primește un mesaj de apel, acționează ca o solicitare de a invoca o operație care are o semnătură similară cu cea specificată în mesaj. Când un colac de salvare execută un mesaj, acesta are un accent de control. Pe măsură ce interacțiunea progresează de-a lungul timpului, centrul de control se mișcă între diferite linii de viață. Această mișcare se numește flux de control.
Următoarele sunt mesajele utilizate într-o diagramă de interacțiune cu sistem:
Numele mesajului | Sens |
---|---|
Syncmesaj cinstit | Expeditorul unui mesaj continuă să aștepte ca receptorul să revină controlul de la execuția mesajului. |
Mesaj asincron | Expeditorul nu așteaptă retur de la destinatar; în schimb, continuă execuția unui mesaj următor. |
Retur mesaj | Receptorul unui mesaj anterior returnează emițătorului centrul de control. |
Crearea obiectelor | Expeditorul creează o instanță a unui clasificator. |
Distrugerea obiectelor | Expeditorul distruge instanța creată. |
Mesaj găsit | Expeditorul mesajului se află în afara domeniului de interacțiune. |
Mesaj pierdut | Mesajul nu ajunge niciodată la destinație și se pierde în interacțiune. |
Stați invarianții și constrângerile
Când o instanță sau o linie de salvare primește un mesaj, acesta poate determina schimbarea stării. O stare este o condiție sau o situație pe parcursul unei vieți a unui obiect la care satisface o constrângere, efectuează unele operații și așteaptă un eveniment.
În diagrama de interacțiune, nu toate mesajele determină schimbarea stării unei instanțe. Unele mesaje nu au valorile unor atribute. Nu are efecte secundare asupra stării unui obiect.
OperaTdR
Un operator specifică o operație despre modul în care operanzii vor fi executați. Operatorii din UML acceptă operațiuni pe date sub formă de ramificare, precum și o iterație. Pot fi utilizați diverși operatori pentru a asigura utilizarea iterației și a ramificării în modelul UML. Operatorii opt și alt sunt utilizați pentru operațiuni de ramificare. Operatorul de buclă este utilizat pentru a asigura operațiile de iterație în care o condiție este executată în mod repetat până la obținerea unui rezultat satisfăcător. Operatorul Break este utilizat în cadrul operațiilor de buclă sau de iterație. Acesta asigură că bucla se încheie ori de câte ori este întâlnit un operator de pauză. Dacă nu este specificată o condiție de întrerupere, atunci bucla execută un număr infinit de ori, ceea ce duce la blocarea programului.
Următoarele sunt operatorii utilizați într-o diagramă de interacțiune:
OperaTdR | Nume | Sens |
---|---|---|
Opta | Opțiune | Un operand este executat dacă condiția este adevărată. de exemplu, dacă altfel |
Alt | alternativă | Operandul, a cărui condiție este adevărată, este executat. de exemplu, comutator |
Buclă | Buclă | Este folosit pentru a bucla o instrucțiune pentru o perioadă specificată. |
Pauză | Pauză | Se întrerupe bucla dacă o condiție este adevărată sau falsă și următoarea instrucțiune este executată. |
Ref | Referinţă | Este folosit pentru a se referi la o altă interacțiune. |
de | Paralel | Toți operanzii sunt executați în paralel. |
Repetare
Într-o diagramă de interacțiune, putem arăta și iterația folosind o expresie de iterație. O expresie de iterație constă dintr-un specificator de iterație și o clauză de iterație opțională. Nu există o sintaxă prespecificată pentru iterația UML.
În iterație pentru a arăta că mesajele sunt trimise în paralel, este utilizat specificatorul de iterație paralelă. Un specificator de iterație paralelă este notat cu *//. Iterația în UML se realizează prin utilizarea operatorului buclă.
branșament
Într-o diagramă de interacțiune, putem reprezenta ramificarea prin adăugarea unor condiții de pază la mesaje. Condițiile de gardă sunt folosite pentru a verifica dacă un mesaj poate fi trimis sau nu. Un mesaj este trimis înainte numai atunci când condiția de gardă este adevărată. Un mesaj poate avea mai multe condiții de pază sau mai multe mesaje pot avea aceeași condiție de pază. Ramificarea în UML se realizează cu ajutorul operatorilor alt și opt.
Acestea sunt unele dintre Cel mai important terminologii utilizate în diagrama de interacțiune UML.
Tipuri de diagrame de interacțiune și notații
Următoarele sunt diferitele tipuri de diagrame de interacțiune definite în UML:
- Diagrama secvenței
- Diagrama de colaborare
- Diagrama de timp
Notația de bază a interacțiunii este un dreptunghi cu un pentagon în colțul din stânga sus al unei casete dreptunghiulare.
Ce este o diagramă de secvență?
A Diagrama secvenței pur și simplu descrie interacțiunea dintre obiecte într-o ordine secvențială. Scopul unei diagrame de secvență în UML este de a vizualiza secvența unui flux de mesaje în sistem. Diagrama secvenței arată interacțiunea dintre două linii de viață ca o secvență de evenimente ordonată în timp.
- O diagramă de secvență arată o implementare a unui scenariu în sistem. Liniile de salvare din sistem iau parte la execuția unui sistem.
- Într-o diagramă de secvență, o linie de viață este reprezentată de o bară verticală.
- Un flux de mesaje între două sau mai multe obiecte este reprezentat folosind o linie punctată verticală care se extinde în partea de jos a paginii.
- Într-o diagramă de secvență, sunt utilizate diferite tipuri de mesaje și operatori care sunt descriși mai sus.
- Într-o diagramă de secvență, se utilizează și iterația și ramificarea.
Diagrama de secvență de mai sus conține notații de salvare și notarea diferitelor mesaje utilizate într-o diagramă de secvență, cum ar fi un mesaj de creare, răspuns, asincron etc.
Exemplu de diagramă de secvență
Următorul exemplu de diagramă de secvență reprezintă sistemul de comandă McDonald's:
Secvența ordonată de evenimente într-o diagramă de secvență dată este după cum urmează:
- Plasa o comanda.
- Plătiți bani la ghișeul de numerar.
- Confirmarea comenzii.
- Pregatirea comenzii.
- Servirea comenzii.
Dacă cineva schimbă ordinea operațiunilor, atunci poate duce la blocarea programului. De asemenea, poate duce la generarea de rezultate incorecte sau greșite. Fiecare secvență din diagrama de secvență de mai sus este indicată folosind un tip diferit de mesaj. Nu se poate folosi același tip de mesaj pentru a desemna toate interacțiunile din diagramă deoarece creează complicații în sistem.
Trebuie să fiți atenți când selectați notarea unui mesaj pentru orice interacțiune anume. Notația trebuie să se potrivească cu secvența particulară din interiorul diagramei.
Beneficiile unei diagrame secvențe
- Diagramele de secvență sunt folosite pentru a explora orice aplicație reală sau un sistem.
- Diagramele de secvență sunt folosite pentru a reprezenta fluxul de mesaje de la un obiect la altul.
- Diagramele de secvențe sunt mai ușor de întreținut.
- Diagramele de secvență sunt mai ușor de generat.
- Diagramele de secvență pot fi actualizate cu ușurință în funcție de modificările din cadrul unui sistem.
- Diagrama de secvență permite inginerie inversă și înainte.
Dezavantajele unei diagrame de secvențe
- Diagramele de secvență pot deveni complexe atunci când sunt implicate prea multe linii de viață în sistem.
- Dacă ordinea secvenței mesajelor este schimbată, atunci se produc rezultate incorecte.
- Fiecare secvență trebuie reprezentată folosind o notație diferită a mesajelor, care poate fi puțin complexă.
- Tipul de mesaj decide tipul secvenței din interiorul diagramei.
Ce este diagrama de colaborare?
Diagrama de colaborare descrie relațiile și interacțiunile dintre obiectele software. Ele sunt folosite pentru a înțelege arhitectura obiectului dintr-un sistem, mai degrabă decât fluxul unui mesaj ca într-o diagramă de secvență. Ele sunt cunoscute și sub denumirea de „Diagrame de comunicare”.
În conformitate cu programarea orientată pe obiecte (OOP), o entitate obiect are diverse atribute asociate cu ea. De obicei, există mai multe obiecte prezente în interiorul unui sistem orientat pe obiecte, unde fiecare obiect poate fi asociat cu orice alt obiect din interiorul sistemului. Diagramele de colaborare sunt folosite pentru a explora arhitectura obiectelor din interiorul sistemului. Fluxul de mesaje dintre obiecte poate fi reprezentat folosind o diagramă de colaborare.
Beneficiile diagramei de colaborare
- Se mai numește și diagramă de comunicare.
- Subliniază aspectele structurale ale unei diagrame de interacțiune - modul în care se conectează linia vieții.
- Sintaxa sa este similară cu cea a diagramei secvențe, cu excepția faptului că linia de viață nu are cozi.
- Mesajele trecute prin secvențiere sunt indicate prin numerotarea ierarhică a fiecărui mesaj.
- În comparație cu diagrama de secvență, diagrama de comunicare este slabă din punct de vedere semantic.
- Diagramele de obiecte sunt un caz special de diagramă de comunicare.
- Vă permite să vă concentrați pe elemente, mai degrabă decât să vă concentrați pe fluxul de mesaje, așa cum este descris în diagrama de secvență.
- Diagramele de secvență pot fi ușor convertite într-o diagramă de colaborare, deoarece diagramele de colaborare nu sunt foarte expresive.
- În timpul modelării diagramelor de colaborare cu diagrame de secvență, unele informații se pot pierde.
Notarea diagramei de colaborare de mai sus conține linii de viață împreună cu conectori, bucle proprii, mesaje înainte și invers utilizate într-o diagramă de colaborare.
Dezavantajele unei diagrame de colaborare
- Diagramele de colaborare pot deveni complexe atunci când sunt prezente prea multe obiecte în sistem.
- Este greu să explorezi fiecare obiect din interiorul sistemului.
- Diagramele de colaborare necesită timp.
- Obiectul este distrus după terminarea unui program.
- Starea unui obiect se schimbă momentan, ceea ce face dificilă urmărirea fiecărei schimbări care are loc într-un obiect al unui sistem.
Diagrama de colaborare Exemplu
Următoarea diagramă reprezintă succesiunea sistemului de management al elevilor:
Diagrama de colaborare de mai sus reprezintă un sistem de management al informației elevilor. Fluxul de comunicare din diagrama de mai sus este dat de,
- Un student solicită o autentificare prin intermediul sistemului de conectare.
- Un mecanism de autentificare al software-ului verifică cererea.
- Dacă în baza de date există o intrare de student, atunci accesul este permis; în caz contrar, se returnează o eroare.
Ce este diagrama de sincronizare?
Diagrama de sincronizare este o formă de undă sau un grafic care este folosit pentru a descrie starea unei linii de viață în orice moment de timp. Este folosit pentru a desemna transformarea unui obiect dintr-o formă într-o altă formă. Diagrama de sincronizare nu conține notații așa cum se cere în diagrama de succesiune și colaborare. Fluxul dintre programul software în diferite momente de timp este reprezentat folosind o formă de undă.
- Este o reprezentare adecvată a interacțiunilor care se concentrează pe momentele specifice ale mesajelor trimise între diferite obiecte.
- Diagramele de timp sunt folosite pentru a explica procesarea detaliată a timpului unui anumit obiect.
- Diagramele de timp sunt folosite pentru a explica modul în care un obiect se schimbă în timpul vieții sale.
- Diagramele de sincronizare sunt utilizate în principal cu sistemele distribuite și încorporate.
- În UML, diagramele de sincronizare sunt citite de la stânga la dreapta în funcție de numele unei linii de salvare specificate la marginea din stânga.
- Diagramele de sincronizare sunt folosite pentru a reprezenta diverse schimbări care apar din când în când în cadrul unei linii de salvare.
- Diagramele de timp sunt utilizate pentru a afișa o reprezentare grafică a diferitelor stări ale unei linii de viață pe unitatea de timp.
- UML oferă diverse notații pentru a simplifica starea de tranziție între două linii de viață pe unitatea de timp.
Diagrama de timp Exemplu
Diagrama de timp prezentată mai jos reprezintă câteva faze ale a ciclul de viață al dezvoltării software-ului.
În diagrama de mai sus, mai întâi, software-ul trece prin faza de cerințe apoi faza de proiectare și mai târziu faza de dezvoltare. Ieșirea fazei anterioare la acel moment dat este dată celei de-a doua faze ca intrare. Astfel, diagrama de timp poate fi folosită pentru a descrie SDLC (Software Development Life Cycle) în UML.
Beneficiile unei diagrame de sincronizare
- Diagramele de timp sunt folosite pentru a reprezenta starea unui obiect la un anumit moment de timp.
- Diagrama de sincronizare permite inginerie inversă și înainte.
- Diagrama de sincronizare poate fi utilizată pentru a ține evidența fiecărei modificări din interiorul sistemului.
Dezavantajele unei diagrame de sincronizare
- Diagramele de timp sunt greu de înțeles.
- Diagramele de timp sunt greu de întreținut.
Cum se desenează o diagramă de interacțiune?
Diagramele de interacțiune sunt folosite pentru a reprezenta comportamentul interactiv al unui sistem. Diagramele de interacțiune se concentrează pe comportamentul dinamic al unui sistem. O diagramă de interacțiune ne oferă contextul unei interacțiuni între una sau mai multe linii de viață din sistem.
Pentru a desena o diagramă de interacțiune, trebuie mai întâi să determinați scenariul pentru care trebuie să desenați o diagramă de interacțiune. După ce ați decis situația, identificați diversele linii de salvare care vor fi implicate în interacțiune. Clasificați toate elementele de salvare și explorați-le pentru a identifica posibilele conexiuni și modul în care sunt legate între ele. Pentru a desena o diagramă de interacțiune, sunt necesare următoarele lucruri:
- Numărul total de linii de salvare care vor face parte dintr-o interacțiune
- este o secvență de flux de mesaje în cadrul diferitelor obiecte ale unui sistem.
- Diversi operatori pentru a ușura funcționalitatea unei diagrame de interacțiune.
- Diverse tipuri de mesaje pentru a afișa interacțiunea mai clar și într-o manieră precisă.
- Secvența ordonată de mesaje.
- Organizarea și structura unui obiect.
- Diverse construcții temporale ale unui obiect.
Utilizarea unei diagrame de interacțiune
Diagramele de interacțiune constau dintr-o diagramă de secvență, diagramă de colaborare și diagrame de sincronizare. Următorul este scopul specific al unei diagrame de interacțiune:
- Diagramele de secvență sunt folosite pentru a explora orice aplicație reală sau un sistem.
- Diagramele de interacțiune sunt folosite pentru a explora și compara utilizarea secvenței, a colaborărilor și a diagramelor de timp.
- Diagramele de interacțiune sunt folosite pentru a surprinde comportamentul unui sistem. Afișează structura dinamică a unui sistem.
- Diagramele de secvență sunt folosite pentru a reprezenta fluxul de mesaje de la un obiect la altul.
- Diagramele de colaborare sunt folosite pentru a înțelege arhitectura obiectului unui sistem, mai degrabă decât fluxul de mesaje.
- Diagramele de interacțiune sunt folosite pentru a modela un sistem ca o secvență de evenimente ordonată în timp.
- Diagramele de interacțiune sunt utilizate atât în inginerie inversă, cât și în inginerie directă.
- Diagramele de interacțiune sunt folosite pentru a organiza structura elementelor interactive.
Rezumat
- Interacțiunile sunt pur și simplu unități ale comportamentului unui clasificator.
- Elementele critice dintr-o diagramă de interacțiune sunt linia de viață și mesajele.
- Diagramele de interacțiune se concentrează în principal pe transmiterea mesajelor.
- Diagramele de interacțiune surprind comportamentul dinamic al oricărui sistem.
- Diagrama de interacțiune conține diagrama de secvență, diagrama de sincronizare, diagrama de comunicare/colaborare.
- Diagrama de secvență UML este de a vizualiza secvența unui flux de mesaje în sistem.
- Scopul unei diagrame de colaborare este de a sublinia aspectele structurale.
- Diagramele de timp se concentrează pe momentul în care un mesaj este trimis de la un obiect la altul.