Tipurile de linii sunt utilizate în diagramele uml. Modelare UML

Acasă / Instalarea dispozitivului

UML este un limbaj unificat de modelare grafică pentru descrierea, vizualizarea, proiectarea și documentarea sistemelor OO. UML este conceput pentru a sprijini procesul de modelare a software-ului bazat pe abordarea OO, pentru a organiza relația dintre conceptele conceptuale și de program și pentru a reflecta problemele de scalare a sistemelor complexe. Modelele UML sunt utilizate în toate etapele ciclului de viață al software-ului, de la analiza afacerii până la întreținerea sistemului. Diverse organizații pot aplica UML la discreția lor, în funcție de zonele lor problematice și de tehnologiile utilizate.

O scurtă istorie a UML

Până la mijlocul anilor '90, diverși autori au propus câteva zeci de metode de modelare OO, fiecare dintre ele folosind propria sa notație grafică. Mai mult, fiecare dintre aceste metode avea propriile sale metode punctele forte, dar nu ne-a permis să construim un model suficient de complet al PS, să-l arătăm „din toate părțile”, adică toate proiecțiile necesare (vezi articolul 1). În plus, lipsa unui standard de modelare OO a îngreunat pentru dezvoltatori alegerea celei mai potrivite metode, ceea ce a împiedicat adoptarea pe scară largă a abordării OO pentru dezvoltarea de software.

La solicitarea Object Management Group (OMG), organizația responsabilă cu adoptarea standardelor în domeniul tehnologiilor obiectelor și bazelor de date, problema urgentă a unificării și standardizării a fost rezolvată de autorii celor mai populare trei metode OO - G Butch, D. Rambo și A. Jacobson, care au combinat eforturile, au creat versiunea UML 1.1, aprobată de OMG în 1997 ca standard.

UML este un limbaj

Orice limbă constă dintr-un vocabular și reguli de combinare a cuvintelor pentru a crea construcții semnificative. Acesta este, în special, modul în care sunt structurate limbajele de programare, cum ar fi UML. Caracteristica sa distinctivă este că dicționarul de limbă este format din elemente grafice. Fiecare simbol grafic are asociată o semantică specifică, astfel încât un model creat de un dezvoltator poate fi înțeles clar de către altul, precum și de un instrument software care interpretează UML. De aici, în special, rezultă că un model de software prezentat în UML poate fi tradus automat într-un limbaj de programare OO (precum Java, C++, VisualBasic), adică dacă există un instrument bun de modelare vizuală care suportă UML, având construit modelul, vom primi și semifabricatul codul programului, corespunzător acestui model.

Trebuie subliniat faptul că UML este un limbaj, nu o metodă. Acesta explică din ce elemente să creați modele și cum să le citiți, dar nu spune nimic despre ce modele ar trebui dezvoltate și în ce cazuri. Pentru a crea o metodă bazată pe UML, este necesar să o completați cu o descriere a procesului de dezvoltare software. Un exemplu de astfel de proces este Procesul Rațional Unificat, care va fi discutat în articolele următoare.

Dicţionar UML

Modelul este reprezentat sub formă de entități și relații dintre ele, care sunt prezentate în diagrame.

Entități sunt abstractizări care sunt elementele principale ale modelelor. Există patru tipuri de entități - structurale (clasă, interfață, componentă, caz de utilizare, colaborare, nod), comportamentală (interacțiune, stare), grupare (pachete) și adnotare (comentarii). Fiecare tip de entitate are propria sa reprezentare grafică. Entitățile vor fi discutate în detaliu atunci când se studiază diagramele.

Relaţie arată diverse legături între entităţi. Următoarele tipuri de relații sunt definite în UML:

  • Dependenta arată o astfel de legătură între două entități atunci când o modificare a uneia dintre ele - independentă - poate afecta semantica celeilalte - dependente. Dependența este reprezentată de o săgeată punctată direcționată de la entitatea dependentă la cea independentă.
  • Asociere este o relație structurală care arată că obiectele unei entități sunt legate de obiectele alteia. Grafic, o asociere este prezentată ca o linie care conectează entitățile asociate. Asociațiile servesc la navigarea între obiecte. De exemplu, asocierea dintre clasele „Comandă” și „Produs” poate fi folosită pentru a găsi toate produsele specificate într-o anumită comandă, pe de o parte, sau pentru a găsi toate comenzile care conțin acest produs, pe de altă parte. Este clar că programele corespunzătoare trebuie să implementeze un mecanism care să asigure o astfel de navigare. Dacă este necesară navigarea într-o singură direcție, aceasta este indicată printr-o săgeată la sfârșitul asocierii. Un caz special de asociere este agregarea - o relație de forma „întreg” - „parte”. Grafic, este evidențiat cu un diamant la capăt lângă esența-întreg.
  • Generalizare este relația dintre o entitate-mamă și o entitate copil. În esență, această relație reflectă proprietatea moștenirii pentru clase și obiecte. Generalizarea este prezentată ca o linie care se termină cu un triunghi îndreptat către entitatea părinte. Copilul moștenește structura (atributele) și comportamentul (metodele) părintelui, dar în același timp poate avea noi elemente de structură și noi metode. UML permite moștenirea multiplă, în cazul în care o entitate este legată de mai mult de o entitate părinte.
  • Implementarea– relația dintre o entitate care definește o specificație de comportament (interfață) cu o entitate care definește implementarea acestui comportament (clasă, componentă). Această relație este folosită în mod obișnuit la modelarea componentelor și va fi descrisă mai detaliat în articolele următoare.

Diagrame. UML oferă următoarele diagrame:

  • Diagrame care descriu comportamentul sistemului:
    • Diagrame de stări
    • Diagrame de activitate,
    • Diagramele obiectelor,
    • Diagrame secvențe,
    • Diagrame de colaborare;
  • Diagrame care descriu implementarea fizică a sistemului:
    • Diagrame componente;
    • Diagrame de implementare.

Vedere de control model. Pachete.

Am spus deja că pentru ca un model să fie bine înțeles de oameni este necesar să-l organizăm ierarhic, lăsând un număr mic de entități la fiecare nivel al ierarhiei. UML include un mijloc de organizare a unei reprezentări ierarhice a unui model - pachete. Orice model constă dintr-un set de pachete care pot conține clase, cazuri de utilizare și alte entități și diagrame. Un pachet poate conține alte pachete, permițând crearea de ierarhii. UML nu furnizează diagrame de pachete separate, dar acestea pot apărea în alte diagrame. Pachetul este reprezentat ca un dreptunghi cu un marcaj.

Ce oferă UML.

  • descrierea ierarhică a unui sistem complex prin identificarea pachetelor;
  • formalizarea cerințelor funcționale pentru sistem folosind aparatul de cazuri de utilizare;
  • detalierea cerințelor sistemului prin construirea de diagrame de activitate și scenarii;
  • identificarea claselor de date și construirea unui model conceptual de date sub formă de diagrame de clasă;
  • identificarea claselor care descriu interfata utilizatorși crearea unei scheme de navigare pe ecran;
  • descrierea proceselor de interacțiune a obiectelor la îndeplinirea funcțiilor sistemului;
  • descrierea comportamentului obiectului sub formă de diagrame de activitate și stare;
  • descrierea componentelor software și interacțiunea acestora prin interfețe;
  • descrierea arhitecturii fizice a sistemului.

Și ultimul lucru...

În ciuda tuturor atractivității UML, ar fi dificil de utilizat în modelarea software reală fără instrumente de modelare vizuală. Astfel de instrumente vă permit să prezentați rapid diagrame pe ecranul de afișare, să le documentați, să generați șabloane de cod de program în diferite limbaje de programare OO și să creați scheme de baze de date. Cele mai multe dintre ele includ posibilitatea reinginerării codurilor de program - restabilirea anumitor proiecții ale modelului PS prin analiza automata codurile sursă ale programelor, ceea ce este foarte important pentru a asigura conformitatea dintre model și coduri și atunci când se proiectează sisteme care moștenesc funcționalitatea sistemelor predecesoare.

