Curs 4 Reprezentari abstracte

77
Unified Meta Language

Transcript of Curs 4 Reprezentari abstracte

Page 1: Curs 4 Reprezentari abstracte

Unified Meta Language

Page 2: Curs 4 Reprezentari abstracte

Ce este de fapt UML?

Definitie: (OMG)

" Unified Modeling Language (UML) reprezinta un limbaj grafic pentru vizualizarea, specificarea, dezvoltarea si documentarea componentelor unei unui sistem software de dimensiuni medii sau mari.

Page 3: Curs 4 Reprezentari abstracte

UML ofera semantici si notatii pentru

1. User Interaction/Use Case Model

2. Interaction / Communication Model

3. State / Dynamic Model

4. Logical / Class Model

5. Physical Component Model

6. Physical Deployment Model

Page 4: Curs 4 Reprezentari abstracte

Procesul dezvoltare a unei aplicatii

Page 5: Curs 4 Reprezentari abstracte

Specificarea Cererilor

Page 6: Curs 4 Reprezentari abstracte

Analiza sistemului

Page 7: Curs 4 Reprezentari abstracte

Proiectarea sistemului

Page 8: Curs 4 Reprezentari abstracte

Implementarea sistemului

Page 9: Curs 4 Reprezentari abstracte

Testarea sistemului

Page 10: Curs 4 Reprezentari abstracte

Instalarea sistemului

Page 11: Curs 4 Reprezentari abstracte

Intretinerea sistemului

Page 12: Curs 4 Reprezentari abstracte

Modelele sunt folosite pentru a furnizadescrierile abstracte

Modelul sistem:Modelul obiect: Modelul functional: Modelul dinamic:

Modelul task-urilor:Harta PERT: Planificarea: Harta organizationala:

Problemele Modelului:

Page 13: Curs 4 Reprezentari abstracte

Relatiile modelului Modelul sistemului

Probleme ModelModelul task-urilor

Page 14: Curs 4 Reprezentari abstracte

Problema modelariiModelelesistemului

Problemele Modelului Modele Task-urilor

Harta PERT

Diagrama Gantt

Hartaorganizationala

Constrangeri

Probleme

Propuneri

Argumente

Modelul Obiect

ModelulFunctional

Modelul dinamic

class...class...class...

Cod

Pro Contra

Proiectare normala

Analiza coduluiExistent(ReverseEngineering)

Page 15: Curs 4 Reprezentari abstracte

O diagrama este o reprezentare vizuala intr-un model

Diagrama de Deployment

Diagramause-case

Diagrama deSecventa

Diagrama deStare

ComponentDiagramsComponent

DiagramsDiagrama deComponente

Modele

Diagrama deObiect

Diagrama deColaborare

Diagrama deActivitate

Diagrama deDiagrama de

Diagrama deClasa

Page 16: Curs 4 Reprezentari abstracte

Entitati in UML

Exista patru tipuri de entitati in UML:

Entitati structurale

Entitati comportamentale:

Entitati pentru grupare:

Entitati pentru observatii:

Page 17: Curs 4 Reprezentari abstracte

Entitati structurale ale UML Sunt partea cea mai “statica” a unui model

indiferenta daca acesta este la nivel fizic sauconceptual

Descriere logica:

Descriere specificatii:

Descriere proces:

Descriere implementatare:

Page 18: Curs 4 Reprezentari abstracte

Clasa O clasa: descrierea unui set de obiecte care au

in comun aceleasi atribute, operatii, relatii sisemantici

Pentru reprezentare se foloseste un dreptunghi

Professor

- name- employeeID : UniqueId- hireDate- s tatus

- discipline- maxLoad

+ submitFinalGrade()+ acceptCourseOffering()+ setMaxLoad()+ takeSabbatical()

Attribute

Operatii

OBIECTE

Page 19: Curs 4 Reprezentari abstracte

19

Diagrama de clase

Prezinta un set de clase, interfete si colaborariprecum si relatiile dintre acestea.

Ceas Simplu

Buton afisaj Baterie timp

Se observa ca are 2 (obiecte) butoane, un afisaj 2 baterii etc

2 1 2 1

1 1 1 1

Page 20: Curs 4 Reprezentari abstracte

