Ministerul Educaţiei, Culturii și Cercetării al Republicii Moldova
Universitatea Tehnică a Moldovei
Departamentul Ingineria Software și Automatică
RAPORT
Lucrare de laborator Nr.5
Disciplina: Analiza și modelarea orientată pe obiecte
Tema: Studiul şi analiza abstracţiilor OO şi claselor în UML
(diagramele de clase).
A verificat : [Link].
Sava Nina
Melnic Radu
Chișinău 2020
Scopul: studierea noțiunilor de clasă, atribut și funcție, moștenire, compoziție, agregare, asociere,
dependență
Sarcina: de realizat 4 diagrame de clase pentru sistemul informațional ales.
Considerații teoretice:
Clasa definește o totalitate de obiecte cu aceiași structură.
O clasă se reprezintă grafic printr-un dreptunghi împartit în trei compartimente, cu numele clasei în
compartimentul de sus, o lista de atribute (cu tipuri optionale și valori) în cel din mijloc, și o listă de
operații (cu lista de argumente opționale și tipuri de returnare) în ultimul.
Un atribut reprezinta o proprietate a unei clase.
Figura 1 Reprezentarea grafică a clasei
Atributele descriu datele conținute de obiectele din clasa respectivă. Pentru fiecare atribut trebuie
specificat tipul acestuia. Metoda reprezinta implementarea operatiei si defineste comportamentul
acesteia. Obiectul care a trimis mesajul nu trebuie sa cunoasca ce metoda a fost apelată.
Asocierea relația de structură care are loc între două entități avînd loc schimbul de mesaje.
Agregare reprezintă legătura dintre entitățile partea întreagă și partea componentă. Agregarea este
modul cel mai general de a indica in UML o relatie de tip parte-intreg,
Figura 2 Reprezentarea grafică a Agregării
Compoziția caz particular al agregării, relația specifică la distrugerea parții întregi se distruge și
partea component.
Dependența este relația semantică dintre 2 entități unde modificarea uneia dintre ele (independente)
poate provoca modificarea celei de-a doua (dependente).
Realizarea lucrării:
În această lucrare de laborator s-a implimentat noțiunea de clasă și legături între entități în
diagrame de clase făcute pe baza sistemului ales anterior „Librărie online”. Respectiv în figura 3 de
mai jos s-a reprezentat diagrama de clase în care putem observa că sistemul se află în relația de
realizare cu interfața sa. Sistemul nu poate exista fără carți (relația de compoziție) și utilizatorul se
află în relația de asociere cu interfața sistemului.
class Package1
Librarie online
«interface» Utilizator
+ lista_carti: string I_Librarie
- email: string
+ recomandari: string
- nume: string
+ reduceri: int
+ adauga_email()
# carti adaugate la cos()
+ adauga_nume()
0..1
0..1
Dictionar explicativ
+ nr_cuvinte: string
0..* 0..* + titlul: string
Dictionare + introduce_cuvinte()
Carti
+ introduce_nume()
+ pret_carte: string - pret: int
+ titlul_cartii: string + titlul: string
Dictionar de sinonime
+ set_pret() + set_pret(): int
+ set_titlul cartii() + set_titlul() + nr_cuvinte: int
+ titlul: int
+ introduce nr_cuvinte()
+ introduce_titlul()
Manuale
Dictionar limba fraceza
+ nume: string
+ pret: int - nr_cuvinte: string
+ titlul: string
+ set_nume()
+ set_pret() + introduce nr_cuvinte()
+ introduce_titlul()
Fgura 3Selectarea dictionarelor după categorii de catre utilizator
În figura 4 putem observa că clientul se află în relația de asociere cu clasa cărți cît și cu clasa
înregistrare. Clasa realizare comandă se distruge dacă nu există clasa client prin urmare există relația
de compoziție între aceste două clase. Între clasa carți și clasa coșul meu există relația de agregare
prin urmare coșul poate exista fără a fi adaugat vreo carte în el.
class Registrare
Inregistrare Client Realizare comanda
- Email: string - Achitare_card: int
- IDclient: int
- Nr_telefon: string - Nume_client: string - Nume_client: string
- Nume_client: string - Sector: string
- Telefon: int 0..* 0..1
- Nume_utilizator: string - Telefon: int
- parola: string - Cautare_client()
+ Editare_comanda()
- EditareClient()
- Inregistrare_client() + RealizareComanda()
Carti Cosul meu
- Nume: string - Nr_carti: int
- Pret: int - Titlul_carte: string
0..* 0..*
- Adaugare carte() - Cumparare carte()
- Modificare carte() - Modificare carte()
Figura 4 Realizarea comenzii in sistemul dat
Relația de generalizare se poate observa atît în figura 3 cîi și 5, astfel această relație are loc între
clasa generalizată și clasa specializată. În figura 5 clasa generalizată este clasa utilizator iar cea
specializată este client și administrator.
class System
Librarie online
Baza de date
+ Lista_carti: string
# CreareCont() + Pret: int
# StergeCont()
+ Introduce pret(): int
+ Introduce_nume()
Utilizator
- Email: int
- Nume: int
- Telefon: int
- Introduce nume()
Client Administrator
- Nume: string + Administrare librarie()
- Telefon: int
+ Introduce nume()
+ Introduce telefon()
Figura 5 Efectuarea operațiilor în sistem de către utilizator
class Librarius
Carte Catalog carti «interface»
Autor I_Librarie
+ Autor: string + Lista: string
- Date_personale: string + ISBN: string 0..1 0..* + Nume_autor: string
+ Nume: String 1..* 1..* + Nume: string
+ afisare carti()
+ afisare()
0..1
0..1 0..1
0..1
0..1
Descriere
Librarie online
+ Autor: string Administrator
+ Cod produs: int 0..*
+ Adressa: string
+ Editura: string - nume: string
+ Nume: string
+ ISBN: int + Administrare sistem(): int
+ Afisare descriere()
Figura 6 Operațiile efectuate de către administrator în sistem
În figura 6 observăm că sistemul cît și interfața aplicației depinde administratorul aplicației. Astfel
acest lucru se datorează posibilității administratorului de a gestiona sistemul informațional dat.
Concluzii:
În această lucrare de laborator s-a analizat, studiat și implimentat diagramele de clasă.
Diagramele de clasă se utilizează pentru reprezentarea structurii statice a unui model în terminologia
programării orientate pe obiecte.
De asemenea, efectuând lucrarea s-a utilizat notiunea de clasă , care reprezintă o mulțime de
obiecte cu aceleași atribute și metode cît și relațiile de asociere, dependent, agregare, asociere.
Datorită relațiilor de realizare se poate de observat că interfață reprezintă totalitatea de operații care
sunt realizate de către clasa “Librărie online”.