in-theory.info

Tutorial UML (partea a V-a). Class Diagram

Etichete: UML

Class diagram este un tip de diagramă utilizată pentru descrierea structurii statice, adică a entităţilor sau claselor existente într-un sistem. Acest tip de diagramă este utilizat cel mai adesea de către dezvoltatori pentru specificarea claselor dar poate fi foarte util şi pentru specificarea structurii unor sisteme sau subsistem dintr-un business real.

Elementele utilizate şi notaţiile lor sunt următoarele:

ElementDescriereNotaţie
Clasă O clasă este reprezentată printr-un dreptunghi cu trei compartimente: în cel de sus se trece numele clasei, în mijloc se trec atributele clasei iar jos se trec operaţiile specifice clasei. Modul de reprezentare a claselor în UML
Moştenire Moştenirea este o relaţie care indică faptul că o clasă moşteneşte caracteristicile unei clase părinte. Sensul săgeţii indică sensul în care se poate spune despre clasa copil că este o<-i>, sau este de tipul<-i> clasă părinte. Reprezentarea relaţiei de moştenire
Asociere Asocierea este o relaţie generică între două clase. Aceste relaţii pot fi de tipurile pot defini şi regulile numerice de asociere (unu la unu, unu la mai mulţi, mai mulţi la mai mulţi). Reprezentarea relaţiei de asociere
Dependenţă Atunci când o clasă depinde de o altă clasă, în sensul că utilizează acea clasă ca şi atribut al său, se foloseşte relaţia de dependenţă. Reprezentarea relaţiei de dependenţă
Agregare Agregarea indică o relaţie de tip întreg-parte (se poate spune despre clasa părinte că are clase de tip copil). În această relaţie, clasa copil poate exista şi fără clasa părinte. Reprezentarea unei relaţii de tip agregare
Compoziţie Această relaţie derivă din agregare dar se utilizează atunci când o clasă copil nu poate exista decât în cazul existenţei clasei părinte. Reprezentarea unei relaţii de tip compoziţie

În reprezentarea clasei atributele şi operaţiile sunt declarate în compartimentele speciale din dreptunghi, astfel:
- atributele:
numele atributului : tipul atributului = valoare implicită

- operaţiile:
numele operaţiei (parametri) : tipul valorii returnate

Atunci când diagrama este folosită pentru a modela structuri de business se pot folosi tipurile de date specifice business-ului, nu programării, de exemplu: minut, dată calendaristică, minut etc.
Exemplu de reprezentare a unei clase în UML

Moştenirea este o relaţie prin care se indică faptul că o clasă moşteneşte caracteristicile clasei părinte. În plus, clasa copil poate avea propriile caracteristici.
Exemplu de reprezentare a unei moşteniri folosind UML

Asocierea arată existenţa unei relaţii între clase. În exemplul de mai jos, între Persoană şi Autovehicul următoarea relaţie: o Persoană poate avea zero, unul sau mai multe Autovehicule.
Exemplu de reprezentare a unei relaţii de asociere folosind UML

Un tip special de asociere este indicat printr-o clasă de asociere. Altfel spus, relaţia în sine este o clasă.
În exemplul de mai jos, relaţia dintre Articol şi Lista de preţuri este de tip mai mulţi la mai mulţi: un Articol poate să apară pe mai multe Liste şi o Listă poate avea mai multe Articole. Pe Liste diferite Articolele pot avea preţuri diferite.
Exemplu de reprezentare a unei relaţii de asociere folosind UML

Dependenţa indică faptul că o clasă depinde de altă clasă, în sensul în care o funcţie oarecare depinde de un parametru al său.
Exemplu de reprezentare a unei relaţii de dependenţă folosind UML

Agregarea indică faptul că o clasă părinte are elemente de tipul clasei copil. În exemplul de mai jos Ţara poate avea mai multe Judeţe dar, în acelaşi timp, un Judeţ poate exista chiar şi în cazul în care clasa Ţara nu există.
Exemplu de reprezentare a unei relaţii de agregare folosind UML

Într-o relaţie de tip compoziţie clasa copil nu poate exista decât dacă există o instanţă a clasei părinte. În exemplul de mai jos instanţa clasei Comisie există atâta timp cât există instanţa clasei Examen.
Exemplu de reprezentare a unei relaţii de compoziţie folosind UML



Adrian Ionescu





Colecția:  🌻 Tutorial UML

Articolul precedent:  Tutorial UML (partea a IV-a). Statechart Diagram




👍 Topul celor mai citite articole

1. Analiza cerinţelor software. Introducere
Această serie de articole este destinată tuturor persoanelor implicate în proiecte de dezvoltare de software: şefi de departament, şefi de proiec...

2. Despre Analiza cerinţelor
Analiza cerinţelor software (pe care o vom numi în continuare Analiza de business sau Analiză software) este aceea dintre disciplinele existente î...

3. Axiomele dezvoltării software
Adevăruri ale dezvoltării software care susțin nevoia Analizei cerințelor. Unul dintre ele este: "Întotdeauna, într-un proiect software apar si...

4. Ciclul de dezvoltare al produsului software (SDLC)
Deşi în limba engleză este denumit Software Development Life Cycle (SDLC) am ales traducerea „Ciclul de dezvoltare al produsului software”, chi...

5. Ciclul de dezvoltare iterativ
Asumarea realităţii că întotdeauna, în decursul proiectului, cerinţele se vor schimba a condus la apariţia unui model de dezvoltare realist, ca...

6. Locul Analizei în proiectul de dezvoltare software
Analiza Software este o disciplină care se află în relaţie de dependenţă cu celelalte discipline din proiect. Concret, task-urile din proiectul ...

7. Modele teoretice de abordare a problemelor. Decompoziţia
Modalităţile teoretice de abordare a problemelor sunt universale şi pot fi folosite oriunde însă pentru domeniul nostru, este important să le co...

8. Modele teoretice de abordare a problemelor. Sinteza
Sinteza este o modalitate, prin care, din manifestări punctuale se determină problema reală. Cel mai simplu şi clar exemplu este acela al mediculu...

9. Modele teoretice de abordare a problemelor. Crearea unui trunchi de bază
De foarte multe ori, în viaţa reală, o problemă nu poate fi punctată decât cu un efort substanţial sau chiar deloc. Pur şi simplu, obţinerea ...

10. Modele teoretice de abordare a problemelor. Abordarea iterativă
Metoda iterativă presupune rezolvarea unei probleme cunoscute printr-o abordare iterativă, la fiecare iteraţie făcând un pas către rezolvarea pr...



📜 Căutare după etichetă:

Analiza Business
Baze de date
C#
Cerințe software
CSS
Dictionar IT
Glossary
HTML
Information Theory
Information Theory Basics
MySQL
PHP
Riscuri
SDLC
Specificații software
SQL
UML