You are on page 1of 33

Sisteme in Timp Real

Semestrul I 2013 2014 Curs 5

Partea I Definirea structurii unui sistem / aplicatie software - Diagrama e clase -

1.11.2013

Curs 5 STR

Diagrama de clase

pre!inta clasele asociate unui sistem si relatiile intre ele


NumeClasa NumeClasa atribute atribute: tip_date atribute: tip_date=valoare .... <<stereotype>> NumeClasa atribute atribute: tip_date operatie() operatie(lista_arg):tip_rezultat

" 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

e multe ori se foloseste notiunea e instanta in locul celei e o#iect


se spune &instantierea obiectelor& in loc e &crearea obiectelor& numele formal in '() este &specificarea instantelor&

doua puncte indica un rol clasificator

multiplicitate instanta

NumeRol:

NumeRol:NumeClasa

:NumeClasa

1..4

NumeRol:

obiect anonim sublinierea indica o instanta (obiect)

NumeRol: ipRol!1.."#
multiplicitate instanta

1.11.2013

Curs 5 STR

Diagrama de clase

Clie$t %$ume:&tri$g %'(:&tri$g %is)lo*at:)oolea$ %pi$C+e*,Code:&tri$g %routes:Route!-...# /ordered0 1pi$C+e*,(pi$)

mo$i*a:Clie$t $ume=23o$i*a (ragoi*ea2 '(=4454 is)lo*at=6alse pi$C+e*,Code=2*i*i2 routes=...

atri#utele clasei

efinesc proprietati structurale ale unei clase

6*isi#ilit786nume8$697pe8:6multiplicit78;<6initial *alue8=propert7 string>

*i!i#ilitatea atri#utelor 4 tipuri efinite in '()$

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$

o operatie efineste o proprietate referitoare la comportamentul unei clase

6*isi#ilit786nume8+6parameter list8-$6?eturn t7pe8

comportamentul unei clase este escris e suma tuturor operatiilor sale


Clie$t 1pi$C+e*,(pi$:&tri$g):)oolea$

*i!i#ilitatea$ aceeasi semnificatie ca si in ca!ul atri#utelor

1.11.2013

Curs 5 STR

Diagrama de clase - asocieri

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

$ume rol $ume rol

Clasa7

multipli*itate Clasa1 multipli*itate Clasa7

Clasa1

Clasa7

Clasa1

Clasa7

asociere bidirectionala

asociere unidirectionala navigabila

1.11.2013

Curs 5 STR

Diagrama de clase - asocieri

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

compunere agregare bidirectionala

*
Clasa_8 (parte)

1..3

Clasa_y (parte)

1.11.2013

Curs 5 STR

Diagrama de clase - asocieri

e%emplu agregare si asociere intre clase

1.11.2013

Curs 5 STR

10

Diagrama de clase - asocieri

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

Dependenta este repre!entata prin linie punctata cu sageata

1.11.2013

Curs 5 STR

11

Diagrama de clase - asocieri

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

Diagrama de clase - asocieri

"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

Diagrama de clase - exemple


(em#ru nume$String a resa$String nrInc4irieri$int nr(em#ru$int inc4iria!a (aga!inCi eo nume$String a resa$String

mentine 1 Catalog c4ecE in c4ecE out

1 copieCi eo nrStocE$int 1 D

D 1 Ci eo nume$String

1.11.2013

Curs 5 STR

14

Diagrame de clase si obiecte - exemple

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

Diagrame de clase - asocieri

pentru asocieri pot fi mentionate in mo optional stereotipuri

<<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

public class 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#();

Phone"oo&() { itsPhoneNu'ber = ne$

#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$

/ggregation is a special form of association t4at connotes a Hw4ole/part& relations4ip

public class ,hole { private Part itsPart; }

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

public class -$ner { private ,ard its,ard; }

1.11.2013

Curs 5 STR

24

Partea a II-a /nali!a "" iagrame '() statice

1.11.2013

Curs 5 STR

25

!naliza && ' diagrame (#) statice

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

De la cerinte la analiza si proiectare

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

I entifica si capturea!a structura sistemului

(o ele inamice

I entifica si capturea!a mo ul in care sistemul se mo ifica in timp

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

#odelarea incepe cu identificarea obiectelor

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

%um gasim obiectele candidat+

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

Su#stanti*ele sunt persoane@ locuri sau lucruri Su#stanti*ele au caracteristicile o#iectelor

1.11.2013

Curs 5 STR

29

!naliza substantivelor, identificarea obiectelor candidat

)istati su#stanti*ele gasite in ocumentatia scrisa@ cu e%ceptia celor$


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

)ista o#iectelor can i at pentru *i eo store


?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

!naliza, diagrama de clase


'n e%emplu e iagrama e clase pentru Ci eo Store

1.11.2013

Curs 5 STR

32

.ot fi actorii obiecte candidat+

/ctorii sunt e%terni sistemului@ ar$

Interfata sistem este o parte a sistemuluiI

'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

You might also like