Ce este relația UML?
Relațiile în UML sunt utilizate pentru a reprezenta o legătură între lucruri structurale, comportamentale sau de grupare. Se mai numește o legătură care descrie modul în care două sau mai multe lucruri se pot lega între ele în timpul executării unui sistem. Tipul de relație UML este asocierea, dependența, generalizarea și realizarea.
Să le studiem în detaliu
- Asociere
Este un set de legături care conectează elemente ale modelului UML. De asemenea, definește câte obiecte participă la această relație.
- Dependenţă
Într-o relație de dependență, așa cum sugerează și numele, două sau mai multe elemente sunt dependente unul de celălalt. În acest tip de relație, dacă schimbăm un anumit element, atunci este posibil ca toate celelalte elemente să fie afectate și de schimbare.
- Generalizare
Se mai numește și relație părinte-copil. În general, un element este o specializare a altei componente generale. Poate fi înlocuit de acesta. Este folosit mai ales pentru a reprezenta moștenirea.
- Realizare
Într-o relație de realizare a UML, o entitate denotă o anumită responsabilitate care nu este implementată de ea însăși și cealaltă entitate care le implementează. Această relație se găsește mai ales în cazul interfețelor.
În acest tutorial UML, veți afla:
- Asociere
- Dependenţă
- Generalizare
- Realizare
- Compoziţie
- Agregare
Asociere
Este o relație structurală care reprezintă obiecte care pot fi conectate sau asociate cu un alt obiect din interiorul sistemului. Următoarele constrângeri pot fi aplicate relației de asociere.
- {implicit} - constrângerile implicite specifică faptul că relația nu este manifestă; se bazează pe un concept.
- {ordonat} - constrângerile ordonate specifică faptul că setul de obiecte de la un capăt al unei asociații sunt într-un mod specific.
- {modificabil} - Constrângerea modificabilă specifică faptul că conexiunea dintre diferite obiecte din sistem poate fi adăugată, eliminată și modificată conform cerințelor.
- {addOnly} - Specifică că noile conexiuni pot fi adăugate dintr-un obiect care este situat la celălalt capăt al unei asociații.
- {înghețat} - specifică faptul că atunci când se adaugă un link între două obiecte, atunci acesta nu poate fi modificat în timp ce constrângerea înghețată este activă pe legătura dată sau pe o conexiune.
De asemenea, putem crea o clasă care are proprietăți de asociere; este numit ca o clasă de asociere.
Asociere reflexivă
Asocierea reflexivă este un subtip de relație de asociere în UML. Într-o asociere reflexivă, instanțele aceleiași clase pot fi legate între ele. O instanță a unei clase se spune, de asemenea, că este un obiect.
Asocierea reflexivă afirmă că o legătură sau o conexiune poate fi prezentă în obiectele aceleiași clase.
Să luăm în considerare un exemplu de fruct de clasă. Clasa cu fructe are două cazuri, cum ar fi mango și măr. Asocierea reflexivă afirmă că o legătură între mango și măr poate fi prezentă, deoarece acestea sunt cazuri din aceeași clasă, cum ar fi fructele.
Asociație regizată
După cum sugerează și numele, asocierea direcționată este legată de direcția fluxului în cadrul claselor de asociere.
Într-o asociere dirijată, fluxul este direcționat. Asocierea de la o clasă la alta clasă curge într-o singură direcție.
Se notează folosind o linie continuă cu o vârf de săgeată.
Exemplu:
Puteți spune că există o relație de asociere direcționată între un server și un client. Un server poate procesa cererile unui client. Acest flux este unidirecțional, care curge de la server la client. Prin urmare, o relație de asociere direcționată poate fi prezentă în cadrul serverelor și clienților unui sistem.
Dependenţă
Folosind o relație de dependență în UML, se poate relata modul în care diferite lucruri din interiorul unui anumit sistem sunt dependente unele de altele. Dependența este utilizată pentru a descrie relația dintre diferitele elemente din UML care sunt dependente unul de celălalt.
Stereotipuri
- « Legare » - Legarea este o constrângere care specifică faptul că sursa poate inițializa șablonul la o locație țintă, utilizând parametrii sau valorile furnizate.
- «Deriva» - Reprezintă că locația unui obiect sursă poate fi calculată din obiectul țintă.
- «Prieten» - Specifică faptul că sursa are vizibilitate unică în obiectul țintă.
- «InstanceOf» - Specifică faptul că instanța unui clasificator țintă este obiectul sursă.
- «Instantiate» - Specifică faptul că obiectul sursă este capabil să creeze instanțe ale unui obiect țintă.
- «Rafinare» - Specifică faptul că obiectul sursă are o abstractizare excepțională decât cea a obiectului țintă.
- «Utilizare» - Se utilizează atunci când pachetele sunt create în UML. Stereotipul de utilizare descrie că elementele unui pachet sursă pot fi prezente și în interiorul pachetului țintă. Descrie că pachetul sursă folosește unele elemente ale unui pachet țintă.
- «Substitut» - specifică faptul că clientul poate fi înlocuit de furnizor în timpul rulării.
- «Acces» - Specifică faptul că pachetul sursă accesează elementele pachetului țintă, care este, de asemenea, numit ca o fuziune privată.
- «Import» - Specifică faptul că ținta poate importa elementul unui pachet sursă, așa cum sunt definite în interiorul țintei, care este, de asemenea, numită o fuziune publică.
- «Permis» - specifică faptul că elementul sursă are acces la elementul furnizor indiferent de vizibilitatea declarată a furnizorului.
- «Extinde» - Vă ajută să specificați că ținta poate extinde comportamentul elementului sursă.
- «Include» - Vă permite să specificați elementul sursă care poate include comportamentul unui alt element la o locație specificată. (la fel ca un apel de funcție în c / c ++)
- «Devenit» - Specifică faptul că ținta este similară sursei cu valori și roluri diferite.
- «Apel» - Specifică faptul că sursa poate invoca o metodă obiect țintă.
- «Copiere» - Specifică faptul că obiectul țintă este independent, copia unui obiect sursă.
- «Parametru» - furnizorul este un parametru al operațiunilor clientului .
- «Trimitere» - clientul este o operațiune care trimite furnizorului o țintă nespecificată.
Stereotipuri între mașina de stat
- «Trimitere» - Specifică faptul că operațiunea sursă trimite evenimentul țintă.
Generalizare
Este o relație între o entitate generală și o entitate unică care este prezentă în interiorul sistemului.
Într-o relație de generalizare, conceptul orientat pe obiecte numit moștenire poate fi implementat. Există o relație de generalizare între două obiecte, numite și ca entități sau lucruri. Într-o relație de generalizare, o entitate este părinte, iar alta se spune că este ca un copil. Aceste entități pot fi reprezentate folosind moștenirea.
În moștenire, un copil al oricărui părinte poate accesa, actualiza sau moșteni funcționalitatea așa cum este specificat în obiectul părinte. Un obiect copil își poate adăuga funcționalitatea și poate moșteni structura și comportamentul unui obiect părinte.
Acest tip de relație cunoscut în mod colectiv ca o relație de generalizare.
Stereotipurile și constrângerile lor
- „Implementare” - Acest stereotip este utilizat pentru a reprezenta faptul că entitatea copil este implementată de entitatea părinte prin moștenirea structurii și comportamentului unui obiect părinte fără a încălca regulile. Notă Acest stereotip este utilizat pe scară largă într-o singură moștenire .
Relația de generalizare conține constrângeri cum ar fi completă, incompletă pentru a verifica dacă toate entitățile copil sunt incluse sau nu în relație.
Realizare
Într-o relație de realizare a UML, o entitate denotă o anumită responsabilitate care nu este implementată de ea însăși și cealaltă entitate care le implementează. Această relație se găsește mai ales în cazul interfețelor.
Realizarea poate fi reprezentată în două moduri:
- Folosind o formă canonică
- Folosind o formă elidată
În diagrama de mai sus, regulile de afaceri ale contului realizează interfața IRuleAgent.
Tipuri de realizare:
- Formă canonică
Într-o relație de realizare a UML, forma canonică este utilizată pentru a realiza interfețe în sistem. Folosește un stereotip de interfață pentru a crea o interfață și relația de realizare este utilizată pentru a realiza interfața specială.
Într-o formă canonică, relația de realizare este notată folosind linia punctată direcționată cu o vârf de săgeată deschisă considerabilă.
În diagrama de mai sus, interfața Iruleagent este realizată folosind un obiect numit Reguli de afaceri pentru cont.
- Forma eludată
Realizarea în diagrama clasei UML poate fi, de asemenea, afișată folosind un formular elidat. Într-o formă elidată, interfața este notată folosind un cerc care este, de asemenea, numit ca notație lollipop.
Această interfață, atunci când este realizată folosind orice este prezent în interiorul sistemului, creează o structură elidată.
În diagrama de mai sus, interfața Iruleagent este notată folosind o formă elidată care este realizată de acctrule.dll.
Compoziţie
Nu este o relație UML standard, dar este încă utilizată în diverse aplicații.
Agregarea compusă este un subtip de relație de agregare cu caracteristici precum:
- este o asociere bidirecțională între obiecte.
- Este o relație întreagă / parțială.
- Dacă un compozit este șters, toate celelalte părți asociate acestuia sunt șterse.
Agregarea compusă este descrisă ca o asociere binară decorată cu un diamant negru umplut la capătul agregat (întreg).
Un folder este o structură care conține n număr de fișiere în el. Un folder este utilizat pentru a stoca fișierele în interiorul acestuia. Fiecare folder poate fi asociat cu orice număr de fișiere. Într-un sistem informatic, fiecare fișier face parte din cel puțin un folder din sistemul de organizare a fișierelor. Același fișier poate face parte, de asemenea, dintr-un alt folder, dar nu este obligatoriu. Ori de câte ori un fișier este eliminat din folder, acesta rămâne neafectat, în timp ce datele referitoare la acel fișier sunt distruse. Dacă o operațiune de ștergere este executată în dosar, atunci afectează și toate fișierele care sunt prezente în dosar. Toate fișierele asociate folderului sunt distruse automat odată ce folderul este eliminat din sistem.
Acest tip de relație în UML este cunoscut prin relația de agregare compusă.
Agregare
O agregare este un subtip al unei relații de asociere în UML. Agregarea și compoziția sunt ambele tipuri de relații de asociere în UML. O relație de agregare poate fi descrisă în cuvinte simple ca „un obiect dintr-o clasă poate deține sau accesa obiectele altei clase”.
Într-o relație de agregare, obiectul dependent rămâne în sfera unei relații chiar și atunci când obiectul sursă este distrus.
Să luăm în considerare un exemplu de mașină și roată. O mașină are nevoie de o roată pentru a funcționa corect, dar o roată nu are întotdeauna nevoie de o mașină. Poate fi folosit și cu bicicleta, bicicleta sau orice alte vehicule, dar nu cu o anumită mașină. Aici, obiectul roții este semnificativ chiar și fără obiectul mașinii. Un astfel de tip de relație se numește relație de agregare.
rezumat
- Relația în UML permite ca un lucru să se relaționeze cu alte lucruri din interiorul sistemului.
- O relație de asociere, dependență, generalizare și realizare sunt definite de UML.
- Relația de compoziție poate fi, de asemenea, utilizată pentru a reprezenta că obiectul poate face parte dintr-un singur compozit la un moment dat.
- Asocierea este utilizată pentru a descrie că un obiect poate fi asociat cu un alt obiect.
- Dependența indică faptul că obiectele pot fi dependente unele de altele.
- O realizare este o relație semnificativă între clasificatori.
- Generalizarea este numită și ca relație părinte-copil.