Professional Documents
Culture Documents
Curs 5 STR
Curs 5 STR
1.11.2013
Curs 5 STR
Diagrama de clase
" clasa escrie structura si comportamentul o#iectelor care au aceleasi caracteristici si aceeasi semantica$ structura$ atri#ute comportament$ operatii
1.11.2013
Curs 5 STR
Diagrama de clase
e%emplu mo el e clase$
1.11.2013
Curs 5 STR
Diagrama de clase
clasele sunt template-uri pentru o#iecte
se spune &instantierea obiectelor& in loc e &crearea obiectelor& numele formal in '() este &specificarea instantelor&
multiplicitate instanta
NumeRol:
NumeRol:NumeClasa
:NumeClasa
1..4
NumeRol:
NumeRol: ipRol!1.."#
multiplicitate instanta
1.11.2013
Curs 5 STR
Diagrama de clase
atri#utele clasei
public +notatie ,-. /tri#utul este *i!i#il pu#lic. 0iecare element in afara clasei are acces la acest tri#ut1 private +notatie --. /tri#utul este pri*at. 2ici un element in afara clasei nu are acces la acest atri#ut1 package +notatie 3-. /tri#utul este *i!i#il pentru toate elementele care fac parte in acelasi pac4et ca si clasa1 protected +notatie 5-. /tri#utul este *i!i#il oar in su#clasele clasei respecti*e.
Curs 5 STR 6
1.11.2013
Diagrama de clase
operatiile clasei$
1.11.2013
Curs 5 STR
o asociere este o relatie e structura intre oua clase asocierile pot fi etic4etate com#inan nume@ roluri si multiplicitati am#ele irectii e na*igare in asociere sunt posi#ile aca nu apare nici o sageata
Clasa1
$ume aso*iere
Clasa7
Clasa1
Clasa7
Clasa1
Clasa7
Clasa1
Clasa7
asociere bidirectionala
1.11.2013
Curs 5 STR
agregarea repre!inta un tip e asociere care escrie o ierar4ie e tip intreg/parte compunere repre!inta un tip e asociere care escrie o ierar4ie e tip intreg-parte@ in care compunerea este responsa#ila pentru componentele +partile sale-
Clasa (i$treg)
0..1 0..1
agregare unidirectionala
*
Clasa_8 (parte)
1..3
Clasa_y (parte)
1.11.2013
Curs 5 STR
1.11.2013
Curs 5 STR
10
dependenta
este o relatie intre oua elemente@ care escrie cum epin pentru implementare sau specificare un element e celalalt este repre!entata printr-o linie punctata cu sageata@ fara comentarii suplimentare. 2u e%ista nume e roluri@ nici multiplicitati
Clasa1
Clasa7
dependenta
1.11.2013
Curs 5 STR
11
generalizare$ repre!inta o relatie ta%onomica intre o clasa si o clasa mai generala su#clasele 1 si 2 +clase copil- mostenesc toate proprietatile superclasei +clasa parinte- Superclasa1 o clasa poate mosteni structura si / sau comportamentul uneia sau mai multor clase +mostenire multipla&uper*lasa1 &uper*lasa7 9tribute :peratii
Generalizarea este repre!entata ca linie continua cu sageata plina@ in reptata e la su#clasa catre superclasa
&ub*lasa1
Mostenire multipla
&ub*lasa7
1.11.2013
Curs 5 STR
12
"ASB?C/9IB$
pentru e!*oltarea e aplicatii software@ termenii e generalizare si mostenire sunt e o#icei intersc4im#a#ili pentru acuratete$
generalizarea este numele relatiei sta#ilite intre elemente +intre clase@ intre actori sau intre ca!uri e utili!aremostenirea repre!inta mecanismul prin care relatia e generali!are mo elea!a
1.11.2013
Curs 5 STR
13
1 copieCi eo nrStocE$int 1 D
D 1 Ci eo nume$String
1.11.2013
Curs 5 STR
14
Client
diagrama de clase este utili!ata pentru a arata clasele@ atri#utele si meto ele lor@ precum si relatiile intre clase
nume$String a resa$String nrInc4irieri$int c4ecEoutCi eo+-$*oi returnea!aCi eo+-$*oi *erificaCar Cre it+-$*oi
diagrama de obiecte este utili!ata pentru a arata instante o#iecte in i*i uale si *alorile atri#utelor la un moment at in timp
1.11.2013
Curs 5 STR
15
<<uses>> acesta clasa apelea!a meto e sau epin e e clasa catre care este in reptata sageata <<is>> sau <<is a>> aceasta clasa este o su#clasa a clasei catre care se in reapta sageata. "#iectele celor oua clase sunt in aceeasi relatie <<has>> sau <<has a>> atri#utele acestei clase sunt instante ale clasei catre care se in reapta sageata. /tri#utul poate fi un singur o#iect sau o colectie e o#iecte in care fiecare element este o instanta a clasei catre care se in reapta sageata
Client nume$String a resa$String nrInc4irieri$int c4ecEoutCi eo+-$*oi returnea!aCi eo+-$*oi *erificaCar Cre it+-$*oi
1.11.2013
Curs 5 STR
16
xemplu
clasa Dialler
Dialler
1.11.2013
Curs 5 STR
17
xemplu
public class Dialler { protected Vector digits; protected int ndigits; Dialler - igits $ Cector - nDigits $ int , igit+n $ int5 recor Digit+n $ int- $ #oolean public } Dialler() {
public void digit(int n) { } protected void recordDigit(int n) { } private Vector getDigits() { return digits; } private void setDigits(Vector p_digits) { digits = p_digits; } public int getNdigits() { return ndigits; } public void setNdigits(int p_ndigits) { ndigits = p_ndigits; }
} 1.11.2013
Curs 5 STR
18
xemplu - asociere
<<uses>>
!ssociations bet"een classes most often represent instance *aria#les t4at 4ol references to ot4er o#Fects we see an association between Phone and Button. 94e irection of t4e arrow tells us t4at Phone holds a reference to Button. 94e name near t4e arrow4ea is t4e name of t4e instance *aria#le. 94e num#er near t4e arrow4ea tells us 4ow man7 references are 4el .
public class Phone { protected Array ist!"utton# its"utton; public Phone() { its"utton = ne$ Array ist!"utton#(); } %%%%
1.11.2013
Curs 5 STR
19
xemplu - multiplicitate
public class Phone"oo& { protected public } %%% in&ed ist!PhoneNu'ber# itsPhoneNu'ber; in&ed ist!PhoneNu'ber#();
#ultiplicitate$
94e num#er near t4e arrow4ea represents t4e num#er of o#Fects t4at connecte to t4e ot4er associate we saw t4at fifteen Autton o#Fects were connecte to t4e P4one o#Fect / P4one#ooE is connecte to many P4one2um#er o#Fects. 94e star means many. In Ga*a t4is is most commonl7 implemente wit4 a Cector@ a )ist@ or some ot4er container t7pe
20
1.11.2013
Curs 5 STR
xemplu - mostenire
#ostenire$
94e little arrow4ea pointing at ('ployee enotes inheritance +generalizationIn '() all arrow4ea s point in t4e irection of source code dependency, so@ in '()@ in4eritance arrows point at t4e #ase class
public class ('ployee { %%% } public class )alaried('ployee e*tends ('ployee { %%% }
1.11.2013 Curs 5 STR 21
xemplu - interfete
$nterfete$
'() 4as a special notation for t4e Ein of in4eritance use #etween a Ga*a class an a Ga*a interface it is s4own as a as4e in4eritance arrow
inter+ace "utton istener { %%% } public class "uttonDiallerAdapter i'ple'ents "utton istener{ %%% }
1.11.2013
Curs 5 STR
22
xemplu - agregare
!gregare$
1.11.2013
Curs 5 STR
23
xemplu - compunere
%ompunere
Composition is a special form of aggregation t4e relations4ip oes not 4a*e a lot of use in a Ga*a program
1.11.2013
Curs 5 STR
24
1.11.2013
Curs 5 STR
25
De cele mai multe ori@ iagramele '() sunt clasificate ca fiin statice sau inamice. /ceasta clasificare se refera la aspectele sistemului software repre!entate e fiecare iagrama in parte.
Diagramele statice capturea!a structura aplicatiei folosin clase si asocieri intre clase. Diagramele inamice arata ce se intimpla in timp@ ce acti*itati sau mo ificari e stare apar in timpul e%ecutiei. /ceasta sectiune consoli ea!a iscutiile anterioare espre iagramele e clase si o#iecte.
1.11.2013
Curs 5 STR
26
Re*uirements gathering < escriem intr-o perspecti*a e%terna ce *a tre#ui sa faca sistemul In etapele e anali!a si proiectare ne concentram asupra specificarii functionarii interne a sistemului
Analiza$ mo elea!a omeniul e lucru +#usiness- sau omeniul pro#lemei Proiectarea$ pro uce un mo el implementa#il si etaliat al sistemului
(o ele statice
(o ele inamice
In mo tipic@ anali!a tran!itea!a catre proiectare@ fara a se face o istinctie clara intre aceste etape
1.11.2013
Curs 5 STR
27
Pentru a putea e!*olta ca!urile e utili!are si mo elul e anali!a tre#uie sa cunoastem o#iectele +sau clasele o#iectelor'n e gasim o#iecteleI "ameni$ B%perti pe omeniu@ clienti@ utili!atori@ propria e%perienta Sisteme eFa e%istente Documente scrise$ Cereri e propuneri Specificatii e cerinte pentru sistem@ fise e lucru Ca!uri e utili!are (ateriale e instruire si manuale e utili!are Jlosare ?eutili!area #ancilor e ate
1.11.2013
Curs 5 STR
28
In literatura e%ista i*erse te4nici pentru gasirea o#iectelor In general@ cauta clasele e o#iecte can i at@ nu o#iecte singulare " te4nica foarte populara este anali!a su#stanti*elor
1.11.2013
Curs 5 STR
29
Redundante$ Doua clase care e%prima aceeasi informatie $relevante$ " clasa care are e-a face prea putin sau eloc cu pro#lema -agi$ " clasa cu o limita prost efinita sau cu un scop prea larg !tribute$ 2ume care escriu in principal caracteristici ale o#iectelor &peratii$ 2ume care escriu operatii care se aplica o#iectelor Roluri$ ?ol Fucat e un o#iect intr-o asociere cu alt o#iect %onstructii de implementare$ Constructii fara legatura cu lumea reala@ ar care *or fi parte a spatiului solutiei
1.11.2013
Curs 5 STR
30
xemplu
?ental In*entor7 Customer Store S4elf (o*ie Categor7 Ci eoCop7 ClerE ?ating (em#er Dri*er)icense Cre itCra 2on(em#er ?eceipt ?eser*ation (anager (em#ers4ip
Curs 5 STR 31
1.11.2013
1.11.2013
Curs 5 STR
32
'neori actorul repre!inta atat o forta e%terna cat si un o#iect care tre#uie sa fie mo elat
B%emplu$
'tili!atorii sistemului C?S sunt fie un functionar care actionea!a in numele clientilor@ fie mem#rii care re!er*a on-line materiale *i eo Sistemul mo ifica sau utili!ea!a ate +stare- espre clientiI
1.11.2013
Curs 5 STR
33