11.1. Structura limbajului de modelare unificat

Limbajul de modelare unificat (UML) este în prezent standardul de facto pentru descrierea (documentarea) rezultatelor proiectării și dezvoltării sistemelor orientate pe obiecte. Dezvoltarea UML a început în 1994 de către Grady Booch și James Rumbaugh, care au lucrat la Rational Software. În toamna anului 1995, li s-a alăturat Ivar Jacobson, iar în octombrie a acelui an, a fost lansată o versiune preliminară 0.8 a Metodei unificate. De atunci, au fost lansate mai multe versiuni ale specificației UML, dintre care două au statut de standard internațional:

UML 1.4.2 – „ISO/IEC 19501:2005. Tehnologia de informație. Procesare de distribuție deschisă. Limbajul de modelare unificat (UML). Versiunea 1.4.2” (în engleză „Tehnologia informației. Procesare distribuită deschisă. Limbajul de modelare unificat (UML). Versiunea 1.4.2”);

UML 2.4.1 - „ISO/IEC 19505-1:2012. Tehnologia informației. Object Management Group Unified Modeling Language (OMG UML). Partea 1. Infrastructură” (ing. „Information Technology -- Object Management Group Unified Modeling Language ( OMG). UML) - Partea 1: Infrastructură") și „ISO/IEC 19505-2:2012 Tehnologia informației pentru Grupul de modelare unificată (OMG UML) Partea 2. Suprastructură” (ing. „Tehnologia informației - Obiect”). Management Group Unified Modeling Language (OMG UML) - Partea 2: Suprastructură").

Cea mai recentă specificație a limbii oficiale poate fi găsită la www.omg.org.

Structura generală a UML este prezentată în figura următoare.

Orez. 11.1. Structura UML

11.2. Semantică și sintaxă UML

Semantică - o ramură a lingvisticii care studiază semnificația unităților de limbă, în primul rând cuvintele și frazele sale.

Sintaxă – moduri de combinare a cuvintelor și a formelor lor în fraze și propoziții, combinarea propozițiilor în propoziții complexe, modalități de a crea enunțuri ca parte a unui text.

Astfel, în raport cu UML, semantica și sintaxa determină stilul de prezentare (model building), care combină limbajele naturale și formale pentru a reprezenta conceptele de bază (elementele modelului) și mecanismele de extindere a acestora.

11.3. Notație UML

Notația este o interpretare grafică a semanticii pentru reprezentarea sa vizuală.

UML definește trei tip de entitate :

Structural - o abstractizare care este o reflectare a unui obiect conceptual sau fizic;

Grupare – un element folosit pentru o combinație semantică de elemente de diagramă;

Explicativ (adnotativ) – un comentariu asupra unui element de diagramă.

Următorul tabel arată scurtă descriere principalele entități utilizate în notația grafică și principalele modalități de afișare a acestora.

Tabelul 11.1. Entități

Tip Nume Desemnare Definiție (semantică)
Structural
(clasă)
Un set de obiecte care au o structură și un comportament comun

(obiect)
O abstractizare a unei entități reale sau imaginare cu granițe conceptuale, personalitate, stare și comportament clar definite. Din punct de vedere UML, obiectele sunt instanțe ale unei clase (instanțe ale unei entități)

(actor)

Inginer
servicii de cale
O entitate externă sistemului care interacționează și utilizează sistemul funcţionalitate pentru a atinge anumite obiective sau a rezolva anumite probleme. Astfel, un actor este o sursă sau un receptor extern de informații

(caz de utilizare)
Descrierea acțiunilor efectuate de sistem, ceea ce duce la un rezultat semnificativ pentru actor

(stat)
O descriere a unui moment din viața unei entități în care aceasta satisface o anumită condiție, desfășoară o activitate sau așteaptă să aibă loc un eveniment.
Cooperare
(colaborare)
Descrierea unui set de instanțe de actori, obiecte și interacțiunea acestora în procesul de rezolvare a unei anumite probleme

(componenta)
Partea fizică a sistemului (fișier), inclusiv modulele de sistem care asigură implementarea unui set consistent de interfețe

(interfata)

iCalcul
Un set de operațiuni care definește un serviciu (set de servicii) furnizat de o clasă sau componentă

(nodul)
Partea fizică a sistemului (calculator, imprimantă etc.) care oferă resurse pentru a rezolva o problemă
Gruparea
(pachet)
Mecanism general de grupare a elementelor.
Spre deosebire de o componentă, un pachet este un concept pur conceptual (abstract). Cazurile speciale ale unui pachet sunt sistemul și modelul

(fragment)
Zona de interacțiune specifică dintre instanțele actorului și obiectele

(partiție de activitate)
Un grup de operațiuni (zona de responsabilitate) efectuate de o entitate (actor, obiect, componentă, nod etc.)

(regiune de activitate întreruptibilă)
Un grup de operațiuni, a căror secvență normală de execuție poate fi întreruptă ca urmare a apariției unei situații neobișnuite
Explicativ Nota
(comentariu)
Comentariu pentru element. Se atașează la elementul comentat cu o linie întreruptă

Unele surse, în special [,], identifică, de asemenea, entități comportamentale interacțiuniŞi mașini cu stări finite, dar din punct de vedere logic ele ar trebui clasificate ca diagrame.

Unele dintre entitățile de mai sus le implică descriere detaliată pe diagrame de descompunere. Pe diagrama de nivel superior, acestea sunt marcate cu o pictogramă sau etichetă specială.

Următorul tabel oferă o descriere a tuturor tipurilor relaţii UML folosit în diagrame pentru a indica relațiile dintre entități.

Tabelul 11.3. Relaţie

Nume Desemnare Definiție (semantică)
Asociere Descrierea relatiei conexiune semnificativăîntre două sau mai multe entităţi. Cel mai general tip de relație
Agregare Un subtip de asociere care descrie relația „parte” – „întreg”, în care „partea” poate exista separat de „întreg”. Rombul este indicat din partea „întregii”. Relația este specificată numai între entități de același tip
Compoziţie Un subtip de agregare în care „părțile” nu pot exista separat de „întregul”. De regulă, „părțile” sunt create și distruse simultan cu „întregul”
Dependenţă O relație între două entități în care o schimbare într-o entitate (independentă) poate afecta starea sau comportamentul celeilalte entități (dependent). Partea săgeată indică o entitate independentă
Generalizare Relația dintre o entitate generalizată (strămoș, părinte) și o entitate specializată (descendent, fiică). Triunghiul este indicat din partea părintelui. Relația este specificată numai între entități de același tip
Realizare O relație între entități în care o entitate specifică o acțiune pe care o altă entitate se angajează să o efectueze. Relațiile sunt utilizate în două cazuri: între interfețe și clase (sau componente), între cazuri de utilizare și colaborări. Partea săgeată indică entitatea care definește acțiunea (interfață sau caz de utilizare)

Pentru asociere, se pot specifica agregarea și compoziția multiplicitate (ing. multiplicitate), care caracterizează numărul total de instanțe ale entităților care participă la relație. De obicei, este indicat pe fiecare parte a relației lângă entitatea corespunzătoare. Multiplicitatea poate fi indicată în următoarele moduri:

- * – orice număr de copii, inclusiv niciunul;

Număr întreg nenegativ – multiplicitatea este strict fixă ​​și egală cu numărul specificat (de exemplu: 1, 2 sau 5);

Interval de numere întregi nenegative „primul număr.. al doilea număr” (de exemplu: 1..5, 2..10 sau 0..5);

