Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Diagramele de clase

baze de date



+ Font mai mare | - Font mai mic



Diagramele de clase

Diagramele de clase sunt folosite in modelarea vederii statice de proiectare a unui sistem. Aceasta vedere ofera suport in primul rand cerintelor functionale ale sistemului - serviciile pe care sistemul ar trebui sa le ofere utilizatorilor finali.



Datorita numarului mare de concepte folosite, diagramele de clase sunt considerate tipul de diagrama cel mai complex din UML. O astfel de diagrama descrie tipurile de obiecte (clase de obiecte, tipuri de date si interfete) si diferitele tipuri de relatii care le conecteaza. Elementele continute intr-o diagrama de clase sunt:

o       clase de obiecte, interfete si colaborari;

o       relatii intre clase (relatii de asociere, generalizare/specializare, agregare,

realizare, dependenta );

o       elemente de adnotare si mecanisme de extensie (stereotipuri, constrangeri,

valori etichetate);

Diagramele de clase pot sa mai contina pachete sau subsisteme, ambele folosite pentru a grupa elementele modelului in parti mai mari. Uneori, se poate dori plasarea in diagrama a unor instante, in special atunci cand se doreste vizualizarea tipului (posibil dinamic) al unei instante.

Diagramele de clase se pot folosi in trei modalitati tipice:

Pentru modelarea vocabularului unui sistem - specificarea abstractizarilor

ce fac parte din sistemul considerat si a responsabilitatilor lor;

Pentru modelarea de colaborari simple - vizualizarea si specificarea

multimii de clase (si a relatiilor dintre ele), ce constituie o colaborare;

Pentru modelarea de scheme logice ale bazelor de date;

1.Clasele se reprezinta ca si dreptunghiuri cu 3 sectiuni: prima este numele clasei, sectiunea din mijloc este desemnata pentru atribute, iar cea de-a treia pentru metode .

1.1 Numele clasei este foarte important fiind primul mijloc de recunoastere a resursei

fundamentale din model, drept pentru care trebuie sa fie concis si clar.

1.2 Atribut

Atributul are sintaxa urmatoare:

visibilitate nume [multiplicitate] : tip = valoare_initiala unde:

Vizibilitatea poate fi:

    • public: cu simbolul + ,atributul fiind accesibil din afara clasei
    • protected: cu simbolul # ,atributul este accesibil din subclasele clasei din care face parte
    • private :cu simbolul - ,atributul nu este accesibil din afara clasei

o       package: cu simbolul ~ ,atributul este accesibil de catre obiectele din acelasi pachet

  • Multiplicitatea indica numarul de valori pe care pe care il poate lua un atribut. Multiplicitatea este reprezentata ca limita_inferioara.limita_superioara
  • Tip indica tipul de data al atributului si poate fi: int, Integer, String etc..
  • Valoare_initiala este valoarea initiala a atributului.

Student

+ID:int

-Name:String

-Description:String

-Sex:Char="M"

-note[0..*]:Integer

1.2 Operatii/Metode

Operatia are sintaxa urmatoare:

visibilitate nume_operatie (lista_parametri) : return_type

  • vizibilitatea la fel ca in cazul atributelor;
  • nume_operatie -numele operatiei respective;
  • lista_parametri sintaxa fel: tip = valoare_default unde:
    • fel este optional si poate fi:
      • in: indica faptul ca parametrul este input-only, si se poate sa nu fie modificata de operatie
      • out: indica faptul ca parametrul este output-only, si se poate sa fie modificat de operatie
      • inout: indica faptul ca parametrul este input, si se poate sa fie modificat de operatie sa comunice informatie clientului care invoca operatia respective.
    • Tip: tipul de data al parametrului
  • Return_type: tipul datei pe care operatia il intoarce.

Student

+getName():String

-corigenta(nota:Integer, materie:String="matematica"):Boolean

1.3 Obiecte

Un obiect este un concept specific, sau instanta unei clase, avand caracteristici definite de clasa din care face parte. Aceste caracteristici sunt atat structurale(atribute) cat si comportamentale(metode sau operatii). Ele se reprezinta ca dreptunghiuri cu 2 compartimente despartite prin linii orizontale in care numele sunt subliniate, avand sintaxa nume_obiect : [nume_clasa] . Aceasta inseamna ca In exemplul urmator obiectul Popescu este un obiect al clasei Student.