Diagrame de tip clasă Atribute/metode

Atributele Nume Vizibilitate

(+)public – (-)private – (#)protected

Operaţiile/Metodele Nume Vizibilitate

Page 21: Curs 4 Reprezentari abstracte

21

Obiectul

UN obiect este o instanta a unei calse

Fiecare obiect apartine unei sinugure clase

In UML numele instantelor sunt subliniate

CatelulMeu:Catel

supercatelul:WebCatel

Catel

WebCatel

<<instanceOf>>

<<instanceOf>>

Page 22: Curs 4 Reprezentari abstracte

Tub

Piramida

Cub

Shape

DesenezMutScalezRotesc

<<interface>>

Realizarea legaturilor

Interfata O interfata este o colectie de operatii care

specifica serviciile unei clase sau componente

Page 23: Curs 4 Reprezentari abstracte

Tub

Piramida

Cub

Forma

DeseneazaMutaScaleazaRoteste

<<interface>>

Tub

Piramida

CubForma

Clasic

Reprezentarea interfetelor

Acadea

Page 24: Curs 4 Reprezentari abstracte

Colaborari In contextul arhitecturii sistemului o colaborare permite

crearea unei grupari care va contine atat aspecte statice cat siaspecte dinamice sub un nume comun

IesireIesire

Page 25: Curs 4 Reprezentari abstracte

25

Diagrame Use Case

Ceas de mana

Citeste ora

Potriveste ceasul

Schimba bateria

Utilizator ceasReparator ceasuri

Page 26: Curs 4 Reprezentari abstracte

26

ActoriModeleaza o entitate externa care comunica cu sistemul si pot fi

Utilizator

Sistem extern

Mediu fizic

Page 27: Curs 4 Reprezentari abstracte

27

Use Case

De obicei reprezinta o clasa de functionalitatioferite de sistem ca un sir de evenimente

Un caz de utilizare consta in

Nume unic

Actori implicati

Conditii initiale

Zirul de evenimente

Conditii de iesire

Necesitati speciale

Page 28: Curs 4 Reprezentari abstracte

28

Exemplu Use Case

Nume:Cumpara bilet ticket

Actor implicat:Pasager

Conditii initiale:Pasagerul sta in fata automatului de bilete.

Pasagerul are destuibani pentru a cumparabiletul.

Sir de evenimente1. Pasagerul specifica ruta dorita2. Automatul de bilete afiseazacostul calatoriei pe acea ruta3. Pasagerul insereaza cash saucard in automat (e presupune caeste disponibila suma necesara) 4. Automatul de bilete da rest (daca e cazul).5. Automatul de bilete da biletul.

Page 29: Curs 4 Reprezentari abstracte

29

Relatia <<extend>>

Pasager

Cumpara bilet

Nici o comanda

<<extend>>

Neschimbat

<<extend>>indisponibil

<<extend>>

Abandoneaza

<<extend>>

Page 30: Curs 4 Reprezentari abstracte

30

Relatia <<include>>

Pasager

Cumpara bilet simplu

Cumpara abonament

Nu am resr

<<extend>>

Abandoneazal

<<extend>>

<<include>>

Primeste banii

<<include>>

Page 31: Curs 4 Reprezentari abstracte

Clasa activa O clasa activa este acea clasa in care obiectele detin

mai multe procese sau fire de executie si ca atare pot initia un control al unei activitati.

Gestionare de evenimente

suspenda()

Goleste_tampon()

Page 32: Curs 4 Reprezentari abstracte

Componenta Este o parte modulara a proiectarii unui sistem care

ASCUNDE implementarea ei in spetele unui set de INTERFETE EXTERNE

OrdinDePlata

Page 33: Curs 4 Reprezentari abstracte

Diagrama de componente

component.java

ImageObserver

image.java

Arata organizarea precum si relatiile intre componentesoftware inclusiv cod sursa, cod obect sau cod executabil.

Aceste diagrame contin:

Componente pachet

Componente

Interfete

Relatii intre entitatile implicate

Page 34: Curs 4 Reprezentari abstracte

Diagrama de Componente

Page 35: Curs 4 Reprezentari abstracte

Diagrama de componente

Page 36: Curs 4 Reprezentari abstracte

Artefact

Reprezinta o parte fizica a sistemuluicare poate fi schimbata si contineinformatie la nivel fizic .

Security.dll

<<artifact>>

Page 37: Curs 4 Reprezentari abstracte

Nodul Reprezinta un element fizic care exista pe durata

executiei si reprezinta o resursa de calcul.

Nod #1

<<Nod>>

Page 38: Curs 4 Reprezentari abstracte

Diagrama de functionare/instalare (deployment) Prezinta configurarea in timpul executiei a nodurilor de calcul

precum si a componenentelor sistemului software care suntinstalate pe acestea

Page 39: Curs 4 Reprezentari abstracte

Diagrame de instalare

Page 40: Curs 4 Reprezentari abstracte

Entitati comportamentale ale UML Se mai numesc si “verbele” modelului

UML.

Reprezinta cea mai dinamica a acestuia

Page 41: Curs 4 Reprezentari abstracte

Interactiunea O interactiune reprezinta un comportament care

contine un set de mesaje schimbat intre un set de obiecte intr-un context particular asociat unui scopspecific.

afisaj()

Page 42: Curs 4 Reprezentari abstracte

Diagrama de Interactiune Prezinta o interactiune ce consta dintr-un set de

obiecte si relatiile intre ele inclusiv mesajeleschimbate intre acestea

Diagrama de secventa Diagrama de colaborare

Page 43: Curs 4 Reprezentari abstracte

43

Diagrame de secventa

Sunt foloste in faza analizei specificatiilor sistem

Pentru a clarifica/rafina descrierele de tip use-case

Pentru a gasi obiecte suplimentare (“participating objects”)

Mai sunt folosite si in cazul proiectarii sistemuluipentru a imbunatati interfetele subsistemelor

Page 44: Curs 4 Reprezentari abstracte

Diagrama de secventa

1: doSomething()

ObjectClient ObjectFurnizor

Mesaj

:Client :Furnizor

Control

Mesaj reflexiv

Durata de viataa Objectului

1.1: doAnotherthing()

Numarul secventei

Pune accentul pe ordinea in timp a mesajelor

Page 45: Curs 4 Reprezentari abstracte

45

Diagrama de secventa – pt Setare Timp

:Ceas Simplu

:Utilizator Ceas

:Ecran :Timp

apasButon1() Clipesc orele()

apasButon1() Clipesc Minutele()

apasButon2() incrementare Minute()

refresh()

ApasButon1 si 2() Memoreza noua setare()

Opreste clipitul()

Page 46: Curs 4 Reprezentari abstracte

Exemplu de mecanism de desenare in applet

: Thread : Toolkit : ComponentPeer

target : HelloWord

client

run( )run( )

callbackLoop( )

handleExpose( )paint( )

Page 47: Curs 4 Reprezentari abstracte

Diagrama de colaborare Pune in evidenta organizarea obiectelor care

participa intr-o interactiune

1: faCeva()

Object Client Object Furnizor

Mesaj

Legatura

:Client :Furnizor

Page 48: Curs 4 Reprezentari abstracte

Diagrama de colaborare

Page 49: Curs 4 Reprezentari abstracte

Diagrama de activitate

Stare initiala

Stare actiune

concurrent fork

concurrent join

Selectare site

Fa treaba cumpara

Expresie verificare[ inacceptabil ]

[ else ]

Calcul oferte

Terminaconstructia

Stare finala

decizie

Page 50: Curs 4 Reprezentari abstracte

50

Diagrame de stare

Descriu comportamentul unui obiect individual (e.g. un automat finit) care se refera la numarulfinit de stari prin care obiectul poate treceprecum si tranzitiile dintre acestea.

Starile sunt reprezentate prin oval-uri

Page 51: Curs 4 Reprezentari abstracte

51

Diagrame de stare

Ora Clipeste Incrementare Ore

Minutele Clipesc IncrementareMinute

Secondele Clipesc Incrementare SecundeOprire Clipire

Butonul 2 apasat

Butonul 2 apasat

Butonul 2 apasat

butoanele1&2 apasate

butoanele1&2 apasate

butoanele1&2 apasate

Butonul 1 apasat

Butonul 1 apasat

Page 52: Curs 4 Reprezentari abstracte

superstate

substate

add student /numStudents = numStudents + 1

Open

Unassigned

Assigned

H

add a professor

Closed

Cancelled

do: Send cancellation notices

Full

Committed

do: Generate class roster

closeRegistration

close

remove a professor

close[ numStudents < 3 ]

[ numStudents = 10 ]

closeRegistration[ numStudents >= 3 ]

close[ numStudents >= 3 ]

closeRegistration [ has Professor assigned ]

close

/ numStudents = 0

remove student / numStudents = numStudents - 1

cancelcancel

Diagrama de stare

Page 53: Curs 4 Reprezentari abstracte

53

Diagrame de activitate

O diagrama de activitate descrie sistemul in termende activitati

Acestea sunt prezentate ca stari care reprezintaexecutia unui set de operatii

Page 54: Curs 4 Reprezentari abstracte

54

Diagrame de activitate

Exemplu: Diagrama pentru gestiunea unui incident

Initiaza un nouraport pentruincidentul in curs

Rezervaresurse

Condu resurselepentru rezolvare

Document Incident

Inchide siarhiveaza raport

Page 55: Curs 4 Reprezentari abstracte

Gruparea entitati in UML Un pachet (package) este un mecanism de uz

general folosit pentru a organiza diverse entitati in grupuri

Reguli Economice(Business rules)

Page 56: Curs 4 Reprezentari abstracte

Pachete

Entitatile structurale, comportamentale si chiar alteentitati de grupare pot fi plasate ntr-un container

A(din pachet A)

B(din pachet B)

Relatie de dependenta

Pachet A Pachet B

Page 57: Curs 4 Reprezentari abstracte

Abstractii de baza

Applet

HelloWorld

Panel

Object

Component

Container

ImageObserver

applet

awt

lang

java

HelloWorld

Page 58: Curs 4 Reprezentari abstracte

Entitati aditionale - Note

Entitatile folosite in note si observati sunt o componenta explicativa a modelelor UML (cam cacometariile in cod) si pot avea orice grad de detalilerenecesar contextului (de la simpleremarci, clarificarisau chiar descrieri complete)

Una din acestea vafi executata

Page 59: Curs 4 Reprezentari abstracte

Relatii intre entitatile UML Exista patru tipuri de relatii in UML:

Asocierea Dependenta Generalizarea si Realizarea

Page 60: Curs 4 Reprezentari abstracte

Ce este asocierea?O relatie semantica dintre doua sau mai

multe clase care specifica legaturi intreinstantele lor

Curs

<<entity>>

Student

<<entity>>

Orar

<<entity>>

Profesor Universitate

AngajatorAngajat

Nume roluri

Lucreaza pentru

Associere

Numele asocierii

Page 61: Curs 4 Reprezentari abstracte

Asocierea - exempluclass CatalogueEntry {private string name;private int number;private double cost;public double getCost () {

return cost; }

}class Part {

private CatalogueEntry entry;

public double cost () {return entry.getCost();

}}

CatalogueEntry screw= new CatalogueEntry(“screw”, 28834, 0.02);

Part screw1 = new Part(screw) ;

screw1.cost();

: Part : Part

: CatalogueEntry

name = “screw”number = 28834cost = 0.02

Descrie Descrie

O legatura reprezinta o conexiune intre obiecte

Page 62: Curs 4 Reprezentari abstracte

O legatura specifica o cale de-a lungul careia acesta poatetrimite un mesaj catre alt obiect (sau catre el insusi)

Asocierea Este o relatie structurala care descrie un set de legaturi

: CatalogueEntry

name = “screw”number = 28834cost = 0.02

: PartClientcost()

Aflarea costului unuei parti

getCost()

Exemplu de asociere

CatalogueEntry

- name - number - cost

+ cost()

Part

+ getCost() 1*

O legatura poate fi vazuta si ca o instanta a uneiasocieri

Page 63: Curs 4 Reprezentari abstracte

Caracteristicile unei asocieri

Persoana Companienn

-angajator-angajat

treaba nn

Numele asocierii

Numele Rolurilor

Numele: descrie natura relatiei respective

Page 64: Curs 4 Reprezentari abstracte

Caracteristicile unei asocieri Navigare: In cazul unei asocieri de clase este posibila

“navigarea” din obiectele unei clase catre obiectele celeilalteclase

Multiplicitate reprezentare

2..4

0..1

1..*

0..*

1

*

2, 4..6

Universitate Profesor1 0..*

Multiplicitatea

Navigare

Nespecificat

Eaxct una

Zero sau maimulte (nelimitat)

Una sau maimulte

Zero sau unu

Cu interval specificat

Mai multe valoridiferite

Page 65: Curs 4 Reprezentari abstracte

Student/Masina Orar/Motor

Intreg

Agregare

Parte

Asociere - Agregare O forma speciala de asociere care modeleaza o

relatie intreg parte intre un agregat (un intreg) sipartile sale componente

Page 66: Curs 4 Reprezentari abstracte

Intreg

Composition

Parte

Asociere - Compunerea O forma de agregare cu o forma de proprietate

(partile nu pot exista fara intreg)

Student Schedule

Page 67: Curs 4 Reprezentari abstracte

Asocierea - Clase asociate In cazul asocierii intre doua clase chiar asocierea

poate avea ea insasi proprietati

Companie Persoana* 1..*

-angajator -angajat

Munca

-salariu

+ getSalariu()

Page 68: Curs 4 Reprezentari abstracte

Asociere - Asociere clase

Decizie de proiectare

Companie Persoana*1..*Munca

-salariu

+ getSalariu()

1 1

Companie Persoana* 1..*

-angajator -angajat

Munca

-salariu

+ getSalariu()

Page 69: Curs 4 Reprezentari abstracte

Asociere - autoasociere

Curs

Materii pregatitoare

0..*

Scoala

Student

1..n

n

1..n

n

membru

Curs

nn

Participa Profesor1..nn 1..nn

prezentat

Departmente

1 1..n1

are

1..n

1..n1..n

1..n

1..n

Asignat la

0..10..1

0..1

-sef

Associere - Exemplu

Page 70: Curs 4 Reprezentari abstracte

Client Furnizor

Pachet

PachetClient PachetFurnizor

Client Furnizor

Clasa

Relatie de dependenta

Relatie de dependenta

Componenta

Dependenta O relatie intre doua elemente unde o schimbare

asupra unuia dintre ele s-ar putea sa cauzeze o modificare si in celalalt

Page 71: Curs 4 Reprezentari abstracte

Dependenta– Exemplu

Profesor Curs

class Profesor {public void preda(Curs c) { ……..}

……………..}

class Profesor {public void preda() { Curs c = new Curs(); ……..}

……………..}

Page 72: Curs 4 Reprezentari abstracte

Generalizare Se referea la o relatie intre clase in care o clasa

are comun structura sau / si comportamentuluneia sau mai multor clase

Angajat

ManagerInginer

Relatie de generalizare

Page 73: Curs 4 Reprezentari abstracte

Account

balancenamenumber

Withdraw()CreateStatement()

Checking

Withdraw()

Savings

GetInterest()Withdraw()

Super-clasa(parinte)

Sub-clase

Relatiegeneralizare

Stramos

Descendenti

Mostenire simpla O clasa mosteneste de la alta

Page 74: Curs 4 Reprezentari abstracte

Aeroplan Elicopter Lupf Cal

Zburatoare Animal

Pasare

Mostenire multipla

Mostenire multipla O clasa poate mosteni caracteristici de la mai

multe clase simultan

Page 75: Curs 4 Reprezentari abstracte

Realizarea UN clsificator care reprezinta un contract pe care

alt clasificator se obliga sa il indeplineasca

Shape

Tub

Piramida

Cub

Shape

draw()move()scale()rotate()

<<Interface>>

Tub

Piramida

Cub

ReprezentareCanonica(reprezentarestandard cu clase)

Reprezentareeliptica/iconica(“lollipop”)

Relatie de Realizare

Page 76: Curs 4 Reprezentari abstracte

Realizare

Circle

Shape

interface Shape {public void draw() ;

}

class Circle implements Shape {public void draw() {…..}

……}

class Shape {

public:virtual void draw() = 0 ;

};

class Circle : public Shape {

public:

void draw() {…..}……

};

Page 77: Curs 4 Reprezentari abstracte

UML jokes