O gamă de numere de la o anumită valoare inițială până la un „primul număr..*” final arbitrar (de exemplu: 1..*, 5..* sau 0..*);

Listarea numerelor întregi nenegative și a intervalelor separate prin virgule (de exemplu: 1, 3..5, 10, 15..*).

Dacă multiplicitatea nu este specificată, atunci valoarea ei se presupune a fi 1. Multiplicitatea instanțelor de entitate care participă la dependență, generalizare și implementare este întotdeauna presupusă a fi 1.

Următorul tabel oferă o descriere mecanisme de expansiune , folosit pentru a clarifica semantica entităților și a relațiilor. ÎN caz general, mecanismul de extindere este un șir de text cuprins între paranteze sau ghilimele.

Tabelul 11.4. Mecanisme de expansiune

Nume Desemnare Definiție (semantică)
Stereotip
(stereotip)
« » O desemnare care specifică semantica unui element de notație (de exemplu: o dependență cu stereotipul „include” este considerată o relație de includere, iar o clasă cu stereotipul „limită” este o clasă limită)
Stare de gardă
(condiția de gardă)
Condiție booleană (de exemplu: sau [identificare finalizată])
Prescripţie
(constrângere)
{ } O regulă care limitează semantica unui element de model (de exemplu, (timp de execuție mai mic de 10 ms))
Valoare marcată
(valoare marcată)
{ } Proprietate nouă sau de clarificare a unui element de notație (de exemplu: (versiunea = 3.2))

Pe lângă stereotipurile indicate ca șir de text între ghilimele, stereotipurile grafice pot fi folosite în diagrame. Figura următoare prezintă exemple de afișaj standard și stereotip.

a) denumire standard b) denumire standard
cu stereotip de text
c) stereotip grafic

Orez. 11.2. Exemple de afișare a clasei standard și stereotip

Diagramă reprezintă o grupare de elemente de notație pentru a afișa unele aspecte ale dezvoltate sistem informatic. Diagramele sunt de obicei un graf conectat în care entitățile sunt vârfuri și relațiile sunt arce. Următorul tabel oferă scurtă descriere Diagrame UML.

Tabelul 11.5. Diagrame

Diagramă Scop
după gradul de implementare fizică prin afișarea dinamicii după aspectul afișat

(caz de utilizare)
Afișează funcțiile sistemului, interacțiunile dintre actori și funcții Logic Static Funcţional

(clasă)
Afișează un set de clase, interfețe și relații dintre ele logic sau
fizic
Static Funcțional și informațional

(pachet)
Afișează un set de pachete și relațiile dintre ele logic sau
fizic
Static Componentă
Comportamente
(comportament)

(mașină de stat)
Afișează stările unei entități și tranzițiile între ele în timpul ciclului său de viață Logic Dinamic Comportamental

(activitate)
Afișează procesele de afaceri din sistem (descrierea algoritmilor de comportament)
Interacțiuni
(interacţiune)

(secvenţă)
Afișează secvența mesajului care trece între obiecte și actori

(comunicare)
Similar cu o diagramă de secvență, dar accentul se pune pe structura interacțiunilor dintre obiecte
Implementări
(implementare)

(componenta)
Afișează componentele sistemului (programe, biblioteci, tabele etc.) și conexiunile dintre ele Fizic Static Componentă

desfășurare
Afișează amplasarea componentelor pe nodurile de rețea, precum și configurația acesteia

Standardul UML 2.x definește și diagrame suplimentare, foarte specializate:

Diagrama obiect - asemănătoare, dar obiectele sunt afișate în loc de clase;

Diagrama temporală – descrie starea unui obiect în timp;

Diagrama structurii compozite - descrie porturile (inclusiv interfețele) unei clase pentru interacțiunea cu alte clase;

Diagrama de profil - similară cu o descriere a claselor incluse în acestea;

Diagrama de prezentare a interacțiunii - similară, dar cu fragmente de interacțiune ascunse (fragmente etichetate ref). Reprezintă unul contextual (conceptual), ale cărui elemente vor fi specificate pe diagrame de descompunere separate.

În scopul unei reprezentări conceptuale lărgite a arhitecturii interne a sistemului, majoritatea construcției permite utilizarea stereotipurilor grafice stabilite pentru așa-numitele. O astfel de diagramă se numește 1, dar nu aparține listei de diagrame definite de standardul UML.

Când se dezvoltă un model separat al unui sistem, se construiesc mai multe tipuri de diagrame. Mai mult, atunci când se dezvoltă un model al unui sistem complex, de regulă, se construiesc mai multe diagrame de același tip. În același timp, nu trebuie să creați tipuri separate de diagrame dacă nu este necesar. De exemplu, diagramele și sunt interschimbabile sunt construite numai pentru obiecte cu comportament complex. Următorul tabel oferă recomandări cu privire la necesitatea dezvoltării (clarificării) diagramelor pentru modelele de sistem.

Tabelul 11.6. Relația dintre modele și diagrame

Tabelul de mai jos nu arată modelul de testare, deoarece, ca parte a construcției sale, diagramele nu sunt dezvoltate, ci verificate (testate) pentru completitudine și coerență.

Unele dintre diagrame după construirea lor necesită dezvoltare și clarificare ca parte a dezvoltării următorului model (proces tehnologic). Deci, de exemplu, acestea ar trebui clarificate în timpul dezvoltării. În modele.

4. Definiți conceptul " ".

Modelul UML(modelul UML) este o colecție de un set finit de constructe de limbaj, principalele dintre ele sunt entitățile și relațiile dintre ele.

Entitățile și relațiile model în sine sunt instanțe ale metaclaselor metamodelului.

Luând în considerare modelul UML din cele mai generale poziții, putem spune că este un grafic (mai precis, un multi-pseudo-hiper-digraf încărcat), în care vârfurile și muchiile sunt încărcate cu informații suplimentare și pot avea o structură internă complexă. . Vârfurile acestui graf sunt numite entități, iar muchiile sunt numite relații.. Restul secțiunii conține un dar rapid (preliminar). revizuire completă tipurile de entități și relații disponibile. Din fericire, nu sunt prea mulți. În capitolele următoare ale cărții, toate entitățile și relațiile sunt examinate din nou, mai detaliat și cu exemple.

1.4.1. Entități

Pentru ușurință de vedere de ansamblu, entitățile din UML pot fi împărțite în patru grupuri:

  • structural;
  • comportamentale;
  • grupare;
  • adnotative.

Entitățile structurale, după cum ați putea ghici, sunt menite să descrie structura. De obicei, entitățile structurale includ următoarele.

Obiect(obiect) 1 – o entitate care este unică și încapsulează starea și comportamentul.

Clasă(clasa) 2 – descrierea unui set de obiecte cu atribute comune care definesc starea și operațiunile care definesc comportamentul.

Interfață(interfață) 3 - un set numit de operațiuni care definește un set de servicii care pot fi solicitate de un consumator și furnizate de un furnizor de servicii.

Cooperare(colaborare) 4 - o colecție de obiecte care interacționează pentru a atinge un anumit scop.

Caracter(actor) 5 – o entitate situată în afara sistemului modelat și care interacționează direct cu acesta.

∇ O astfel de relație există cu siguranță, ceea ce este exprimat în Fig. Ierarhia tipurilor de diagrame pentru UML 1 ca relaţie de dependenţă cu stereotipul „rafina”.

∇∇ În UML 1, a apărut o asociere involuntară între diagrama de cooperare și entitatea cu același nume, care nu era în întregime adevărată și uneori era înșelătoare.

∇∇∇ În UML 2, încărcarea sintactică și semantică a diagramei de stări s-a schimbat atât de mult încât numele nu mai reflectă conținutul.