Popescu:Student

ID=2

Nume="Ion"

2.Relatii dintre clase

Asociere:

In acest tip de relatie obiectele sunt de obicei asociate intre ele. Asocierea poate avea sau nu un nume care se va afla tiparit in vecinatatea sa si va contine o sageata care precizeaza modul de citire al acestuia. O asociere poate avea nume diferite pentru fiecare directie. Fiecare capat al asocierii este un rol si fiecare rol poate avea un nume ( nume de rol ) care arata cum este vazuta clasa asociata lui de alta. Fiecare rol indica multiplicitatea clasei sale ( cate instante ale clasei pot fi asociate cu o instanta a altei clase ).

Indicator de Multiplicitate: precizeaza cate obiecte din clasa respectiva participa la realizarea legaturii.

Indicator de multiplicitate:

Indicator

Explicatie

zero sau unu

unu

zero sau mai mult

unu sau mai mult

n

n(n>1)

0..n

zero sau n(n>1)

1..n

unu sau n(n>1)

Exemple de relatii de asociere:

Mostenire

Relatia de mostenire este o relatie de tip "is a" sau "este" pentru ca tipul subclasei este un tip de clasa parinte. Subclasa mosteneste atributele si metodele clase parinte. In exemplu de mai jos clasa de baza este Language iar subclasele sunt Java si C++:

In exemplul urmator clasa de baza este clasa vehicol iar sublcasele sunt Vehicol terestru si vehicol acvatic care la randul lor sunt clase parinte pentru masina,vehicol amfibie si barca.

Agregare: Cand o clasa este formata ca o colectie de alte clase, relatia dintre aceste clase

se numeste agregare. Este o relatie de tip "Has a".

Exemplu 1:

Figura de mai sus se citeste astfel:

-un agent poate fi parte dintr-o singura agentie, dar nu trebuie sa fie obligatoriu parte a unei agentii(de aici 0..1) el putand fi agent independent;

- agentia este intotdeauna compusa din macar un agent, dar poate avea mai multi(de aici 1..*)

-un agent este considerat un angajat(numele rolului) al unei agentii

Exemplul 2:

Compozitie: este o varianta a relatiei de agregare implicand o puternica legatura a ciclului de viata dintre obiectele associate. Cu alte cuvinte este o forma de agregare in care obiectul parte poate fi membru al unui singur obiect de tip intreg la un moment dat."Obiectul intreg este responsabil pentru existenta si adunarea obiectelor parti."

Exemplul 1:

Diagrama de mai sus se citeste astfel: Compania va avea cel putin un departament iar cand compania va fi desfiintata departamentul va fi desfiintat automat.

Exemplul 2:

Figura de mai sus se citeste astfel o cladire este compusa dintr-una sau mai multe incaperi, iar o incapere poate fi compusa din 0 sau mai multe subincaperi(camere) avem aici de a face cu compozitia reflexiva.

Nota: Clasa parte poate fi legata doar de o singura instanta a clasei intreg.

Realizarea: In relatia de realizare o entitate(de obicei interfata) defineste un set de

functionalitati iar cealalta entitate(de obicei o clasa) implementeaza acele functionalitati.

Exemplu:

In figura de mai sus Parser este interfata iar HTMLParser este clasa ce implementeaza functionalitatile definite de catre Parser. Un alt exemplu:

In figura de mai sus atat clasele Profesor cat si Student implementeaza interfata Persoana.

Dependenta: Este o relatie intre doua elemente in care o schimbare intr-un

element(independent) afecteaza pe celalalt element(dependent).

Exemplu de modelare a relatiilor dintre membrii unei facultati:

Pachete

In cazul modelarii unei arii extinse de business,apar in model foarte multi clasificatori fapt care contribuie la ingreunarea lucrului cu clasele,de aceea limbajul UML ne pune la dispozitie elementul numit pachet. Lucrul cu pachetele ajuta la organizarea claselor pe categorii.Divizarea sistemului in pachete faciliteaza intelegerea acestuia in ansamblu mai ales in cazurile in care pachetul constituie o parte specifica a sistemului.

Un exemplu de pachet ai carui membri sunt evidentiati in interiorul dreptunghiului denumit Accounts.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1365
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved