You are on page 1of 90

Introducci al disseny orientat a objectes

Marcel Garca Vacas

Entorns de desenvolupament

Entorns de desenvolupament

Introducci al disseny orientat a objectes

ndex

ntroducci !esultats daprenentatge # Diagrames esttics 1.1 Anlisi i disseny orientat a objectes . . . . . . . 1. !len"uat"e uni#icat de modelit$aci . . . . . . . 1. .1 &ia"rames . . . . . . . . . . . . . . . . 1. . &ia"rama de classes . . . . . . . . . . . 1. .% &ia"rama d(objectes . . . . . . . . . . . 1. .* &ia"rama de pa+uets . . . . . . . . . . . 1. ., &ia"rama d(estructures compostes . . . . 1. .' &ia"rama de components . . . . . . . . 1. .. &ia"rama de desple"ament . . . . . . . . 1.% Eclipse i /M!0 notaci dels dia"rames de classes 1.%.1 1reaci del projecte . . . . . . . . . . . 1.%. 1on#i"uraci de l(I&E0 Eclipse . . . . . . 1.%.% 2er3ncia . . . . . . . . . . . . . . . . . 1.%.* 1reaci dels atributs d(una classe . . . . 1.%., 1reaci dels m3todes d(una classe . . . . 1.%.' A"re"aci . . . . . . . . . . . . . . . . . 1.%.. 1lasse associada . . . . . . . . . . . . . 1.%.) 1omposici . . . . . . . . . . . . . . . .

5 " 9 9 1% 1% 1' ) 9 9 %%1 % %% %. %9 *1 *, *. *9 ,53 ,* ,' ,. '1 ', '' '' '. '. '. .1 .% .' .) ))1 )1 )%

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

UML Dinmic: diagrames de comportament i dinteracci .1 /M! &inmic0 dia"rames de comportament . . . . . . .1.1 1onceptes . . . . . . . . . . . . . . . . . . . . . .1. &ia"rama d(activitats . . . . . . . . . . . . . . . .1.% &ia"rama d(estat . . . . . . . . . . . . . . . . . . &ia"rama de casos d(4s . . . . . . . . . . . . . . . . . . . .1 Escenari . . . . . . . . . . . . . . . . . . . . . . . . Actor . . . . . . . . . . . . . . . . . . . . . . . . .% 5ubjecte . . . . . . . . . . . . . . . . . . . . . . . .* 1as d(4s . . . . . . . . . . . . . . . . . . . . . . ., /na associaci o una relaci . . . . . . . . . . . .% &ia"rames d(interacci . . . . . . . . . . . . . . . . . . .%.1 &ia"rama de se+63ncia . . . . . . . . . . . . . . .%. &ia"rama de comunicaci . . . . . . . . . . . . .%.% &ia"rama de temps . . . . . . . . . . . . . . . . .%.* &ia"rama de visi "eneral de la interacci . . . . .* Eclipse i /M!0 dia"rames de comportament . . . . . . . .*.1 &ia"rama de casos d(4s . . . . . . . . . . . . . .*. &ia"rama de classes . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

Entorns de desenvolupament

Introducci al disseny orientat a objectes

.*.% .*.* .*., .*.' .*..

&ia"rama d(objectes . . . . . &ia"rama de transici d(estat &ia"rama d(activitats . . . . . &ia"rama de se+63ncies . . . &ia"rama de comunicaci . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

), ), ), ). ))

Entorns de desenvolupament

Introducci al disseny orientat a objectes

ntroducci

!a #ase de disseny7 dins un projecte de desenvolupament de pro"ramari in#ormtic7 es dur a terme despr8s d(e#ectuar l(anlisi de re+ueriments7 i ser la #ase +ue establir les bases sobre com s(9an de #er les coses a l(9ora de desenvolupar l(aplicaci. /n projecte ben plani#icat o#erir una #ase de disseny +ue 9aur de ser m8s costosa :en temps i recursos; +ue la pr<pia #ase de desenvolupament del pro"ramari. 5i es #a ben #et7 amb una codi#icaci de pro"ramari automtica o semiautomtica7 un bon disseny estalviar molt temps d(9aver de picar codi. A+uesta #ase de disseny s(9aur de dur a terme en concordan=a amb la metodolo"ia escollida per al desenvolupament del projecte. 5i s(9a apostat7 per e>emple7 per una metodolo"ia "il7 caldr #er el disseny en #unci d(a+uest tipus de pro"ramaci. &urant molts anys s(9a desenvolupat un disseny estructurat +ue diri"ia cap a un tipus de pro"ramaci estructurada i modular. &e #et7 en al"uns projectes encara es #a servir a+uest tipus de disseny. I"ual +ue la pro"ramaci estructurada va evolucionar cap a la pro"ramaci orientada a objectes7 l(evoluci natural 9a estat anar cap a una codi#icaci de pro"ramari orientada a objectes7 se"uint7 tamb87 una anlisi i un disseny orientats a objectes. /M! permet elaborar un model del sistema +ue es vol automatit$ar. !(actual unitat #ormativa s(9a dividit en dos apartats. !(apartat ?&ia"rames esttics@ est en#ocat a la introducci de tot all< relacionat amb el disseny de desenvolupament de pro"ramari7 entrant en detall en el disseny orientat a objectes i7 especialment7 en els dia"rames esttics7 +ue sn els +ue identi#i+uen els elements de la modelit$aci del sistema. En l(apartat ?&ia"rames dinmics@7 per la seva banda7 es treballen els dia"rames +ue indi+uen el comportament del sistema i les seves interaccions. A+uests dia"rames complementen els dia"rames esttics per o#erir7 conjuntament7 un disseny complert de la soluci +ue s(o#erei> a un projecte in#ormtic.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

!esultats daprenentatge

En #inalit$ar a+uesta unitat l(alumneAa0 #% Genera dia"rames de classes valorant la seva importncia en el desenvolupaB ment d(aplicacions i emprant les eines disponibles en l(entorn. C Identi#ica els conceptes bsics de la pro"ramaci orientada a objectes. C InstalDla el m<dul de l(entorn de desenvolupament inte"rat +ue permet la utilit$aci de dia"rames de classes. C Identi#ica les eines per a l(elaboraci de dia"rames de classes. C Interpreta el si"ni#icat de dia"rames de classes. C Era=a dia"rames de classes a partir de les especi#icacions de les matei>es. C Genera codi a partir d(un dia"rama de classes. C Genera un dia"rama de classes mitjan=ant en"inyeria inversa. $% Genera dia"rames de comportament valorant la seva importncia en el desenvolupament d(aplicacions i emprant les eines disponibles en l(entorn. C Identi#ica els di#erents tipus de dia"rames de comportament. C Feconei> el si"ni#icat dels dia"rames de casos d(4s. C Interpreta dia"rames d(interacci. C Elabora dia"rames d(interacci sen$ills. C Interpreta el si"ni#icat de dia"rames d(activitats. C Elabora dia"rames d(activitats sen$ills. C Interpreta dia"rames d(estats. C Glanteja dia"rames d(estats sen$ills.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

#% Diagrames esttics

El llen"uat"e uni#icat de modelit$aci :/M!; es basa en dia"rames +ue estableiB >en les especi#icacions i documentaci de +ualsevol sistema. A+uests dia"rames es #an servir en el desenvolupament de projectes in#ormtics per analit$ar i dissenyar les necessitats dels usuaris #inals de les aplicacions7 amb la +ual cosa es documenten els seus re+ueriments. Ger< tamb8 es podran utilit$ar en molts m8s mbits7 com ara la modelit$aci del #uncionament d(una empresa7 d(un departament o d(un sistema de +ualsevol altre entorn. Els dia"rames +ue es poden #er servir per modelit$ar sistemes es poden a"rupar o classi#icar de moltes #ormes. /na d(a+uestes classi#icacions di#erencia entre els dia"rames +ue corresponen a l(/M! esttic i els +ue corresponen a l(/M! dinmic. Els dia"rames inclosos en els considerats de /M! esttic7 tamb8 anomenats dia"rames d(estructura7 #an re#er3ncia als elements +ue s(9auran de trobar en el sistema de modelit$aci. A+uests dia"rames #an una descripci del sistema sense tenir en compte les interaccions amb altres elements o el comportament +ue tenen els elements del sistema7 nom8s identi#i+uen a+uests models i establei>en les seves caractersti+ues. &ins a+uest tipus de dia"rames7 el m8s important 8s el diagrama de classes7 +ue especi#icar totes les classes estimades al disseny orientat a objectes i +ue seran instanciades al codi de pro"ramaci +ue es desenvolupar a continuaci. En les p"ines corresponents a a+uest apartat es treballaran els dia"rames corresB ponents a l(/M! esttic7 #ent especial re#er3ncia al dia"rama de classes. Eamb8 es mostra un e>emple de com poder treballar amb un I&E :Eclipse; amb els dia"rames /M!.

#%# &nlisi i dissen' orientat a o()ectes !a creaci d(una aplicaci in#ormtica es pot considerar una obra d(en"inyeria. &e #et7 #a molts anys +ue es conei> amb el nom engin'eria del programari :o engin'eria del software;7 considerat com una de les rees m8s importants de la in#ormtica. !(en"inyeria del pro"ramari en"loba tota una s3rie de metodolo"ies7 t3cni+ues i eines +ue #aciliten la #eina +ue comporten totes i cada una de les #ases d(un projecte in#ormtic. !(en"inyeria del pro"ramari 9a evolucionat de #orma contnua :i 9o continua #ent a data d(avui;7 adaptantBse a les noves tecnolo"ies i a les noves #ormes de desenvolupar pro"ramari. A la d3cada dels .-7 amb l(inici de la pro"ramaci d(aplicacions com a #eina "eneralit$ada en les or"anit$acions7 i l(aparici de la #i"ura del pro"ramador7 nom8s 9i 9avia un objectiu0 +ue les aplicacions #essin el

Entorns de desenvolupament

1-

Introducci al disseny orientat a objectes

+ue 9avien de #er optimit$ant la velocitat i l(4s de mem<ria. En a+uells primers pro"rames nin"4 no es preocupava pel #utur manteniment de les aplicacions per part d(altres pro"ramadors7 ni tampoc +ue el codi #os #cil d(entendre. Amb els anys7 les aplicacions demanen m8s #uncionalitats i el desenvolupament d(aplicacions es #a m8s comple> a mesura +ue millora el ma+uinari i el pro"raB mari +ue utilit$en els pro"ramadors. !a pro"ramaci passa a ser pro"ramaci estructurada7 implementada en m<duls i m8s sen$illa d(entendre i de mantenir. A mitjanB#inals dels anys .- comencen a apar3i>er les primeres metodolo"ies. El #et s(elaborar el codi de pro"ramaci a partir de les improvisacions o de les intuHcions del pro"ramador7 sotmet el projecte a uns riscos7 com ara la poca e#iccia o els errors en les #uncionalitats +ue 9an de solucionar els re+ueriments de les especi#icacions. A+uestes metodolo"ies recullen l(e>peri3ncia de molts projectes7 o#erint una s3rie de passos a e#ectuar per al correcte i e>its desenvolupament de les aplicacions in#ormti+ues. Entre a+uests passos es troben les #ases en +u3 es dividei> un projecte7 entre les +uals 9i 9a la #ase de disseny. El disseny estructurat7 o tamb8 anomenat disseny orientat al #lu> de dades7 permet establir la transici del &ia"rama de Ilu> de &ades :&I&; a una descripci de l(estructura del pro"rama7 +ue es representa mitjan=ant un dia"rama d(estructures. !es eines +ue #aciliten i automatit$en a+uest tipus de disseny es conei>en com a eines 1A5E. A la #i"ura 1.1 es pot observar un e>emple de &ia"rama de Ilu> de &ades.
*igura #%#% E>emple &I&

Entorns de desenvolupament

11

Introducci al disseny orientat a objectes