O listă de diagrame noi și denumirile lor adoptate în această carte este dată mai jos.

  • Diagrama structurii compozite
  • Diagrama pachetului
  • Diagrama mașinii de stare
  • Diagrama de comunicare
  • Diagrama de prezentare a interacțiunii
  • Diagrama de timp

În fig. Ierarhia tipurilor de diagramă pentru UML 2 (Partea 1 și 2) Este furnizată o diagramă de clasă care arată relația dintre diagrame în UML 2.

Mai târziu, în acest capitol, vom descrie pe scurt toate cele treisprezece diagrame canonice, astfel încât să avem un anumit context și vocabular pentru ceea ce urmează. Detalii sunt oferite în capitolele rămase ale cărții.

Dar înainte de a trece la următoarea secțiune, să facem o mică digresiune cu privire la modul în care standardul necesită proiectarea diagramelor. Un șablon general de prezentare a diagramei este prezentat mai jos.

Există două elemente principale de design: un cadru exterior și o etichetă cu numele diagramei. Dacă totul este simplu cu cadrul - este un dreptunghi care limitează zona în care ar trebui să fie amplasate elementele diagramei, atunci numele diagramei este scris într-un format special prezentat în Fig. Notație pentru diagrame.

Această formă complexă de etichetă nu este acceptată de toate instrumentele. Cu toate acestea, acest lucru nu este necesar, deoarece semantica este primară, iar notația este secundară. În cele ce urmează, folosim un dreptunghi ca etichetă de diagramă pe tot parcursul și acest lucru nu ar trebui să provoace confuzii.

Etichetele (tipurile) posibile pentru diagrame sunt prezentate în tabelul următor. Etichetele sugerate de standard sunt scrise în a doua coloană. Cu toate acestea, după cum a arătat practica, regulile propuse de standard nu sunt întotdeauna convenabile și justificate logic, prin urmare, a treia coloană a tabelului conține o alternativă care este rezonabilă în opinia noastră.

Masă Tipuri de diagrame și etichete

Titlul diagramei Etichetă (standard) Etichetare (sugerat)
Diagrama de utilizare caz de utilizare sau uc caz de utilizare
Diagrama de clasă clasă clasă
Diagrama mașinii mașină de stat sau stm mașină de stat
Diagrama de activitate activitate sau act activitate
Diagrama secvenței interacţiune sau SD SD
Diagrama de comunicare interacţiune sau SD comm
Diagrama componentelor componentă sau cmp componentă
Diagrama de amplasare nedefinit desfășurare
Diagrama obiectului nedefinit obiect
Diagrama structurii interne clasă clasă sau componentă
Diagrama de prezentare a interacțiunii interacţiune sau SD interacţiune
Diagrama de timp interacţiune sau SD sincronizare
Diagrama pachetului pachet sau pachet pachet

UML este un acronim care înseamnă Unified Modeling Language. De fapt, este una dintre cele mai populare tehnici de modelare a proceselor de afaceri și este o notație standard internațională pentru specificarea, vizualizarea și documentarea dezvoltării software. Definit de echipa de management al facilităților, a apărut ca urmare a mai multor sisteme suplimentare notații UML și a devenit acum standardul de facto pentru modelarea vizuală. Principiul fundamental al oricărei programari orientate pe obiecte începe cu construirea unui model.

UML a fost creat ca urmare a haosului din jurul dezvoltării și documentării software. În anii 1990 au fost mai multe în diverse moduri depuneri sisteme software. Era nevoie de o modalitate vizuală UML mai unificată de a reprezenta aceste sisteme și, ca rezultat, a fost dezvoltat între 1994 și 1996 de trei ingineri software care lucrează la Rational Software. Ulterior a fost adoptat ca standard în 1997 și rămâne așa și astăzi, cu doar câteva actualizări.

Practic, UML este un limbaj de modelare scop generalîn domeniul dezvoltării software. Cu toate acestea, acum și-a găsit drumul în documentarea mai multor procese de afaceri sau fluxuri de lucru, cum ar fi diagramele de activitate. Un tip de diagrame UML poate fi folosit ca înlocuitor pentru diagramele de flux. Acestea oferă atât o modalitate mai standardizată de modelare a fluxurilor de lucru, cât și o gamă largă de funcții pentru a îmbunătăți lizibilitatea și eficiența.

Arhitectura se bazează pe un meta-obiect, care definește baza pentru crearea limbajului UML. Este suficient de precis pentru a crea o aplicație întreagă. UML complet executabil poate fi implementat pe mai multe platforme folosind tehnologii diferite cu toate procesele de-a lungul întregului ciclu de dezvoltare software.

UML se dorește a fi un limbaj de modelare vizuală dezvoltat de utilizator. Acesta acceptă concepte de dezvoltare la nivel înalt, cum ar fi structuri, modele și colaborare. UML este un set de elemente precum:

  1. Instrucțiuni de limbaj de programare.
  2. Actori - descriu rolul jucat de utilizator sau de orice alt sistem care interacționează cu obiectul.
  3. Activități care trebuie efectuate pentru îndeplinirea contractului de muncă și sunt prezentate în diagrame.
  4. Un proces de afaceri care include un set de sarcini care creează un serviciu specific pentru clienți, vizualizate printr-o diagramă de acțiuni secvențiale.
  5. Componente software logice și reutilizabile.

Diagramele UML se împart în două categorii. Primul tip include șapte tipuri de diagrame reprezentând informații structurale, al doilea - restul de șapte, reprezentând tipuri generale de comportament. Aceste diagrame sunt folosite pentru a documenta arhitectura sistemelor și sunt direct implicate în modelarea UML a sistemului.

Diagramele UML sunt prezentate ca reprezentări statice și dinamice ale modelului de sistem. Vederea statică include diagrame de clasă și de compoziție care evidențiază structura statică. Vederea dinamică reprezintă interacțiunea dintre obiecte și modificările stărilor interne ale obiectelor folosind diagrame de secvență, activitate și stare.

O mare varietate de instrumente de modelare UML sunt disponibile pentru a simplifica modelarea, inclusiv IBM Rose, Rhapsody, MagicDraw, StarUML, ArgoUML, Umbrello, BOUML, PowerDesigner și Dia.

Utilizarea UML are diferite tipuri atât în ​​documentația de dezvoltare software, cât și în procesele de afaceri:

  1. Schiţa. În acest caz, diagramele UML sunt folosite pentru a transmite diverse aspecte și caracteristici ale sistemului. Cu toate acestea, aceasta este doar o vedere de nivel superior a sistemului și cel mai probabil nu va include toate detaliile necesare pentru a finaliza proiectul până la sfârșit.
  2. Proiectare înainte - Proiectarea schiței este realizată înainte ca aplicația să fie codificată. Acest lucru se face pentru o recenzie mai buna sistemul sau fluxul de lucru pe care utilizatorul încearcă să îl creeze. Pot fi identificate multe probleme sau deficiențe de proiectare, ceea ce va îmbunătăți starea generală de sănătate și bunăstare a proiectului.
  3. Design invers. Odată ce codul este scris, diagramele UML sunt afișate ca o formă de documentație pentru diferite activități, roluri, participanți și fluxuri de lucru.
  4. Planul. În acest caz, diagrama servește ca un design complet care necesită doar implementarea efectivă a sistemului sau a software-ului. Acest lucru se face adesea folosind instrumente CASE (Computer Aided Software Engineering Tools). Principalul dezavantaj al utilizării instrumentelor CASE este că acestea necesită un anumit nivel de cunoștințe, instruire a utilizatorilor, precum și management și personal.

