Diagramele UML

Post on 03-Jul-2015

452 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Diagramele UML

A. Diagrame structurale

B. Diagrame comportamentale

Diagrame structurale

       Diagrame de clase

       Diagrame de obiecte

       Diagrame de componente

       Diagrame de amplasare

Diagrame comportamentale

       Diagrame de cazuri de utilizare

       Diagrame de secvenţă.

       Diagrame de colaborare.

       Diagrame de tranziţie a stărilor –

       Diagrame de activitate

DIAGRAMA DE CLASE (DC)

Diagramele de clase UML permit si reprezentarea

• Claselor oarecare

• claselor abstracte

• claselor template

• claselor utilitare

Clasele abstracte

• Clase care nu pot avea instanţe directe putand fi instanţiaţi numai descendenţii lor

• Numele lor este trecut in italic

• Pentru o clasă, se pot specifica următoarele: Clasa nu poate avea părinţi ( este

rădăcina unei ierarhii de clase ); Clasa nu poate avea descendenţi ( este

frunză );

• Aceste proprietăţi se indică prin notaţiile {root} şi {leaf} sub numele clasei.

Client

NumeAdresă

RatăClient()…

Clasele template

Asociere

Articol, Valoare

Asociază ( i : Articol, v : Valoare ) : Boolean

AsociereComandă

<< bind >>( Client, Comandă )

Fig. 9.3 Reprezentarea unei clase template.

Clasă template

Parametrii clasei template

Clasă care instanţiază clasa templete folosind parametrii

actuali

Clasă utilitară

<<utility>>

Clasă_utilitară

Interfaţa

In UML interfetele se pot reprezenta in doua moduri :

  Un mic cerc conectat printr-o linie la elementul care furnizează serviciile descrise de interfaţă

O clasă stereotipizată <<interface>>

Clasă <<interface>>Clasă

Op1()Op2()…

a) b)

Atribute şi operaţii      Sintaxa folosita pentru descrierea atributelor are urmatoarea forma:

nume_atribut : tip_atribut = valoare_initiala

      Sintaxa folosita pentru descrierea operatiilor are urmatoarea forma:

Nume_operatie ( lista_argumente ) : tip_returnat

“lista_argumente” reprezinta lista argumentelor operatiei, fiecare argument fiind descris astfel :

nume_argument : tip_argument = valoare_implicita.

 

Pentru atributele si operaţiile unei clase se specifică vizibilitatea:

        O operaţie sau un atribut pot fi publice ( + ) – orice alta clasă poate folosi proprietatea sau poate invoca operaţia;

        O operaţie sau un atribut pot fi protejate ( # ) – sunt vizibile numai pentru descendenţii clasei respective;

        O operaţie sau un atribut pot fi private ( - )– numai clasa respectivă poate folosi proprietatea sau operaţia.

Operaţiile pot fi:

        Abstracte (sunt specificate cu caractere italice);

        Operaţii de tip frunză ({leaf});

        PolimorficeClient

persoană fizică{leaf}

Client{root}

#Nume…

+RataCredit()…

+Ratacredit() {leaf}…

Relaţiile care apar in diagramele de clase

        Asocieri;         Relaţii de generalizare;         Relaţii de dependenţă;         Relaţii de realizare;

•Navigarea intr-o singura directie

• Asociere calificată.

•Clasă a asocierii.

•Agregarea. simplă

•Agregare compoziţie

Clasă 1 Clasă 2

Clasă 1calificator

Clasă 2

Companie Persoanăangajator angaja

t

Job

descrieresalariu

Clasă a asocierii

companie Departament

a) agragare simplă

Fereastră Cadru

b) compozţie

Exemplu - ENUNT

Se consideră cazul unui sistem ce permite utilizatorilor să comande prin Internet articolele pe care doresc să le cumpere. Principalele funcţii ale sistemului sunt :

1.    Administrarea bazei de date cu articolele disponibile.

2.    Tratarea cererilor clienţilor.

Un astfel de sistem constă, în principal, din trei părţi :

      Serverul de baze de date – stochează informaţii despre articolele disponibile.

      Aplicaţia care se execută pe server – tratează cererile venite de la clienţi, interoghează şi actualizează baza de date;

      Programele client care se execută pe browser-ele clienţilor.

Exemplu – DIAGRAMA DE CLASEUtilizatorManager login

1 *

login(in user, in parola)valideaza()introduce_mail(in adresa_mail)

userparolaadresa_mail

Cont_utilizator

1

*

Adauga_articol(in articol_id)Sterge_articol(in articol_id)Numar_articole()

Cos_comenzi

Verifica_stoc(in articol_id)

Stoc_articole

*

1

detalii_articol()

ID

Articol

Carte Revistacauta_in_catalog()detalii_articol(in articol_id)

Catalog_articole

*

1 1

*

*

*

11

DIAGRAME DE OBIECTE (DO)

Nume_obiect Nume_obiect : nume_clasă : Nume_clasăReprezentarea obiectului

Pot apărea stereotipurile claselor cărora le aparţin obiectele respective.

<<exception>>

ÎmpărţireCuZero

Reprezentarea poate include si valorile atributelor.

Linie_comandă

Cantitate = 45

Exemplu de DIAGRAMĂ DE OBIECTE

c : Utilizator

Nume = “Popescu”Adresa = “str. Roma, nr. 5”Telefon = “643 34 56”Nr_card = “987657896”

c_util : Cont_utilizator

user = “pop”parola = ”pop123”adresa_mail = “pop@yahoo.com”

com_1 : Comandă

ID = 125634cod_articol = 23Dată_comandă = “07 / 23 / 2001”

a : Carte

s : Coş_comenzi

Cod_articol = 23Titlu = “ … “Autor = “ … ”

PACHETE ŞI DIAGRAME DE PACHETE

Între pachete pot exista următoarele relaţii :

     

Pachet A

 

Pachet B

 

Import / export – presupunând două pachete, A şi B, dacă pachetul A importă pachetul B, atunci elementele din A vor vedea elementele publice din B. Partea publică a lui B reprezintă exportul pachetului B. Grafic se reprezintă printr-o relaţie de dependenţă stereotipizată <<import>>.

Generalizare – este asemănătoare cu generalizarea claselor. Pachetele mai specializate moştenesc elementele publice şi protejate de la pachetul mai general. La fel ca şi în cayul claselor, pachetele mai specializate pot înlocui pachetele mai generale oriunde acestea sunt folosite.

Pachet A

Pachet B Pachet C

Exemplu – DIAGRAMA DE PACHETE

Pachte de clase pentru interfaţa grafică

Selectare şi comandă articole Administrare bază de date

Pachete de clase pt. acces la baza de date.

Client

Fig. 9.8 Diagrama de pachete

DIAGRAMA CAZURILOR DE UTILIZARE (DIAGRAMA USE CASE)

Plasare comandă

Prelucrare comandă

colaborare

Fig. 9.9 Caz de utilizare prin colaborare

Actor 2

Actor 1Caz de utilizare 1

Caz de utilizare 2

Caz de utilizare 3

Fig. 9.10 Diagrama cazurilor de utilizare

Exemplu – DIAGRAMA CAZURILOR DE UTILIZARE

Fig. 9.11 Diagrama cazurilor de utilizare

Sistem

Login / Logout

Comandă articole

Administrare

Actualizare bază de date

<< extends >>

<< extends >>

UtilizatorAdministrator

DIAGRAMA DE INTERACTIUNE (DI)

Exista două tipuri de diagrame de interacţiune şi anume

• diagrama de secvenţă (DS)

• diagrama de colaborare (DC).

DIAGRAMA DE SECVENŢĂ (DS)

[ Condiţie ]executa ()

* [ pentru ... ]executa ()

Distrugere

Obiect 1 Obiect 1

Creare

Mesaj 1

Obiect 2

ÎntoarcereMesaj 3

Mesaj 4

Iterare

Condiţie

Autoapelare

Creare

Punct de control

Exemplu - DIAGRAMA DE SECVENŢĂ (DS)

: Utilizator

: Cont_utilizator : Catalog_articole: Coş_comenzi

Login ( user, parola )

Validează ()

: Articol

Caută_în_catalog ()

* [ pentru fiecare articol din listă ] Detalii_articol ( articol_id ) Detalii_articol ()

return ( listă_articole )

return ( info_articol )return ( info_articol )

Adaugă_articol ( articol_id )

return ( ok )

DIAGRAMA DE COLABORARE (DC).

