UML ( Engleză Unified Modeling Language - un limbaj de modelare unificat) este un limbaj de descriere grafică pentru modelarea obiectelor în domeniul dezvoltării software , pentru modelarea proceselor de afaceri , proiectarea sistemelor și afișarea structurilor organizaționale .
UML este un limbaj general, este un standard deschis care folosește notația grafică pentru a crea un model abstract al unui sistem numit model UML . UML a fost creat pentru a defini, vizualiza, proiecta și documenta, practic, sisteme software . UML nu este un limbaj de programare , dar generarea de cod este posibilă pe baza modelelor UML .
UML permite, de asemenea, dezvoltatorilor de software să convină asupra notației grafice pentru a reprezenta concepte comune (cum ar fi clasă , componentă , generalizare , agregare și comportament ) și să se concentreze mai mult pe design și arhitectură .
Condițiile preliminare pentru apariția limbajului de modelare UML au fost identificate în legătură cu dezvoltarea rapidă în a doua jumătate a secolului al XX-lea a limbajelor de programare orientate pe obiecte ( Simula 67 , Smalltalk , Objective C , C++ etc.) . Datorită complicațiilor continue a produselor software create, este nevoie să se ia în considerare din ce în ce mai multe caracteristici noi ale limbajelor și instrumentelor de dezvoltare în analiza, formularea cerințelor și în procesul de proiectare a aplicațiilor software. De exemplu, într-o perioadă scurtă de timp, din 1989 până în 1994, numărul de instrumente orientate pe obiect a crescut de la o duzină la mai mult de cincizeci. Cu toate acestea, mulți dezvoltatori au găsit dificil să aleagă un limbaj de modelare care să le satisfacă pe deplin toate nevoile. Drept urmare, a apărut o nouă generație de metode de dezvoltare, printre care metoda Booch , creată de Jacobson Object-Oriented Software Engineering ( OOSE ) și dezvoltată de Rambaud Object Modeling Technique ( OMT ), a câștigat o popularitate deosebită. Pe lângă acestea, au existat și alte tehnologii finalizate, precum Fusion , Shlaer-Mellor și Coad-Yourdon , totuși, toate aveau nu numai avantaje, ci și dezavantaje semnificative [1] .
În 1994, Grady Booch și James Rumbaugh , lucrând pentru Rational Software , și-au unit forțele pentru a crea un nou limbaj de modelare orientat pe obiecte. Ei au luat ca bază a limbajului metodele de modelare ale Tehnicii de modelare a obiectelor și Booch . OMT sa concentrat pe analiză, în timp ce Booch sa concentrat pe proiectarea sistemelor software. În octombrie 1995, a fost lansată o versiune preliminară 0.8 a Metodei unificate . În toamna anului 1995, Ivar Jakobson , autorul lucrării Object-Oriented Software Engineering - OOSE, sa alăturat Rational . OOSE a oferit capabilități excelente pentru specificarea proceselor de afaceri și analiza cerințelor prin cazuri de utilizare . OOSE a fost, de asemenea, integrat în metoda unificată.
În această etapă, rolul principal în organizarea procesului de dezvoltare UML a trecut la consorțiul OMG (Object Management Group) . Echipa de proiectare de la OMG, care a inclus și Butch, Rambeau și Jacobson ("cei trei amigos"), a lansat specificațiile UML versiunile 0.9 și 0.91 în iunie și octombrie 1996 .
Versiune | Data acceptarii |
---|---|
1.1 | noiembrie 1997 [2] |
1.3 | martie 2000 [3] |
1.4 | septembrie 2001 [4] |
1.4.2 | iulie 2004 [3] |
1.5 | martie 2003 [5] |
2.0 | iulie 2005 [6] |
2.1 | neacceptat oficial [3] |
2.1.1 | august 2007 [7] |
2.1.2 | noiembrie 2007 [8] |
2.2 | februarie 2009 [9] |
2.3 | mai 2010 [10] |
2.4 beta 2 | martie 2011 [11] |
2.5 | iunie 2015 [12] |
2.5.1 | decembrie 2017 [13] |
În urma interesului crescând pentru UML , companii precum Digital Equipment Corporation , Hewlett-Packard , i-Logix, IntelliCorp, IBM , ICON Computing, MCI Systemhouse, Microsoft , Oracle Corporation , Rational Software s-au alăturat dezvoltării de noi versiuni ale limba în cadrul consorțiului UML Partners , Texas Instruments și Unisys . Colaborarea a dus la specificația UML 1.0, lansată în ianuarie 1997 . A fost urmată în noiembrie același an de versiunea 1.1, care conținea îmbunătățiri de notație, precum și unele extensii semantice.
Versiunile ulterioare ale UML au inclus versiunile 1.3, 1.4 și 1.5, publicate în iunie 1999 , septembrie 2001 și, respectiv, martie 2003 .
UML 1.4.2 a fost adoptat ca standard internațional ISO / IEC 19501:2005 [12] .
Specificația oficială pentru UML 2.0 a fost publicată în august 2005. Semantica limbajului a fost rafinată și extinsă în mod semnificativ pentru a sprijini metodologia Model Driven Development - MDD . Cea mai recentă versiune a UML 2.5 a fost publicată în iunie 2015.
UML 2.4.1 a fost adoptat ca standard internațional ISO / IEC 19505-1, 19505-2 [12] .
Următoarele tipuri de diagrame sunt utilizate în UML (pentru a elimina ambiguitatea, este dată și notația în engleză):
Structura diagramelor UML 2.3 poate fi reprezentată într-o diagramă de clasă UML:
Diagrama de clasă ( Diagrama de clasă) - o diagramă structurală statică care descrie structura sistemului, arătând clasele sistemului, atributele acestora, metodele și dependențele dintre clase.
Există diferite puncte de vedere asupra construcției diagramelor de clasă, în funcție de scopul aplicării lor:
Diagrama componentelor (Diagrama componentelor) - o diagramă structurală statică, arată împărțirea unui sistem software în componente structurale și relațiile (dependențe) dintre componente. Componentele fizice pot fi fișiere, biblioteci, module, fișiere executabile, pachete etc.
Diagrama structurii compozite ( Diagrama structurii compozite) - o diagramă structurală statică care demonstrează structura internă a claselor și, dacă este posibil, interacțiunea elementelor (părților) structurii interne a clasei.
O subspecie de diagrame de structură compusă sunt diagramele de colaborare (Diagrama de colaborare, introdusă în UML 2.0), care arată rolurile și interacțiunile claselor în cadrul unei colaborări. Colaborările sunt utile atunci când modelați modele de design .
Diagramele de structură compozită pot fi utilizate împreună cu diagramele de clasă.
Diagrama de implementare (diagrama de implementare) - este folosită pentru a modela nodurile de lucru (hardware, nodul englezesc ) și artefactele implementate pe acestea. UML 2 a implementat artefacte pe noduri , în timp ce UML 1 a implementat componente pe noduri. Se stabilește o dependență de manifestare între un artefact și elementul logic (componenta) pe care îl implementează.
Diagrama obiectului - arată un instantaneu complet sau parțial al sistemului simulat la un moment dat în timp. Diagrama de obiecte afișează instanțe de clasă (obiecte) ale sistemului cu valorile curente ale atributelor și legăturile dintre obiecte.
Diagrama pachetului (diagrama pachetului) - o diagramă structurală, al cărei conținut principal sunt pachete și relațiile dintre ele. Nu există o separare strictă între diferitele diagrame structurale, așa că acest nume este oferit doar pentru comoditate și nu are semnificație semantică (pachetele și diagramele de pachete pot apărea pe alte diagrame structurale). Diagramele pachetelor servesc, în primul rând, la organizarea elementelor în grupuri în funcție de un anumit atribut pentru a simplifica structura și organizarea muncii cu modelul de sistem.
Diagrama activității - o diagramă care arată descompunerea unei activități în părțile sale componente. O activitate este o specificare a comportamentului executabil sub forma unei execuții secvențiale și paralele coordonate a elementelor subordonate — activități imbricate și acțiuni separate ( acțiune în limba engleză ), interconectate prin fluxuri care merg de la ieșirile unui nod la intrările altuia.
Diagramele de activitate sunt utilizate în modelarea proceselor de afaceri, proceselor tehnologice, calculelor în serie și paralele.
Un analog al diagramelor de activitate sunt schemele de algoritm conform GOST 19.701-90 și schemele dragon .
Diagrama automată (diagrama mașinii cu stări, diagrama mașinii cu stări finite , diagrama stărilor ) - o diagramă care arată o mașină cu stări finite cu stări simple, tranziții și stări compozite.
O mașină de stări este o specificație a secvenței de stări prin care trece un obiect sau o interacțiune ca răspuns la evenimentele vieții sale, precum și răspunsul obiectului la aceste evenimente. O mașină de stări este atașată la un element sursă ( clasă , colaborare sau metodă) și servește la definirea comportamentului instanțelor sale.
Un analog al diagramelor automate (diagramele de stare) sunt diagramele dragon .
O diagramă de caz de utilizare sau o diagramă de caz de utilizare (Use case diagram) este o diagramă care arată relațiile care există între actori și cazuri de utilizare .
Obiectivul principal este de a oferi un singur instrument care să permită clientului, utilizatorului final și dezvoltatorului să discute împreună funcționalitatea și comportamentul sistemului.
Diagramele de comunicare și secvențe sunt tranzitive , exprimă interacțiunea, dar o arată în moduri diferite și cu un grad suficient de acuratețe pot fi convertite de la una la alta.
Diagrama de comunicare ( Diagrama de comunicare, în UML 1.x - diagramă de cooperare, diagramă de colaborare ) - o diagramă care descrie interacțiunile dintre părți ale unei structuri compozite sau roluri de colaborare. Spre deosebire de diagrama de secvență, diagrama de comunicare indică în mod explicit relația dintre elemente (obiecte) și nu folosește timpul ca dimensiune separată (se folosesc numere de secvență de apelare).
Diagrama secvenței - o diagramă care arată interacțiunile obiectelor, ordonate în funcție de momentul manifestării lor. În special, descrie obiectele care participă la interacțiune și succesiunea de mesaje pe care le schimbă.
Diagrama de colaborare - Acest tip de diagramă vă permite să descrieți interacțiunile obiectelor, făcând abstracție din secvența transmiterii mesajului. Acest tip de diagramă reflectă într-o formă compactă toate mesajele primite și transmise ale unui anumit obiect și tipurile acestor mesaje.
Deoarece diagramele de secvență și de colaborare sunt vederi diferite ale acelorași procese, Rational Rose vă permite să creați diagrame de colaborare din diagrame de secvență și invers și, de asemenea, sincronizează automat aceste diagrame.
O diagramă de prezentare generală a interacțiunii este un tip de diagramă de activitate care include fragmente de diagramă de secvență și structuri de flux de control.
Acest tip de diagramă include Diagrama secvenței (diagramele secvențelor de acțiuni) și Diagrama de colaborare (diagramele de colaborare). Aceste diagrame vă permit să luați în considerare interacțiunea obiectelor din sistemul creat din diferite puncte de vedere.
Diagrama de timp - o reprezentare alternativă a diagramei secvențe, care arată în mod explicit schimbările de stare pe linia de viață cu o scară de timp dată. Poate fi util în aplicații în timp real.
În ciuda faptului că UML este un standard destul de răspândit și utilizat, este adesea criticat din cauza următoarelor deficiențe:
Limbajul de modelare unificat | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||
| |||||||||||
|
Dezvoltare de software | |
---|---|
Proces | |
Concepte de nivel înalt | |
Directii |
|
Metodologii de dezvoltare | |
Modele |
|
Cifre notabile |
|
ISO | Standardele|
---|---|
| |
de la 1 la 9999 |
|
10000 până la 19999 |
|
20000+ | |
Vezi și: Lista articolelor ale căror titluri încep cu „ISO” |