Documente Academic
Documente Profesional
Documente Cultură
P RO I E C TA R E A S I S T E M E LO R
I N F O R M AT I C E
-CURS 4-
BUCUREȘTI
2020-2021
Diagrama de Modelarea
structurii
clase statice
Sinteză: Analiza orientată obiect a sistemelor informatice
În etapa de analiză a sistemului sunt analizate specificaţiile şi
cazurile de utilizare, identificându-se cele mai importante concepte cu
care lucrează sistemul, împreună cu relaţiile dintre acestea. Se
reprezintă grafic, printr-o diagramă, structura domeniului claselor
pentru sistemul analizat.
1. Se iniţiază reprezentarea diagramei de clase, care va fi finisată şi în
etapele următoare. Diagrama claselor reprezintă grafic structura
statică a sistemului, prin includerea claselor identificate, a pachetelor
şi a relaţiilor dintre acestea. Un pachet poate conţine clase, interfeţe,
componente, noduri, colaborări, cazuri de utilizare, diagrame sau alte
pachete.
2. Se iniţiază construirea diagramei de obiecte care modelează
instanţele elementelor conţinute în diagramele de clase. Aceste
diagrame cuprind un set de obiecte şi relaţiile dintre acestea la un
anumit moment.
Sinteză: Analiza orientată obiect a sistemelor informatice
3. Pentru a evidenţia stările prin care poate trece un obiect sau un
eveniment (mesaje primite, erori, condiţii de realizare) sunt reprezentate
diagramele de stare, care reprezintă ciclul de viaţă al obiectelor,
subsistemelor şi sistemelor. Stările obiectelor se schimbă la
recepţionarea evenimentelor sau semnalelor.
4. Diagrama de activitate este realizază cu scopul de a evidenţia acţiunile şi
rezultatul acestor acţiuni şi pentru a scoate în evidenţă fluxurile de lucru.
5. Pentru a evidenţia interacţiunile dintre obiecte se construiesc diagramele
de interacţiune: diagramele de secvenţă şi, respectiv, diagramele de
comunicare.
▪ Diagramele de secvenţă descriu modul în care interacţionează şi comunică
obiectele, prin focalizare pe mesajele care sunt transmise şi recepţionate.
▪ Diagramele de comunicare permit reprezentarea atât a interacţiunilor, cât şi
a legăturilor dintre un set de obiecte care colaborează. Se utilizează când
este utilă vizualizarea coordonatei spaţiale.
Modelarea structurii statice. Diagrama de clase
Atribute - Vizibilitate
+ nume: String
+ prenume: String
- /dn: Data
# adresa: String[1..*] { unique, ordered}
- cnp: String {readonly}
- parola: Sting =“psw1234”
- cod: int
- nrPersoane: int
[vizibilitate][/]nume[:tip][multiplicitate][=valoare implicită] [{proprietate}]
Persoana Persoana
Tipuri de date
▪ Tipuri de date primitive
• Predefinite: Boolean, Integer, String
• Definite de utilizator: «primitive»
• Tipuri de date compozite: «datatype»
▪ Enumerări: «enumeration»
Atribute -Multiplicitate
Atribute - Proprietate
Proprietate indică o proprietate suplimentară care se aplică atributului:
{readonly}: atributul poate fi citit, dar nu modificat
Persoana
+ nume: String
+ prenume: String
-/dn: Data
# adresa: String[1..*] { unique, ordered}
- cnp: String {readonly}
- parola: Sting =“psw1234”
- cod: int
- nrPersoane: int
Operaţii
1. Tipuri de asocieri:
➢unare
➢binare
➢n-are
Asocierea binară
Multiplicitate
tineCursPentru
* *
+cadruDidactic
Non-navigare
Vizibilitate Rol
Asocierea binară - Navigare
Asociere ternară
Asociere modelată ca o clasă
Asignează atribute unei relații între clase și nu clasei în sine.
Necesară atunci când modelăm asocieri mulți-la-mulți
Unui student i se permite să fie evaluat Unui student i se permit mai multe
pentru un examen o singură dată. evaluări pentru un examen.
Agregarea
Asociere
Obiectele ştiu unele de existenţa celorlalte şi pot lucra împreună.
Agregare
1. Protejează integritatea configuraţiei.
2. Funcţionează ca un tot unitar.
3. Control prin intermediul unui singur obiect.
Compunere
Fiecare parte poate fi membră a unui singur obiect agregat.
Entitati
Unitati
Tangibile Roluri Dispozitive Locatii Evenimente
organizatorice
Pasager
Linie Aeriana 1 1..* Vanzator 1..* 1..* -NumePasager : char
rezerva zbor
+DisponibilitateRezervare : boolean numar rezervare este rezervat cu #AdresaPasager : char
+FurnizareDetaliiZbor() : void +RezervaZbor() -CNP : unsigned long
+ConfirmareRezervare() : Boolean +VerificaDisponibilitate() +SolicitaZbor() : void
numar zbor +FacePlata() : void
1 Rezervare Zbor Bilet
NumePasager : char NumeCompanie : char
NumarZbor : int PretBilet : int
programeaza
NumarRezervare : int DataZbor : char
OraZbor : char
1..*
NumarZbor : int
NumarBilet : char
Zbor
+Destinatie : char
+Plecare : char Agentie Voiaj Agentie Linie Aeriana
+DataZbor : char -NumeAgentie : char -LinieAeriana : char
+OraZbor : char -AdresaAgentie : char +AdresaLinieAeriana : char
+Pret : int
+NumarZbor : int
Companie Zbor
Vanzator_bilet
Superclasă: <none>
Subclase: <none>
Responsabilităţi Colaboratori
Verifică disponibilitatea Companie, Zbor
Rezervă zbor Companie, Pasager
Notații - 1
Descrie structura și
Clasă comportamentul unui set de
obiecte
Asociere
Descriere mai detaliată a unei
modelată ca o
asocieri
clasă
40
Notații - 3
41
Diagrama de Modelarea
obiecte statică
Diagrama de obiecte
Clasele sunt conectate prin asocieri, având Obiectele sunt conectate printr-o legătură,
un nume, multiplicitate, constrângeri şi care poate avea un nume, roluri, dar nu şi
roluri. Clasele sunt o abstractizare a multiplicităţi. Obiectele reprezintă entităţi
obiectelor, deci este necesar să specificăm singulare, toate legăturile sunt unu-la-unu,
câte clase participă într-o asociere. iar multiplicităţile sunt irelevante.
Diagrama de obiecte în Visual Paradigm
• Diagrama de activitate
• Mecanisme de extensie
48