Unified Modeling Language

limbaj de programare
(Redirecționat de la UML)

Unified Modeling Language (prescurtat UML) este un limbaj standard pentru descrierea de modele și specificații pentru software. Limbajul a fost creat de către consorțiul Object Management Group (OMG) care a mai produs printre altele și standardul de schimb de mesaje intre sisteme CORBA. UML a fost la bază dezvoltat pentru reprezentarea complexității programelor orientate pe obiect, al căror fundament este structurarea programelor pe clase, și instanțele acestora (numite și obiecte). Cu toate acestea, datorită eficienței și clarității în reprezentarea unor elemente abstracte, UML este utilizat dincolo de domeniul IT. Așa se face că există aplicații ale UML-ului pentru management de proiecte, pentru business Process Design etc.

Un colaj reprezentând numărul de diagrame UML disponibile

Istoric modificare

 
Istoricul dezvoltării UML și limbaje similare

Prima versiune de UML, UML 1.0, a apărut în anul 1990 ca reacție a numeroaselor limbaje de modelare propuse pe piață. UML îi are ca fondatori pe Grady Booch, Ivar Jacobson și James Rumbaugh, așa numiții „cei trei Amigos”. Ei au dezvoltat limbajul bazându-se inclusiv pe limbaje de modelare deja existente, însă incomplete ca gamă de funcționalități. Printre acestea se numără și OOSE, RDD, OMT, OBA, OODA, SOMA, MOSES și OPEN/OML.

UML 2.x modificare

Dezvoltarea versiunii 2 a UML a început în anul 1999 atunci când OMG a publicat un request for information referitor la UML 2. De atunci, UML s-a aflat într-un continuu ciclu de îmbunătățire, astăzi ajungând la varianta UML 2.4.1 (publicată în august 2011).[1]

Tipuri de diagrame modificare

UML oferă o largă gamă de diagrame pentru modelarea diferitelor situații în cadrul unui proiect de dezvoltare software.

Diagramă de activitate modificare

Așa cum și numele sugerează, acest tip de diagrame UML este folosit pentru reprezentarea desfășurării unei activități în rularea programului.

Diagramă de componente modificare

Sunt diagrame ce se utilizează în cadrul proiectării unei arhitecturi de sistem, atunci când diferite componente ale sistemului software (numite și subsisteme) interacționează între ele prin intermediul unor interfețe.

Diagramă de clasă modificare

 
O diagramă de clasă reprezentând multiplicitatea dintre două clase

Este folosită pentru reprezentarea vizuală a claselor și a interdependențelor, taxonomiei și a relațiilor de multiplicitate dintre ele. Diagramele de clasă sunt folosite și pentru reprezentarea concretă a unor instanțe de clasă, așadar obiecte, și a legăturilor concrete dintre acestea.

Diagramă package modificare

Este folosită pentru reprezentarea interdependențelor și a relațiilor dintre pachete ce formează un program. (Pachetele reprezintă în acest sens containerele ce conțin clase și sunt o caracteristică a unor limbaje de programare ca Java sau C Sharp)

Diagramă de secvență modificare

 
O diagramă use case

Este utilizată în special în timpul dezvoltării de subsisteme, și ajută la identificarea relațiilor dintre obiecte pe parcursul efectuării unei anumite operații (de exemplu relația dintre obiectul client Ion și obiectul comandă numărul 1234 în timpul operației de finalizare a unei comenzi).

Diagramă use case modificare

Datorită simplității ei este utilizată în special în discuțiile dintre firma dezvoltatoare de software și clienți sau utilizatori. Diagramele use case reprezintă interacțiunea dintre elementele exterioare unui sistem (numite și actori) și sistem. În cazul acestor diagrame se prezintă acțiunea desfășurată de sistem la interacțiunea actorului, însă modul în care sistemul desfășoare acea acțiune nu trebuie să fie reprezentat într-o astfel de diagramă (conceptul blackBox).

Diagramă deployment modificare

Este folosită în cadrul proiectării arhitecturii de sistem, având scopul reprezentării repartizării fizice a diferitelor elemente ale sistemului (de exemplu repartizarea unui sistem ce este compus dintr-un server, routere și alte componente exterioare, inclusiv software).

Note modificare

Legături externe modificare