Sunteți pe pagina 1din 49

Sisteme in Timp Real

Semestrul I 2013 2014

Curs 3
Limbajul UML - introducere

18.10.2013

Curs 3 STR

Cuprinsul cursului 3

OO !continuare" - Comunicarea intre obiecte# mesaje Limbajul UML - introducere

18.10.2013

Curs 3 STR

Obiectele subclaselor mostenesc membrii comuni

Instantele subclaselor au# $oate atributele si metodele superclasei %tribute si metode aditionale de&inite in subclasa

Metodele de&inite in superclasa &urni'ea'a alta optiune Subclasa poate mosteni o metoda &ara sa &aca absolut nimic Subclasa poate suprade&ini !o(erride" o metoda daca &urni'ea'a o implementare inlocuitoare
Curs 3 STR 3

18.10.2013

Despre supradefinire (overriding)

entru a returna !c)ec* in" o copie (ideo# 1+ %ctuali'ea'a inre,istrarea clientului 2+ Setea'a starea la -disponibil. 3+ /eturnea'a in mod &i'ic copia in depo'it entru o copie pe caseta cu nume e0ista un pas suplimentar# 1+ %ctuali'ea'a inre,istrarea clientului 2+ Setea'a starea la -disponibil. 3+ 1eri&ica daca banda este derulata la capat2 daca nu2 o derulea'a 4+ /eturnea'a in mod &i'ic copia in depo'it Solutie#

Clasa DVDCopy poate utili'a metoda ,enerica checkIn() mostenita de la VideoCopy Clasa TapeCopy poate suprade&ini implementarea metodei checkIn() pentru a adau,a pasul suplimentar
Curs 3 STR 4

18.10.2013

Supradefinirea metodelor (overriding)

