Documente Academic
Documente Profesional
Documente Cultură
Curs 3
Limbajul UML - introducere
18.10.2013
Curs 3 STR
Cuprinsul cursului 3
18.10.2013
Curs 3 STR
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
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
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
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
!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
$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
18.10.2013
Curs 3 STR
10
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
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
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
%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
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 mesa e
18.10.2013
Curs 3 STR
15
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
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
%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
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
%bstracti'area poate apare sub di(erse &orme in sistemele orientate spre obiecte
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
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
18.10.2013
Curs 3 STR
26
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
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
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
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
18.10.2013
Curs 3 STR
33
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#
18.10.2013
Curs 3 STR
34
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
UML este de&init in mod o&icial de catre Object Mana,ement ?roup !OM?"
18.10.2013
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
Diagrama de clase Diagrama de componente Diagrama de obiecte Diagrama de structura compusa Diagrama de implementare Diagrama de pachete
MODEL
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
18.10.2013
Curs 3 STR
38
La fel ca in %ML & Diagrama de parametrizare Modificat fata de %ML & $ip nou de diagrama
18.10.2013
Curs 3 STR
39
18.10.2013
Curs 3 STR
40
Diagrama de clase
18.10.2013
Curs 3 STR
41
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
18.10.2013
Curs 3 STR
43
Diagrama de stari
18.10.2013
Curs 3 STR
44
Diagrama de secvente
18.10.2013
Curs 3 STR
45
Diagrama de comunicatie
18.10.2013
Curs 3 STR
46
18.10.2013
Curs 3 STR
47
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
)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