UML nu este un limbaj de programare autonom precum Java, C++ sau Python, dar cu instrumentele potrivite poate deveni un limbaj de pseudo-program UML. Pentru a atinge acest obiectiv, întregul sistem trebuie să fie documentat în diagrame diferite și, folosind software-ul potrivit, diagramele pot fi traduse direct în cod. Această metodă poate fi utilă numai dacă timpul petrecut pentru desenarea diagramelor va dura mai puțin decât scrierea codului real. Deși UML a fost creat pentru modelarea sistemelor, a găsit mai multe aplicații în domeniile de afaceri.

Mai jos este un exemplu de diagramă UML pentru modelarea afacerii.

O soluție practică ar fi reprezentarea vizuală a fluxului procesului pentru televânzări printr-o diagramă de activitate. Din momentul în care comanda este luată ca intrare până în momentul în care comanda este finalizată și este dată o ieșire specifică.

Există mai multe tipuri de diagrame UML, iar fiecare dintre ele îndeplinește o sarcină diferită, fie că este dezvoltată înainte de implementare sau după, ca parte a documentației. Cele mai largi două categorii, care acoperă toate celelalte tipuri, sunt diagrama de comportament și diagrama structurii. După cum sugerează și numele, unele diagrame UML încearcă să analizeze și să descrie structura unui sistem sau proces, în timp ce altele descriu comportamentul sistemului, participanții și componentele acestuia.

Diferitele tipuri sunt împărțite după cum urmează:

  1. Nu toate cele 14 diverse tipuri Diagramele UML sunt utilizate în mod regulat atunci când se documentează sisteme și arhitecturi.
  2. Principiul Pareto se aplică și la utilizarea diagramelor UML.
  3. 20% din diagrame sunt folosite de dezvoltatori 80% din timp.

Cele mai frecvent utilizate elemente în dezvoltarea de software sunt:

  • diagrame de utilizare;
  • diagrame de clasă;
  • secvente.

Diagramele de activitate sunt cele mai importante diagrame UML pentru crearea modelelor de procese de afaceri. În dezvoltarea de software, ele sunt folosite pentru a descrie fluxul diferitelor activități. Ele pot fi fie în serie, fie în paralel. Ele descriu obiectele folosite, consumate sau produse de o activitate și relațiile dintre diferite activități.

Toate cele de mai sus sunt importante pentru modelarea proceselor de afaceri care duc de la unul la altul, deoarece sunt interconectate cu un început și un sfârșit clar. În mediul de afaceri, aceasta se mai numește și maparea proceselor de afaceri. Personajele principale sunt autorul, editorul și editorul. Ca Exemplu UML Pot fi citate următoarele. Când un examinator se uită la o schiță și decide că trebuie făcute unele modificări. Autorul revizuiește apoi proiectul și îl aduce înapoi pentru a analiza recenzia.

Diagrama de utilizare

Piatra de temelie a sistemului - folosită pentru a analiza cerințele la nivel de sistem. Aceste cerințe sunt exprimate în diferite cazuri de utilizare. Cele trei componente principale ale unei diagrame UML sunt:

  1. Funcțional - prezentat ca cazuri de utilizare.
  2. Un verb care descrie o acțiune.
  3. Actori - pentru a interacționa cu sistemul. Rolul actorului poate fi utilizatori, organizații sau o aplicație externă. Relațiile dintre participanți sunt reprezentate prin săgeți drepte.

De exemplu, pentru o diagramă de gestionare a stocurilor. În acest caz, există un proprietar, un furnizor, un manager, un specialist în inventar și un inspector de inventar. Containerele rotunde reprezintă acțiuni realizate de actori. Acțiuni posibile: cumpărarea și plata acțiunilor, verificarea calității inventarului, returnarea stocului sau distribuirea acestuia.

Acest tip de diagramă este foarte potrivit pentru a arăta comportamentul dinamic între participanții la un sistem, simplificând prezentarea acestuia fără a reflecta detaliile implementării.

Temporar

Diagramele de timp UML sunt folosite pentru a reprezenta relațiile obiectelor în care focalizarea depinde de timp. Nu este interesant modul în care obiectele interacționează sau se schimbă între ele, dar utilizatorul dorește să-și imagineze modul în care obiectele și subiectele acționează de-a lungul unei axe liniare a timpului.

Fiecare participant individual este reprezentat printr-o linie de salvare, care este în esență o linie care formează etape pe măsură ce participantul individual trece de la o etapă la alta. Accentul este pus pe durata de timp a evenimentelor și schimbările care apar în funcție de aceasta.

Principalele componente ale unei diagrame de timp sunt:

  1. Lifeline este un membru individual.
  2. Cronologia statelor - O singură cale de viață poate trece prin diferite stări în cadrul unui proces.
  3. O constrângere de durată este o constrângere de interval de timp care reprezintă durata necesară pentru satisfacerea constrângerii.
  4. Limită de timp - limitarea intervalului de timp în care ceva trebuie să fie finalizat de un participant.
  5. Apariția distrugerii - Apariția unui mesaj care distruge un participant individual și reprezintă sfârșitul ciclului de viață al acelui participant.

Diagramele orizontale, numite și diagrame de stare, sunt folosite pentru a descrie diferitele stări ale unei componente dintr-un sistem. Acceptă un format de nume finit, deoarece o diagramă este în esență o mașină care descrie stările multiple ale unui obiect și modul în care acesta se schimbă pe baza evenimentelor interne și externe.

O diagramă de stare foarte simplă a unei mașini ar fi ca un joc de șah. Un joc de șah obișnuit constă în mișcări făcute de alb și mișcări făcute de negru. Albul are prima mutare, care inițiază astfel jocul. Sfârșitul jocului poate avea loc indiferent dacă Albul sau Negrul câștigă. Jocul se poate încheia într-un meci, o escală sau o remiză (diferite stări ale mașinii). Diagramele de stat sunt utilizate în principal în proiectarea UML înainte și inversă. diverse sisteme.

Consecutiv

Acest tip de diagramă este cea mai importantă diagramă UML nu numai în rândul comunității informatice, ci și ca model la nivel de design pentru dezvoltarea aplicațiilor de afaceri. Ele sunt populare atunci când descriu procesele de afaceri datorită naturii lor vizibile din punct de vedere vizual. După cum sugerează și numele, diagramele descriu succesiunea de mesaje și interacțiuni care au loc între subiecți și obiecte. Actorii sau obiectele pot fi active numai atunci când este necesar sau când un alt obiect dorește să comunice cu ei. Toate comunicările sunt prezentate în ordine cronologică.

Pentru a obține mai mult informatii complete, puteți lua în considerare exemplul de diagramă de secvență UML de mai jos.

După cum reiese din exemplu, diagrame de structură sunt folosite pentru a afișa structura sistemului. Mai precis, limbajul este folosit în dezvoltarea de software pentru a reprezenta arhitectura unui sistem și modul în care diferitele componente sunt interconectate.

O diagramă de clasă UML este cel mai comun tip de diagramă pentru documentația software. Deoarece majoritatea programelor create astăzi se bazează încă pe paradigma de programare orientată pe obiecte, utilizarea diagramelor de clasă pentru a documenta software-ul se dovedește a fi de bun simț. Acest lucru se datorează faptului că OOP se bazează pe clase UML și pe relațiile dintre ele. Pe scurt, diagramele conțin clase, împreună cu atributele lor, numite și câmpuri de date, și comportamentul lor, numit funcții membre.

Mai precis, fiecare clasă are 3 câmpuri: nume în partea de sus, atribute chiar sub nume, operații/comportamente în partea de jos. Comunicarea între diferite clase(reprezentat printr-o linie de legătură) constituie o diagramă de clasă. Exemplul de mai sus arată o diagramă de clasă de bază.

Obiecte

Când discutăm despre diagramele de structură UML, trebuie să aprofundăm conceptele informatice. În ingineria software, clasele sunt tratate ca tipuri de date abstracte, în timp ce obiectele sunt instanțe. De exemplu, dacă există „Mașină”, care este un tip abstract general, atunci o instanță a clasei „Mașină” va fi „Audi”.