3aca se apelea'a checkIn() pentru TapeCopy se (a &olosi metoda de&inita in clasa TapeCopy 3aca se apelea'a checkIn() pentru DVDCopy (a &i utili'ata metoda clasei mostenita de la superclasa VideoCopy uterea polimor&ismului# Se poate scrie o metoda pentru tipul ,eneric VideoCopy care (a &unctiona pentru toate subclasele 1a continua sa &unctione'e si daca se adau,a alte subclase void return(VideoCopy vc) { vc.checkIn(); } Curs 3 STR

18.10.2013

Polimorfism

Se utili'ea'a polimor&ismul atunci cand clasele inrudite au aceleasi mesaje dar metode di&erite sau &unctii care implementea'a mesajele /eturnarea unei copii (ideo este un mesaj comun 3erularea este necesara doar pentru copiile pe banda ma,netica Cand sunt necesare di(erse implementari2 metodele pot &i plasate in subclase 3i&erite subclase au di&erite implementari Subclasele pot2 dar nu in mod obli,atoriu2 sa &urni'e'e o implementare implicita sau comuna

18.10.2013

Curs 3 STR

Implementarea mostenirii in Java

public class Pet { private trin! na"e; public void Pet( trin! na"e) { this.na"e # na"e; } public void set$a"e( trin! ne%$a"e ) { na"e # ne%$a"e; } public trin! !et$a"e() { return na"e; } public trin! speak(); { && return an e"pty strin! return '(; } }

18.10.2013

Curs 3 STR

Subclase si superclase

class Do! e)tends Pet { public Do!( trin! na"e) { super( na"e ); } public trin! speak(){ return '*o++,(; } } Pet p # ne% Do!('-assie(); yste".out.println(p.!et$a"e() . ' / ( . p.speak());

18.10.2013

Curs 3 STR

Comunicarea intre obiecte: mesa e (!"#)


Obiectele comunica prin transmiterea de mesaje

!et0oneyTotal si !et$a"e sunt e0emple de mesaje care pot &i transmise obiectului persoana2 4im

$ransmiterea de mesaje este sin,ura modalitate prin care obiectele pot comunica

Comunicarea intre obiecte: mesa e (#"#)

$ransmiterea de mesaje este un concept di&erit de apelul unei &unctii

$pelul unei functii indica &aptul ca am identi&icat codul de implementare care doresc sa se e0ecute la apelul &unctiei Transmiterea unui mesa este doar o cerere de ser(iciu adresata unui obiect5 obiectul determina ce trebuie sa &aca

Diferite obiecte pot interpreta acelasi mesa in mod diferit

18.10.2013

Curs 3 STR

10

%esa e si metode (!"#)


%esa

Un mesaj este o cerere a unui ser(iciu O metoda repre'inta implementarea unui ser(iciu cerut prin intermediul mesajului In limbajele procedurale2 acestea sunt cunoscute ca proceduri sau &unctii

%etoda

18.10.2013

Curs 3 STR

11

%esa e si metode (#"#)

In mod tipic2 un mesaj este trimis de la un obiect catre alt obiect5 nu spune si care este codul care (a &i e0ecutat O metoda repre'inta codul care (a &i e0ecutat ca raspuns la primirea mesajului transmis obiectului

18.10.2013

Curs 3 STR

12

$ccesarea datelor
3atele memorate intr-un obiect pot &i accesate direct de catre alte obiecte sau prin utili'area mesajelor

3atele mai poarta denumirea de 6stare. Mesajele permit ascunderea detaliilor de implementare

Se pre&era utili'area mesajelor

ro,ramele utili'ea'a metode de acces !accessor methods" pentru a obtine sau modi&ica datele

e0emplu# !et0oneyTotal() poate accesa campul denumit "oneyTotal sau poate ascunde !sau mai tar'iu &i inlocuit de" un calcul suplimentar al banilor a&lati in di(erse locatii !porto&el2 cont bancar2 etc" pentru a obtine aceeasi (aloare

18.10.2013

Curs 3 STR

13

Obiecte si instante

Iata trei obiecte#

%cestea sunt trei obiecte di&erite2 insa &iecare repre'inta o persoana2 Person 3atele di&era pentru &iecare obiect de tip Person 1ariabilele in care se (or memora datele sunt aceleasi in &iecare ca'5 mesajele la care raspunde &iecare obiect sunt aceleasi %ceste trei obiecte sunt instante ale aceleiasi clase de obiecte
Curs 3 STR 14

18.10.2013

Cum definim o clasa&


'ume

7umele clasei trebuie sa descrie un obiect din lumea reala 7umele clasei trebuie sa &ie unic2 concis2 si sa identi&ice in mod clar abstracti'area modelata Sunt datele care trebuie sa &ie capturate pentru abstracti'are entru obiectul Person2 elementele de tip date sunt numele persoanei si numarul de monede de 28 centi !9uarters" si 10 centi !dimes" pe care le are persoana respecti(a Mesajele pe care le poate primi obiectul

(ista de elemente de tip date


(ista de mesa e

18.10.2013

Curs 3 STR

15

)*emplu: clasa +Person, in Java

18.10.2013

Curs 3 STR

16

(imba ul -%(

18.10.2013

Curs 3 STR

17

(imba ul -%(
UML repre'inta o notatie standard de modelare pentru obiectele din lumea reala2 &iind un prim pas in de'(oltarea unei metodolo,ii de proiectare orientata spre obiecte UML a de(enit o notatie standard pentru sistemele de obiecte distribuite :acilitea'a comunicarea intre analisti2 proiectanti si pro,ramatori

18.10.2013

Curs 3 STR

18

Ce putem modela cu a utorul -%(&


Clase

3ia,ramele de clase capturea'a clasele2 atributele si metodele unei clase precum si relatiile intre clase 3ia,ramele de ca'uri de utili'are capturea'a cerintele sistemului 3ia,ramele de interactiune arata modul in care comunica obiectele intre ele atunci cand &unctionea'a sistemul

Ca'uri de utili'are

Interactiunile sistemului

18.10.2013

Curs 3 STR

19

Diagrama de clase

3ia,rama de clase este utili'ata pentru a arata clasele2 inclusi( atributele lor2 metodele si relatiile cu alte clase Clasa Person (Cod Java) Clasa Person (in diagrama de clase)

18.10.2013

Curs 3 STR

20

Principii ale proiectarii orientate spre obiecte (OO Design)


Modelele (i'uale permit sa se proiecte'e sistemul con&orm urmatoarelor concepte#

Modularitate %bstracti'are Mostenire

%ceste principii ale proiectarii orientate spre obiecte !object-oriented desi,n" incorporea'a best practices in software engineering

18.10.2013

Curs 3 STR

21

%odularitate
Modularitatea incearca sa limite'e comple0itatea sistemelor mari prin 6spar,erea. problemei in unitati

Intre,ul sistem (a &i &ormat dintr-un set de module :iecare modul trebuie sa &ie relati( mic Modul racire Modul (entilatie Modul aprindere !i,nition" Modul combustibil

O masina poate &i impartita in module ast&el#


18.10.2013

Curs 3 STR

22

$bstracti.are
Setul de mesaje pe care le poate accepta o clasa trebuie sa &ie separat de implementare

%cest lucru inseamna abstracti.are

%bstracti'area poate apare sub di(erse &orme in sistemele orientate spre obiecte

Incapsulare Inter&ete olimor&ism

18.10.2013

Curs 3 STR

23

Incapsulare
Cel care transmite mesajul nu are ne(oie sa cunoasca implementarea metodei

In&ormatia si detaliile de implementare ale unui ser(iciu &urni'at de o clasa sunt ascunse %cest principiu poarta numele de incapsulare

e+,+ pentru a conduce o masina2 nu trebuie sa cunoastem modul in care &unctionea'a motorul

18.10.2013

Curs 3 STR

24

Interfete

Multe clase de (e)icule &urni'ea'a aceleasi ser(icii ca si un automobil# camioane2 barci2 a(ioane2 etc %ceste (e)icule accepta acelasi set de mesaje care permit sa &ie mane(rate2 ast&el incat au aceeasi inter&ata pentru ser(iciile lor

%ccelerea'a 3ecelerea'a Carmeste

Inter&etele &urni'ea'a o lista de metode separate de implementarea e&ecti(a a acestor metode

18.10.2013

Curs 3 STR

25

Polimorfism
O persoana care doreste sa calatoreasca poate utili'a un automobil2 un camion2 sau o barca

Indi&erent de (e)iculul pe care il conduce2 re'ultatul este acelasi# ajun,erea la destinatie Modul in care este li(rat ser(iciul este di&erit2 e2,+ #

%utomobilul este &olosit pe sosea Camionul este &olosit pe dealuri2 pe teren deni(elat sau pe sosea ;arca poate &i &olosita pe apa

%ceste di&erite clase accepta acelasi set de mesaje si &urni'ea'a acelasi set de ser(icii

<le pot &i intersc)imbate &ara a a&ecta pe cel care transmite mesajul

%cest principiu poarta numele de polimor&ism

18.10.2013

Curs 3 STR

26

)*emplu: interfete si polimorfism

Inter&ata Drivable repre'inta un contract care speci&ica comportarea tuturor (e)iculelor Clasele 1oat2 Car si Truck ale, sa implemente'e inter&ata Drivable5 implementarea metodelor poate &i di&erita %ceste clase intele, aceleasi mesaje si memorea'a aceleasi (ariabile 3eoarece aceste clase &urni'ea'a acelasi ser(iciu2 ele pot &i intersc)imbate &ara a a&ecta ser(iciul &urni'at So&erul poate cere oricarei clase care implementea'a inter&ata Drivable sa accelere'e2 re'ultatul &iind acelasi

Tema: sa se anali.e.e codul corespun.ator modelului -%( in $ctive Code /ie0 (R1apsod2)
Curs 3 STR 27

18.10.2013

%ostenire

Mostenirea este o relatie de tip is intre clase

Un automobil este !is) un (e)icul Indi&erent de tipul de automobil repre'entat2 acesta (a a(ea roti si motor si (a putea &i condus %ceste automobile au multe caracteristici comune2 dar ele pot &i repre'entate de clase di&erite datorita di&erentelor dintre ele %ceasta clasa poarta denumirea de superclasa Clasele pot mosteni (ariabile si metode de la superclasa5 acestea sunt denumite subclase

Clasa Car modelea'a di(erse tipuri de automobile

Similaritatile pot &i abstracti'ate intr-o clasa comuna


18.10.2013

Curs 3 STR

28

)*emplu mostenire

Superclasa Car &urni'ea'a (ariabilele si metodele de ba'a utili'ate de catre toate celelalte clase de automobile Co"pactCar2 -u)uryCar si portsCar mostenesc toate (ariabilele si metodele din clasa Car %ceste subclase e0tind clasa Car2 &urni'and (ariabile si metode suplimentare acolo unde este necesar

Tema: sa se anali.e.e codul corespun.ator modelului -%( in $ctive Code /ie0 (R1apsod2)

18.10.2013

Curs 3 STR

29

)*emplu clase
clasa 3ialler !o clasa dintr-o dia,rama de clase" este repre'entata sub &orma unui dreptun,)i5 aceasta clasa !o clasa dintr-o dia,rama de clase" este repre'entata de codul alaturat
public class Dialler{ Dialler }

18.10.2013

Curs 3 STR

30

)*emplu clase

simbolul clasei !un dreptun,)i" poate &i impartit in trei compartimente# numele clasei2 datele !atributele" clasei2 metodele !operatiile" clasei alaturat se speci&ica modul in care aceste compartimente sunt transpuse in cod

Dialler 2 di!its 3 Vector 2 nDi!its 3 int


.di!it(n3 int) 4recordDi!it(n3 int)3 boolean

public class Dialler{ private Vector di!its; int nDi!its; public void di!it(int n); protected boolean recordDi!it(int n); }

Tema: sa se cree.e diagrama O%D in R1apsod2 si sa se anali.e.e codul corespun.ator modelului -%( in $ctive Code /ie0

18.10.2013

Curs 3 STR

31

)*emplu mostenire
In UML all arro=)eads point in t)e direction o& source code dependenc>+ Since it is t)e Salaried)mplo2ee class t)at mentions t)e name o& )mplo2ee2 t)e arro=)ead points at )mplo2ee+ So2 in UML2 in1eritance arro=s point at t)e base class

Tema: sa se cree.e diagrama O%D in R1apsod2 si sa se anali.e.e codul corespun.ator modelului -%( in $ctive Code /ie0

18.10.2013

Curs 3 STR

32

)*emplu interfata

UML are o notatie speciala pentru a repre'enta tipul special de mostenire intre o clasa 4a(a si o inter&ata 4a(a este repre'entata cu o sa,eata si linie intrerupta

alta modalitate de a repre'enta aceeasi in&ormatie notatie de tip lollipops


Tema: sa se cree.e diagrama O%D in R1apsod2 si sa se anali.e.e codul corespun.ator modelului -%( in $ctive Code /ie0

18.10.2013

Curs 3 STR

33

-%( 3 -nified %odeling (anguage

UML limbaj ,ra&ic pentru (i'uali'area2 speci&icarea2 constructia si documentarea arte&actelor unui sistem so&t=are UML a &ost impus de Object Mana,ement ?roup !OM?" ca un standard de notatie pentru sisteme de obiecte distribuite UML este doar o notatie+ 7u este si nu speci&ica#

rocese Instrumente Limbaje de pro,ramare

utili'area UML ajuta comunicarea intre analisti2 proiectanti2 pro,ramatori

18.10.2013

Curs 3 STR

34

O scurta istorie a -%(


3e la inceputul pana la mijlocul anilor @A02 au &ost utili'ate cu precadere trei limbaje de modelare :iecare dintre ele a &ost de'(oltat de un leader in lumea OO#

4ames /umbau,) object-modelin, tec)ni9ue !OM$" ?rad> ;ooc) metoda ;ooc) I(ar 4acobson Object-oriented so&t=are en,ineerin, %u de(enit cunoscuti ca -$)e $)ree %mi,os. %u combinat metodolo,iile lor pentru a crea in 1AAB limbajul nonproprietar> Uni&ied Modelin, Lan,ua,e !UML" UML 1 trimis in 1AAB UML 2 trimis la OM? in 2003
Curs 3 STR 35

$oti trei s-au alaturat /ational in 1AA4 si 1AA8


UML este de&init in mod o&icial de catre Object Mana,ement ?roup !OM?"

18.10.2013

Cele mai importante artefacte -%(


Diagrame de ca.uri de utili.are: capturea'a cerintele sistemului Diagramele de clase: capturea'a clasele2 atributele2 metodele claselor si relatiile intre clase Diagramele de obiecte repre'inta o (arianta a dia,ramelor de clase2 si arata obiecte speci&ice pentru a &urni'a un e0emplu !snapshot" al sistemului in timpul rularii Diagramele de activitati: arata &lu0ul de acti(itati intr-un proces Diagramele (masinile) de stari: arata modi&icarile starilor si e(enimentelor care ,enerea'a modi&icari ale starii obiectelor Diagramele de interactiune: arata interactiunile intre obiecte <0ista mai multe tipuri de dia,rame de interactiune 3ia,ramele de sec(ente arata sec(entele de mesaje transmise intre obiecte intr-un scenariu de e0ecutie UML de&ineste de asemenea# Diagrame de componente: arata structura &i'ica a componentelor so&t=are Diagramele de implemenare (deplo2ment): arata ar)itectura sistemului ca noduri &i'ice !)ard=are" si distributie a componentelor so&t=are
Curs 3 STR 36

18.10.2013

Standardul -%( #45 3 structura

Diagrama de clase Diagrama de componente Diagrama de obiecte Diagrama de structura compusa Diagrama de implementare Diagrama de pachete

MODEL

Model structura si comportament

18.10.2013

Curs 3 STR

Stereotipuri, m odel, fluxuri de inform atie, tipuri date prim itive, tem plate-uri, formate OCL (Ob ect Constraint Language! si "M# (Metadata #nterchange! 37

Diagrama de activitati Diagrama cazuri utilizare Diagrama de stare Diagrama de secvente Diagrama de comunicatie Diagrama de timp Diagrama de interactiune

DIAGRAMA

Standardul -%( #45 3 diagrame


$ipurile de diagrame definite in %ML &'(

Diagrame de structura (structure!

Diagrame de comportament (behaviour!

Diagrama de clase (class!

Diagrama de componente (component!

Diagrama de implementare (deployment !

Diagrama de activitati (activity!

Diagrama cazurilor de utilizare (use case!

Diagrama de stare (state machine!

Diagrama de obiecte (object !

Diagrama de structura compusa (composite structure!

Diagrama de interactiuni (interaction!

Diagrama de pachete (package!

Diagrama de secvente (sequence!

Diagrama de comunicatie (communication!

Diagrama de interactivitate (interaction overview!

Diagrama de timp (timing!

18.10.2013

Curs 3 STR

38

Standardul S2s%( !45


$ipurile de diagrame definite in S)sML *'(

Diagrame de structura (structure!

Diagrama de cerinte (requirement !

Diagrame de comportament (behavior!

Diagrama de definire a blocurilor (block definition!

Diagrama interna de blocuri (internal block!

Diagrama de pachete (package!

Diagrama de activitati (activity!

Diagrama de secvente (sequence!

Diagrama cazurilor de utilizare (use case!

Diagrama de stari (state machine!

La fel ca in %ML & Diagrama de parametrizare Modificat fata de %ML & $ip nou de diagrama

18.10.2013

Curs 3 STR

39

Diagrama ca.urilor de utili.are

Cum interactionea'a utili'atorii cu sistemulC

18.10.2013

Curs 3 STR

40

Diagrama de clase

3ia,rama de clase e(identia'a clasele unui sistem si relatiile dintre acestea

18.10.2013

Curs 3 STR

41

Diagramele de clase si obiecte

O dia,rama de clase este utili'ata pentru a arata clasele2 atributele lor2 metodele lor si relatiile dintre ele

/elatiile sau asocierile sunt indicate prin linii care conectea'a clasele

O dia,rama de obiecte este utili'ata pentru a arata instante speci&ice obiecte indi(iduale - si (alorile atributelor la un anumit moment de timp

18.10.2013

Curs 3 STR

42

Diagrama de activitati

Comportament procedural si paralel

18.10.2013

Curs 3 STR

43

Diagrama de stari

Cum modi&ica e(enimentele starea unui obiectC

18.10.2013

Curs 3 STR

44

Diagrama de secvente

Interactiunea intre obiecte5 accent pe sec(ente

18.10.2013

Curs 3 STR

45

Diagrama de comunicatie

Interactiunea intre obiecte5 accent pe le,aturi !lin*s"

18.10.2013

Curs 3 STR

46

Sumar: simboluri -%(

18.10.2013

Curs 3 STR

47

-tili.area -%( pentru de.voltarea de soft0are

Scopul principal al UML este acela de a &acilita comunicarea intre toti indi(i'ii implicati in procesul de de'(oltare UML este un limbaj (i'ual compus din dia,rame 3e multe ori dia,ramele UML sunt insotite de documente te0t2 in special in ca'ul proiectelor mari Modelul UML se modi&ica pe masura ce deci'iile de proiectare se ra&inea'a UML este utili'at in toate etapele de de'(oltare de so&t=are $dunarea cerintelor Ca'urile de utili'are descriu &unctionalitatea sistemului $nali.a problemei de lucru !business problem" 3ia,ramele de clase si interactiune modelea'a domeniul de lucru !business domain" Proiectarea codului 3ia,ramele de clase si interactiune ajuta la proiectarea codului Implementarea 3ia,ramele de stare2 acti(itati si sec(ente arata modul in care e(oluea'a un scenariu Testarea $rebuie sa (eri&ice toate scenariile descrise prin ca'uri de utili'are
Curs 3 STR 48

18.10.2013

;iblio,ra&ie

S>stems <n,ineerin, &or 3ummies2 I;M Limited <dition eboo*

)ttps#DD===14+so&t=are+ibm+comD=ebappDi=mD=ebDsi,nup+doCsourceEs=,-rtl-sd-=pFSG H?EebGs>s-en,dummies

18.10.2013

Curs 3 STR

49