!(evoluci en l(en"inyeria del pro"ramari sor"ei> a partir dels anys )-7 +uan comen=a a apar3i>er la pro"ramaci orientada a objectes. !a #orma de pro"ramar ja no es basar en les estructures i en la pro"ramaci modular7 sin +ue la base seran les classes i els objectes. I"ual +ue 9i 9a una evoluci en la pro"ramaci7 a+uesta evoluci tamb8 es veu re#lectida en les metodolo"ies de "esti de projectes. Al cap d(uns anys d(a"a#ar #or=a la pro"ramaci orientada a objectes i de #erBse un lloc entre els desenvolupadors d(aplicacions7 van apar3i>er0 C Modelit$aci de sistemes orientats a objectes. C &isseny orientat a objectes. C Generaci automtica de 1odi. C Metodolo"ies "ils. En l(actualitat e>istei>en di#erents tipus de tecnolo"ies +ue s(utilit$en en el desenvolupament de pro"ramari7 i les m8s utilit$ades sn0 C Metodolo"ies estructurades. C Metodolo"ies orientades a objectes. C Metodolo"ies "ils. &ei>ant la tercera de banda7 en les altres dues :estructurades i orientades a objectes; es pot considerar +ue el proc8s de desenvolupament de pro"ramari t8 les matei>es #ases. 5e"ons diversos autors7 pot 9averB9i "rans diver"3ncies entre les propostes de #ases d(un projecte7 per<7 en "eneral7 les proposades sn a+uestes0 C Estudi previ7 on es delimita l(mbit del projecte de desenvolupament d(un pro"ramari i se(n determina la viabilitat7 els riscos7 els costos i el calendari. C &nlisi de re+ueriments7 on es descriuen de manera adient els re+uisits del pro"ramari7 +ue sn les necessitats d(in#ormaci +ue el pro"ramari 9a de satis#er. !(anlisi 9a de dei>ar molt clar el +ue es vol #er a partir de l(estudi d(un problema determinat. Els re+ueriments +ue cal recollir 9auran ser #uncionals i no #uncionals. 1aldr +ue si"ui independent de la tecnolo"ia i del tipus de pro"ramaci escollits per al desenvolupament del projecte. C Dissen'7 on es projecta el pro"ramari amb vista a implementarBlo en un entorn tecnol<"ic concret7 de#init per aspectes com ara el llen"uat"e de pro"ramaci7 l(entorn de desenvolupament i el "estor de bases de dades7 de tots els +uals en pot intervenir m8s d(un dins un sol projecte. A partir del +ue caldr #er7 de#init a la #ase anterior al disseny7 es determina el com es #ar. 1aldr tenir en compte les possibles conse+63ncies de les

Entorns de desenvolupament

Introducci al disseny orientat a objectes

decisions presses en a+uesta #ase. El detall 9aur de ser su#icientment bai> com per+u3 a partir d(a+uestes indicacions es pu"ui desenvolupar el projecte.

Entorns de desenvolupament

1%

Introducci al disseny orientat a objectes

C Desenvolupament i proves7 on es porta a terme el desenvolupament del codi #ont +ue satis#aci les #uncionalitats establertes a les #ases anteriors. A+uesta #ase no nom8s es limita a la codi#icaci manual7 sin +ue pot incloure la pro"ramaci "r#ica7 la "eneraci automtica de codi i altres t3cni+ues. En a+uesta #ase tamb8 s(inclouran les proves del pro"ramari. Al"unes parts de la pro"ramaci poden comen=ar abans +ue el disseny esti"ui enllestit del tot7 i tamb8 es poden provar parts del pro"ramari mentre encara se n(estan implementant d(altres. C *inalit,aci i trans-er.ncia7 on es prepara el pro"ramari per tal +ue esti"ui en e>plotaci. &urant a+uesta #ase7 8s objecte de manteniment per eliminar errors no corre"its durant la prova7 introduirB9i millores i adaptarB lo a canvis tecnol<"ics i or"anit$atius +ue es produei>in en l(entorn de treball dels usuaris. /n model ade+uat evita trobarBse amb situacions com la +ue es mostra en la #i"ura 1. 7 on es poden observar7 a mode d(e>emple7 les di#er3ncies d(enteniment entre les di#erents parts i #ases implicades en la "esti d(un projecte in#ormtic.
*igura #%$% Errors a evitar en el desenvolupament d(un
pro"ramari

Entorns de desenvolupament

1%

Introducci al disseny orientat a objectes

#%$ Llenguatge uni-icat de modelit,aci /M! 8s l(acr<nim7 en an"l3s7 de Unified Modeling Language7 8s a dir7 !len"uat"e uni#icat de modelit$aci. /M! sn un conjunt de notacions "r#i+ues +ue servei>en per especi#icar7 dissenyar7 elaborar i documentar models de sistemes i7 en particular7 d(aplicacions in#ormti+ues. A partir d(a+uestes notacions "r#i+ues o dia"rames7 l(analista i el dissenyador podran recrear les caractersti+ues +ue caldr +ue tin"ui l(aplicaci in#ormtica +ue els desenvolupadors 9auran de crear posteriorment. En l(actualitat 8s el llen"uat"e de modelit$aci de sistemes m8s cone"ut i utiB lit$at. Gaudei> d(una acceptaci "aireb8 universal i7 entre altres bene#icis7 9a tin"ut l(e#ecte d(impulsar el desenvolupament d(eines de modelit$aci "r#ica del pro"ramari orientat a l(objecte. A m8s est recone"ut i 8s recomanat per l(JMG. Els avantat"es de la notaci /M! sn els se"6ents0 C Est recol$ada per la JMG :Jbject Mana"ement Group; com la notaci estndard per al desenvolupament de projectes in#ormtics. C Es basa en una notaci "r#ica concreta i #cil d(interpretar7 essent compleB tada amb e>plicacions escrites. C A l(analista iAo al dissenyador els permet #er 4s dels dia"rames +ue conB siderin oportuns i amb el "rau de detall +ue considerin en #unci de les caractersti+ues del sistema. C Germet tenir una visi "lobal del sistema a implementar. C Gromou la reutilit$aci. Entre els desavantat"es desta+uen0 C /M! no 8s una metodolo"ia7 8s una notaci. C /M! no 8s un llen"uat"e de pro"ramaci. C Got resultar comple> obtenir un conei>ement complet de les possibilitats del llen"uat"e.
En la secci Anne>os del Keb del m<dul 9i podeu trobar m8s in#ormaci re#erent a la 9ist<ria i caractersti+ues de l(/M!. /M0 Grov8 de l(an"l3s7 Jbject Mana"ement Group7 +ue 8s un consorci #undat l(any 19)9 amb l(objectiu de #omentar l(4s de la tecnolo"ia orientada a l(objecte mitjan=ant l(establiment d(estndards.

#%$%# Diagrames En el llen"uat"e de modelit$aci /M!7 en la seva versi .*.17 e>istei>en un total de 1* tipus di#erents de dia"rames. 1om es pot observar a la #i"ura 1.%7 una possible classi#icaci dels dia"rames es #a en #unci de la visi del model del sistema +ue o#erei>en. !es dues visions di#erents de model de sistema +ue poden representar els dia"rames /M! sn0

Entorns de desenvolupament

1*

Introducci al disseny orientat a objectes

C 1isi esttica 2o estructural30 per o#erir a+uest tipus de visi s(utilit$en objectes7 atributs7 operacions i relacions. !a visi esttica d(un sistema dna m8s valor als elements +ue es trobaran en el model del sistema des d(un punt de vista de l(estructura del sistema. &escriuen aspectes del sistema +ue sn estructurals i7 per tant7 permanents :all< +ue el sistema t8;. C 1isi dinmica 2o de comportament30 per o#erir a+uest tipus de visi es dna m8s valor al comportament dinmic del sistema7 8s a dir7 a all< +ue 9a de passar en el sistema. Amb els dia"rames de comportament es mostra com es modela la colDlaboraci entre els elements del sistema i els seus canvis d(estat. Fepresenten all< +ue pot #er el sistema modelit$at.
*igura #%3% &ia"rames /M!

&ins els dia"rames esttics o dia"rames d(estructura es poden trobar . tipus de dia"rames7 +ue sn0 C Diagrama de pa+uets7 +ue representa essencialment les relacions de di#erents menes entre els contin"uts de di#erents pa+uets d(un model. C Diagrama de classes7 +ue probablement molts consideren el dia"rama principal7 at3s +ue descriu classi#icadors de tota mena i di#erents tipus de relacions entre ells abans de #erBlos servir en altres dia"rames. C Diagrama do()ectes7 +ue representa instncies de classi#icadors de#inits en un dia"rama de classes previ i relacions entre elles. C Diagrama destructures compostes7 +ue descriu casos en +u37 o b8 les instncies d(un classi#icador tenen com a parts instncies d(altres7 o b8 en el comportament e>ecutant d(un classi#icador participen instncies d(altres. C Diagrama de components7 +ue 8s un dia"rama de classes i al9ora d(estrucB tures compostes simpli#icat i m8s adient per a determinades tecnolo"ies de pro"ramaci. C Diagrama de desplegament7 +ue descriu la con#i"uraci en temps d(eB >ecuci d(un pro"ramari especi#icat7 normalment7 per un dia"rama de components. C Diagrama de per-il7 permet adaptar o personalit$ar el model amb construcB cions +ue sn espec#i+ues d(un domini en particular7 d(una determinada plata#orma7 o d(un m3tode de desenvolupament de pro"ramari...

Entorns de desenvolupament

1,

Introducci al disseny orientat a objectes

A la #i"ura 1.* es pot observar un resum dels dia"rames d(estructura.


*igura #%4% &ia"rames d(estructura o esttics

&ins els dia"rames dinmics o dia"rames de comportament es poden trobar . tipus de dia"rames7 +ue sn0 C Diagrama de casos d5s7 +ue considera els comportaments d(un sistema principalment des del punt de vista de les interaccions +ue t8 amb el mn e>terior. C Diagrama destats7 en el +ual es descriuen les di#erents situacions BestatsB des del punt de vista dels seus comportaments7 de les instncies d(un classi#icador7 al9ora +ue les causes7 condicions i conse+63ncies dels canvis d(una situaci a una altra. C Diagrama dactivitats7 en +u3 es descriu un comportament comple> en #orma de se+63ncies condicionals d(activitats components. Diagrama dinteracci7 +ue descriu comportaments emer"ents i t8 les variants se"6ents0 C Diagrama de se+6.ncies7 +ue #a 3m#asi en la se+63ncia temporal de les participacions de les di#erents instncies. C Diagrama de comunicacions7 +ue es basa directament en una estructura composta. C Diagrama de visi general de la interacci7 +ue dna una visi resumida del comportament emer"ent. C Diagrama temporal7 +ue es basa en un dia"rama d(estats previ o m8s d(un i al9ora posa 3m#asi en els canvis d(estat al llar" del temps. A la #i"ura 1., es pot observar un resum dels dia"rames dinmics7 tamb8 anomenats dia"rames d(estructura.

Entorns de desenvolupament

1'

Introducci al disseny orientat a objectes

*igura #%5% /M!0 &ia"rama de comportament o dinmic

#%$%$ Diagrama de classes /n dels dia"rames re#erents de /M!7 classi#icat dins els dia"rames de tipus esttic7 8s el dia"rama de classes. Ls un dels dia"rames m8s utilit$ats a les metodolo"ies d(anlisi i de disseny +ue es basen en /M!.

Un diagrama de classes representa les classes +ue seran utilit$ades dins el sistema i les relacions +ue e>istei>en entre elles. A+uest tipus de dia"rames sn utilit$ats durant les #ases d(anlisi i de disseny dels projectes de desenvolupament de pro"ramari. Ls en a+uest moment en +u3 es comen=a a crear el model conceptual de les dades +ue #ar servir el sistema. Ger ai>< s(identi#i+uen els components :amb els seus atributs i #uncionalitats; +ue prendran part en els processos i es de#inei>en les relacions +ue 9i 9aur entre ells. /n dia"rama de classes porta vinculats al"uns conceptes +ue ajudaran a entendre(n la creaci i el #uncionament en la seva totalitat. A+uests conceptes sn0 C 1lasse7 atribut i m3tode :operacions;. C Visibilitat. C Jbjecte. Instanciaci. C Felacions. 2er3ncia7 composici i a"re"aci. C 1lasse associativa. C Inter#cies.

Entorns de desenvolupament

1.

Introducci al disseny orientat a objectes

A la #i"ura 1.' es mostren els elements +ue poden pertnyer a un dia"rama de classes.
*igura #%7% Elements del dia"rama de classes

8lasses% &tri(uts i operacions

/na classe descriu un conjunt d(objectes +ue compartei>en els matei>os atri(uts7 +ue representen caractersti+ues estables de les classes7 i les operacions7 +ue representen les accions de les classes. Els atri(uts :tamb8 anomenats propietats o caracterstiques; sn les dades detallades +ue contenen els objectes. A+uests valors corresponen a l(objecte +ue instancia la classe i #a +ue tots els objectes si"uin di#erents entre si. Eot atribut t8 assi"nat un tipus i pot tenir una llista #ormada per un valor o m8s d(a+uest tipus7 d(acord amb la multiplicitat corresponent7 +ue 9an de pertnyer a a+uest tipus i poden variar al llar" del temps.

Entorns de desenvolupament

1)

Introducci al disseny orientat a objectes

Ger e>emple7 un possible atribut de la classe persona podria ser el seu nom7 atribut de tipus string.

!es operacions :tamb8 anomenades m3todes o #uncionalitats; implementen les accions +ue es podran dur a terme sobre els atributs. J#erei>en la possibilitat d(aplicar canvis sobre els atributs7 per< tamb8 moltes altres accions relacionades amb l(objecte7 com obrirBlo o tancarBlo7 carre"arBlo... 1ada operaci t8 una si"natura +ue en descriu els eventuals parmetres i el seu valor de retorn. Els parmetres tenen nom7 tipus7 multiplicitat i direcci :+ue indica si el parmetre 8s d(entrada7 de sortida7 o d(entrada i sortida al9ora;. El valor de retorn7 si n(9i 9a7 nom8s t8 tipus i multiplicitat. !es operacions poden tornar e>cepcions durant la seva e>ecuci. /na excepci 8s una instncia d(un classi#icador +ue 8s el seu tipus. El #et +ue una operaci torni una e>cepci normalment denota +ue s(9a produHt una anomalia en l(e>ecuci. Ger e>emple7 un possible m3tode de la classe Prs podria ser rt7 +ue retorna un enter. A la #i"ura 1..7 es mostra un breu e>emple d(una classe i com es representaria.
*igura #%"% E>emple de representaci d(una classe

A+uesta representaci mostra un rectan"le +ue est dividit en tres #iles0 C A la primera s(indica el nom de la classe. C A la se"ona s(indi+uen els atributs +ue donen les caractersti+ues a la classe. 1aldr tamb8 indicar la seva visibilitat. C A la tercera s(indi+uen els m3todes o les operacions amb la seva declaraci i visibilitat. El codi +ue es "eneraria a partir de la classe Prs de la #i"ura 1.. seria0

Entorns de desenvolupament

19

Introducci al disseny orientat a objectes

1 % * , ' . ) 9 111 1 1% 1* 1, 1' 1. 1) 19 1 % * , ' . ) 9 %%1 % %% %* %, %' %.

Class Persona{ { // atributs private String nom; private String dni; private String adreca; private String telefon; private date dataNaixement; // constructor public Persona(String nom, String dni, string adreca, string telefon, date dataNaixement{ this.nom nom; this.dni dni; this.adreca adreca; this.telefon telefon; this.dataNaixement dataNaixement; ! // m"todes o operacions public integer Calcular#dat($ { %ate data&ctual ne' %ate($; Simple%ate(ormat format ne' Simple%ate(ormat()dd/**/++++)$; String ,data&ctual formato.format(data&ctual$; String ,dataNaixement formato.format(dataNaixement$; ,dataNaixement.split()/)$; String-. data/nici ,data&ctual.split()/)$; String-. data(i int an+s /nteger.parse/nt(data(i-0.$ M /nteger.parse/nt(data/nici -0.$; int mes /nteger.parse/nt(data(i-1.$ M /nteger.parse/nt(data/nici -1.$; if (mes 2 3$ { an+s an+s M 1; ! else if (mes 3$ { int dia /nteger.parse/nt(data(i-3.$ M /nteger.parse/nt( data/nici-3.$; if (dia 4 3$ an+s an+s M 1; ! return an+s; ! !

La visi(ilitat

!a visi(ilitat d(un atribut o d(una operaci de#inir l(mbit des del +ual podran ser utilit$ats a+uests elements. A+uesta caracterstica est directament relacionada amb el concepte d(orientaci a objectes anomenat encapsulaci7 mitjan=ant el +ual es permet als objectes decidir +uina de la seva in#ormaci ser m8s o menys p4blica per a la resta d(objectes.
Exemple de visi(ilitat

!es possibilitats per a la visibilitat7 tant d(atributs com de m3todes7 sn0 C en /M!7 o 7 +ue vol dir +ue l(element 8s accessible per tots els altres elements del sistema. C en /M!7 o rt7 +ue si"ni#ica +ue l(element nom8s 8s accessible pels elements contin"uts dins el matei> objecte. C en /M!7 o rtt7 +ue vol dir +ue l(element nom8s 8s visible per als

/na classe 8s un espai de noms per a les seves variables i m3todesN per e>emple7 un m3tode de visibilitat nom8s pot ser invocat des de m3todes +ue #ormin part de la matei>a classe o d(al"una de les seves especialit$acions eventuals.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

elements del seu matei> objecte i per als elements +ue pertanyen a objectes +ue sn especialit$acions. C en /M!7 o 7 +ue nom8s es pot aplicar +uan l(objecte no 8s un pa+uet7 i ales9ores vol dir +ue l(element nom8s 8s visible per als elements contin"uts directament o indirectament dins el pa+uet +ue cont8 directament l(objecte. Ger mostrar un e>emple de la visibilitat7 es mostra a continuaci el codi de la classe t7 la classe Prs i la classe st. 1adascuna de les classes t8 els seus atributs i els seus m3todes. Al"uns d(a+uests elements seran p4blics o privats7 o#erint les caractersti+ues +ue s(indi+uen en #inalit$ar el codi.
1 % * , ' . ) 9 111 1 1% 1* 1, 1' 1. 1) 19 1 % * , ' . ) 9 %%1 % %% %* %, %' %. %) %9 *-

public class 5abitacio { private String data#ntrada; private String dataSortida; private Persona client; public 5abitacio (String data#ntrada, String dataSortida, String nom$ { this.data#ntrada data#ntrada; this.dataSortida dataSortida; client ne' Persona(nom$; ! public String get%ata#ntrada($ { return data#ntrada; ! public String get%ataSortida($ { return dataSortida; ! public Persona getClient($ { return client; ! ! class Persona{ private String nom; public Persona(String nom$ { this.nom nom; ! public String getNom($ { return nom; ! public void setNom(String nom$ { this.nom nom; ! ! public class 6est { public static void main(String-. args$ { 5abitacio reserva ne' 5abitacio ()07/311/0310), )08/11/0310), )9oan :arcia)$; Persona client reserva.getClient($; String nom reserva.getClient($.getNom($; ! !

1aldria #i>arBse en el m3tode rsrtt7 +ue 4nicament t8 visibilitat als atributs i als m3todes p4blics de la classe Prs7 8s a dir7 pot consultar el nom de la persona a trav8s del m3tode p4blic t ! per< no pot accedir a l(atribut privat !. &(altra banda7 els m3todes t ! i st ! de la classe Prs tenen visibilitat als atributs i als m3todes privats de la classe7 amb la +ual cosa7 poden accedir a l(atribut privat !.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

/()ectes% nstanciaci

/n objecte 8s una instanciaci d(una classe. El concepte instanciaci indica l(acci de crear una instncia d(una classe. !a creaci d(una instncia d(una classe es re#erei> a #er una crida al m3tode constructor d(una classe en temps d(e>ecuci d(un pro"ramari.

/n o()ecte es pot de#inir7 llavors7 com una unitat de mem<ria relacionada +ue7 en temps d(e>ecuci7 du a terme accions dintre un pro"ramari. Ls +uelcom +ue es pot distin"ir i +ue t8 una e>ist3ncia pr<pia7 ja si"ui de #orma conceptual o de #orma #sica. /n objecte pot pertnyer a m8s d(una classe7 per< nom8s d(una d(elles es poden crear objectes directament0 la resta de classes representen nom8s papers +ue pot e>ercir l(objecte. /n possible objecte de la classe Prs podria ser el +ue es mostra a la #i"ura 1.).
*igura #%9% E>emple d(un objecte de la classe @Gersona@

El codi per crear un objecte o instncia es mostra tot se"uit0

public static void main(String-. args$ { Persona 9oan ne' Persona()9oan :arcia),)73;80<7<),)C/Casanoves 1=3), )<= 0<8=<07), 0>/3=/1<;;$; !

/n aspecte caracterstic dels objectes 8s +ue tenen identitat7 cosa +ue si"ni#ica +ue dos objectes creats per separat sempre es consideren di#erents7 encara +ue tin"uin els matei>os valors a les caractersti+ues estructurals. En canvi7 les instncies de se"ons +uins classi#icadors no tenen identitat i7 ales9oB res7 dues instncies amb els matei>os valors a les caractersti+ues estructurals es consideren com una matei>a instncia. A+uest #et es representa a la #i"ura 1.9.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

*igura #%9% Instanciaci d(objectes de la classe @Gersona@

!elacions% :er.ncia; composici; agregaci

!es relacions sn elements imprescindibles en un dia"rama de classes. Ger relaci s(ent8n +ue un objecte "# demani a un altre "$7 mitjan=ant un missat"e7 +ue e>ecuti una operaci de les de#inides en la classe de l("$. En l(e>emple d(un client +ue reserva una 9abitaci d(9otel es pot observar +ue intervenen dues classes7 Prs i t7 +ue estan relacionades7 on la classe t consulta el nom del client corresponent a la classe Prs. Es veu representat a la #i"ura 1.1-.
*igura #%#<% Felaci entre classes

!es relacions +ue e>istei>en entre les di#erents classes s(anomenen de #orma "en3rica associacions.

8lassi-icador /n classi#icador 8s un tipus els valors del +ual tenen en com4 caractersti+ues estructurals i de comportament7 +ue sn elements +ue es de#inei>en a nivell del classi#icador. 1adascun d(a+uests valors 8s una instncia del classi#icador.

/na associaci 8s un classi#icador +ue de#inei> una relaci entre diversos classi#icadors7 +ue establei> conne>ions amb un cert si"ni#icat entre les instncies respectives. /na associaci t8 diversos extrems dassociaci7 a cadascun dels +uals 9i 9a un classi#icador +ue t8 un cert paper en l(associaciN un classi#icador pot ser en m8s d(un e>trem de la matei>a associaci amb papers di#erents.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

/na associaci amb dos e>trems es diu +ue 8s binriaN seria el cas de l(e>emple d(un client +ue reserva una 9abitaci d(9otel. /na associaci amb tres e>trems es diu +ue 8s ternria. Es pot veure un e>emple d(una associaci ternria a la #i"ura 1.11.
*igura #%##% Associaci ternria

!a multiplicitat7 representada per uns valors %!!&'7 indica el nombre m>im d(enlla=os possibles +ue es podran donar en una relaci. A+uesta multiB plicitat no podr ser mai ne"ativa7 essent7 a m8s a m8s7 el valor m>im sempre m8s "ran o i"ual al valor mnim. A la #i"ura 1.1 es pot veure un e>emple de la representaci d(una associaci entre dues classes amb la indicaci de la seva multiplicitat.
*igura #%#$% Associaci amb multiplicitat

1oncretament7 indica +ue7 en l(associaci Pr(st7 per a cada objecte de la classe )tr podr 9averB9i7 com a mnim - objectes de la classe )r i7 com a m>im7 % objectes. En canvi per a cada objecte de la classe )r podr 9averB 9i7 com a mnim - i com a m>im 1 objecte de la classe )tr. Es poden trobar di#erents tipus de relacions entre classes. A+uestes es poden classi#icar de moltes #ormes. A continuaci7 es mostra una classi#icaci de les relacions0 C Felaci d(associaci C Felaci d(associaci d(a"re"aci C Felaci d(associaci de composici C Felacions de depend3ncia C Felaci de "eneralit$aci

Entorns de desenvolupament

Introducci al disseny orientat a objectes

1; !a relaci dassociaci es representa mitjan=ant una lnia contnua sense #let>es ni cap altre smbol als e>trems. Ls el tipus de relaci :anomenada de #orma "en3rica associaci; +ue s(9a estat e>plicant #ins al moment. Ls un tipus de relaci estructural +ue de#inei> les conne>ions entre dos o m8s objectes7 la +ual cosa permet associar objectes +ue instancien classes +ue colDlaboren entre si. ; /na relaci dassociaci dagregaci 8s un cas especial d(associaci entre dos o m8s objectes. Es tracta d(una relaci del tipus totBpart. A+uest tipus de relaci implica dos tipus d(objectes7 l(objecte anomenat base i l(objecte +ue estar incl<s a l(objecte base. !a relaci indica +ue l(objecte base necessita de l(objecte incl<s per poder e>istir i #er les seves #uncionalitats. 5i desaparei> l(objecte base7 el o els objectes +ue es troben inclosos en l(objecte base no desaparei>eran i podran continuar e>istint amb les seves #uncionalitats pr<pies. !a relaci d(associaci d(a"re"aci es representa mitjan=ant una lnia contnua +ue #inalit$a en un dels e>trems per un rombe buit7 sense omplir. El rombe buit s(ubicar a la part de l(objecte base. A la #i"ura 1.1% es pot observar un e>emple de relaci d(associaci d(a"re"aci. !(objecte base 8s l(objecte anomenat *rtr. Els objectes inclosos a la #ruiteria sn0 P!s7 rs7 Prs i +&s. 5(establei> una relaci entre a+uestes classes del tipus totBpart7 on les #ruites sn part de la #ruiteria. Ai>< s7 si la #ruiteria dei>a d(e>istir7 les #ruites continuen e>istint.
*igura #%#3% Felaci d(associaci d(a"re"aci

%; /na relaci dassociaci de composici 8s tamb8 un cas especial d(associaci entre dos o m8s objectes. Ls una relaci del tipus totBpart. Ls una relaci molt semblant a la relaci d(associaci d(a"re"aci7 amb la di#er3ncia +ue 9i 9a una depend3ncia d(e>ist3ncia entre l(objecte base i l(objecte :o els objectes; +ue 9i est incl<s. Ls a dir7 si dei>a d(e>istir l(objecte base7 dei>ar d(e>istir tamb8 el o els objectes inclosos. El temps de vida de l(objecte incl<s dep3n del temps de vida de l(objecte base. !a relaci d(associaci de composici es representa mitjan=ant una lnia contnua #inalit$ada en un dels e>trems per un rombe pintat7 omplert. El rombe pintat s(ubicar a la part de l(objecte base. A la #i"ura 1.1* es mostra un e>emple d(una relaci d(a"re"aci. !(objecte base +, es compon dels objectes inclosos +7 -r7 r7 .& i P/. 5ense l(objecte +, la resta d(objectes dei>aran d(e>istir.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

*igura #%#4% Felaci d(a"re"aci de composici

*; /n altre tipus de relaci entre classes 8s la relaci de depend.ncia. A+uest tipus de relaci es representa mitjan=ant una #let>a discontnua entre dos elements. !(objecte del +ual surt la #let>a es considera un objecte dependent. !(objecte al +ual arriba la #let>a es considera un objecte independent. Es tracta d(una relaci semntica. 5i 9i 9a un canvi en l(objecte independent7 l(objecte dependent es veur a#ectat. ,; La relaci de generalit,aci es dna entre dues classes on 9i 9a un vincle +ue es pot considerar d(9er3ncia. /na classe 8s anomenada classe mare :o superclasse;. !(altra :o les altres; sn les anomenades classes filles o subclasses7 +ue 9ereten els atributs i els m3todes i comportament de la classe mare. A+uest tipus de relaci +ueda especi#icat mitjan=ant una #let>a +ue surt de la classe filla i +ue acaba a la classe mare. A la #i"ura 1.1, es pot veure un e>emple on l(element tr 8s independent. 2i 9a una depend3ncia normal de l(element 01 en relaci amb l(element tr7 ja +ue tr es #a servir com a parmetre als m3todes 2r i !r de 01. 5i 9i 9a canvis a tr7 l(objecte 01 es veur a#ectat.
*igura #%#5% Felaci de depend3ncia

!(9er3ncia es dna a partir d(a+uestes relacions de depend3ncia. J#erei>en com a punt #ort la possibilitat de reutilit$ar part del contin"ut d(un objecte :el considerat superclasse;7 estenent els seus atributs i els seus m3todes a l(objecte fill. A la #i"ura

Entorns de desenvolupament

'

Introducci al disseny orientat a objectes

1.1' es pot veure un e>emple d(9er3ncia.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

*igura #%#7% Felaci d(9er3ncia

8lasse associativa

Ouan una associaci t8 propietats o m3todes propis es representa com una classe unida a la lnia de l(associaci per mitj d(una lnia discontnua. Eant la lnia com el rectan"le de classe representen el matei> element conceptual0 l(associaci. En el cas de l(e>emple de la #i"ura 1.1. ens trobem +ue la nota est directament relacionada amb les classes stt i -sstr. 1ada un dels alumnes de l(assi"natura tindr una determinada nota. !a manera de modelit$ar l(/M! a+uesta situaci 8s amb les classes associades.
*igura #%#"% E>emple de classe associativa

nter-=cie

/na inter-=cie cont8 la declaraci de les operacions sense la seva implementaci7 +ue 9auran de ser implementades per una classe o component.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

Arribats a a+uest punt7 ens podrem pre"untar0 Ouina di#er3ncia 9i 9a entre una inter#cie i una classe abstractaP /na inter#cie 8s simplement una llista de m3todes no implementats7 ai> com la declaraci de possibles constants. /na classe abstracta7 a di#er3ncia de les inter#cies7 pot incloure m3todes implementats i no implementats. A la #i"ura 1.1) es mostra un e>emple d(una inter#cie representada en /M!. A+uesta inter#cie s(anomena I1alculadora7 i cont8 els m3todes s!7 rst7 !t i s.
*igura #%#9% Fepresentaci d(una inter#cie en /M!

En el codi se"6ent es mostra la de#inici d(a+uesta inter#cie a partir de la #i"ura 1.1).

1 % * , '

interface /Calculadora { public abstract int suma (int x, int +$; public abstract int resta (int x, int +$; public abstract int multiplicacio (int x, int +$; public abstract int divisio (int x, int +$; !

/na ve"ada de#inida es mosta com ser la utilit$aci de la inter#cie de#inida en el codi se"6ent.

1 % * , ' . ) 9 111 1 1% 1*

public class Calculadora implements /Calculadora { public int suma (int x, int +${ return x ? +; ! public int resta (int x, int +${ return x M +; ! public int multiplicacio (int x, int +${ return x @ +; ! public int divisio (int x, int +${ return x / +; ! !

Entorns de desenvolupament

Introducci al disseny orientat a objectes

#%$%3 Diagrama do()ectes /n o()ecte 8s una instncia d(una classe7 per la +ual cosa es pot considerar el dia"rama d(objectes com una instncia del dia"rama de classes.

El diagrama do()ectes nom8s pot contenir instncies i relacions entre objectes0 enlla=os i depend3ncies +ue tin"uin lloc entre instncies. Els classi#icadors i les associacions respectives 9an d(9aver estat de#inits pr3viament en un dia"rama de classes. 5ovint t8 la #unci de simple e>emple d(un dia"rama de classes o d(una part d(ell. A la #i"ura 1.19 es mostra un dia"rama de classes consistent en dues classes7 la classe t i la classe Prs. A partir d(a+uest dia"rama es crea i es mostra el dia"rama d(objectes a la matei>a #i"ura 1.19.
*igura #%#9% &ia"rama d(objectes

Entorns de desenvolupament

Introducci al disseny orientat a objectes

#%$%4 Diagrama de pa+uets Els pa+uets permeten or"anit$ar els elements del model en "rups relacionats semnticamentN un pa+uet no t8 un si"ni#icat per si matei>.

El diagrama de pa+uets servei> per descriure l(estructura d(un model en termes de pa+uets interrelacionats. A la #i"ura 1. - es mostra un e>emple de dia"rama de pa+uets. 5(9i 9a representat un pa+uet7 3r!s7 +ue cont8 dos pa+uets0 st,t 4strtr i ,! !rt!t.
*igura #%$<% &ia"rama de pa+uets

#%$%5 Diagrama destructures compostes

/na estructura composta 8s un conjunt d(elements interconnectats +ue colDlaboren en temps d(e>ecuci per aconse"uir al"un prop<sit. !a #inalitat del dia"rama d(estructures compostes 8s descriure objectes compostos amb la m>ima precisi possible. Es tracta d(un dia"rama +ue complementa el dia"rama de classes. A continuaci es descriur7 #ent 4s d(un e>emple7 el concepte del dia"rama d(estructures compostes. 5i es vol modelit$ar un sistema +ue t8 una videoconsola i una minicadena7 ambdues estan compostes per una 1G/ :/nitat 1entral de Groc8s;7 per< en la videoconsola la 1G/ processa el joc +ue ser visualit$at en al"un dispositiu de sortida :com7 per e>emple7 un televisor; i7 en el se"on cas7 la 1G/ processa la m4sica per+u3 pu"ui ser escoltada.

Entorns de desenvolupament

%-

Introducci al disseny orientat a objectes

/na possible #orma de modelit$ar el sistema podria ser la +ue mostra la #i"ura 1. 1.
*igura #%$#% &ia"rama de classesBcomposici

Ger< si es revisa amb detall el dia"rama de la #i"ura 1. 1 es pot observar +ue t8 de#ici3ncies7 ja +ue #cilment es pot interpretar +ue la 1G/ de la minicadena pot processar m4sica i jocs. /M! .- 9a introduHt un nou dia"rama7 anomenat diagrama destructura composta7 +ue permet concretar les parts +ue componen una classe. A+uest permetr representar el sistema amb el dia"rama +ue es mostra en la #i"ura 1. 7 +ue delimita l(abast de la videoconsola i de la minicadena.
*igura #%$$% &ia"rama d(estructura composta

#%$%7 Diagrama de components /n component 8s una pe=a del pro"ramari +ue con#orma el sistema7 pe=a +ue pot ser reutilit$able i #cilment substituHble. /n component sol #er 4s d(una inter#cie +ue de#inei> les operacions +ue el component implementar. El diagrama de components mostra els components +ue con#ormen el sistema i com es relacionen entre si. A la #i"ura 1. % es pot veure un e>emple d(un dia"rama de components.

nter-=cie /na inter#cie cont8 la declaraci de les operacions sense la seva implementaci7 les +uals 9auran de ser implementades per una classe o component.

Entorns de desenvolupament

%1

Introducci al disseny orientat a objectes

*igura #%$3% &ia"rama de components

#%$%" Diagrama de desplegament

El diagrama de desplegament descriu la distribuci de les parts d(una aplicaci i les seves interrelacions7 tot en temps d(e>ecuci. El dia"rama de desple"ament descriu la con#i"uraci d(un sistema de pro"ramari en temps d(e>ecuci7 en termes de recursos de ma+uinari i dels components de pro"ramari7 processos i objectes :en mem<ria o emma"at$emats en bases de dades7 per e>emple; +ue s(9i 9ostat"en. Eot se"uit es mostren diversos e>emples de dia"rames de desple"ament. En la #i"ura 1. * 9i 9a els nodes 5rr i t7 considerats a nivell de classi#icador7 i una lnia de comunicacions. En a+uesta7 cada instncia de 1lient pot bescanviar in#ormaci nom8s amb una instncia de 5rr7 mentre +ue una instncia de 5rr en pot bescanviar in#ormaci almenys amb una instncia de t7 per< podr #erB9o amb m8s.
*igura #%$4% Qodes i lnia de comunicacions

Oue un arte#acte es desple"ui dins d(un node es pot representar7 o b8 incloent el smbol de l(arte#acte dins el del node7 o b8 amb el desple"ament de l(arte#acte cap al node. !a #i"ura 1. , mostra un e>emple de cada opci7 la primera amb instncies i la se"ona amb classi#icadors.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

*igura #%$5% /n despla=ament i els seus elements

#%3 Eclipse i UML: notaci dels diagrames de classes Ger poder entendre millor els dia"rames de classes i la seva notaci7 es mostra a continuaci un e>emple complet. A m8s a m8s7 s(9a #et servir l(I&E Eclipse per a la creaci d(a+uests dia"rames /M!. A+uest I&E7 en la seva distribuci normal7 no porta incorporada cap eina +ue permeti la creaci de dia"rames /M!. Ger ai>< 8s necessari instalDlar el connector anomenat Gapyrus a l(Eclipse. E>istei>en molts connectors a Eclipse +ue permeten treballar amb Eclipse7 al"uns de propietaris i altres de codi obert. Oualsevol 9auria d(o#erir un #uncionament semblant al +ue es proposa des d(a+uests materials. Es #a servir el #ormat d(e>ercici per o#erir a+uestes indicacions7 pas a pas7 de com crear un dia"rama de classes a partir dels re+ueriments d(un enunciat. A+uest enunciat 8s el +ue es mostra a continuaci0 !es #actures dels proveHdors d(una empresa poden ser de proveHdors de serveis o de proveHdors de productes o materials. 1adascuna de les #actures7 de +ualsevol dels dos tipus7 tenen en com40 C El n4mero de la #actura. C !a data de la #actura. C !(import total R+ue es calcula de manera di#erent en les unes +ue en les altres. C !es dades del client7 +ue sn el QII i el nom7 i +ue s(9auran de trobar en una classe a part. C El detall de la #actura :tant si 8s de materials com si 8s de serveis;. Eant per a les #actures de serveis com per a les #actures de productes o materials

Entorns de desenvolupament

%%

Introducci al disseny orientat a objectes

cal tenir "uardada la darrera #actura emesa7 per tenir present el n4mero de #actura. 2i 9a una llista de serveis amb la descripci i el preu per 9ora de cadascun. En el detall de les #actures 9aur d(9averB9i0 C A les #actures de serveis7 a cada #actura 9i 9a una llista de serveis amb la data de prestaci7 el nombre d(9ores dedicades i el preuA9ora per servei. En una #actura 9i pot 9aver m8s d(una prestaci del matei> servei. C A les #actures de productes7 per a cada producte :a cada #actura n(9i 9a almenys un; 9aur d(9averB9i la descripci7 el preu unitari i la +uantitat.

#%3%# 8reaci del pro)ecte El primer +ue s(9a de #er 8s crear un projecte de tipus Gapyrus. Es pot observar a la #i"ura 1. '.
*igura #%$7

/na ve"ada seleccionada l(opci7 es podr se"uir l(assistent +ue s(o#erei> per a la creaci del projecte. Es pot observar a la #i"ura 1. ..

Entorns de desenvolupament

%*

Introducci al disseny orientat a objectes

*igura #%$"

Eal com es mostra en la #i"ura 1. )7 l(assistent ens permetr especi#icar el nom del projecte.
*igura #%$9

!(assistent permetr seleccionar el llen"uat"e del dia"rama7 +ue en a+uest cas ser /M!7 /ni#ied Modelin" !an"ua"e :#i"ura 1. 9;.

Entorns de desenvolupament

%,

Introducci al disseny orientat a objectes

*igura #%$9

Iinalment7 permetr seleccionar els dia"rames +ue s(utilit$aran en el projecte7 /M! 1lass &ia"ram :#i"ura 1.%-;.

Entorns de desenvolupament

%'

Introducci al disseny orientat a objectes

*igura #%3<

/na ve"ada #inalit$ada la creaci del projecte7 podrem observar una vista GacSa"e E>plorer7 +ue cont8 el projecte +ue s(acaba de crear Iactura. !(editor permetr representar "r#icament el dia"rama de classes i una vista Palette7 +ue anir mosB trant els di#erents components +ue es podran utilit$ar en el dia"rama seleccionat :ve"eu la #i"ura 1.%1;.

Entorns de desenvolupament

%.

Introducci al disseny orientat a objectes

*igura #%3#

#%3%$ 8on-iguraci de l DE: Eclipse En la #i"ura 1.% 7 #i"ura 1.%% i #i"ura 1.%* es mostra com visualit$ar una nova vista7 en concret Model E>plorer7 +ue contindr un llistat jerr+uic dels components +ue inte"rin el dia"rama.
*igura #%3$

Entorns de desenvolupament

%)

Introducci al disseny orientat a objectes

*igura #%33

*igura #%34

En la #i"ura 1.%, i #i"ura 1.%' es mostra com visualit$ar una nova vista7 en concret les propietats dels components. Vista imprescindible per dissenyar el dia"rama. Ger e>emple7 en una relaci es podr especi#icar el nom de l(associaci7 la seva visibilitat7 la cardinalitat de la relaci7 entre d(altres.
*igura #%35

Entorns de desenvolupament

%9

Introducci al disseny orientat a objectes

*igura #%37

#%3%3 :er.ncia !(enunciat especi#ica0 ?cadascuna de les #actures d(una empresa 8s7 o b8 una #actura de serveis o b8 una #actura de productes@. Godem observar +ue es tracta d(una "eneralit$aci o 9er3ncia7 on la classe pare correspon a *tr i les classes filles a *tr srs i *tr rts. En la #i"ura 1.%. es mostra com es crea una classe *tr en el dia"rama de classes7 seleccionant el Qode ss en la barra d(eines i arrosse"antBlo a l(rea de treball.
*igura #%3"% 1reaci d(una classe

!es propietats de la classe es poden concretar en la #inestra de propietats7 tal com es mostra en la #i"ura 1.%).

Entorns de desenvolupament

*-

Introducci al disseny orientat a objectes

*igura #%39

&e la matei>a manera +ue s(9a e>plicat anteriorment7 es creen les classes corresB ponents a *tr srs i *tr rts. En la #i"ura 1.%9 es mostren a+uestes classes.
*igura #%39% 1lasses Iactura7 Iactura5erveis i IacB
turaGroducte

Oueda pendent crear la relaci d(9er3ncia entre les classes. 5eleccionant l(enlla= generalitzaci i arrosse"antBlo a la $ona de treball7 se seleccionen els dos objectes +ue s(9an de relacionar7 *trPrts i *tr. A la #i"ura 1.*- es pot observar com crear la relaci d(9er3ncia.

Entorns de desenvolupament

*1

Introducci al disseny orientat a objectes

*igura #%4<% 1reaci de la relaci d(9er3ncia

Es repetei> el proc8s en la relaci *tr5rs i *tr. El dia"rama resultant 8s el +ue es mostra en la #i"ura 1.*1.
*igura #%4#% Felaci d(9er3ncia entre classes

#%3%4 8reaci dels atri(uts duna classe

5i continuem interpretant l(enunciat7 ens indica0 ?les unes i les altres tenen en com4 el n4mero7 la data i l(import@. &(a+uesta manera7 les propietats de la classe *tr sn0 6!r7 t i !rt. Gapyrus permet crear les relacions #ent 4s del component Property7 arrosse"antB lo a la se"ona #ila de la classe *tr7 tal com es mostra en la #i"ura 1.* .

Entorns de desenvolupament

Introducci al disseny orientat a objectes

*igura #%4$% Atributs de la classe

Es modi#ica el nom de cada un dels atributs en la #inestra de les propietats. En la #i"ura 1.*% es pot observar com 9a de +uedar el dia"rama de classes.
*igura #%43% Atributs de la classe Iactura

Arribats a a+uest punt7 +ueda pendent especi#icar el tipus de cada un dels atributs. Inicialment7 s(9aur de crear una re#er3ncia als tipus de /M! tal com es mostra en la #i"ura 1.**7 #i"ura 1.*,7 #i"ura 1.*' i #i"ura 1.*..

Entorns de desenvolupament

*%

Introducci al disseny orientat a objectes

*igura #%44% Felaci /M! tipus

*igura #%45% Felaci /M! tipus

*igura #%47% Felaci /M! tipus

Entorns de desenvolupament

**

Introducci al disseny orientat a objectes

*igura #%4"% Felaci /M! tipus

5eleccionat un atribut7 en la #inestra de propietats7 en concret en l(opci Type s(especi#ica el tipus7 com es pot observar a la #i"ura 1.*).
*igura #%49% Eipus de l(atribut

En la #i"ura 1.*9 es pot observar com +ueda el dia"rama de classes.

Entorns de desenvolupament

*,

Introducci al disseny orientat a objectes

*igura #%49% &ia"rama de classes

#%3%5 8reaci dels m.todes duna classe !(enunciat ens indica +ue l(import es calcula de manera di#erent en les unes +ue en les altres7 8s a dir el clcul de l(import ser di#erent per a la classe *tr5rs i per a la classe *trPrts. &(a+uesta manera7 el m3tode 7!rt de la classe *tr es de#inir com un m3tode abstracte +ue ser de#init en cada una de les classes #illes. 1om es pot observar a la #i"ura 1.,-7 per de#inir un m3tode en Gapyrus es #a 4s del component operation7 +ue ser arrosse"at a l(rea de m3todes de la classe :tercera #ila;.
*igura #%5<% 1reaci d(un m3tode

Entorns de desenvolupament

*'

Introducci al disseny orientat a objectes

Ger de#inir el tipus de retorn del m3tode 7!rt s(9a d(a#e"ir un nou atribut7 tal com es mostra en la #i"ura 1.,1.
*igura #%5#% 1reaci d(un parmetre

Ger especi#icar +ue es tracta d(un parmetre de retorn s(e#ectua a trav8s de les propietats7 com es pot observar a la #i"ura 1., .
*igura #%5$% Garmetre de retorn

&(a+uesta manera7 el dia"rama resultant analit$at #ins al moment 8s el +ue es mostra en la #i"ura 1.,%.

Entorns de desenvolupament

*.

Introducci al disseny orientat a objectes

*igura #%53% &ia"rama de classes

#%3%7 &gregaci

5e"uint amb l(enunciat7 es diu0 ?les dades del client7 +ue sn el QII i el nom7 i sn en una classe a part@. Ls necessari crear una nova classe anomenada 3st7 +ue contindr els atributs 7* i !. Es pot observar el dia"rama d(a+uesta classe en la #i"ura 1.,*.
*igura #%54% 1lasse @&ades1lient@

El tipus d(associaci entre la classe *tr i 3st 8s d(a"re"aci7 ja +ue la classe 3st 8s un objecte +ue 4nicament podr ser creat si e>istei> l(objecte a"re"at *tr del +ual 9a de #ormar part. En la #i"ura 1.,, es mostra com crear a+uest tipus d(associaci.

Entorns de desenvolupament

*)

Introducci al disseny orientat a objectes

*igura #%55% A"re"aci

El dia"rama resultant analit$at #ins al moment 8s el +ue es mostra en la #i"ura 1.,'.


*igura #%57% &ia"rama de classes

&(altra banda7 l(enunciat especi#ica0 ?es "uarda7 d(una banda7 l(4ltim n4mero de #actura de serveis i7 de l(altra7 l(4ltim n4mero de #actura de productes@. Ls necessari crear un nou atribut ultimQumero en la classe *tr5rs i en la classe *trPrts. El dia"rama resultant analit$at #ins al moment 8s el +ue es mostra en la #i"ura 1.,..
*igura #%5"% &ia"rama de classes

Entorns de desenvolupament

*9

Introducci al disseny orientat a objectes

#%3%" 8lasse associada !(enunciat continua e>plicant0 ?2i 9a una llista de serveis amb la descripci i el preu per 9ora de cadascun@. Ger tant7 8s necessari crear una nova classe anomenada 5r +ue contindr dos atributs0 sr i rr :preu per 9ora;7 com es pot observar en la #i"ura 1.,).
*igura #%59% 1lasse 5ervei

!(enunciat continua0 ?cada #actura de serveis t8 una llista de serveis amb la data de prestaci i el nombre d(9ores7 i en una #actura 9i pot 9aver m8s d(una prestaci del matei> servei@. Ger tant7 8s necessari crear una classe associada anomenada rs +ue contindr dos atributs0 tPrst :data de prestaci; i !r :nombre d(9ores;7 com es pot observar a la #i"ura 1.,9.
*igura #%59% 1lasse 2ores

El dia"rama resultant 8s el +ue es mostra en la #i"ura 1.'-.

Entorns de desenvolupament

,-

Introducci al disseny orientat a objectes

*igura #%7<% &ia"rama de classes

#%3%9 8omposici

1ontinuant amb l(enunciat7 a+uest ens especi#ica0 ?!es #actures de productes7 per a cada producte :a cada #actura n(9i 9a almenys un; tenen la descripci7 el preu unitari i la +uantitat@. Ger tant7 8s necessari crear una nova classe anomenada Prt*tr7 +ue contindr els atributs sr7 r8tt :preu unitari; i 9ttt7 com es pot observar en la #i"ura 1.'1.

Entorns de desenvolupament

,1

Introducci al disseny orientat a objectes

*igura #%7#% 1lasse @GroducteIactura@

En a+uest cas es tracta d(una composici7 ja +ue 8s una relaci m8s #orta +ue l(a"re"aci. *trPrts t8 sentit per ell matei>7 per< est compost de Prt*tr :amb la descripci7 preu i +uantitat de la #actura;7 a+uesta relaci 8s m8s #orta +ue l(associaci d(una a"re"aci. El dia"rama resultant de l(enunciat 8s el +ue es mostra en la #i"ura 1.' .
*igura #%7$% &ia"rama de classes

Entorns de desenvolupament

,%

Introducci al disseny orientat a objectes

$% UML Dinmic: diagrames de comportament i dinteracci

El llen"uat"e uni#icat de modelit$aci servei> per a la creaci7 especi#icaci7 construcci i documentaci de models +ue representen tot tipus de sistemes. A+uesta modelit$aci 9a d(aportar una representaci completa del sistema i es #a en termes d(orientaci a objectes. Al"uns dels sistemes +ue es poden representar mitjan=ant /M! poden ser sistemes d(in#ormaci7 sistemes de ne"ocis7 sistemes transaccionals :de "esti d(in#ormaci;7 sistemes distribuHts7 sistemes estrat3"ics7 sistemes en temps real... Al"uns dels aspectes positius de #er servir la modelit$aci de sistemes orientada a objectes sn0

C Germet representar de #orma m8s #idedi"na el mn real. C A+uests sn m8s #cils d(entendre i de #erB9i ampliacions o modi#icacions. C Eots els implicats parlen el matei> idioma :analistes7 dissenyadors7 desenB volupadors7 veri#icadors...; C Aporta m8s estabilitat pel #et +ue es poden #er petites ampliacions o modi#icacions sense 9aver de canviar tota la modelit$aci. C Germet la possibilitat de reutilit$ar codi de #orma sen$illa.

El llen"uat"e /M!7 en la seva versi .-7 est compost de 1% dia"rames :1* dia"rames a partir de la versi . ;7 +ue es poden classi#icar se"uint diversos criteris. /n d(ells pot ser en #unci de les perspectives concretes o vistes des d(on es representen els sistemes. Ger e>emple7 el dia"rama de casos d(4s7 +ue es considera un dia"rama de la vista de re+ueriments o la vista de processos7 en"loba els dia"rames de comportament. 1om es pot observar a la #i"ura .17 una altra #orma de classi#icaci7 +ue es #a servir en a+uests materials7 8s la d(a"rupar els dia"rames en0

C &ia"rames esttics o dia"rames d(estructura. C &ia"rames dinmics o dia"rames de comportament.

En la versi /M! . 7 i posteriors7 es poden trobar set dia"rames +ue pertanyen a cada una de les a"rupacions de dia"rames.

Entorns de desenvolupament

,*

Introducci al disseny orientat a objectes

*igura $%#% 1lassi#icaci dels dia"rames /M!

$%# UML Dinmic: diagrames de comportament Els dia"rames considerats dinmics o de comportament sn els +ue representen el comportament dinmic del sistema +ue s(est modelant. Ls a dir7 indi+uen les accions i processos +ue es duran a terme entre els elements del sistema7 #i>antBse en els seus moviments i en els e#ectes +ue tenen a+uestes accions i activitats sobre els elements. Els di#erents dia"rames de comportament descriuen el comportament de classi#iB cadors o7 m8s sovint7 de les seves instncies7 des de di#erents punts de vista0 C Ger una banda7 representen o b8 components e>ecutants o b8 comportaments emer"ents.

C Ger una altra7 es destaca un d(a+uests aspectes o un altre0 interaccions amb l(e>terior7 o les situacions Ranomenades estatsR per les +uals passa una instncia durant la seva e>ist3ncia7 o la se+63ncia temporal de les di#erents parts d(un comportament... Al"uns d(a+uests dia"rames dinmics es poden tornar a a"rupar en #unci de les seves #uncionalitats. 1oncretament7 dels set dia"rames dinmics n(9i 9a tres +ue no s(a"rupen7 +ue tenen una entitat pr<pia7 i +uatre m8s +ue es troben a"rupats. Els tres dia"rames +ue no estaran a"rupats sn0 C Diagrama de casos d5s. A+uest dia"rama identi#ica els di#erents comporB taments d(un sistema des del punt de vista de les seves interaccions amb el mn e>terior i descriu determinades relacions entre a+uests comportaments. C Diagrama dactivitats 8s el +ue descompon un comportament en activitats i representa els #lu>os d(e>ecuci i d(in#ormaci entre a+uestes activitats. C Diagrama destats :en an"l3s 5tate Mac9ine &ia"ram;. A+uest dia"rama mostra els possibles canvis d(una situaci a una altra de les instncies del classi#icador de conte>t i indica les causes i els comportaments +ue en"e"uen a+uests canvis.

En l(apartat &ia"rama de casos d(4s d(a+uesta unitat es tracta amb detall el dia"rama de casos d(4s.

Entorns de desenvolupament

,,

Introducci al disseny orientat a objectes

Els altres +uatre dia"rames estan a"rupats en els anomenats dia"rames d(inteB racci. A+uesta a"rupaci cont8 dia"rames +ue representen un comportament emer"ent per mitj de missat"es entre les instncies de classi#icadors d(una estructura interna o colDlaboraci i pot especi#icar restriccions temporals relatives a a+uests missat"es. Els dia"rames d(interacci sn0

A l(apartat .% &ia"rames d(interacci es tractaran amb detall els dia"rames de se+63ncia i de colDlaboraci.

C Diagrama de comunicacions7 +ue representa els missat"es damunt els connectors d(una estructura interna o colDlaboraci

C Diagrama de se+6.ncia7 +ue posa 3m#asi en l(ordre temporal dels missatB "es.

C Diagrama de temps7 +ue representa una possible se+63ncia temporal de canvis d(estat d(una instncia o de diverses instncies +ue interactuen d(acord amb els dia"rames d(estats respectius.

C Diagrama general dinteracci7 +ue 8s un dia"rama resumit +ue combina notacions dels dia"rames de se+63ncies i dels d(activitats.

A la #i"ura . es poden observar els dia"rames de comportament pertanyents a l(/M! &inmic.


*igura $%$% &ia"rama de comportament

Entorns de desenvolupament

,'

Introducci al disseny orientat a objectes

$%#%# 8onceptes I"ual +ue en els dia"rames d(estructura7 cadascun dels dia"rames de comportaB ment de l(/M! #a servir al"uns tipus d(elements propis7 a m8s d(altres de comB partits per diversos dia"rames de comportament. Els tipus d(elements compartits principals sn0 C 5enyal7 +ue 8s una instncia +ue es transmet d(un objecte a un altre. C Missat"e7 +ue 8s una comunicaci entre instncies. C Esdeveniment7 +ue 8s un succ8s +ue pot tenir e#ectes damunt al"un comporB tament. C Activitat i acci.

/n sen'al 8s una instncia +ue un objecte o1 envia a un altre o i7 com a conse+63ncia d(a+uest enviament7 s(e>ecuta un comportament asncron +ue t8 o com a objecte de conte>t. /na recepci de sen'al 8s una operaci d(estereotip signal +ue indica +ue les instncies del classi#icador dins el +ual 8s de#inida :"eneralment7 una classe o una inter#cie; reaccionen al senyal e>ecutant un comportament +ue 8s asncron i7 per tant7 una recepci de senyal no pot tornar cap valor.

/n missatge 8s una comunicaci entre instncies de classi#icador7 per la +ual una :l(emissor; envia un senyal a l(altra :el destinatari; o li demana l(e>ecuci d(una operaci. /n missatge s=ncron 8s a+uell +ue7 +uan s(emet7 l(e>ecuci del comportament +ue l(9a em3s roman aturada #ins +ue rep un missatge de resposta del receptorN en canvi7 +uan s(emet un missatge as=ncron7 l(operaci +ue l(9a em3s es continua e>ecutant i no 9i 9a missat"e de resposta. /n missat"e asncron pot consistir en l(enviament d(un senyal o la crida d(una operaciN un de sncron nom8s pot consistir en una crida d(una operaci.

/n esdeveniment 8s un succ8s +ue es pot produir dins el sistema o el seu entorn7 i +uan t8 lloc pot provocar l(e>ecuci d(un comportament. El #et +ue es produei>i un cert esdeveniment en un instant concret es diu ocurr.n> cia desdeveniment7 i un conjunt de possibles ocurr3ncies d(esdeveniment +ue tindrien el matei> si"ni#icat i els matei>os e#ectes 8s un tipus desdeveniment. /n disparador 8s un element +ue especi#ica +ue una ocurr3ncia d(esdeveniment del tipus indicat pot en"e"ar un cert comportament. I inversament7 tant l(en"e"ada com la #i d(un comportament "eneren esdeveniments +ue poden en"e"ar altres comportaments per mitj dels disparadors corresponents.

Entorns de desenvolupament

,.

Introducci al disseny orientat a objectes

/na activitat 8s una #orma del comportament +ue es caracterit$a per ser jerr+uica7 en el sentit +ue pot ser constituHda per altres activitatsN una activitat +ue no es pot descompondre 8s una acci.

$%#%$ Diagrama dactivitats El diagrama dactivitats descriu les activitats +ue s(9an de dur a terme en un cas d(4s7 ai> com la manera de relacionarBse les activitats entre si per tal d(aconse"uir un determinat objectiu. En altres paraules7 el dia"rama d(activitats descriu com un sistema implementa la seva #uncionalitat. A+uest dia"rama est estretament vinculat a altres dia"rames7 com sn el dia"rama de classes i el dia"rama d(estats :dia"rama esttic; i el dia"rama de casos d(4s :dia"rama dinmic;. /n dia"rama d(activitats e>plica +u3 est succeint entre diversos objectes o +uin 8s el comportament d(un objecte. Els dia"rames d(activitats #an servir una s3rie d(elements7 com ara0 C Estats inicials7 representats mitjan=ant un cercle omplert de color ne"re. Mar+uen l(inici de l(e>ecuci dels processos o activitats. C Estats -inals7 representats mitjan=ant un cercle omplert de color ne"re amb una altra circum#er3ncia per sobre amb una petita distncia sense omplir. Els estats #inals indi+uen el #inal de l(e>ecuci d(un proc8s o activitat. C &ctivitats o accions7 representades mitjan=ant un rectan"le de cantonades arrodonides. Indi+uen l(arribada a un node una ve"ada e#ectuada una acci o activitat. C ?ransicions o -luxos de control7 representats mitjan=ant #let>es. !a seva direcci indica el node des del +ual s(inicia l(activitat o l(acci #ins a l(altre node7 al +ual s(arribar una ve"ada #inalit$ada. A la #i"ura .% es poden observar totes les representacions "r#i+ues dels elements +ue participen en els dia"rames d(activitats.
*igura $%3% Elements del dia"rama d(activitats
Diagrames previs Els classi#icadors +ue s(esmentin en un dia"rama d(activitats s(9an d(9aver descrit pr3viament en un dia"rama de classes7 i si les instncies d(al"un d(ells tenen di#erents estats possibles cal 9averBne #et el dia"rama d(estats corresponent. Els dia"rames d(activitats 9ereten conceptes dels dia"rames de #lu>7 essent un dia"rama bastant #cil d(interpretar.

Entorns de desenvolupament

,)

Introducci al disseny orientat a objectes

A la #i"ura .* es mostra un e>emple de dia"rames d(activitats. Es vol modelit$ar el procediment de pa"ament per part d(un usuari de l(estada del seu cot>e a un pr+uin". Abans d(enretirar el cot>e del pr+uin"7 9aur d(abonar l(import +ue se li calcular automticament7 en #unci del temps +ue 9a"i estat estacionat el seu cot>e. Es mostra un dia"rama d(activitats molt sen$ill en la #i"ura .*7 on totes les activitats es mostren a partir de transicions o #lu>os de control se+6encials. A partir de l(estat inicial7 i #ins arribar a l(estat #inal7 es passar per sis activitats o accions0 C Inserir tar"eta pr+uin". C Veure import a pa"ar. C Introduir monedes. C Fecollir tar"eta pr+uin". C Fecollir canvi. C Fecollir rebut. Es pot veure com les activitats de#inei>en7 de #orma molt clara7 +uina #uncionalitat e>ecutaran.
*igura $%4% E>emple de dia"rama d(estats B activitats se+6encials

Altres elements importants en els dia"rames d(activitats sn els +ue #an re#er3ncia a la possibilitat de donar alternatives als #lu>os de control i a les activitats o accions. Al"uns d(a+uests elements sn0 C Decisi@-usi7 representat mitjan=ant un rombe re"ular. A partir d(un #lu> d(entrada7 9i 9aur dos o m8s #lu>os de sortida7 en #unci de la condici marcada. 1ada #lu> de sortida 9aur d(estar indicat per una condici. En

Entorns de desenvolupament

,9

Introducci al disseny orientat a objectes

el cas de la #usi7 servei> per a"rupar dos o m8s #lu>os +ue arriben a un matei> punt de diverses decisions donades anteriorment a a+uest punt en el dia"rama d(activitats. !a #usi tindr dos o m8s #lu>os d(entrada7 per< un 4nic #lu> de sortida. C 8ondici7 representat per un te>t +ue s(escriu entre els smbols : ... ;. A+uesta condici representa la pre"unta o pre"untes +ue es #ar el #lu> de control per7 una ve"ada presa la decisi7 saber per +uin cam caldr +ue continuH. A la #i"ura ., es pot observar un e>emple de condicions i bi#urcacions a partir d(una ampliaci de l(e>emple anterior7 el mostrat a la #i"ura .*.
*igura $%5% E>emple de dia"rama d(activitats B alternativa

Ou3 succeei> si l(usuari vol pa"ar la tari#a del seu pr+uin" amb bitllets en comptes de #erB9o amb monedesP !a modelit$aci del sistema 9aur de tenir en compte a+uestes dues opcions. Ou3 succeei> si l(usuari 9a introduHt l(import e>acte a pa"ar i no 9a de recollir canviP Gotser no 8s necessari passar per l(activitat Fecollir canvi. En a+uests dos e>emples es poden veure els elements de condici i de decisiA#uB si.

Entorns de desenvolupament

'-

Introducci al disseny orientat a objectes

/ns altres elements tamb8 importants en els dia"rames d(activitats sn els anomenats fork i join. ork si"ni#ica Tbi#urcaci( i join Ta"rupaci o uni(. 5n dos elements estretament vinculats amb les bi#urcacions7 podent ser complementaris o substitutius d(a+uestes. !es seves caractersti+ues sn les se"6ents0 C Fork7 representat per una lnia ne"ra s<lida7 perpendicular a les lnies de transici. /n fork representa una necessitat de rami#icar una transici en m8s d(una possibilitat. !a di#er3ncia amb una rami#icaci 8s +ue en el fork 8s obli"atori passar per les di#erents transicions7 mentre +ue en la decisi es pot passar per una transici o per una altra. En altres paraules7 les transicions de sortida d(un fork representen transicions +ue podran ser e>ecutades de #orma concurrent. C Join7 representat per una lnia ne"ra s<lida7 perpendicular a les lnies de transici. /n join #usiona dues o m8s transicions provinents d(un fork7 8s a dir7 se sincronit$en en una 4nica lnia de #lu>. Eotes les accions de les lnies de #lu> pr3vies al join 9an de completarBse abans +ue s(e>ecuti la primera acci de la lnia posterior al join. A la #i"ura .' es pot veure una altra evoluci de l(e>emple del pa"ament del pr+uin"7 a#e"intB9i a+uesta ve"ada els elements join i fork. 1oncretament7 si es partei> de la #i"ura .,7 es pot observar +ue a l(activitat !ecollir targeta del p"rquing s(9a a#e"it un element de tipus fork +ue especi#ica +ue a partir d(a+uella activitat s(9aur de passar per dues activitats7 la de recollir el canvi7 en el cas de ser necessari7 i la de recollir el rebut. !(ordre en +u3 es desenvoluparan ser indi#erent. /na ve"ada acabades a+uestes dues activitats7 s(9a a#e"it un element de tipus join7 +ue recull la #inalit$aci de les dues activitats per7 una ve"ada acabades7 passar a la se"6ent activitat7 en a+uest cas l(estat #inal. 1al tenir en compte al"uns condicionants +ue s(9auran d(acomplir a #i de crear un dia"rama d(activitats correcte0 C Qo 8s obli"atori +ue 9i 9a"i un estat #inal. Ger e>emple7 un proc8s +ue es desenvolupi de #orma contnua mai acabar. C Godr 9averB9i diversos estats #inals. C !es activitats es podran descompondre en altres activitats. C /na acci 8s una activitat +ue no es pot descompondre en altres activitats. C /n #lu> de control no podr #inalit$ar mai en l(estat inicial. C 1ada activitat o acci 9a de tenir7 com a mnim7 un #lu> de control d(entrada i un #lu> de control de sortida. C !es condicions dels #lu>os de sortida d(una matei>a decisi 9auran de ser complertes i disjuntes.

Entorns de desenvolupament

'1

Introducci al disseny orientat a objectes

*igura $%7% E>emple dia"rama de classes B (#orS( i (join(

$%#%3 Diagrama destat

El diagrama destat representa el conjunt d(estats pels +uals passa un objecte durant la seva vida en una aplicaci en resposta a esdeveniments7 juntament amb les seves respostes i accions. /n esdeveniment podria ser un missat"e rebut7 un error7 un temps d(espera superior al plani#icat... En la major part de les t3cni+ues Jrientades a Jbjectes7 els dia"rames d(estats es dibui>en per a una sola classe7 mostrant el comportament d(un sol objecte durant tot el seu cicle de vida. 1om es pot veure a la #i"ura ..7 els elements d(un dia"rama d(estats sn molt similars al dels dia"rama d(activitats. Fesumint7 podem trobar0 C Estats inicials7 representats mitjan=ant un cercle omplert de color ne"re. Mar+uen l(inici del dia"rama d(estats. C Estats -inals7 representats mitjan=ant un cercle omplert de color ne"re amb una altra circum#er3ncia per sobre7 amb una petita distncia sense omplir. Els estats #inals indi+uen el #inal del dia"rama d(estats. En un dia"rama d(estats 8s possible +ue no 9i 9a"i estats #inals.

Entorns de desenvolupament

'

Introducci al disseny orientat a objectes

C Estats7 representats mitjan=ant un rectan"le amb les cantonades arrodoniB des. /n estat identi#ica una condici o una situaci en la vida d(un objecte7 durant la +ual satis# al"una condici7 e>ecuta al"una activitat o espera +ue passi al"un esdeveniment. C ?ransicions o -luxos de control7 representats amb una #let>a amb direcci +ue tindr superposat el nom de l(esdeveniment +ue provocar a+uesta transacci entre estats. Eindr sempre un inici i un #inal. Indica el pas d(un objecte d(un estat a un altre estat.
*igura $%"% Elements del dia"rama d(estats

A la #i"ura .) es mostra un petit e>emple d(un dia"rama d(estats. Es vol modelit$ar7 mitjan=ant un dia"rama d(estats7 el #uncionament de les mar>es d(un cot>e automtic. A+uest tipus de cot>e podr trobarBse en dos possibles estats0 o est #uncionant mar>a endavant o est #uncionat mar>a enrere.
*igura $%9% &ia"rama d(estats B canvi de mar>es d(un cot>e automtic

En l(e>emple de la #i"ura .) es partei> d(un estat inicial i s(arriba a un estat anomenat Punt Mort. En a+uest estat el cot>e no es mour. A partir d(a+u es podr posar la mar>a enrere :mitjan=ant el #lu> de control anomenat Posar !; i es podr tornar a l(estat Punt Mort amb el #lu> de control0 Posar #. El matei> succeir amb l(estat Mar$a enda%ant. !es transaccions es podran crear unint un matei> estat7 com es pot veure a la #i"ura .9.

Entorns de desenvolupament

'%

Introducci al disseny orientat a objectes

En els cot>es automtics el conductor pot dei>ar l(estat Mar$a enda%ant activat. En a+uesta situaci el cot>e va canviant automticament de mar>es sense l(acci del conductor. Ger< tamb8 s(accepta el poder au"mentar o disminuir una mar>a de #orma se+6encial per part del conductor. En l(e>emple es veu com l(estat Mar$a enda%ant7 a m8s de poder tornar a trav8s de la transacci Posar # a l(estat Punt Mort7 podr evolucionar a partir de dues transaccions m8s :retrocedir mar>a o canviar a la propera mar>a; al matei> estat7 amb la +ual cosa modi#icar les seves propietats.
*igura $%9% &ia"rama d(estats B canvi de mar>es d(un cot>e automtic

Arribats a a+uest punt7 es proposar un dia"rama d(estats una mica m8s complicat7 en el +ual es mostra el comportament de l(estat davant un esdeveniment i les accions +ue e#ectua l(objecte. !a #i"ura .1- 8s un dia"rama d(estats +ue descriu la "esti de les inscripcions dels alumnes d(una acad3mia. El dia"rama comen=a amb l(estat inicial7 representat amb la rodonetaN +uan un alumne envia una solDlicitud d(inscripci7 es produei> l(esdeveniment de senyal arri&ada sol'licitud7 +ue provoca una transici cap a l(estat (ol'licitant i7 com a conse+63ncia de l(arribada a a+uest estat7 s(e>ecuta l(activitat d(entrada registrar sol'licitud i7 a continuaci7 l(activitat durant l(estat e$aminar sol'licitud7 l(e>ecuci de la +ual dura #ins +ue es produei> al"un dels esdeveniments +ue #an sortir d(a+uest estat0 si es produei> l(esdeveniment de senyal ref)s7 +ue t8 com a atribut la seva causa7 s(acaba tot el proc8s pel +ue #a a a+uesta solDlicitud d(inscripci7 mentre +ue si es produei> l(esdeveniment de senyal acceptaci7 l(estat de destinaci 8s *cceptat N en tots dos casos7 s(e>ecuta l(activitat de sortida comunicaci.

Entorns de desenvolupament

'*

Introducci al disseny orientat a objectes

*igura $%#<% &ia"rama d(estats B proc8s de matriculaci

/n cop a l(estat *cceptat7 s(e>ecuta l(activitat d(entrada comunicar acceptaci i7 acte se"uit7 l(activitat a l(estat compro%ar %acants7 +ue s(interromp +uan es produei> un dels dos esdeveniments se"6ents0 C J b8 l(esdeveniment de temps B+ue 9an passat %- dies des de l(arribada a a+uest estatB7 i ales9ores s(e>ecuta l(activitat comunicaci i l(estat de destinaci de la transici 8s l(estat #inal7 +ue es representa per una rodona buida i una de plena conc3ntri+ues. C J b8 l(esdeveniment de canvi7 +ue consistei> +ue passi a complirBse la condici %acant tro&ada. En +ualsevol cas7 si abans de sortir de l(estat *cceptat es produei> l(esdeveniment de senyal can%i tarifa7 +ue t8 com a atribut la no%a tarifa7 s(e>ecuta l(activitat comunicar can%i7 d(acord amb la transici interna especi#icada. Ouan se surt de l(estat *cceptat7 com a conse+63ncia d(a+uest esdeveniment de canvi s(e>ecuta l(activitat comunicar +orari. 5i un alumne 8s en l(estat ,nscrit +uan es produei> l(esdeveniment de temps d(arribada de la data de la fi del curs7 es produei> una transici cap a l(estat #inal7 al9ora +ue s(e>ecuta l(activitat posar nota.

Entorns de desenvolupament

',

Introducci al disseny orientat a objectes

$%$ Diagrama de casos d5s A+uest dia"rama 8s un dels m8s representatius i m8s utilit$ats de l(anlisi i disseny orientat a objectes. Mitjan=ant els dia"rames de casos d(4s s(aconse"uei> mostrar el comportament del sistema i com a+uest es relacionar amb el seu entorn.

El diagrama de casos d5s identi#ica els comportaments e>ecutants d(un classi#icador "eneralment comple> :per e>emple7 un pro"ramari; i especi#ica amb +uins usuaris i altres entitats e>teriors tenen interacci :en el sentit +ue en reben in#ormaci o els en donen o sn en"e"ats per a+uestes entitats;7 i tamb8 certes relacions entre a+uests comportaments. El punt de vista +ue es #a servir per elaborar els dia"rames de casos d(4s 8s el punt de vista de l(usuari #inal. Ai>< implica +ue es tracta d(un dia"rama molt convenient i utilit$at en els intercanvis inicials d(opinions amb els usuaris #inals del sistema a modelit$ar i7 posteriorment7 a automatit$ar. Els matei>os usuaris el poden entendre i participar en la seva correcci. Amb a+uest tipus de dia"rama es podr crear una documentaci ade+uada per a les necessitats de la presa de re+ueriments. Els dia"rames de casos d(4s representen els di#erents re+ueriments +ue #an servir els usuaris #inals d(un determinat sistema. A partir de la utilit$aci d(actors i de casos d(4s7 a+uest tipus de dia"rames modelen les di#erents #uncionalitats +ue podr o#erir un sistema.

/n cas d5s 8s una #uncionalitat o un servei +ue o#erei> el sistema a modelit$ar als seus usuaris #inals. Ls un conjunt d(interaccions se+6enciades +ue es desenvolupen entre els actors i el sistema per donar resposta a un esdeveniment +ue inicia un actor denominat principal. En la modelit$aci d(un sistema podr 9averB9i molts casos d(4s. Ai>< es deu al #et +ue cada cas d(4s 9aur de donar resposta nom8s a una caracterstica concreta del sistema. Ai>7 amb a+uesta representaci del sistema7 l(usuari #inal podr validar #cilment +ue l(analista 9a ent3s correctament el #uncionament del sistema +ue 9a de representar. Els elements #onamentals del dia"rama de casos d(4s sn els se"6ents0 C Escenari C Actor C 5ubjecte C 1as d(4s o comportament C Associaci o relaci

Entorns de desenvolupament

''

Introducci al disseny orientat a objectes

A la #i"ura .11 es mostren les representacions "r#i+ues dels elements m8s importants d(un dia"rama de casos d(4s.
*igura $%##% &ia"rama de casos d(4s

$%$%# Escenari
Una entitat externa i els actors A una sola entitat e>terna li poden correspondre diversos actors7 si les interaccions +ue t8 amb el sistema de ma+uinari i pro"ramari sn prou diverses per considerar +ue #a di#erents "rups de papers en relaci amb ell.

/n escenari 8s un cam representat per un o m8s actors i un o m8s casos d(4s i les seves associacions. Es tracta d(un cam +ue podr prendre un cas d(4s. /n cas d(4s podr tenir diversos escenaris possibles. A+uests escenaris podran representar casos d(3>it i casos on no s(acomplei>en les e>pectatives.

$%$%$ &ctor /n actor 8s un conjunt de papers +ue #a una entitat #sica o virtual e>terna al subjecte en relaci amb els seus casos d(4sN a partir d(a+uests papers l(actor interactua amb el subjecte i cada paper t8 a veure amb un dels casos d(4s del subjecte. Eot all< +ue inicia un cas d(4s o respon a un cas d(4s tamb8 es considera un actor. Els actors sn classi#icadors instanciables. /n actor pot ser0 C /na persona :un usuari; +ue interactuH directament amb el subjecte :per tant7 si un usuari interactua amb el subjecte per compte d(un altre7 l(actor ser el primer usuari7 no pas el se"on;. C /n sistema in#ormtic e>tern en temps d(e>ecuci +ue rebi in#ormaci del subjecte o li(n doni. C /n dispositiu #sic +ue tin"ui un cert comportament propi i aut<nom en relaci amb el subjecte i 9i interactuH directament. C Temps7 !ellotge... +uan un cas d(4s s(en"e"a automticament en una 9ora determinada.

Entorns de desenvolupament

'.

Introducci al disseny orientat a objectes

/n actor tamb8 es de#inei> com un rol +ue #ar un usuari en utilit$ar un sistema. Amb el concepte de rol es vol determinar el #et +ue una matei>a persona #sica :un usuari #inal del sistema; podr interpretar el paper d(actors di#erents en di#erents casos d(4s o7 #ins i tot7 en un matei> cas d(4s. /n actor no ser una determinada persona7 sin +ue ser el paper +ue ju"a :la persona +ue si"ui; +uan utilit$a el sistema.

$%$%3 Au()ecte El subjecte d(un dia"rama de casos d(4s 8s el classi#icador al +ual est associat el dia"rama7 +ue en representa els comportaments e>ecutants. Got ser +ualsevol cosa +ue tin"ui comportaments0 un pro"ramari7 un sistema in#ormtic o #sic en "eneral7 un subsistema7 un component7 una classe...

$%$%4 8as d5s /n cas d(4s 8s un comportament e>ecutant del subjecteN 8s en"e"at d(una manera directa o indirecta per un actor i lliura uns resultats concrets a un actor o a diversos7 o a un altre cas d(4s. /n cas d(4s es representa mitjan=ant un verb +ue indica una acci7 operaci o tasca concreta. A+uesta operaci s(activar a partir d(una ordre donada per un a"ent e>tern al cas d(4s. Godr ser un actor +ue #aci una petici i "eneri el cas d(4s7 o b8 un altre cas d(4s +ue l(invo+ui.

$%$%5 Una associaci o una relaci /na associaci o una relaci 8s un vincle +ue es dna entre un cas d(4s i un actor o entre dos casos d(4s. Entre dos casos d(4s es podran establir di#erents tipus de relacions0 C &ssociaci0 una associaci 8s un cam de comunicaci entre un actor i un cas d(4s. A+uesta comunicaci implica +ue l(actor participa en el cas d(4s. C 0eneralit,aci@especialit,aci: una "eneralit$aci indica +ue un cas d(4s 8s una variant d(un altre7 8s a dir7 podr trobarBse en una #orma especialitB $ada d(un altre cas d(4s e>istent. Eant la representaci com el sentit poden semblar similars al concepte de subclasses en l(orientaci a objecte. A+uest tipus de relaci servei> per identi#icar comportaments semblants per part d(un o diversos casos d(4s. A partir d(una primera descripci m8s "en3rica7

Entorns de desenvolupament

')

Introducci al disseny orientat a objectes

l(especialit$aci detalla els comportaments m8s espec#ics a cada cas d(4s especialit$at. Ai>< es deu al #et +ue el cas d(4s especialit$at pot variar +ualsevol aspecte del cas d(4s base. !a "eneralit$aci 8s el matei> tipus de relaci vist des del punt de vista de les subclasses +ue tenen elements comuns i +ue7 a partir de les seves semblances7 permeten crear una superclasse +ue contindr a+uests elements comuns. C Depend.ncia dinclusi0 el tipus de relaci d(inclusi 8s un cas de depend3ncia entre casos d(4s. 1oncretament7 indica +ue un cas d(4s est incl<s en un altre. Ai>< succeei> +uan els casos d(4s compartei>en uns determinats elements. En a+uest cas7 el cas d(4s +ue est incl<s 8s el +ue tindr tots els comportaments compartits. A+uest tipus de relaci tamb8 es conei> com use7 per+u3 9ereta moltes de les caractersti+ues de l(anti"a relaci use o utilit$a. Es tracta d(una relaci 4til en casos en +u3 es volen e>traure comportaments comuns des de molts casos d(4s a una descripci individual. En a+uest tipus de relaci no 9i 9a parmetres o valors de retorn. Ouan un cas d(4s A 8s incl<s per un altre cas d(4s U7 el cas d(4s +ue 9a incorporat el comportament de l(altre7 en a+uest cas el cas d(4s U7 9aur de ser utilit$at per si matei>. En cas contrari7 es conei> com a cas d(4s abstracte. C Depend.ncia dextensi: a+uesta relaci 8s un altre tipus de depend3ncia. J#erei> un tipus d(e>tensi di#erent a la relaci de tipus "eneralit$aci7 d(uB na #orma m8s controlada. Ouan un cas d(4s s(est8n a un altre7 ai>< si"ni#ica +ue el primer pot incloure part del comportament de l(altre cas d(4s7 a+uell al +ual s(est estenent. A m8s7 podr a#e"irB9i accions o comportaments. !a #orma de #uncionar de la depend3ncia ser la creaci d(una s3rie de punts d(e>tensi per part del cas d(4s base. 5i 9i 9a m8s d(un punt d(e>tensi7 caldr de#inir molt b8 +uin 8s el punt +ue s(9a est3s. A partir d(a+uests punts7 el cas d(4s especialit$at nom8s podr modi#icar el comportament dels punts d(e>tensi +ue s(9a"in creat. A+uest tipus de relaci 8s una alternativa a l(4s de casos d(4s comple>os. Amb les depend3ncies d(e>tensi es podran controlar millor les di#erents bi#urcacions i els errors. /n cas d(4s es podr representar de dues #ormes di#erents0 C Mitjan=ant un dia"rama de casos d(/M!7 se"uint la notaci de la resta de dia"rames /M!. C Mitjan=ant un document detallat.

Diagrama de casos d5s en UML

1adascun dels elements +ue componen un dia"rama de casos d(4s t8 una notaci "r#ica +ue permet la representaci de cada cas d(4s de #orma es+uemtica i #cil d(entendre i d(interpretar per als usuaris #inals.

Entorns de desenvolupament

'9

Introducci al disseny orientat a objectes

A la #i"ura .1 veiem el dia"rama de casos d(4s d(una suposada aplicaci de comptabilitat7 representada pel subjecte anomenat (istema de compta&ilitat.
*igura $%#$% 1as d(4s B sistema de comptabilitat

!(actor -ap-ompta&le 8s una especialit$aci de -ompta&leN -ompta&le 8s l(actor primari del cas d(4s *ssentament7 ja +ue no t8 cap m8s actor7 i -ap-ompta&le 8s actor primari del cas d(4s Tancament i tamb87 per 9er3ncia entre actors7 d(*ssentament. El cas d(4s -reacio-ompte est8n el cas d(4s *ssentament per+u3 +uan s(intenta #er un assentament amb un compte ine>istent cal crear a+uest compteN s(9a indicat el punt d(e>tensi7 -ompte llegit7 dins del cas d(4s est3s7 assentament7 i la condici corresponent7 compte no tro&at. -reacio-ompte no 8s e>ecutable independentment per+u3 no t8 cap actor ni7 doncs7 actor primari. El cas d(4s .ades-ompte consistei> en l(acc8s a les dades d(un compte7 acc8s +ue 8s una part comuna als casos d(4s *ssentament i Tancament7 d(a+u la depend3ncia include. Tancament 8s abstracte i Tancament-Mensual i Tancament*nual en sn especialit$acions i7 en conse+63ncia7 n(9ereten l(actor -ap-ompta&le i no cal associarBlosBel e>plcitament. TancamentMensual t87 a m8s de l(actor 9eretat7 l(actor -ap*djunt :+ue pel dia"rama no s8 sap si tamb8 8s primari o no;. !es multiplicitats de les associacions sn innecessries per trivials0 en cada e>ecuci del cas d(4s interv8 una sola instncia de l(actor i cada instncia de l(actor pot participar en +ualsevol nombre d(e>ecucions del cas d(4s.

Document detallat de casos d5s

!a se"ona #orma de representar els casos d(4s 8s presentar un document detallat. A+uest document podr ser un substitutiu dels dia"rames "r#ics de casos d(4s7 per< tamb8 podr ser un complement a a+uells dia"rames. En el document detallat es mostrar tot tipus d(in#ormaci re#erent al cas d(4s7

Entorns de desenvolupament

.-

Introducci al disseny orientat a objectes

a+uesta ve"ada7 per< e>plicada amb te>t. Eant les comunicacions i les interaccions dels elements com els escenaris i actors involucrats +ueden descrits en a+uest document detallat. Es presenta en #orma de taula completa amb dues columnes i tantes #iles com in#ormacions es vul"uin mostrar. Al"unes d(a+uestes in#ormacions poden ser0 C 8as d5s7 +ue indicar el nom del cas d(4sN ser com el ttol del document detallat. C &ctors7 +ue descriur tots els actors7 tant primaris com secundaris7 +ue prendran part en el dia"rama de casos d(4s. C ?ipus7 +ue indica el tipus de cas d(4s +ue s(est detallant. Got ser un tipus de #lu> bsic o b8 basat en al"un altre cas d(4s :a partir d(una inclusi7 una e>tensi o una "eneralit$aci;. C BropCsit0 caldr indicarB9i l(objectiu7 la ra de ser7 del cas d(4s. C !esum del cas d5s0 es dur a terme una descripci resumida del cas d(4s. C Ae+6.ncia normal o -lux principal0 s(9i indicar7 se+6encialment7 cada pas +ue es dur a terme juntament amb la seva acci corresponent i la seva descripci detallada. En #unci de les accions dels actors7 s(escollir un sub#lu> o un altre per a la continuaci del cas d(4s. C Au(-luxos0 sn els considerats #lu>os secundaris en les accions se+6encials d(un cas d(4s.

C Brecondicions0 i"ual +ue en pro"ramaci7 les precondicions establei>en els re+uisits +ue 9aur de complir el cas d(4s per poderBse e>ecutar. C Excepcions0 sn les situacions especials +ue 9i pot 9aver durant l(e>ecuci d(un cas d(4s. C Urg.ncia0 indicar la celeritat amb +u3 el cas d(4s s(9aur de desenvolupar i d(e>ecutar. C *re+6.ncia0 indicar el nombre de ve"ades +ue est prevista l(e>ecuci d(a+uest cas d(4s. C !endiment0 indicar en +uant de temps s(9aur d(e>ecutar el cas d(4s com les accions se+6encials. C 8omentaris0 espai on es podran recollir altres consideracions re#erents al cas d(4s +ue es considerin oportunes. A la #i"ura .1% es pot veure com +uedaria un document detallat d(un cas d(4s amb al"uns dels camps citats anteriorment.

Entorns de desenvolupament

.1

Introducci al disseny orientat a objectes

*igura $%#3% &ocument detallat d(un cas d(4s

&vantatges@inconvenients dels diagrames de casos d5s Els dia"rames de casos d(4s o#erei>en al"uns punts #orts +ue els convertei>en en els m8s populars dels dia"rames d(/M!0 C 5n molt ade+uats per comunicarBse amb els usuaris #inals i7 en de#initiva7 amb els clients. C Ajuden a documentar les #uncionalitats del +ue es conei> com a capses ne"res7 +ue 8s com es consideren al"uns dels casos d(4s d(un sistema. C Ajuden a dividir i "estionar els projectes d(una mida molt e>tensa. C 1omplementen la documentaci del projecte in#ormtic7 o#erint una e>pliB caci sen$illa del #uncionament als usuaris. C Germeten #er un se"uiment objectiu del projecte. C Ajuden en la tasca de veri#icaci i validaci +ue duen a terme els veri#icadors del pro"ramari desenvolupat en el projecte.

$%3 Diagrames dinteracci Els anomenats dia"rames d(interacci a"rupen un conjunt dels dia"rames classiB #icats dintre els dia"rames de comportament. &e #et7 els dia"rames d(interacci es consideren un subtipus dels dia"rames de comportament.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

1al recordar +ue els dia"rames de comportament indicaran7 dintre de la simulaci o modelit$aci del sistema representat7 +u3 9aur de succeir entre els elements de#inits als dia"rames esttics o d(estructura. En els dia"rames d(interacci es donar m8s 3m#asi a les relacions entre els elements dels sistema7 concretament en el +ue t8 a veure amb el #lu> de dades i amb el #lu> de control.

/na interacci 8s un comportament emer"ent descrit en termes d(intercanvis de missat"es entre els elements connectables d(una estructura composta. Els dia"rames d(interacci representen un comportament emer"ent per mitj de missat"es entre les instncies de classi#icadors d(una estructura interna o colDlaboraci. A+uests dia"rames poden especi#icar restriccions temporals relaB tives a a+uests missat"es. Els dia"rames d(interacci sn0

C Els diagrames de se+6.ncia. Gosen l(3m#asi en l(ordre temporal dels missat"es entre els di#erents elements de la modelit$aci del sistema. A+uests missat"es es conei>en com a missat"es d(intercanvi entre objectes7 el +ue realment sn crides a m3todes de les classes. A+uests intercanvis es donen en un escenari concret en un temps delimitat.

C Els diagrames de comunicaci :dia"rames de colDlaboraci;. FepresenB ten els missat"es damunt els connectors d(una estructura interna o de colDlaboraci. Es tracta d(un tipus de dia"rama molt similar als dia"rames de se+63ncia pel +ue es re#erei> als missat"es +ue s(intercanviaran els di#erents objectes. !a di#er3ncia rau en el #et +ue en els dia"rames de se+63ncia l(important 8s l(ordre temporal d(a+uests missat"es7 mentre +ue en els dia"rames de comunicaci es #a m8s 3m#asi en la relaci entre els objectes i el tipus de relaci +ue 9i 9a.

C Els diagrames de temps. Fepresenten els canvis d(estat +ue tindr un objecte al llar" del temps. A+uests canvis d(estat dels objectes es produiran a partir d(esdeveniments +ue es produei>in al llar" del temps. A+uests dia"rames estan estretament lli"ats als dia"rames d(estats i als dia"rames de se+63ncia.

C Els diagrames de visi general de la interacci. &e#inei>en les interacB cions a partir d(una variant dels dia"rames d(activitat. J#erei>en una visi "eneral dels #lu>os de control utilit$ant interaccions en lloc d(activitats.

Entorns de desenvolupament

.%

Introducci al disseny orientat a objectes

$%3%# Diagrama de se+6.ncia

El diagrama de se+6.ncia descriu les interaccions entre un "rup d(objectes mostrant de #orma se+6encial les trameses de missat"es entre objectes. Els objectes interactuen entre si amb l(enviament de missat"es. !a recepci d(un missat"e sol si"ni#icar l(e>ecuci d(un m3tode +ue s(especi#ica en el missat"e7 i es torna actiu l(objecte mentre dura l(e>ecuci del m3tode.
*igura $%#4% Elements del dia"rama d(activitats

Els elements sn els se"6ents0

C /na l=nia de vida representa un element connectable +ue participa en una interacci enviant i rebent missat"es :#i"ura .1,;. /na lnia de vida representa l(interval de temps en +u3 e>istei> la instncia o instncies +ue #ormen part de l(element connectable7 des de la seva creaci #ins a la seva destrucci7 tot i +ue en "eneral nom8s durant una part o diverses parts d(a+uest interval participen en la interacci +ue cont8 la lnia de vidaN a+uestes parts s(anomenen activacions i representen els intervals de temps durant els +uals s(est e>ecutant al"una operaci +ue t8 com a objecte de conte>t al"una de les seves instncies.

*igura $%#5% !nia de vida

Entorns de desenvolupament

.*

Introducci al disseny orientat a objectes

C /n missatge 8s l(especi#icaci de la comunicaci entre objectes :#i"ura .1';. /n missat"e es representa amb una #let>a de l(emissor cap al receptorN di#erents tipus de missat"e es representen amb di#erents tipus de #let>a0 D /n missatge as=ncron s(indica amb una #let>a de lnia contnua i punta obertaN 8s +uan l(objecte no espera la resposta a a+uest missat"e abans de continuar. D /n missatge s=ncron es representa amb una #let>a de lnia contnua i punta plenaN 8s +uan l(objecte espera la resposta a a+uest missat"e abans de continuar amb el seu treball. D /n missatge de resposta dun missatge s=ncron s(indica amb una #let>a de lnia discontnua i punta plena. D /n missatge +ue provoca la creaci dun o()ecte s(indica amb una #let>a de lnia discontnua i punta obertaN a m8s7 l(e>trem del missat"e coincidei> amb el comen=ament de la lnia de vida del receptor.
*igura $%#7% Missat"e

Els missat"es es poden numerar en #ormat de llista multinivell. 5i un missat"e s(envia una ve"ada #inalit$at el seu precedent es comptabilit$a se+6encialment0 17 7%... Ger< si el missat"e s(envia abans +ue 9a"i #inalit$at el precedent7 s(incrementar el nivell0 %.17 %. 7... A la #i"ura .1. se(n pot veure un e>emple representatiu.
*igura $%#"% Qumeraci dels missat"es

A continuaci7 es mostra un e>emple complet per al desenvolupament d(un dia"rama de se+63ncia. 1oncretament7 es proposa crear un dia"rama de se+63ncia

Entorns de desenvolupament

.,

Introducci al disseny orientat a objectes

per a la modelit$aci de l(elaboraci d(una %ic+yssoise7 sopa #reda de pur8 de patata i porros. A+uesta recepta es dur a terme amb l(ajuda d(un robot de cuina. Inicialment7 es mostren els passos +ue s(9an de #er per a l(elaboraci de la sopa0 El cuiner posa el porro en el recipient i pro"rama * se"ons a velocitat ,. En especi#icar la velocitat dels "anivets7 es blo+ueja la tapa del recipient i el cron<metre del robot comen=a a comptabilit$ar el temps. /n cop transcorre"ut el temps7 es desblo+ueja la tapa7 i el cuiner 9i pot colDlocar l(oli i la mante"a. A+uest pro"rama 1 minuts a temperatura m>ima i velocitat 1. En especi#icar la velocitat dels "anivets7 es blo+ueja la tapa del recipient7 el cron<metre del robot comen=a a comptabilit$ar el temps i s(activa la resist3ncia per proporcionar calor.
*igura $%#9% E>emple de dia"rama de se+63ncia B robot de cuina

Entorns de desenvolupament

.'

Introducci al disseny orientat a objectes

!a recepta continuaria7 per< es demana el dia"rama de se+63ncia #ins a a+uest punt. A la #i"ura .1) es pot veure un e>emple de dia"rama de se+63ncia +ue podria solucionar l(enunciat anterior.

$%3%$ Diagrama de comunicaci A+uest dia"rama7 en versions anteriors a la versi .- de l(/M!7 es conei>ia com a dia"rama de colDlaboraci. &es de les darreres versions es conei> amb a+uest nou nom0 dia"rama de comunicaci.

!a #inalitat del diagrama de comunicaci 8s representar la comunicaci entre els elements del sistema +ue es vol modelit$ar. Ereballant en conjunt els elements podran acomplir els objectius del sistema. El dia"rama de comunicacions t8 l(aspecte "eneral d(una colDlaboraci en la +ual7 al costat de cada connector7 s(9an a#e"it les #let>es corresponents als missat"es +ue 9i circulen durant la interacci. A+uestes #let>es sn les matei>es +ue 9i 9auria en un dia"rama de se+63ncies de la matei>a interacci pel +ue #a al tipus de lnia i de punta7 per< sn molt m8s curtes. !a disposici vertical dels elements connectables 8s lliure i7 per tant7 no representa cap ordenaci temporalN per mitj de la numeraci s(indica l(ordre d(emissi dels missat"es i si a+uesta emissi 8s se+6encial o en paralDlel.
*igura $%#9% &ia"rama de se+63ncia vs. dia"rama de colDlaboraci

Entorns de desenvolupament

..

Introducci al disseny orientat a objectes

A la #i"ura .19 es mostra un dia"rama de comunicaci :anti"ament anomenat dia"rama de colDlaboraci;. Eamb8 es mostra el dia"rama de se+63ncia +ue 9i est vinculat7 per poder veure7 d(a+uesta manera7 la seva inte"raci. El dia"rama de comunicacions7 d(una banda7 no permet representar els usos d(interacci i7 de l(altra7 nom8s t8 representaci per a al"uns dels operadors d(interacciN en conse+63ncia7 a la prctica nom8s 8s ade+uat per a la descripci d(interaccions relativament sen$illes. Iins a cert punt7 un dia"rama de comunicacions 8s semblant a un dia"rama de se+63ncies vist des de dalt0 de les lnies de vida nom8s se(n veuria la cap=alera i7 com +ue si 9i 9a"u8s diversos missat"es entre els matei>os dos elements connectables es veurien sobreposats. Eamb8 9i 9a autors +ue consideren +ue 8s un dia"rama molt semblant al dia"rama d(objectes7 per+u3 mostra el conte>t necessari per a una colDlaboraci entre objectes.
*igura $%$<% &ia"rama de comunicacions B robot de cuina

A la #i"ura . - es mostra el dia"rama de comunicacions corresponent a l(e>emple +ue s(9a e>posat anteriorment0 l(elaboraci d(una sopa #reda Vic9yssoise. Es recomana comparar el dia"rama de se+63ncies anterior corresponent a a+uest e>emple7 #i"ura .1)7 amb el dia"rama de comunicacions de la #i"ura . -.

Entorns de desenvolupament

.)

Introducci al disseny orientat a objectes

$%3%3 Diagrama de temps

Els diagrames de temps :o dia"rames temporals; representen una interacci entre di#erents estats i en desta+uen els aspectes temporals i7 en especial7 els canvis d(estat o de valor d(una lnia de vida :8s a dir7 de les instncies +ue cont8; o de diverses lnies al llar" del temps. Els dia"rames de temps mostren els canvis de l(estat d(un objecte al llar" del temps com a conse+63ncia d(esdeveniments. Generalment7 en una m+uina d(estats 9i 9a m8s d(un cam possible :8s a dir7 m8s d(una se+63ncia de transicions; entre l(estat inicial i l(estat #inalN un dia"rama temporal correspon nom8s a un d(a+uests camins i7 en conse+63ncia7 en un dia"rama temporal no 9i pot 9aver parts opcionals o alternatives. El dia"rama de temps no t8 conceptes propis i les seves notacions pr<pies sn molt sen$illes. En la seva #orma m8s usual i detallada 8s un dia"rama bidimensional7 en el +ual es representa una escala 9orit$ontal de temps i els di#erents estats o valors d(una lnia de vida corresponent a di#erents altures dins de la dimensi verticalN l(ordenaci vertical dels estats no t8 cap si"ni#icat. /n dia"rama pot tenir diverses #ran"es 9orit$ontals +ue corresponen a di#erents lnies de vida +ue compartei>en una sola escala de temps. !a successi dels di#erents estats d(una lnia de vida al llar" del temps 8s una lnia contnua #eta de se"ments de recta7 dels +uals0

C Els se"ments 9orit$ontals representen intervals de temps durant els +uals la lnia de vida roman en un cert estat. C !a resta de se"ments representa les transicions entre a+uests estats.

Diagrames temporal i de se+6.ncies At3s +ue tots dos dia"rames tenen una escala de temps i lnies de vida7 podrem dir +ue el dia"rama temporal ve a ser un dia"rama de se+63ncies sense #ra"ments combinats en el +ual damunt cada lnia de vida es representen els canvis d(estat.

/n segment vertical representa una transici +ue dura un temps ne"li"ible7 mentre +ue un se"ment inclinat representa una transici +ue dura el temps indicat per la di#er3ncia de les abscisses dels seus e>trems inicial i #inal. Eot se"uit es mostra un e>emple de dia"rama de temps. En primer lloc7 es mostren7 a les #i"ures )% i )*7 els dia"rames d(estats de dues classes7 la ss# i la ss$. !a ss# o#erei> dos estats :stt - i stt <;7 mentre +ue la ss$ o#erei> tres possibles estats :stt #7 stt $ i stt =;.
*igura $%$#% &ia"rama d(estats de @1lasse1@

Entorns de desenvolupament

.9

Introducci al disseny orientat a objectes

*igura $%$$% &ia"rama d(estats de @1lasse @

El dia"rama de temps mostra una interacci entre l(objecte # de la ss# i l(objecte $ de la ss$. A la #i"ura . % es mostren les lnies de vida de cadascun dels objectes7 conB cretament dues #ran"es temporals dins les +uals es representen sen"les lnies de vida interrelacionades. A la primera lnia de vida 9i 9a dos estats i a la se"ona tres7 l(ordre dels +uals no t8 cap si"ni#icat. 2i 9a una escala de temps a la part de sota. &els tres missat"es +ue provo+uen transicions el primer 8s conse+63ncia de la transici d>stt# a stt$ :+ue provoca l(e>ecuci d(una activitat7 l(acci estndard 55 -t5#? # la +ual7 d(acord amb els seus parmetres7 envia el senyal 5# a l(objecte #;7 el se"on 8s conse+63ncia de l(entrada a stt< i el tercer ve de l(e>terior. El temps +ue passa entre l(arribada del se"on missat"e i la conse"6ent sortida d>stt$ 8s la durada de l(e>ecuci de l(activitat t#7 i la durada de la transici d>stt# a stt= 8s la durada de l(e>ecuci de t$.
*igura $%$3% &ia"rama temporal

2i 9a tres restriccions temporals0 C El missat"e +ue transmet el senyal 5# 9a de durar com a m>im una unitat de temps. C !(objecte # 9a de romandre a stt$ entre una i tres unitats de temps. C El tercer missat"e 9a d(arribar no m8s tard de dues unitats de temps despr8s de l(emissi del se"on missat"e.

Entorns de desenvolupament

)-

Introducci al disseny orientat a objectes

!a #i"ura . * 8s una versi m8s compacta del dia"rama dels estats. En comptes de representarB9i els estats a di#erents altures7 se(n posen els noms damunt la lnia de vida7 dins dels intervals corresponentsN a+uest dia"rama representa la primera lnia de vida del de la #i"ura . %.
*igura $%$4% &ia"rama temporal simpli#icat

$%3%4 Diagrama de visi general de la interacci

El diagrama de visi general de la interacci aporta una visi "lobal del #lu> de control de les interaccions. Al9ora de representar els models d(interacci d(un sistema pot sor"ir el problema +ue si"uin molt "rans7 amb la +ual cosa 8s bastant immanejable el seu tractament. Amb els dia"rames de visi "eneral de la interacci7 se se"uei> la #iloso#ia ?diviB dei> i con+uerirs@7 ja +ue permeten modularit$ar les interaccions7 descomposantB les en #ra"ments m8s petits7 i representar en un dia"rama la relaci entre els #ra"ments. !a representaci del dia"rama de visi "eneral de la interacci #a 4s de la nomenclatura del dia"rama d(activitat incorporant dos conceptes nous0 C /curr.ncia dinteracci0 #a re#er3ncia als dia"rames d(interacci e>isB tents. C Element dinteracci0 es du a terme una representaci de dia"rames d(inB teracci e>istents dins un marc rectan"ular on se n(especi#ica el contin"ut. A la #i"ura conceptes. . , es mostra la representaci "r#ica de cadascun dels dos

Entorns de desenvolupament

)1

Introducci al disseny orientat a objectes

*igura $%$5% Jcurr3ncia d(interacci i element d(interacci


En la secci Anne>os del Keb del m<dul 9i podeu trobar un e>emple complert de dia"rames de visi "eneral de la interacci.

$%4 Eclipse i UML: diagrames de comportament

/M! 8s un llen"uat"e de modelat"e de sistemes +ue es compon de molts dia"rames. 1al comprendre +uin 8s el si"ni#icat de cadascun dels dia"rames individualment7 +uins sn els seus elements i com a+uests es relacionen entre ells. Ger< per entendre d(una #orma m8s "lobal el +ue pot arribar a o#erir /M! cal observar un e>emple complet7 sobre el +ual es desenvolupin tots els dia"rames. Ger #er a+uest e>emple "lobal s(9a escollit un e>emple clssic7 +ue es basa en el rentat de roba per part d(una rentadora. Ger a la creaci d(a+uest e>emple de rentat de roba es #a servir Eclipse. Eclipse 8s un I&E +ue permet7 amb ajuda de m<duls e>terns7 la creaci de dia"rames /M! i la "eneraci automtica de codi a partir d(ells.

$%4%# Diagrama de casos d5s

El cas d(4s descriu les accions d(un sistema des del punt de vista de l(usuari. En a+uest cas7 en Voan posa una rentadora amb l(objectiu +ue es renti la roba. A la #i"ura . ' es mostra com s(especi#ica un actor :en Voan; en el dia"rama7 seleccionant l(actor en la barra d(eines i arrosse"antBlo a l(rea de treball.

Entorns de desenvolupament

Introducci al disseny orientat a objectes

*igura $%$7% Especi#icaci de l(actor del dia"rama de cas d(4s

A la #i"ura . . es mostra com modi#icar les propietats de l(actor7 editant el contin"ut dels camps de la #inestra de propietats.
*igura $%$"% Modi#icaci de les propietats de l(actor

Ger especi#icar el cas d(4s !entar ro&a7 se seleccionar l(opci Use -ase de la barra d(eines i s(arrosse"ar a l(rea de treballN en la vista de propietats se(n podr modi#icar el contin"ut. Arribats a a+uest punt7 ens +ueda pendent enlla=ar l(actor :en /oan; amb el cas d(4s :!entar ro&a;. 5eleccionem l(enlla= *ssociation7 l(arrosse"uem al dia"rama i seleccionem els dos objectes +ue s(9an de relacionar.

Entorns de desenvolupament

)%

Introducci al disseny orientat a objectes

A la #i"ura . ) es mostra el dia"rama de cas d(4s resultant.


*igura $%$9% &ia"rama de cas d(4s0 Fentar roba

Qormalment7 cada cas d(4s va associat amb una e>plicaci +ue sol contenir els se"6ents apartats0 C Eom0 @tr@. C Descripci0 Gosar una rentadora amb l(objectiu +ue la roba bruta +uedi neta. C Brecondicions0 Foba brut C *lux normal0 !a rentadora neteja la roba. C *lux alternatiu0 Qo. C Bostcondicions0 Foba neta.

$%4%$ Diagrama de classes El dia"rama de classes representa les classes +ue seran utilit$ades dins el sistema i les relacions +ue e>istei>en entre elles. En a+uest punt s(9an d(identi#icar les classes candidates7 basades en els dia"rames de casos d(4sN en el cas de l(e>emple s(identi#icaria una 4nica classe7 @tr. En el cas de no tenir creat el dia"rama de classes7 s(9aur de crear7 seleccionant el model de la vista Model e$plorer i clicant amb el bot dret del ratol per seleccionar les opcions #e0 diagram i -reate a ne0 -lass .iagram7 tal com es mostra a la #i"ura . 9.

Entorns de desenvolupament

)*

Introducci al disseny orientat a objectes

*igura $%$9% 1reaci d(un nou dia"rama

/na ve"ada identi#icada la classe7 s(9auran de concretar els atributs +ue represenB ten les caractersti+ues estables de les classes. Al"uns dels atributs de la classe @tr podrien ser0 !r7 !7 tt7 ss rAt7 tt tr2. En canvi7 les operacions sn les accions de la classe :normalment els verbs del cas d(4s es convertei>en en operacions;. Al"unes de les accions de la classe @tr podrien ser0 2r r7 2r trt7 trr r7 tr rtr. A la #i"ura .%- es mostra el dia"rama de classes resultant.
*igura $%3<% &ia"rama de classes

Entorns de desenvolupament

),

Introducci al disseny orientat a objectes

$%4%3 Diagrama do()ectes /n objecte 8s una instncia d(una classe. &(a+uesta manera7 un possible objecte de la classe @tr podria ser0 C 1lasse0 rtr#. C Marca0 5iemens. C Model0 WM 1*5.*-. C 1apacitat0 ) S". C 1lasse ener"3tica0 A. C Velocitat centri#u"at0 1*--.

$%4%4 Diagrama de transici destat En +ualsevol moment7 un objecte es troba en un estat en particular. /na rentadora pot estar en la #ase de remull7 rentat o ensabonat7 esbandida7 centri#u"at i apa"ada7 i canviar d(una a una altra7 d(acord amb el dia"rama d(estat +ue es mostra a la #i"ura .%1.
*igura $%3#% &ia"rama de transici d(estat

El smbol de la part superior indica l(estat inicial7 i el de la part in#erior7 el #inal.

$%4%5 Diagrama dactivitats /n dia"rama d(activitats 8s una variaci del dia"rama d(estats /M!. El dia"rama d(activitats representa les activitats +ue passen dins un cas d(4s o dins el comporB tament d(un objecte. A la #i"ura .% es mostra un possible dia"rama d(activitats.

Entorns de desenvolupament

)'

Introducci al disseny orientat a objectes

*igura $%3$% &ia"rama d(activitats

Ii>emBnos +ue cada una de les columnes podria correspondre a cada un dels estats del proc8s de rentat0 remull7 ensabonat7 esbandit i centri#u"at. C Estat de remull: D !(ai"ua omple el tambor mitjan=ant la mne"a. D El tambor roman inactiu durant cinc minuts. D !a mne"a dei>a de proveir ai"ua. C Estat densa(onat o de rentat: D El tambor "ira d(un costat a un altre durant +uin$e minuts. D !(ai"ua ensabonada surt pel desai"6e. C Estat des(andit: D 1omen=a novament l(abastament d(ai"ua. D El tambor continua "irant. D !(abastament d(ai"ua s(atura. D !(ai"ua utilit$ada per esbandir la roba surt pel desai"6e. C Estat de centri-ugat: D El tambor "ira en una sola direcci. D El tambor dei>ar de "irar i el proc8s de rentat acaba.

Entorns de desenvolupament

).

Introducci al disseny orientat a objectes

$%4%7 Diagrama de se+6.ncies Els dia"rames de classes i els d(objectes representen in#ormaci esttica. Qo obstant ai><7 en un sistema #uncional els objectes interactuen entre si7 i a+uestes interaccions succeei>en amb el temps. El dia"rama de se+63ncies /M! mostra la mecnica de la interacci sobre la base del temps. Entre els components de la rentadora es troben0 una mne"a d(ai"ua :per obtenir ai"ua #resca;7 un tambor :on es posa la roba;7 un sistema de desai"6e i el dispensador de deter"ent. Ou3 passar +uan invo+ui al cas d(4s !entar ro&aP 5i donem per #et +ue s(9an completat les operacions afegir ro&a7 afegir detergent i acti%ar7 la se+63ncia seria m8s o menys la +ue mostra la #i"ura .%%.
*igura $%33% &ia"rama de se+63ncia

!a se+63ncia de passos +ue se"uei> el proc8s de rentat 8s0 1. El sistema d(abastament d(ai"ua omple el tambor. . &urant % minuts no 9i 9a activitat al tambor. %. El sistema d(abastament dei>a de proporcionar ai"ua. *. El sistema d(abastament proporciona sab.

Entorns de desenvolupament

))

Introducci al disseny orientat a objectes

,. &urant 1 minut no 9i 9a activitat al tambor. '. El sistema d(abastament dei>a de proporcionar sab. .. &urant 1 minuts el tambor "ira. ). 1omen=a a sortir ai"ua pel desai"6e #ins +ue no dei>a sab. 9. El sistema d(abastament d(ai"ua omple el tambor. 1-. &urant 1- minuts el tambor "ira. 11. El sistema d(abastament dei>a de proporcionar ai"ua. 1 . El desai"6e rep l(ai"ua +ue es #a servir per esbandir. 1%. &urant * minuts el tambor "ira. 1*. Es #inalit$a el proc8s. El tambor dei>a de "irar.

$%4%" Diagrama de comunicaci Els elements d(un sistema treballen en conjunt per complir amb els objectius del sistema7 i un llen"uat"e de modelit$aci 9aur de comptar amb una #orma de representar ai><. El dia"rama de colDlaboracions /M! est dissenyat amb a+uesta #inalitat. A la #i"ura .%* es pot observar un possible dia"rama de comunicaci.
*igura $%34% &ia"rama de comunicaci

You might also like