Diagramele de obiecte UML ajută dezvoltatorii de software să verifice dacă structura abstractă generată reprezintă o structură viabilă atunci când este implementată în practică, adică atunci când obiectele sunt instanțiate. Unii dezvoltatori consideră că acesta este un nivel secundar de verificare a preciziei. Afișează instanțe de clase. Mai exact, clasa generică „Client” are acum un client real, de exemplu, numit „James”. James este o instanță a unei clase mai generale și are aceleași atribute, totuși, cu valori date. La fel s-a făcut și cu cont„Conturi și economii”. Ambele sunt obiecte ale claselor lor respective.

Implementări

Diagramele de implementare sunt folosite pentru a vizualiza relația dintre software și hardware. Pentru a fi mai specific, cu diagramele de implementare, puteți construi un model fizic al modului în care componentele software (artefacte) sunt implementate pe componente hardware cunoscute sub numele de noduri.

O schemă de implementare simplificată tipică pentru o aplicație web ar include:

  1. Noduri (server de aplicații și server de baze de date).
  2. Schema de artefacte a aplicației client și a bazei de date.

Diagrama pachetului este similară cu colecția de macrocomenzi pentru diagramele de implementare UML pe care am explicat-o mai sus. Diverse pachete conțin noduri și artefacte. Ei grupează diagramele și componentele modelului în grupuri, la fel ca un spațiu de nume încapsulează diferite nume care sunt oarecum legate. În cele din urmă, un pachet poate fi construit și de mai multe alte pachete pentru a reprezenta sisteme și comportament mai complexe.

Scopul principal al unei diagrame de pachet este de a arăta relațiile dintre diferitele componente mari care alcătuiesc sistem complex. Programatorii consideră că această caracteristică de abstractizare este un avantaj bun pentru utilizarea diagramelor de pachete, mai ales atunci când unele detalii pot fi excluse din imaginea de ansamblu.

Ca orice alt lucru în viață, pentru a face ceva corect ai nevoie de instrumentele potrivite. Instrumentele care oferă adnotări UML și șabloane de diagrame sunt folosite pentru a documenta software-ul, procesele sau sistemele. Există diverse instrumente de documentare disponibile pentru software, care vă poate ajuta să desenați diagrama.

Ele se încadrează de obicei în următoarele categorii principale:

  1. Hârtia și stiloul sunt ușoare. Luați hârtie și pix, deschideți codul de sintaxă UML de pe Internet și desenați orice tip de diagramă de care aveți nevoie.
  2. Instrumente online - Există mai multe aplicații online pe care le puteți utiliza pentru a crea o diagramă. Majoritatea oferă abonament platit sau un număr limitat de diagrame la nivelul liber.
  3. Instrumentele online gratuite sunt aproape la fel cu cele plătite. Principala diferență este că cele plătite oferă și tutoriale și șabloane gata făcute pentru diagrame specifice.
  4. Aplicație desktop - Aplicația desktop tipică de utilizat pentru diagrame și aproape orice altă diagramă este Microsoft Visio. Oferă caracteristici și funcționalități avansate. Singurul dezavantaj este că trebuie să plătești pentru asta.

Astfel, este destul de clar că UML este un aspect important asociat dezvoltării software orientate pe obiecte. Folosește notația grafică pentru a crea modele vizuale programe de sistem.

UML este un limbaj de modelare grafică de uz general pentru specificarea, vizualizarea, proiectarea și documentarea tuturor artefactelor create în timpul dezvoltării sistemelor software.

Există multe cărți bune care descriu UML în detaliu (uneori chiar și în detaliu), aș dori să adun într-un singur loc conceptele de bază despre diagrame, entități și conexiuni între ele pentru o reamintire rapidă, ceva ca o foaie de cheat.

Acest articol folosește materiale din cărți: Ivanov D. Yu., Novikov F. A. Limbajul de modelare unificat UMLŞi Leonenkov. Tutorial UML.

În primul rând, să decidem cu privire la editor. Sub Linux, am încercat diferite editori UML, cel mai mult mi-a plăcut UMLet, deși este scris în Java, se mișcă foarte repede și conține majoritatea șabloanelor de entități. Există și ArgoUML, un editor UML multiplatform, scris tot în Java, care este bogat funcțional, dar încetinește mai mult.

m-am oprit la UMLet, instalează-l sub Arch LinuxŞi Ubuntu:

# pe Arch Linux yaourt -S umlet # pe Ubuntu sudo apt-get install umlet

În UML, toate entitățile pot fi împărțite în următoarele tipuri:

  • structural;
  • comportamentale;
  • grupare;
  • adnotativ;

Există patru tipuri principale de relații utilizate în UML:

Dependenţă- indică faptul că o schimbare într-o entitate independentă afectează cumva o entitate dependentă. Grafic, relația de dependență este reprezentată ca o linie punctată cu o săgeată direcționată de la entitatea dependentă la entitatea independentă.

Asociere- apare dacă o entitate este direct legată de alta (sau de altele - asocierea poate fi nu numai binară). Grafic, o asociere este descrisă ca o linie solidă cu diferite adăugiri care leagă entitățile înrudite.

Generalizare este o relație între două entități, dintre care una este un caz special (de specialitate) al celeilalte. Grafic, o generalizare este reprezentată ca o linie cu o săgeată triunghiulară, neumplută la sfârșit, îndreptată de la particular (subclasă) la general (superclasă).

Implementări- O relație de implementare indică faptul că o entitate este o implementare a alteia. Grafic, implementarea este reprezentată ca o linie punctată cu o săgeată triunghiulară, necompletă la capăt, direcționată de la entitatea de implementare la entitatea care este implementată.

ÎN UML 2 definit 13 tipuri de diagrame. Conform standardelor, fiecare diagramă trebuie să aibă un cadru cu un dreptunghi (colțul din dreapta jos teșit) în colțul din stânga sus, care indică identificatorul diagramei (eticheta) și titlul.

Diagrame pentru a descrie structura unui sistem:

  • Diagrama componentelor (tag componentă);
  • Diagrama de implementare, etichetă desfășurare);
  • Diagrama de clasă (diagrama de clasă, tag clasă);
  • Diagrama obiectului (tag obiect);
  • Diagrama structurii compozite, etichetă clasă);

Diagrame pentru reprezentarea comportamentului sistemului:

  • Diagrama de sincronizare (diagrama de interacțiune, tag sincronizare);
  • Diagrama activității (tag activitate);
  • Diagrama secvenței, etichetă SD);
  • Diagrama de comunicare (tag comm);
  • Diagrama mașinii de stare, etichetă mașină de stat);
  • diagramă de prezentare a interacțiunii, etichetă interacţiune);

Diagramele ies în evidență:

  • Diagrama cazului de utilizare (diagrama cazului de utilizare, eticheta cazului de utilizare);
  • Diagrama pachetului (diagrama pachetului, eticheta pachet);

Diagrama de utilizare

Diagrama de utilizare(diagrama cazului de utilizare) este cea mai generală reprezentare a scopului funcțional al sistemului.

Când luați în considerare o diagramă de caz de utilizare ca model al unui sistem, o puteți asocia cu un model cutie neagră. Fiecare caz de utilizare definește o secvență de acțiuni care trebuie efectuate de sistemul proiectat atunci când interacționează cu actorul corespunzător.

O diagramă de utilizare utilizează două tipuri de entități de bază: cazuri de utilizare și actori, între care se stabilesc următoarele tipuri de relații de bază.

Relația de asociere- Această relație specifică ce rol specific joacă un actor când interacționează cu o instanță de caz de utilizare. O relație de asociere este indicată de o linie solidă între un actor și un caz de utilizare. Această linie poate avea simboluri suplimentare, cum ar fi un nume și o multiplicitate.