Obiect 1

Obiect 2Obiect 3

1:<<creare>>

2: mesaj

3:<<distrugere>>

<<local>><<global>>

2.1: mesaj

2.2: [condiţie] mesaj]

Legatura

MesajNumăr de secvenţă

Autoapelare

Exemplu - DIAGRAMA DE COLABORARE (DC).

: Utilizator

: Cont_utilizator : Coş_comenzi

: Catalog_articole

1. Login ( user, parola )9. Adauga_articol ( articol_id )

: Articol

2. Validează ()

3. Caută_în_catalog ()5. detalii_articol ( art_id )

4. return ( listă_art )8. return ( info_art )

6.detalii_articol ()

7. return ( info_art )

DIAGRAMA DE ACTIVITATI (DA)

[ condiţie 1]

[ condiţie 2]

Activitate Activitate

ActivitateActivitate

Activitate

sincronizare

[ condiţie de sincronizare]

culoar

Ramură secvenţială

[ condiţie 4]

[ condiţie 3]

Obiect

Flux de obiecte

Exemplu - DIAGRAMA DE ACTIVITATI (DA)Utilizator Aplicaţie server Mangement articole

Afişează pagină logare

Introduce utilizator şi parolă

Validează utilizator

Afişare “Home page”

[ utilizator valid ]

Verifică dacă articolelele comandate

sunt în stoc

Adaugă articole la comandă

eroare

[ utilizator invalid ]

Cere listă articole disponibile

Construieşte listă articole

Afişare listă articoleAlege articole şi cantitatea

[ articolele sunt disponibile ]

DIAGRAME DE TRANZITIE A STARILOR

Stare Stare Stare

Stare Stare

eveniment

contact

after (2 sec)/ send c.isAlive

targetAt(p) [isThreat]/

t.addTarget(p)

eveniment timp semnal send

eveniment declansator tranzitie fara declansare

actiune

eveniment declansator cu

parametrii

conditie guard

Fig. 9.18 Diagrama de stare

Stari si tranzitii avansate

Nume stare

entry/ acţiune(parametru)

exit/ acţiune(parametru)

acţiune/ defer

do/

acţiune/ acţiune()

actiune de intrare

actiune de iesire

tranzitie interna

activitate

eveniment amanat

Fig. 9.19 Reprezentarea stărilor şi tranzacţiilor avansate

Starea compusă

tranzitie din substare

Stare

stare

Stare compusă

entry/ acţiuneexit/ acţiune

tranziţie

cancel

tranzitie din/in stare compusa

substare

substare substare

substare

[condiţie]

[ condiţie]

Exemplu - DIAGRAME DE TRANZITIE A STARILOR – Clasa “Cos_comenzi”

Adăugare

entry / verifică_articol ( )

articol nou / adaugă_articol ( )

Eroare

do / trimite_mesaj_eroare ( )

Articolul nu este disponibil în stoc

Validare comandă

do / înregistrează_comanda ( )

Aşteaptare comandă

articol nou / adaugă_articol ( )

validează

DIAGRAME DE DESFĂŞURARE (DD)

Internet

Server cache Server cache

Server principal

Server Server Server

conexiune

nod

nod

modem

Retea locala

Exemplu - DIAGRAMA DE DESFĂŞURARE (DD)

Server central

Server de Web

Server de baze de date

<< tcp / ip >>

Calculator local << tcp / ip >>

Fig. 9.23 Diagrama de desfăşurare pentru un sistem distribuit

DIAGRAME DE COMPONENTE (DC)

Nume fişierNume fişier Nume fişier

Nume fişierNume fişier

Nume fişier Nume fişier

Componentă

Etape şi activităţii

1. Modelarea realizarii unui caz de utilizare

2. Modelarea produselor executabilele şi a bibliotecilor

3. Modelarea fisierelor, tabelelor şi documentelor

4. Modelarea unei interfeţe de programare a aplicaţiei (API)

5. Modelarea codului sursă

6. Modelarea procesoarelor şi dispozitivelor

7. Modelarea distribuţiei componentelor

8. Modelarea implementării unei operaţii

9. Modelarea unui mecanism

10. Modelarea unui pattern de proiectare

11. Modelarea unui pattern arhitectural

12. Modelarea unui pattern arhitectural

top related