1. UML (Unified Modeling Language)
- Este o familie de notatii grafice, la baza carora este un metamodel unic. UML serverste la descrierea si proiectarea sistemelor de programe construite pe principiile obiect orientate (OO)
- UML reprezinta un standart deschis aflta sub controlul OMG (Object Managemen Group).
- OMG este cunoscuta in deosebi pe CORBA (Common Object Request Broker Arhitecture).
- UML a aparut un rezultatul unificarii mai ultor limbaje OO de modelare grafica.
2. Metode de aplicare UML
- Sunt 3 metode:
.Regim schita (schimb usor de informatii despre diferite aspecte ale sistemei)
.Regim proiectare: Se folosesc schitele pentru forward-engineering si reverse-engineering.
.Regim limbaj de programare
3. Structura generala
- Semantica limbajului UML reprezinta un careva metamodel, care defineste sintaxa abstracta si semantica notiunilor modelarii orientate pe obiecte in limbajul UML
- Notiunea limbajului UML reprezinta o notatie grafica pentru reprezentarea vizuala a semanticii limbajului UML
- Descrierea formala a limbajului UML se bazeaza pe careva structura ierarhica comuna a reprezentarilo de model care consta din patru nivele:
> Meta-metamodelul (baza initiala pentru reprezentari de metamodele)
>Metamodelul (un exemplar al meta-metamodelului): definirea limbajului pentru specificarea modelelor
>Modelul (exemplar al metamodelului):trebuie sa utilizeze notiunnile doar din meta-model
>Obiectele utilizatorului
4. Particularitatea (specificul) UML
- UML este un instrument standart pentru crearea carcaselor de documentare ale produsului soft, este un limbaj de vizualizare, specificare si documentare a artefactelor sistemelor de program. UML este elaborat in asa fel ca sa poata satisface cerentele esentiale catre modelarea oricarui sistem incepind cu sisteme informationale de dimensiunea unei intreprinderi pina la Web-aplicatii distribuite si sisteme integrate in timp real.
5. UML - limbaj de documentare
- UML permite rezolvarea problemei de documentare a arhitecturii sistemului, ofea limbajul pentru definirea formala a cerintelor catre sistem si catre teste, defineste mijloace pentru modelarea lucrurilor pe etapa planificarii proiectului si administrarii versiunilor.]
- Utilizarea UML este eficienta un urmatoarele sfere:
> sisteme informationale
>servicii bancare si financiare
>telecomunicatie
>transport
> industria de aparare
>sisteme comerciale
> electronica medicala
> stiinta
> distribuirea sistemului Web
- Dictionarul UML include trei tipuri de constructii de baza
> entitati - abstractii ce sunt elemente de baza a modelului
> relatii - legaturi intre entitati
> diagrame ce grupeaza interesele entitatilor si relatiilor
6. Entitati in UML
- Sunt patru tipuri
> de structura
> de comportament
> de grupare
> de adnotare
- Entitatile sunt elementele OO de baza ale limbajului.
- Entitatile de structura sunt substantivele in modelurile ale UML
- Ele reprezinta parti statice ale modelelor care corespund elementelor conceptuale si fizice ale sistemului
- Sunt 7 varietati de entitati de structura
# Clasa (class) - este o descriere a unei totalitati de obiecte cu atribute, operatii, relatii si semantica comuna. Grafic o clasa se reprezinta printr-un dreptunghi in care se specifica numele, atributele si operatiile clasei.
# Interfata (interface) - este o totalitate de operatii care definesc servicii oferite de clasa sau componenta. In diagrame interfata se reprezinta printr-un cerc etichetat cu numele interfetei. Interfata foarte rar exista aparte - de obicei ea este legata cu clasa cu componenta care o realizeaza
# Colaborarea (collaboration) - defineste o interactiune, ea reprezinta o totalitate de roluri si alte elemente care produc un efect cooperativ si care nu se aduce nuami la suma termenilor unei adunari. Grafic colaborarea se reprezinta printr-o elipsa cu linie inrerupta, interiorul careia contine numai numele colaborarii.
# Cazul de utilizare (use case) - este o descriere a consecutivitatii de actiuni indeplinite de sistem care produc un rezultat semnificativ pentru un anumit actor. Grafic se reprezinta printr-o elipsa cu linie continua in interiorul careia se contine denumirea cazului de utilizare
# Clasa activa (active class) - se numeste o clasa obiectele careia sunt antrenate in unul sau mai multe procese sau siruri (threads) si deaceea ele pot initia o actiune administrativa. Grafic este reprezentata ca si o clasa simpla, dar se limiteaza cu un dreptunghi cu marginile groase si are continut numele,atributele si operatiile clasei
# Componenta (component) - este o parte fizica a sistemului, care corespunde unui anumit set de interfete si asigura realizarea lui. Grafic o componenta se reprezinta preintr-un dreptrunghi cu anexe, care de obicei numai numele componentei.
# Nodul (node) - este un element real (fizic) al unui sistem care reprezinta un mijloc de calcul cu un anumit volum de memorie si deseori cu capacitate de prelucrare a informatiei si care exista in timpul functionarii unui produs soft. Grafic pentru reprezentarea nodului se utilizeaza cubul care contine numele nodului.
# Interactiunea (interaction) - este un mod de comportare care consta in schimb reciproc de mesaje intre obiecte in cadrul unui anumit context pentru a atinge un anumit scop. cu ajutorul interactiunii se descrie atit o operatie cit si comportarea unui set de obiecte. Interactiunea presupune un sir de elemente ca mesaje, consecutivitate de actiuni (comportare, initializata de catre mesaje) si legaturi (intre obj). Grafic mesajul se reprezinta printr-o sageata deasupra careia se indica numele mesajului.
# Automatul (state machine) - este un algoritm de comportare care defineste o succesiune de stari prin care trece un obiect sau o interactiune pe parcursul ciclului de viata raspunzind la diferite evenemente si reactiile lui la aceste evenimente. Cu ajutorul automatului se descrie comportarea unei clase sau a unei colaborari de clase. cu automatul este legat un sir de alte elemente: stari, tranzitii de la o stare la alta, evenimente care sunt entitati ce initiaza tranzitii si tipuri de actiuni - reactii la tranzitii. Grafic o stare se reprezinta printr-un dreptunghi cu colturi rotungite care contine numele starii sau posibil si starile intermediare.
# Pachetul (packages) - reprezinta un mecanizm universal de organizare in grupe. In pachet pot fi plasate entitatile de structura, de comportament si alte entitati de grupare. Spre deosebire de componentele care exista real, in timpul executiei unui program, pachetele au caracter pur conceptual, adica exista doar in timpul elaborariii. Pentru reprezentarea unui pachet se utilizeaza notatia unei mape cu semn de carte care contine deseori numai numele si doar uneori continutul.
# Remarca (note) - este numai un simbol pentru reprezentare comentariilor sau a constringerilor, legate de un element sau de un grup de elemente. Grafic o remarca se reprezinta printr-un dreptunghi cu coltul sus din drepata indoit si care contine comentariul textual sau grafic.
7. Relatii UML
# Dependenta (dependency) - este o relatie semantica intre doua entitati astfel incit modificarea uneia din ele, a celei independente, poate influenta semantica celeilalte, dependente. Grafic pentru reprezenatarea dependentei se utilizeaza o linie intrerupta, deseori cu sageata care pote contine o eticheta.
# Asocierea (association) - este o relatie de structura care descrie o totalitate de legaturi, prin legatura se subintelege conexiunea semantica intre obiecte. In calitate de simboluri suplimentare pot fi utilizate numele unei asocieri, numele si multiplicitatea claselor - rolurile asocierii. Numele asocierii nu este un element obligatoriu. Daca numele este dat, atunci el se scrie cu majuscula linga linia ce corespunde asocierii. Grafic asocierea se reprezinta printr-o linie (care uneori se termina cu o sageata sau este etichetata).
# Agregare (aggregation) - este o anumita relatie intre intreg si partile lui componente. Aceasta relatie are un sens fundamental pentru descrierea sistemeor complexe fiindca se utilizeaza pentru reprezentarea legaturilor 'parte-intreg'. Dezvaluind structura interioara a sistemului, relatia de agregare arata din ce elemente consta sistemul si cum elementele sunt legate. Din punct de vedere al modelului partile aparte ale sistemului pot fi socotite ca elemente si ca subsisteme care la rindul lor pot crea componente sau subsisteme. Grafic relatia de agregare se reprezinta printr-o linie continua, unul din capetele careia reprezinta un romb gol. Acest romb arata <<intregul>> si restul - <<partile>>.
# Compozitie - este cazul particular al relatiei de agregare. Aceasta relatie este destinata prezentarii formei speciale a relatiei <<parte-intreg>> in care partile componente sunt in interiorul partii intregi. Specifica legaturii intre ele consta in aceea ca partile componente nu pot exista fara partea intreaga, adica cu distrugerea intregului se distrug si partile componente a lui. Grafic relatia de compozitie se reprezinta preintr-o linie continua, unul din capetele caruia reprezinta un romb hasurat. Acest romb arata clasa-compozitie sau <<intregul>> si restul sunt <<partile>>.
# Generalizarea (generalization) - este o relatie de tip <<specializare/generalizare>> in urma careia un obiect al elementului specializat (descendetn) poate substiuti obiectul elementului generalizat (parinte). Descendentul (child) mosteneste structura si comportamentul parintelui sau. Grafic relatia de generalizare se reprezinta printr-o linie cu o sageata goala care arata parintele.
# Realizarea (realization) - este o relatie semantica intre clasificatori in care un clasificator defineste un <<contract>>, iar celalat garanteaza indeplinirea lui. Relatia de realizare se intilneste in cazurile urmatoare: intre interfete si clase sau componente care realizeaza aceste interfete, si intre cazuri de utilizare si colaborari care le realizeaza. relatia de realizare se reprezinta printr-o linie intrerupta cu o sageata goala, ca ceva intermediar intre relatiile generalizate si dependenta.