Relația de expansiune- definește relația dintre instanțele unui anumit caz de utilizare și un caz de utilizare mai general, ale cărui proprietăți sunt determinate pe baza modului în care aceste instanțe sunt combinate împreună. Astfel, dacă există o relație de extensie de la cazul de utilizare A la cazul de utilizare B, atunci aceasta înseamnă că proprietățile unei instanțe a cazului de utilizare B pot fi extinse datorită prezenței proprietăților în cazul de utilizare extins A.

Se notează relația de extensie dintre cazurile de utilizare linie punctată cu o săgeată (opțiune de relație de dependență) îndreptată spre o parte din cazul de utilizare care este o extensie a cazului de utilizare original.

Relația de generalizare servește pentru a indica faptul că un anumit caz de utilizare A poate fi generalizat la cazul de utilizare B. În acest caz, opțiunea A va fi o specializare a opțiunii B. În acest caz, B este numit strămoș sau părinte al lui A, iar opțiunea A este un copil al opțiunii folosește V.

Grafic, această relație este reprezentată printr-o linie continuă cu o săgeată în formă de triunghi deschis, care indică cazul de utilizare părinte.

O relație de generalizare între cazurile de utilizare este utilizată atunci când este necesar să rețineți că cazurile de utilizare copii au toate atributele și comportamentul cazurilor de utilizare părinte.

Relația de incluziuneîntre două cazuri de utilizare indică faptul că un anumit comportament pentru un caz de utilizare este inclus ca o componentă constitutivă în secvența de comportamente a celuilalt caz de utilizare.

O relație de includere direcționată de la cazul de utilizare A la cazul de utilizare B indică faptul că fiecare instanță a cazului de utilizare A include proprietățile funcționale specificate pentru cazul de utilizare B.

Grafic, această relație este indicată printr-o linie punctată cu o săgeată (variantă a relației de dependență) direcționată de la cazul de utilizare de bază către cel inclus.

Diagrama de clasă

Diagrama de clasă(diagrama de clasă) este modalitatea principală de a descrie structura statică a unui sistem.

O diagramă de clase folosește un tip principal de entitate: clase (inclusiv numeroase cazuri speciale de clase: interfețe, tipuri primitive, clase de asociere etc.), între care se stabilesc următoarele tipuri principale de relații: dependențe, asocieri, generalizări, implementări.

Relație de dependențăîn general, indică o relație semantică între două elemente ale modelului sau două seturi de astfel de elemente, care nu este o relație de asociere, generalizare sau implementare. O relație de dependență este utilizată într-o situație în care unele modificări la un element de model pot necesita o schimbare la un alt element de model care depinde de acesta.

O relație de dependență este reprezentată grafic printr-o linie punctată între elementele corespunzătoare cu o săgeată la un capăt, cu săgeata îndreptată de la clasa client a dependenței către clasa independentă sau sursă.

Pot exista cuvinte cheie speciale (stereotipuri) deasupra săgeții:

  • „acces” – servește pentru a indica disponibilitatea atributelor și operațiunilor publice ale clasei sursă pentru clasele client;
  • "bind" - clasa client poate folosi un șablon pentru parametrizarea sa ulterioară;
  • „deriva” - atributele clasei de client pot fi calculate din atributele clasei sursă;
  • „import” - atributele și operațiunile publice ale clasei sursă devin parte din clasa client, ca și cum ar fi declarate direct în aceasta;
  • „rafina” - indică faptul că clasa client servește ca o rafinare a clasei sursă din motive istorice atunci când apare Informații suplimentareîn timp ce lucrează la proiect.

Relația de asociere corespunde prezenţei unor relaţii între clase. Această relație este indicată de o linie continuă cu simboluri speciale suplimentare care caracterizează proprietățile individuale ale unei anumite asociații. Ca suplimentar caractere speciale Se poate folosi numele asociației, precum și numele și multiplicitățile claselor de roluri ale asociației. Denumirea asociației este un element opțional al desemnării acesteia.

Relația de agregare apare între mai multe clase dacă una dintre clase reprezintă o entitate care include alte entități ca componente. Este folosit pentru a reprezenta relații de sistem de tip „parte-întreg”.

Raportul de compoziție este un caz special al unei relații de agregare. Această relație servește la evidențierea unei forme speciale a relației „parte-întreg”, în care părțile constitutive sunt într-un anumit sens situate în întreg. Specificul relației dintre ele constă în faptul că părțile nu pot acționa izolat de întreg, adică odată cu distrugerea întregului, toate părțile sale componente sunt distruse.

Relația de generalizare este o relaţie între un element mai general (părinte sau strămoş) şi un sau mai specific element special(copil sau descendent). Când este aplicată unei diagrame de clase, această relație descrie structura ierarhică a claselor și moștenirea proprietăților și comportamentului lor. Aceasta presupune că clasa descendentă are toate proprietățile și comportamentul clasei strămoși și, de asemenea, are propriile proprietăți și comportament pe care clasa strămoșilor nu le are.

Diagrama mașinii

Diagrama mașinii(stați diagrama mașinii) sau diagrama de stareîn UML 1 (diagrama diagramei stărilor) este o modalitate de a descrie comportamentul în detaliu în UML. În esență, diagramele mașinilor, așa cum sugerează și numele, sunt un grafic al stărilor și tranzițiilor unei mașini cu stări finite încărcate cu multe detalii și detalii suplimentare.

O diagramă de stare descrie procesul de schimbare a stărilor unei singure clase, sau mai precis, a unei instanțe a unei anumite clase, adică modelează toate modificările posibile ale stării unui anumit obiect. În acest caz, o schimbare a stării unui obiect poate fi cauzată de influențe externe ale altor obiecte sau din exterior. Diagramele de stare sunt folosite pentru a descrie reacția unui obiect la astfel de influențe externe.

Într-o diagramă automată, se utilizează un tip principal de entitate - stări și un tip de relație - tranziții, dar pentru ambele sunt definite multe varietăți, cazuri speciale și notații suplimentare. Automatul reprezintă aspectele dinamice ale sistemului modelat sub forma unui graf direcționat, ale cărui vârfuri corespund stărilor, iar arcele tranzițiilor.

Stare initiala este un caz special al unei stări care nu conține acțiuni interne (pseudo-stare). Obiectul este în această stare implicit la momentul inițial. Acesta servește la indicarea zonei grafice pe diagrama de stări de la care începe procesul de schimbare a stărilor.

Finala (finala) o stare este un caz special al unei stări care, de asemenea, nu conține acțiuni interne (pseudo-stări). Obiectul va fi în această stare în mod implicit după ce mașina și-a încheiat funcționarea la momentul final.

Diagrama de activitate

Atunci când modelăm comportamentul unui sistem proiectat sau analizat, devine necesară nu numai prezentarea procesului de modificare a stărilor acestuia, ci și detalierea caracteristicilor implementării algoritmice și logice a operațiilor efectuate de sistem.

Diagrama de activitate(diagrama activității) este un alt mod de a descrie comportamentul care seamănă vizual cu schema veche a unui algoritm. Folosit pentru modelarea procesului de efectuare a operațiunilor.

Principala utilizare a diagramelor de activitate este de a vizualiza caracteristicile de implementare ale operațiilor de clasă, atunci când este necesar să se prezinte algoritmi pentru implementarea lor.

O diagramă de activitate folosește un tip principal de entitate - acțiune și un tip de relație - tranziții (transferuri de control). Sunt folosite și construcții precum furci, fuziuni, conexiuni și ramificații. Recomandat ca nume acțiune simplă folosiți un verb cu cuvinte explicative.

Diagrama secvenței

Diagrama secvenței(diagrama secvenței) este o modalitate de a descrie comportamentul unui sistem „folosind exemple”.

De fapt, o diagramă de secvență este o înregistrare a protocolului unei anumite sesiuni a sistemului (sau un fragment al unui astfel de protocol). În programarea orientată pe obiecte, cel mai important lucru în timpul execuției este transmiterea de mesaje între obiectele care comunică. Este secvența de trimitere a mesajelor care este afișată în această diagramă, de unde și numele.

O diagramă de secvență folosește un tip de bază de entitate - instanțe de clasificatori care interacționează (în mare parte clase, componente și actori) - și un tip de relație - conexiunile de-a lungul cărora sunt schimbate mesajele.

Tipuri posibile de mesaje (imagine preluată de pe larin.in):

Diagrama de comunicare

Diagrama de comunicare(diagrama de comunicare) - un mod de a descrie comportamentul care este echivalent din punct de vedere semantic cu o diagramă de secvență. De fapt, aceasta este aceeași descriere a secvenței schimbului de mesaje a instanțelor care interacționează ale clasificatorilor, exprimată doar prin alte mijloace grafice.

Astfel, în diagrama de comunicare, precum și în diagrama de secvență, se utilizează un tip principal de entități - instanțe de clasificatori care interacționează și un tip de relație - conexiuni. Totuși, aici accentul nu este pus pe timp, ci pe structura conexiunilor dintre instanțe specifice.

Diagrama componentelor

Diagrama componentelor(diagrama componentelor) - prezintă relaţiile dintre modulele (logice sau fizice) care alcătuiesc sistemul modelat.

Principalul tip de entități dintr-o diagramă de componente sunt componentele în sine, precum și interfețele prin care sunt specificate relațiile dintre componente. Următoarele relații se aplică într-o diagramă de componente:

  • implementări între componente și interfețe (o componentă implementează o interfață);
  • dependențe între componente și interfețe (componenta folosește interfața);

Diagrama de amplasare

Diagrama de amplasare(diagrama de implementare), împreună cu afișarea compoziției și conexiunilor elementelor sistemului, arată modul în care acestea sunt localizate fizic pe resursele de calcul în timpul execuției.

Într-o diagramă de aspect, în comparație cu o diagramă de componente, se adaugă două tipuri de entități: un artefact, care este o implementare a unei componente și a unui nod (poate fi fie un clasificator care descrie tipul de nod, fie o instanță specifică) și un relație de asociere între noduri, indicând faptul că nodurile sunt conectate fizic în timpul execuției.

Diagrama obiectului

Diagrama obiectului(diagrama obiectului) - este o instanță a unei diagrame de clasă.

O diagramă obiect folosește un tip principal de entitate: obiecte (instanțe de clase), între care sunt indicate conexiuni specifice (cel mai adesea instanțe de asocieri). Diagramele de obiecte sunt de natură auxiliară - de fapt, acestea sunt exemple (memory dumps, s-ar putea spune) care arată ce obiecte sunt disponibile și conexiunile dintre ele la un anumit moment al funcționării sistemului.

Diagrama structurii interne(diagrama structurii compozite) este folosită pentru o reprezentare mai detaliată a clasificatorilor structurali, în primul rând clase și componente.

Un clasificator structural este reprezentat ca un dreptunghi cu numele clasificatorului în partea de sus. Sunt piese înăuntru. Pot fi mai multe părți. Părțile pot interacționa între ele. Acest lucru este indicat folosind conectori de diferite tipuri. Locația de la limita exterioară a părții de care se atașează conectorul se numește port. Porturile sunt, de asemenea, situate la limita exterioară a clasificatorului structural.

Diagrama de prezentare a interacțiunii O diagramă de prezentare generală a interacțiunii este un tip de diagramă de activitate cu o sintaxă extinsă: elementele unei diagrame de prezentare generală a interacțiunii pot fi legături către utilizări ale interacțiunii definite de diagramele de secvență.

Diagrama de timp

Diagrama de timp Diagrama de timp este o formă specială de diagramă de secvență care se concentrează asupra stărilor de schimbare ale diferitelor instanțe de clasificare și sincronizarea lor.

Diagrama pachetului

Diagrama pachetului(diagrama pachetului) este singurul instrument care vă permite să gestionați complexitatea modelului în sine.

Elementele principale ale notației sunt pachetele și dependențele cu diverse stereotipuri.

Model entitate-relație (model ER)

Analogic diagrame de clasă(UML) poate Model ER, care este utilizat la proiectarea bazelor de date (model relațional).

Modelul entitate-relație (model ER) este un model de date care vă permite să descrieți diagrame conceptuale ale unui domeniu. Modelul ER este utilizat în proiectarea bazelor de date la nivel înalt (conceptual). Cu ajutorul acestuia, puteți identifica entitățile cheie și puteți identifica conexiunile care pot fi stabilite între aceste entități. wikipedia

Orice fragment dintr-un domeniu poate fi reprezentat ca un set de entități, între care există o serie de conexiuni.

Concepte de baza:

Esenţă(entitate) este un obiect care poate fi identificat într-un fel care îl deosebește de alte obiecte, de exemplu, CLIENTUL 777. O entitate este de fapt un set de atribute.

Set de entitati(set de entități) - un set de entități de același tip (având aceleași proprietăți).

Conexiune(relația) este o asociere stabilită între mai multe entități.

Domeniu(domeniu) - set de valori (domeniu de definiție) ale atributului.

Există trei tipuri de legături binare:

  • unu la unu- o singură instanță a unei entități dintr-o clasă este asociată cu o singură instanță a unei entități dintr-o altă clasă, de exemplu, ȘEF - DEPARTAMENT;
  • 1 la N sau unu la multi- o singură instanță a unei entități dintr-o clasă este asociată cu mai multe instanțe ale unei entități din altă clasă, de exemplu, DEPARTAMENT - ANGAJAT;
  • N la M sau multi la multi- multe instanțe ale unei entități dintr-o clasă sunt asociate cu mai multe instanțe ale unei entități din altă clasă, de exemplu, ANGAJAT - PROIECT;
  • Dicționar de concepte de bază în UML

    Obiect- o entitate care este unică și încapsulează starea și comportamentul.

    Clasă- descrierea unui set de obiecte cu atribute comune care definesc starea si operatii care definesc comportamentul.

    Interfață- un set numit de operațiuni care definește un set de servicii care pot fi solicitate de un consumator și furnizate de un furnizor de servicii.

    Cooperare- un set de obiecte care interactioneaza pentru a atinge un anumit scop.

    Actor- o entitate situată în afara sistemului modelat și care interacționează direct cu acesta.

    Componentă- o parte modulară a sistemului cu un set clar definit de interfețe necesare și furnizate.

    Artefact- un element de informație care este utilizat sau generat în timpul procesului de dezvoltare software. Cu alte cuvinte, un artefact este o unitate fizică de implementare derivată dintr-un element model (cum ar fi o clasă sau o componentă).

    Nodul- o resursă de calcul pe care sunt localizate artefacte și, dacă este necesar, executate.

    Entitățile comportamentale sunt menite să descrie comportamentul. Există doar două entități comportamentale principale: stare și acțiune.

    Stat- o perioadă din ciclul de viață al unui obiect, în care obiectul satisface o anumită condiție și își desfășoară propriile activități sau așteaptă apariția unui eveniment.

    Acţiune- calculul atomic primitiv.

    Maşină este un pachet care definește multe concepte necesare pentru a reprezenta comportamentul entității modelate sub forma unui spațiu discret cu un număr finit de stări și tranziții.

    Clasificator este un descriptor al unui set de obiecte de același tip.

    Lectură suplimentară

    • Fowler M. UML. Fundamente, ediția a 3-a
    • Buch G., Rambo D., Jacobson I. limbajul UML. Ghidul utilizatorului

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații