Está en la página 1de 43

3.

DIAGRAMAS DE CLASES

19 19

3.1. INTRODUCCIN

3.2. DIAGRAMAS DE CLASES 19 3.2.1. Perspectivas 3.2.2.


3.2.2.2. 3.2.2.3. 3.2.2.3.1. 3.2.3.1. A"o$ia$i%n 3.2.3.1.2. 3.2.3.1.3. 3.2.3.1.4.

20

Clases

20

3.2.2.1. Compartimento Compartimento de a i"ta de atri!#to" 3.2.2.2.1. Ejemplos de Compartimento de a i"ta de opera$ione" Ejemplos de operaciones
2& 2' 23

de nom!re
21

21

atributos
22

22

3.2.3. Relaciones en un diagrama de clases


3.2.3.1.1. Tipos de asociacin

23

Diferencias entre los tipos de asociacin Ejemplos de asociaciones normales Ejemplos de agregaciones 3.2.3.2. Dependen$ia
3* 2) 29 2(

2(

3.2.3.2.1. Ejemplos de dependencias


31

3.2.3.3. Genera i+a$i%n 3.2.3.3.1. Ejemplos de generalizaciones


31

3.2.4. Notas 32 3.2.5. Restricciones 33 3.2.6. Clases avanzadas (clasi icadores!


3.2.(.1. Inter,a$e" 3.2.(.2. -a.#ete"
3& 3'

33

CA-/TULO 30 DIAGRAMAS DE CLASES

3. DIAGRAMAS DE CLASES
3.1. INTRODUCCIN La nota$i%n de UML e"t1 $omp#e"ta por do" "#!di2i"ione" importante". 3a4 #na nota$i%n para mode ar o" e emento" e"t1ti$o" ta e" $omo $ a"e"5 atri!#to" 4 re a$ione". Tam!i6n 7a4 otra nota$i%n para mode ar o" e emento" din1mi$o" ta e" $omo o!8eto"5 men"a8e" 4 m1.#ina" de e"tado ,inita". Lo" e emento" e"t1ti$o" "e repre"entan mediante dia9rama" de e"tr#$t#ra e"t1ti$a5 m1" $ono$ido" por "# nom!re $orto5 dia9rama" de $ a"e". M#e"tran e $on8#nto de $ a"e" .#e ,orman parte de a e"tr#$t#ra e"t1ti$a de #n "i"tema5 8#nto $on a" re a$ione" e:i"tente" entre e"ta" $ a"e". -ero $#ando "e mode a a e"tr#$t#ra e"t1ti$a de #n "i"tema5 podemo" #"ar o" dia9rama" de $ a"e" de tre" ,orma" di,erente"0 1. para mode ar e 2o$a!# ario de #n "i"tema Mode ar e 2o$a!# ario de #n "i"tema imp i$a tomar #na de$i"i%n "o!re .#6 a!"tra$$ione" ,orman parte de "i"tema 4 .#6 otra" $aen ,#era de "#" ;mite". A.#; #"amo" o" dia9rama" de $ a"e" para e"pe$i,i$ar di$7a" a!"tra$$ione" 4 "#" re"pon"a!i idade". 2. para mode ar $o a!ora$ione" de ,orma "en$i a Una $o a!ora$i%n e" #n $on8#nto de $ a"e"5 inter,a$e" 4 otro" e emento" .#e tra!a8an 8#nto" para propor$ionar #n $omportamiento de $oopera$i%n ma4or .#e a "#ma de todo" o" e emento". -or e8emp o5 $#ando .#eremo" mode ar a" "em1nti$a" de #na tran"a$$i%n en #n "i"tema di"tri!#ido5 no podemo" ,i8arno" en #na "o a $ a"e para entender o .#e e"t1 "#$ediendo. E" me8or .#e e"ta" "em1nti$a" "ean e2ada" a $a!o por #n $on8#nto de $ a"e" .#e tra!a8en 8#nta". A.#; #"amo" o" dia9rama" de $ a"e" para 2i"#a i+ar 4 e"pe$i,i$ar e"te $on8#nto de $ a"e" 4 "#" re a$ione". 3. para mode ar e e".#ema %9i$o de #na !a"e de dato" En m#$7o" dominio" podemo" .#erer a ma$enar in,orma$i%n $ontin#a <persistent in ormation= en #na !a"e de dato" re a$iona # orientada a o!8eto". A.#; #"amo" o" dia9rama" de $ a"e para mode ar o" e".#ema" de di$7a" !a"e" de dato". No"otro" 2amo" a e"t#diar o" dia9rama" de $ a"e" .#e "e #ti i+an para mode ar e 2o$a!# ario de #n "i"tema. 3.2. DIAGRAMAS DE CLASES Lo" dia9rama" de $ a"e" "e #ti i+an para mode ar a 2i"i%n e"t1ti$a de #n "i"tema. E"ta 2i"i%n "oporta o" re.#i"ito" ,#n$iona e" de "i"tema5 en $on$reto5 o" "er2i$io" .#e e "i"tema de!er;a propor$ionar a "#" #"#ario" ,ina e". Norma mente $ontienen0 $ a"e"5 inter,a$e" 4 re a$ione" entre e a"0 de a"o$ia$i%n5 de dependen$ia 4>o de 9enera i+a$i%n.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

19

CA-/TULO 30 DIAGRAMAS DE CLASES

Lo" dia9rama" de $ a"e" tam!i6n p#eden $ontener a pa.#ete" o "#!"i"tema"5 .#e "e #"an para a9r#par e emento" de mode o en parte" m1" 9rande" <por e8emp o5 pa.#ete" .#e a "# 2e+ $ontienen a 2ario" dia9rama" de $ a"e"=. A i9#a .#e otro" dia9rama"5 en o" dia9rama" de $ a"e" p#eden apare$er nota" e:p i$ati2a" 4 re"tri$$ione". 3.2.1. Perspectivas Se9@n AoB er5 7a4 tre" per"pe$ti2a" .#e podemo" tener en $#enta a a 7ora de di!#8ar o" dia9rama" de $ a"e" <o $#a .#ier otro tipo de dia9rama5 pero e" m1" e2idente en o" dia9rama" de $ a"e"=0 1C Con$ept#a 0 E"tamo" di!#8ando #n dia9rama .#e repre"enta o" $on$epto" de dominio de "i"tema. E"to" $on$epto" "e re a$ionar1n de ,orma nat#ra $on a" $ a"e" .#e o" imp ementen5 pero a men#do no 7a4 #na ap i$a$i%n dire$ta. E" de$ir5 e mode o "e di!#8a "in tener en $#enta e "o,tBare .#e o imp ementa 4 9enera mente e" independiente de en9#a8e de pro9rama$i%n. 2C An1 i"i"0 De"de e p#nto de 2i"ta de "o,tBare5 no" ,i8amo" en a" inter,a$e" de "o,tBare5 no en "# imp ementa$i%n. E" de$ir5 miramo" o" tipo" m1" .#e a" $ a"e". E de"arro o orientado a o!8eto" pone m#$7o 6n,a"i" en a di,eren$ia entre tipo 4 $ a"e5 pero #e9o no "e ap i$a en a pr1$ti$a. E" importante "eparar inter,a+ <tipo= de imp ementa$i%n <$ a"e=. M#$7o" en9#a8e" de pro9rama$i%n no o 7a$en 4 o" m6todo"5 in, #ido" por e o"5 tampo$o. E"to e"t1 $am!iando5 pero no o "#,i$ientemente r1pido <Da2a 4 COREA tendr1n a 9o de in, #en$ia a.#;=. Lo" tipo" repre"entan #na inter,a+ .#e p#ede tener m#$7a" imp ementa$ione" di,erente" de!ido5 por e8emp o5 a a" $ara$ter;"ti$a" de entorno de in"ta a$i%n. 3C Imp ementa$i%n0 E"tamo" poniendo a imp ementa$i%n a de"$#!ierto5 p#e" rea mente tenemo" $ a"e". E" a per"pe$ti2a m1" #ti i+ada5 pero de toda" ,orma" a per"pe$ti2a de an1 i"i" "e $on"idera a me8or de a" tre". 3.2.2. C ases La" $ a"e" de"$ri!en #n $on8#nto de o!8eto" $on $ara$ter;"ti$a" 4 $omportamiento id6nti$o"5 e" de$ir5 o!8eto" .#e $omparten o" mi"mo" atri!#to"5 opera$ione" 4 re a$ione". La" $ a"e" "e repre"entan 9r1,i$amente por medio de #n re$t1n9# o $on tre" di2i"ione" interna". Lo" tre" $ompartimento" a o8an e nom!re de a $ a"e5 "#" atri!#to" 4 "#" opera$ione"5 re"pe$ti2amente. En m#$7o" dia9rama" "e omiten o" do" $ompartimento" in,eriore". In$ #"o $#ando e"t1n pre"ente"5 no m#e"tran todo" o" atri!#to" 4 toda" a" opera$ione". -or e8emp o5 en a Ai9#ra 3.1 2iene repre"entada a $ a"e ?entana de tre" ,orma" di,erente"0 "in deta e"5 deta e" en e 1m!ito de an1 i"i" 4 deta e" en e 1m!ito de imp ementa$i%n.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

2*

CA-/TULO 30 DIAGRAMAS DE CLASES

2I

!e"ta"a !e"ta" a

$o orHa$t#a 0 Co or J ! an$o K! an$o5 ro8oL

1I
ta m a F o 0 G r e a J < 1 * * 5 1 * * =

M 2i"i!i idad0 Eoo ean J ,a "e

!e"ta" a
tamaFo0Grea $o orHa$t#a 0 Co or 2i"i!i idad0 Eoo ean

3I

ta maFoH porH de,e$to0 Re$t1n9# o

M tamaFoH m1:imo0 Re$t1n9# o

?i"#a i+ar<= E"$onder<=

1I 2I 3I

?i "#a i+ar<= E" $onder<= Cr ear<=

ent nom!re de a o $ a"e $ontenida E pri en 6 . me Ai9#ra 3.1 ro 3.2.2.2. e Compartiment 3.2.2. no o de la lista de atributos 1. m Com !r parti e Lo" atri!#to" ment a" de de"$ri!en o del pa $ara$ter;"ti$a" nom .# propia" de o" bre ete o!8eto" de #na <e $ a"e. La Cada n "inta:i" $ a"e e"t $omp eta de #n de!e e atri!#to e"0 tener $a #n "o5 [ nom! NG v re r1, i .#e i$o s a "O= i di"tin 4 b 9a de de i a" !a8 l otra" o i $ a"e" e d

ad] s}] no 3C donde mb visibilida re d p#ede [m "er0 ulti pli 1C I cid <p@! i$a ad]=0 .#e [: 7a$e e tip atri!#to o] 2i"i! e [= a todo" val o" or- $ iente" a ini de $ a"eP cia Si #n l] atri!#to 2C H [{li <pri2ad no tiene sta a=0 .#ea"i9nada - 7a$e e nin9#na proatri!#to 2i"i!i id pie 2i"i! e ad5 da "% o .#iere de para a

de$ ir .#e a 2i"i !i i dad no e"t1 de,i nid a <no 7a4 2i"i !i i dad por de, e$t o=.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

CA-/TULO 30 DIAGRAMAS DE CLASES

donde nombre e" #na $adena de te:to .#e repre"enta e nom!re de atri!#toP donde tipo e" #n tipo de atri!#to t;pi$o0 "trin95 !oo ean5 inte9er5 rea 5 do#! e5 point5 area 4 en#meration. Se aman tipo" primiti2o". Tam!i6n p#eden "er e"pe$;,i$o" de #n $ierto en9#a8e de pro9rama$i%n5 a#n.#e "e p#ede #"ar $#a .#ier tipo5 in$ #"o otra" $ a"e". donde multiplicidad e" #n indi$ador de a m# tip i$idad de atri!#to5 .#e 2a en$errado entre $or$7ete". La a#"en$ia de m# tip i$idad "i9ni,i$a .#e tiene e:a$tamente 2a or 15 mientra" .#e #na m# tip i$idad de *..1 propor$iona a po"i!i idad de 2a ore" n# o" < a a#"en$ia de #n 2a or=. donde valor-inicial e" #na e:pre"i%n $on e 2a or ini$ia .#e 2a a $ontener e atri!#to $#ando "e $rea de n#e2o e o!8etoP donde lista- propiedades e" #na i"ta .#e $ontiene o" 2a ore" permitido" en #n atri!#to. Se #ti i+a para e"pe$i,i$ar tipo" en#merado" ta e" $omo $o or5 e"tado5 et$. Cierto" atri!#to" p#eden "er 2i"i! e" 9 o!a mente5 en toda a amp it#d 6:i$a de a $ a"e. -ara e o "e de,inen $omo atri!#to" $#4o 1m!ito e" a $ a"e < class"scope attri#utes=5 amado" tam!i6n 2aria! e" de $ a"e <class varia#les=5 4 "e repre"entan $omo o" o!8eto" por #n nom!re "#!ra4ado. La nota$i%n "e 8#"ti,i$a por e 7e$7o de .#e #na 2aria! e de $ a"e apare$e $omo #n o!8eto $ompartido por a" in"tan$ia" de #na $ a"e. 3.2.2.2.1. Ejemplos de atributos En e e8emp o de a Ai9#ra 3.1 a $ a"e ?entana tiene o" "i9#iente" atri!#to"0 1I tamaFo0 Grea J <1**51**= 2I $o orHa$t#a 0 Co or J ! an$o K! an$o5 ro8oL M 2i"i!i idad0 Eoo ean J ,a "e 3I tamaFoHporHde,e$to0 Re$t1n9# o &I tamaFoHm1:imo0 Re$t1n9# o
Lo" atri!#to" tamaFo HporHde,e$to 4 tamaFoHm1:imo tienen por tipo a $ a"e Re$t1n9# o5 mientra" .#e e re"to $orre"ponde a tipo" primiti2o"0 Grea5 Co or 4 Eoo ean. A"imi"mo5 e"to" do" atri!#to"5 .#e apare$en "#!ra4ado"5 "on atri!#to" $#4o 1m!ito e" a $ a"e.

3.2.2.3. Compartimento de la lista de operaciones La" opera$ione" de"$ri!en e $omportamiento de o" o!8eto" de #na $ a"e. La "inta:i" $omp eta de #na opera$i%n e"0
[visibilidad] nombre [(lista-parmetros)] [: tipo-devuelto] [{lista-propiedades}]

donde visibilidad p#ede "er0

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

22

CA-/TULO 30 DIAGRAMAS DE CLASES

1C I <p@! i$a= 2C H <pri2ada= 3C M <prote9ida= Si #na opera$i%n no tiene a"i9nada nin9#na 2i"i!i idad5 .#iere de$ir .#e a 2i"i!i idad no e"t1 de,inida <no 7a4 2i"i!i idad por de,e$to=. donde nombre e" #na $adena de te:to .#e identi,i$a a opera$i%nP donde lista- parmetros e" #na i"ta de par1metro" ,orma e" "eparado" por #na $oma5 $ada #no e"pe$i,i$ado "e9@n a "i9#iente "inta:i"0
nombre [: tipo] [= valor-por-defecto]

donde tipo-devuelto e" #na e"pe$i,i$a$i%n de tipo .#e repre"enta e 2a or de2#e to por a opera$i%n. Depende de en9#a8e de pro9rama$i%n. Si a opera$i%n no de2#e 2e nin9@n 2a or <por e8emp o5 2oid en CII=5 "e omite. donde lista-propiedades e" #na i"ta .#e $ontiene o" 2a ore" permitido" en #na opera$i%n. Una $ a"e p#ede tener opera$ione" $#4o 1m!ito e" a $ a"e <class"scope operations=. A#n.#e no e:i"ta #n o!8eto de a $ a"e5 "e p#ede amar a #na opera$i%n de e"te tipo5 pero "# a$$e"o e"t1 re"trin9ido "% o a o" atri!#to" $#4o 1m!ito e" a $ a"e < class" scope attri#utes=. La" opera$ione" $#4o 1m!ito e" a $ a"e "e de,inen para e2ar a $a!o opera$ione" 9en6ri$a" ta e" $omo $rear o!8eto" 4 en$ontrar o!8eto" donde #n o!8eto e"pe$;,i$o no e"t1 imp i$ado. Se repre"entan por #n nom!re 8#nto $on "#" ar9#mento"5 todo" e o" "#!ra4ado". 3.2.2.3.1. Ejemplos de operaciones En e e8emp o de a Ai9#ra 3.1 a $ a"e ?entana tiene a" "i9#iente" opera$ione"0 1I 2I 3I ?i"#a i+ar<= E"$onder<= Crear<=

En e"ta" opera$ione" no "e 7a e"pe$i,i$ado nin9#no de o" ar9#mento" men$ionado" ante"5 e:$epto e de a 2i"i!i idad. La opera$i%n Crear e" #na opera$i%n $#4o 1m!ito e" a $ a"e5 p#e" apare$e "#!ra4ada. 3.2.3. Re aci#"es e" $" %ia&ra'a %e c ases Lo" dia9rama" de $ a"e" e"t1n $omp#e"to" por $ a"e" 4 por re a$ione" entre e a". La" re a$ione" .#e "e p#eden #"ar "on0 Re a$i%n de a"o$ia$i%n Una a"o$ia$i%n e" #na $one:i%n entre $ a"e"5 #na $one:i%n "em1nti$a <en a$e= entre o" o!8eto" de di$7a" $ a"e". Un tipo e"pe$ia de a"o$ia$i%n e" a re a$i%n de a9re9a$i%n.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

23

CA-/TULO 30 DIAGRAMAS DE CLASES

Re a$i%n de dependen$ia Una dependen$ia e" #na re a$i%n entre e emento"5 #no independiente 4 otro dependiente. Un $am!io en e e emento independiente a,e$tar1 a e emento dependiente. Re a$i%n de 9enera i+a$i%n Una 9enera i+a$i%n e" #na re a$i%n entre #n e emento m1" 9enera 4 otro m1" e"pe$;,i$o. E e emento m1" e"pe$;,i$o p#ede $ontener "% o in,orma$i%n adi$iona . Una in"tan$ia <#n o!8eto e" #na in"tan$ia de #na $ a"e= de e emento m1" e"pe$;,i$o "e p#ede #"ar "i e e emento m1" 9enera o permite. 3.2.3.1. Asociacin Una a"o$ia$i%n e" #na re a$i%n e"tr#$t#ra .#e e"pe$i,i$a .#e o" o!8eto" de #na $ a"e e"t1n $one$tado" $on o" o!8eto" de otra. C#ando #na a"o$ia$i%n e" #na $one:i%n "em1nti$a entre o" o!8eto" de do" $ a"e"5 "e ama a"o$ia$i%n !inaria. A#n.#e no e" o $om@n5 "e p#eden tener a"o$ia$ione" .#e $one$ten m1" de do" $ a"e"P 6"ta" "e aman a"o$ia$ione" nHaria". Tam!i6n e" po"i! e .#e5 dado #n o!8eto de #na $ a"e5 "e p#eda en a+ar $on otro" o!8eto" de a mi"ma $ a"e. Norma mente #na a"o$ia$i%n e" !inaria 4 !idire$$iona <"e p#ede na2e9ar en am!a" dire$$ione"=. Se di!#8a $omo #na ;nea "% ida entre do" $ a"e". Tam!i6n "e p#ede repre"entar #na a"o$ia$i%n !inaria 4 #nidire$$iona 5 aFadiendo #na , e$7a a ,ina de a ;nea. E"ta , e$7a indi$a .#e a a"o$ia$i%n "% o "e p#ede #ti i+ar en a dire$$i%n de a , e$7a. Cada a"o$ia$i%n p#ede pre"entar a 9#no" e emento" adi$iona e" .#e dan deta e a a re a$i%n5 $omo "on0 Nom!re Una a"o$ia$i%n p#ede tener #n nom!re5 .#e "e #"a para de"$ri!ir a nat#ra e+a de a re a$i%n. A"; no 7a4 am!i9Qedad "o!re "# "i9ni,i$ado. -ara indi$ar a dire$$i%n en .#e "e de!e eer e nom!re "e emp ea #n tri1n9# o. Ro C#ando #na $ a"e parti$ipa en #na a"o$ia$i%n5 8#e9a #n ro e"pe$;,i$o en di$7a re a$i%n. Se p#ede de"i9nar de ,orma e:p ;$ita mediante #n nom!re a o" ,ina e" de a ;nea5 e $#a de"$ri!e a "em1nti$a de a a"o$ia$i%n en e "entido indi$ado. M# tip i$idad La m# tip i$idad de"$ri!e a $ardina idad de a re a$i%n5 e" de$ir5 $#1nto" o!8eto" e"t1n $one$tado" en #na in"tan$ia de #na a"o$ia$i%n <en a$e=. C#ando "e e"ta! e$e #na m# tip i$idad a ,ina de a ;nea de #na a"o$ia$i%n5 indi$a .#e para $ada o!8eto de a $ a"e en e ado op#e"to e:i"ten 2ario" o!8eto" en e otro e:tremo. E ran9o p#ede "er tre" <3=5 $eroHaH#no <*..1=5 $eroHaHm#$7o" <*..R % R=5 #noHaHm#$7o" <1..R=5 et$. Re"tri$$ione" Lo" e emento" anteriore" "on "#,i$iente" para deta ar #na re a$i%n de a"o$ia$i%n. -ero "i .#eremo" e"pe$i,i$ar #n ma4or "i9ni,i$ado5 UML de,ine $in$o re"tri$$ione" .#e "e

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

2&

CA-/TULO 30 DIAGRAMAS DE CLASES

p#eden ap i$ar. -or e8emp o5 "i .#eremo" .#e o" o!8eto" de #na $ a"e a ,ina de #na a"o$ia$i%n <$on #na m# tip i$idad ma4or .#e #no= e"t6n en #n orden e:p ;$ito5 de!emo" e"$ri!ir KordenadoL a ,ina de a mi"ma 4 $er$a de a $ a"e. En a Ai9#ra 3.2 "e m#e"tran o" do" tipo" de na2e9a$i%n en #na a"o$ia$i%n entre a" $ a"e" -er"ona 4 Co$7e. En e primer $a"o #n $o$7e p#ede tener #no o m1" propietario" 4 #na per"ona e" propietaria de $ero o m1" $o$7e". Mientra" .#e en e "e9#ndo $a"o a a"o$ia$i%n na2e9a! e no" di$e .#e #na per"ona p#ede po"eer 2ario" $o$7e" o nin9#no5 pero no no" in,orma "o!re $#1nta" per"ona" "on propietaria" de #n $o$7e.

Pers#"a

1.. R

po"ee pertene$e a

*..R

C#c(e

Pers#"a

po"ee

*..R

C#c(e

Ai9#ra 3.2 3.2.3.1.1. Tipos de asociacin Lo" tipo" de a"o$ia$ione" pre"ente" en #n dia9rama de $ a"e" "on0 1. A"o$ia$i%n norma Una a"o$ia$i%n norma entre do" $ a"e" repre"enta #na re a$i%n e"tr#$t#ra entre "#" o!8eto"5 o .#e "i9ni,i$a .#e am!a" $ a"e" e"t1n $on$ept#a mente a mi"mo ni2e 5 nin9#na e" m1" importante .#e a otra. Se trata de #na re a$i%n no m#4 ,#erte. 2. A9re9a$i%n Una a9re9a$i%n "ir2e para mode ar #na re a$i%n StodoHparteT5 o .#e "i9ni,i$a .#e #n o!8eto de todo tiene o!8eto" de a parte. -odemo" di"tin9#ir0 1C A9re9a$i%n norma Una a9re9a$i%n norma "e denota di!#8ando #na ;nea $on #n rom!o "in re enar a ,ina de a mi"ma de ado de todo <de ado de a $ a"e .#e $ontiene a a otra $ a"e= . Tam!i6n p#ede tener #n nom!re <$on dire$$i%n= 4 "er na2e9a! e5 a"; $omo aFadir ro e" en e ado de a parte < ado de a $ a"e $ontenida=.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

2'

CA-/TULO 30 DIAGRAMAS DE CLASES

Una a9re9a$i%n norma e" #n $a"o e"pe$ia de a m# tip i$idad de #na a"o$ia$i%n5 p#e" a $ardina idad de ado de todo "% o p#ede "er #no. 1C A9re9a$i%n $ompartida Una a9re9a$i%n $ompartida e" a.#e a en a .#e a" parte" p#eden "er parte" en 2ario" todo". Se repre"enta de a mi"ma ,orma .#e #na a9re9a$i%n norma . -ara .#e #na a9re9a$i%n "e $on"idere $ompartida e" ne$e"ario .#e a m# tip i$idad en e ado de todo "ea "#perior a #no. Una a9re9a$i%n $ompartida e" #n $a"o e"pe$ia de #na a9re9a$i%n norma . 1C A9re9a$i%n de $ompo"i$i%n Una a9re9a$i%n de $ompo"i$i%n "e denota di!#8ando #na ;nea $on #n rom!o re eno a ,ina de a mi"ma de ado de todo <de ado de a $ a"e .#e $ontiene a a otra $ a"e=. La m# tip i$idad en e ado de todo p#ede "er #no <1= % $eroHaH#no <*..1=5 pero a m# tip i$idad en e ado de a parte p#ede "er $#a .#ier inter2a o. Se trata de #na re a$i%n de pertenen$ia m#4 ,#erte. 3.2.3.1.2. Diferencias entre los tipos de asociacin La a"o$ia$i%n e:pre"a #n a$op amiento d6!i P a" $ a"e" a"o$iada" "i9#en "iendo re ati2amente independiente" #na de otra. Se trata de #na re a$i%n no m#4 ,#erte5 e" de$ir5 no "e e:i9e dependen$ia e:i"ten$ia ni en$ap"# amiento. La a9re9a$i%n e" #na ,orma parti$# ar de a"o$ia$i%n .#e e:pre"a #n a$op amiento m1" ,#erte entre $ a"e"P #na de a" $ a"e" $#mp e #na ,#n$i%n m1" importante .#e a otra en a re a$i%n. La a9re9a$i%n norma 4 $ompartida "on re a$ione" no m#4 ,#erte"5 $on a" mi"ma" $ara$ter;"ti$a" .#e a a"o$ia$i%n a a 7ora de imp ementar a". -ero a a9re9a$i%n de $ompo"i$i%n e" #na a"o$ia$i%n m#4 ,#erte5 .#e imp i$a dependen$ia e:i"ten$ia < a $ a"e dependiente de"apare$e a de"tr#ir"e a .#e a $ontiene 45 "i e" de $ardina idad #no5 e" $reada a mi"mo tiempo= 4 pertenen$ia ,#erte < a $ a"e $ontenida e" parte $on"tit#ti2a 4 2ita de a .#e a $ontiene=. Una ,orma de imp ementar #na a9re9a$i%n de $ompo"i$i%n e" in$ #ir ,;"i$amente a" parte" dentro de a $ a"e de todo <en$ap"# amiento=. En a ,orma de imp ementa$i%n e" donde podemo" 7a ar otra di,eren$ia entre o" tipo" de a9re9a$ione". Mientra" .#e en a a9re9a$i%n de $ompo"i$i%n a $ a"e de todo tiene e $ontro de $i$ o de 2ida de "#" parte" <a mi"mo tiempo .#e a $ a"e e" e iminada5 "e de"tr#4en a" parte"=5 en a" otra" do" o" tiempo" de 2ida de a $ a"e de todo 4 de "#" parte" no $oin$iden. 3.2.3.1.3. Ejemplos de asociaciones normales En a Ai9#ra 3.3 podemo" 2er a" $ a"e" 4 a" re a$ione" de a"o$ia$i%n norma 5 8#nto $on "#" e emento" adi$iona e"5 $orre"pondiente" a #na $ompaF;a de "e9#ro". O!"er2ando e e8emp o5 podemo" darno" $#enta .#e0 1C Una $ompaF;a de "e9#ro" tiene $ontrato" de "e9#ro"5 $ada #no de o" $#a e" "e re,ieren a #no o m1" $ iente". 2C Un $ iente tiene $ero o m1" $ontrato" de "e9#ro"5 $ada #no re,erido a #na $ompaF;a de "e9#ro".

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

2(

CA-/TULO 30 DIAGRAMAS DE CLASES

1C En $on"e$#en$ia5 #n $ontrato de "e9#ro" "e re,iere a #no o 2ario" $ iente" 4 a #na $ompaF;a de "e9#ro". 2C E $ontrato de "e9#ro" e"t1 e:pre"ado en #na <$ero o #na= p% i+a de "e9#ro". 3C La p% i+a de "e9#ro" "e re,iere a #na $ompaF;a de "e9#ro". La m# tip i$idad e"pe$i,i$a .#e e $ontrato de "e9#ro" e"t1 e:pre"ado en #na <$ero o #na= p% i+a de "e9#ro" <$ontrato e"$rito= 4 .#e a p% i+a de "e9#ro" "e re,iere a #na $ompaF;a de "e9#ro". Si ama" por te 6,ono a a $ompaF;a 4 a"e9#ra" t# $o$7e5 7a4 #n $ontrato de "e9#ro"5 pero no #na p% i+a. La p% i+a de "e9#ro" "er1 en2iada m1" tarde por $orreo. E" importante mode ar e m#ndo rea . Si 7#!i6"emo" mode ado a $ompaF;a de "e9#ro" !a"1ndono" "% o en a p% i+a de "e9#ro"5 7a!r;an "#r9ido pro! ema". -or e8emp o5 .#6 o$#rrir;a "i #n $ iente5 .#e 7a a"e9#rado e $o$7e por te 6,ono5 t#2ie"e #n a$$idente $on 6 #n min#to m1" tarde <no 7a4 p% i+a de "e9#ro"5 pero "; #n a$#erdo ora $on e a9ente=. Una $ a"e p#ede 8#9ar di,erente" ro e" en di,erente" a"o$ia$ione". En e dia9rama de $ a"e" de a Ai9#ra 3.35 a $ a"e CompaF;a de Se9#ro" 8#e9a e pape de a"e9#radora 4 a $ a"e -er"ona e pape de marido5 m#8er o a"e9#rado. Si no" ,i8amo" en e e8emp o5 toda" a" $ a"e" e"t1n $one$tada" mediante a"o$ia$ione" !inaria"5 e:$epto a $ a"e -er"ona5 donde #n o!8eto de e"ta $ a"e "e p#ede en a+ar $on otro" o!8eto" de a mi"ma $ a"e. Un marido e"t1 $a"ado $on #na m#8er. Tanto e marido $omo a m#8er "on per"ona". Si #na per"ona no e"t1 $a"ada5 enton$e" ni 6 ni e a 8#e9an e pape de marido o m#8er5 o .#e "i9ni,i$a .#e a a"o$ia$i%n <en e"te $a"o5 $a"ado $on= no "e ap i$a.

P) i*a %e Se&$r#s *..1

"e e:pre "a en "e re,ier ea

C#'pa+,a %e Se&$r#s *..R

1 a"e9#rador a

tiene

*..R

C#"trat# %e Se&$r#s 1 .. R r t e i , i e marido e r e " e a a"e9# rado

"e re,iere a

Pers#"a m#8er

$on Ai9#ra 3.3

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

2U

CA-/TULO 30 DIAGRAMAS DE CLASES

3.2.3.1.4. Ejemplos de agregaciones En a Ai9#ra 3.& podemo" en$ontrar tre" e8emp o" $on o" tre" tipo" de a9re9a$ione"0 norma 5 $ompartida 4 a de $ompo"i$i%n. E primer e8emp o "e trata de #na a9re9a$i%n norma . La , ota $ontiene m#$7o" !ar$o" de 9#erra. A 9#no" !ar$o" p#eden "er e iminado" 4 toda2;a e" #na , ota. Lo mi"mo o$#rre "i "e aFaden !ar$o"5 p#e" "i9#e "iendo #na , ota. E"to e" "i9ni,i$ati2o para #na a9re9a$i%n norma 5 pero no para #na a9re9a$i%n de $ompo"i$i%n. La" parte" < o" !ar$o" de 9#erra= $omponen e todo <, ota=. E rom!o "in re enar en e ado de todo5 8#nto $on a m# tip i$idad 15 no" indi$a .#e "e trata de #na a9re9a$i%n norma . En e "e9#ndo e8emp o a a9re9a$i%n e" $ompartida. Un remi: <me+$ a de "onido"= e"t1 $omp#e"to de 2aria" !anda" "onora"P a mi"ma !anda "onora podr;a ,ormar parte de 2aria" me+$ a" m#"i$a e". Se di,eren$ia de a a9re9a$i%n norma en .#e a m# tip i$idad en e ado de todo e" "#perior a 1. Lo" o!8eto" tanto de a $ a"e Remi: $omo de a $ a"e Eanda Sonora "e en$#entran ordenado"5 o $#a e"t1 indi$ado por a re"tri$$i%n KordenadoL. E ter$er e8emp o "e trata de #na a9re9a$i%n de $ompo"i$i%n. La 2entana $ontiene m#$7o" te:to"5 $a8a" de i"tado de e emento"5 !otone" 4 men@". E tiempo de 2ida de a" parte" $oin$ide $on a $ a"e de todo5 en e"te $a"o5 a $ a"e ?entana. E rom!o re eno en e ado de todo5 8#nto $on a m# tip i$idad *..1 o 15 no" indi$a .#e "e trata de #na a9re9a$i%n de $ompo"i$i%n.

- #ta $ontiene

.arc# %e G$erra

R Re'i/

KordenadoL $ontiene

.a"%a S#"#ra

R R !e"ta"a $ontiene R R

Te/t# Ca0a %e Lista%# %e E e'e"t#s .#t)" Me"1

Ai9#ra 3.&

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

2)

CA-/TULO 30 DIAGRAMAS DE CLASES

3.2.3.2. Dependencia Una dependen$ia e" #na $one:i%n "em1nti$a entre do" e emento" de mode ado5 #no independiente 4 otro dependiente. Un $am!io en e e emento independiente a,e$tar1 a dependiente. Un e emento de mode ado p#ede "er #na $ a"e5 #n pa.#ete5 #n $a"o de #"o5 et$. Lo" $a"o" m1" t;pi$o" de dependen$ia "on0 #na $ a"e tiene por par1metro en #na opera$i%n #n o!8eto de otra $ a"eP #na $ a"e a$$ede a #n o!8eto 9 o!a de otra $ a"eP o #na $ a"e ama a #na opera$i%n $#4o 1m!ito e" a $ a"e en otra $ a"e. La re a$i%n de dependen$ia "e repre"enta por #na ;nea di"$ontin#a $on #na , e$7a en e ado de e emento independiente. Si "e #ti i+a #na eti.#eta5 enton$e" "e trata de #n e"tereotipo .#e identi,i$a e tipo de dependen$ia. En UML e:i"ten o$7o e"tereotipo" .#e "e p#eden ap i$ar a a" re a$ione" de dependen$ia entre $ a"e"0 !ind Se #ti i+a $#ando "e .#iere mode ar o" deta e" de a" $ a"e" $ontenida" en p anti a". La re a$i%n entre #na p anti a .#e $ontiene #na $ a"e 4 #na in"tan$ia$i%n de di$7a $ a"e "e podr;a mode ar $omo #na dependen$ia $#ind%. Eind in$ #4e #na i"ta de o" ar9#mento" a$t#a e" .#e "e ap i$an a o" ar9#mento" ,orma e" de a p anti a. deri2e Se #ti i+a $#ando "e .#iere mode ar a re a$i%n entre do" atri!#to" o do" a"o$ia$ione"5 #no de o" $#a e" e" $on$reto 4 e otro e" $on$ept#a . -or e8emp o5 a $ a"e -er"ona podr;a tener e atri!#to ,e$7aHdeH$#mp eaFo" <.#e e" $on$reto=5 a"; $omo e atri!#to edad <.#e "e p#ede deri2ar a partir de atri!#to anterior=. Se podr;a mo"trar e"ta re a$i%n mediante #na dependen$ia $derive%5 indi$ando .#e edad "e deri2a a partir de ,e$7aHdeH $#mp eaFo". ,riend Se #ti i+a $#ando "e .#iere mode ar .#e #na $ a"e ten9a a$$e"o e"pe$ia a a e"tr#$t#ra interna de otra $ a"e <in$ #"o a a.#e a" parte" $on 2i"i!i idad pri2ada=. La dependen$ia $ riend% e" #na remini"$en$ia de a" $ a"e" ami9a" de CII. 1C in"tan$eO, 2C in"tantiate E"to" do" e"tereotipo" "e #ti i+an para mode ar de ,orma e:p ;$ita a" re a$ione" $ a"e>o!8eto. La dependen$ia $instance& % "e #ti i+a $#ando "e .#iere mode ar a re a$i%n entre #na $ a"e 4 #n o!8eto en e mi"mo dia9rama5 o entre #na $ a"e 4 "# meta$ a"e. La dependen$ia $instantiate% "e #ti i+a $#ando "e .#iere e"pe$i,i$ar .#6 e emento $rea o!8eto" de otro. poBert4pe Se #ti i+a $#ando "e .#iere mode ar $ a"e" .#e en$#!ran a otra" $ a"e"5 ta $omo "#$ede $#ando "e trata de mode ar !a"e" de dato". re,ine Se #ti i+a $#ando "e .#iere mode ar $ a"e" .#e "on e"en$ia mente a mi"ma5 pero a di,erente" ni2e e" de a!"tra$$i%n. -or e8emp o5 d#rante e an1 i"i"5 tenemo" #na $ a"e C iente .#e5 d#rante e di"eFo5 2amo" a re,inar en #na $ a"e C iente m1" deta ada5 e" de$ir5 m1" $omp eta de $ara a "# imp ementa$i%n. #"e

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

29

CA-/TULO 30 DIAGRAMAS DE CLASES

Se #ti i+a $#ando "e .#iere mar$ar de ,orma e:p ;$ita #na dependen$ia $omo #na re a$i%n de #"o5 en $ontra"te $on o" mati$e" .#e propor$ionan o" otro" e"tereotipo" de dependen$ia. 3.2.3.2.1. Ejemplos de dependencias La Ai9#ra 3.' no" m#e"tra #n $on8#nto de $#atro $ a"e" 8#nto $on "#" a"o$ia$ione" 4 "#" dependen$ia"5 $orre"pondiente" a #na parte de #n "i"tema .#e 9e"tiona a a"i9na$i%n de pro,e"ore" a o" $#r"o" en #na #ni2er"idad. En e e8emp o 7a4 #na dependen$ia norma de a $ a"e - ani,i$a$i%n de C#r"o re"pe$to a a $ a"e C#r"o5 p#e" C#r"o "e #ti i+a $omo par1metro en a" opera$ione" AFadir 4 E iminar de - ani,i$a$i%n de C#r"o. Si propor$ionamo" a i"ta de par1metro" en a" opera$ione"5 ta $omo "e p#ede o!"er2ar en e e8emp o5 enton$e" no e" ne$e"ario mo"trar a dependen$ia5 p#e" a #ti i+a$i%n de a $ a"e C#r"o 4a ,i9#ra de ,orma e:p ;$ita en a $ a"e - ani,i$a$i%n de C#r"o. Sin em!ar9o5 a 2e$e" .#eremo" .#e e"ta dependen$ia "e di!#8e5 e"pe$ia mente "i 7emo" omitido a i"ta de par1metro" en a" opera$ione".

P a"i2icaci)" %e C$rs#Ini$ia i+ar<= Si9#iente<= AFadir<$0 C#r"o= E iminar<$0 C#r"o= N,riendO

C $ r s # R

Itera%#r

>edad 1..R Pr#2es#r


,e$7aHdeH $#mp eaFo"

e" te re Kedad J ot ,e$7aH ip H a$t#a ,e$7aH o. deH U $#mp ea na Fo"L de e Ai9#r a" a 3.' e" a En e e8emp o apare$en otra" do"de dependen$ia" mar$ada" $on #npe

n % entre o" atri!#to" edad 4 d ,e$7aHdeH$#mp eaFo"5 a $#a no e "e mar$a de ,orma e:p ;$ita5 "ino n $omo0 >edad. La otra e" a $ dependen$ia $ riend% de a $ a"e iIterador re"pe$to a a $ a"e a - ani,i$a$i%n de C#r"o. E"ta dependen$ia m#e"tra e #"o de $ #n iterador5 e"pe$i,i$ado en a d $ a"e Iterador5 "o!re a e pro9rama$i%n de $#r"o5 re"pe$i,i$ada en a $ a"e i- ani,i$a$i%n de C#r"o. Sin v em!ar9o5 e"ta @ tima $ a"e no e "a!e nada a$er$a de a primera.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

3*

CA-/TULO 30 DIAGRAMAS DE CLASES

3.2.3.3. eneralizacin Una 9enera i+a$i%n e" #na re a$i%n de $ a"i,i$a$i%n entre #n e emento m1" 9enera 4 otro m1" e"pe$;,i$o. La 9enera i+a$i%n e" #ti i+ada por $ a"e" 4 $a"o" de #"o 4 por otro" e emento" de mode ado $omo o" pa.#ete". La 9enera i+a$i%n norma e" #na re a$i%n de 7eren$ia entre $ a"e"5 entre #na 9enera 4 otra e"pe$;,i$a. La $ a"e e"pe$;,i$a5 amada "#!$ a"e5 7ereda todo de a $ a"e 9enera 5 amada "#per$ a"e. Lo" atri!#to"5 a" opera$ione" 4 toda" a" a"o$ia$ione" "on 7eredada". Lo" atri!#to" 4 a" opera$ione" $on 2i"i!i idad p@! i$a en a "#per$ a"e "er1n tam!i6n p@! i$o" en a "#!$ a"e. Lo" atri!#to" 4 a" opera$ione" .#e ten9an 2i"i!i idad pri2ada tam!i6n "er1n 7eredado"5 pero no "er1n a$$e"i! e" dentro de a "#!$ a"e. -ara prote9er o" atri!#to" 4 a" opera$ione" de a$$e"o" de"de ,#era de a "#per$ a"e 4 de a "#!$ a"e5 o" podemo" de$ arar $on 2i"i!i idad prote9ida. No "e p#ede a$$eder a e o" de"de otra" $ a"e"5 pero e"t1n di"poni! e" para a "#per$ a"e 4 para $#a .#iera de "#" "#!$ a"e". La re a$i%n de 9enera i+a$i%n "e repre"enta por #na ;nea $ontin#a de"de a $ a"e m1" e"pe$;,i$a <"#!$ a"e= 7a"ta a $ a"e m1" 9enera <"#per$ a"e=5 $on #n tri1n9# o "in re enar a ,ina de a ;nea en a "#per$ a"e. Una $ a"e a!"tra$ta e" a.#e a .#e no tiene o!8eto". S% o "e #ti i+a para 7eredar a partir de e a5 e" de$ir5 en #na $ a"e a!"tra$ta "e de"$ri!en o" atri!#to" 4 a" opera$ione" $om#ne" para otra" $ a"e". Se e"pe$i,i$a de ,orma e:p ;$ita poniendo Ka!"tra$taL dentro de $ompartimento de nom!re de a $ a"e 4 de!a8o de "# nom!re. Norma mente #na $ a"e a!"tra$ta tiene opera$ione" a!"tra$ta". Una opera$i%n a!"tra$ta e" a.#e a .#e no tiene m6todo de imp ementa$i%n en a "#per$ a"e donde e"t1 de,inida. Se e"pe$i,i$a de ,orma e:p ;$ita e"$ri!iendo Ka!"tra$taL de"p#6" de nom!re de a opera$i%n en a "#per$ a"e. Lo $ontrario de #na $ a"e a!"tra$ta e" #na $ a"e $on$reta5 o .#e "i9ni,i$a .#e e" po"i! e $rear o!8eto" a partir de a $ a"e 4 .#e tiene imp ementa$ione" para toda" a" opera$ione". A a 7ora de mode ar ap i$a$ione" "en$i a" e" "#,i$iente $on a re a$i%n de 9enera i+a$i%n norma . Sin em!ar9o5 e mode ado de $ierto" dominio" $omp e8o" <$omo p#ede "er e mode ado de toda" a" ap i$a$ione" de #na empre"a= re.#iere e"pe$i,i$ar #n ma4or "i9ni,i$ado5 de!ido prin$ipa mente a a e:i"ten$ia de #n 9ran n@mero de "#!$ a"e". -or e o UML de,ine #n e"tereotipo 4 $#atro re"tri$$ione" .#e "e p#eden ap i$ar. E e"tereotipo e" $implementation%. La" re"tri$$ione"5 .#e no" indi$an "i "e p#eden aFadir o no m1" 7i8o" en a 9enera i+a$i%n5 "on0 K$omp etoL e Kin$omp etoL. La" otra" do" re"tri$$ione" "on0 Kdi"8ointL 4 Ko2er appin9L 4 "e ap i$an "% o en e $onte:to de 7eren$ia m@ tip e5 e" de$ir5 $#ando #na $ a"e tiene m1" de #n padre. 3.2.3.3.1. Ejemplos de generalizaciones La Ai9#ra 3.( no" m#e"tra #n $on8#nto de $#atro $ a"e" 8#nto $on "#" a"o$ia$ione" 4 dependen$ia"5 re,erida" a tipo" de 2e7;$# o".

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

31

CA-/TULO 30 DIAGRAMAS DE CLASES

En n#e"tro e8emp o a $ a"e ?e7;$# o m#e"tra a" $o"a" $om#ne" entre $o$7e" 4 !ar$o"5 in$ #4endo a re a$i%n de a"o$ia$i%n a a $ a"e -er"ona. Se trata de #na $ a"e a!"tra$ta .#e no tiene o!8eto"5 mientra" .#e a" $ a"e" Co$7e 4 Ear$o "on $on$reta". E"ta" "#!$ a"e" 7eredan e atri!#to $o or 4 a opera$i%n Cond#$ir de a "#per$ a"e ?e7;$# o. Di$7a opera$i%n e"t1 rede,inida en a" $ a"e" Co$7e 4 Ear$o5 4a .#e no e"t1 imp ementada en a $ a"e ?e7;$# o a apare$er 8#nto a a opera$i%n a pa a!ra Ka!"tra$taL 4 adem1" "# imp ementa$i%n e" di,erente dependiendo de tipo de o!8eto0 $o$7e o !ar$o.

!e(,c$ # Ka!"tra$taL $ond#$e Pers#"a R $o or Cond#$ir <= Ka!"tra$taL pone en mar$7a a 76 i$e. C#c(e $o or Cond#$ir <= $o or Cond#$ir <= .ar c#

Cond#$ir <= pone en mar$7a a" r#eda".

Ai9#ra 3.(Cond#$ir <= La Ai9 #ra 3.( no" m#e"tra .#e a $ a"e

-er"ona tiene #na a"o$ia$i%n5#n amada $ond#$e5 7a$ia a $ a"eo!8et ?e7;$# o. La $ a"e ?e7;$# o e"o de a!"tra$taP o .#e "i9ni,i$a .#e o"#na o!8eto" a$t#a e" .#e a per"ona"#!$ $ond#$e "e o!tienen a partir de a" a"e "#!$ a"e" $on$reta" Co$7e 4a$t@ Ear$o. C#ando a per"ona e8e$#taa a opera$i%n Cond#$ir5 e re"# tado"e9@ depende de "i e o!8eto #"ado enn #n di$7a "it#a$i%n e" #n $o$7e o #no!8et !ar$o. Si e" #n o!8eto de a $ a"eo de Co$7e5 "e pondr1n en mar$7a a"#na r#eda" <#ti i+ando a"#pe imp ementa$i%n e"pe$i,i$ada en ar$ a" $ a"e Co$7e=. Si e" #n o!8eto de a e 4 $ a"e Ear$o5 "e pondr1 en mar$7a#na a 76 i$e <#ti i+ando ao imp ementa$i%n e"pe$i,i$ada en am1" $ a"e Ear$o= . E"ta t6$ni$a5 dondeoper

a$i ma po imor,i"mo. one " 3.2.3. N#tas en a Una nota e" #n $omentario dentro "#p de #n dia9rama $#a .#iera. -#ede er$ e"tar re a$ionado $on #no o m1" a"e e emento" en e dia9rama mediante "on ;nea" p#nteada". red e,i Una nota "e repre"enta nid 9r1,i$amente mediante #n a" re$t1n9# o $on "# !orde "#perior en dere$7o do! ado. Sir2e para a repre"entar a$ ara$ione" a "#! dia9rama o re"tri$$ione" "o!re o" $a "e5 e emento" re a$ionado" <$#ando e "e te:to "e en$#entre entre SKT 4 SL=. a E"ta" do"

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

32

CA-/TULO 30 DIAGRAMAS DE CLASES

repre"enta$ione" "e m#e"tran en o" e8emp o" de a Ai9#ra 3.( 4 a Ai9#ra 3.'5 re"pe$ti2amente. 3.2.4. Restricci#"es Una re"tri$$i%n e" #na $ondi$i%n .#e imita e #"o de e emento o a" "em1nti$a" <"i9ni,i$ado= de e emento. Se de$ ara $omo #na $adena en$errada entre SKT 4 SLT 4 "it#ada $er$a de e emento a"o$iado. La" re"tri$$ione" "e p#eden e"$ri!ir $omo #n te:to en ,ormato i!re. -ero "i .#eremo" e"pe$i,i$ar a" "em1nti$a" de ,orma m1" pre$i"a5 enton$e" de!emo" #"ar e en9#a8e OCL <&#'ect Constraint (anguage= de UML. De toda" manera"5 e:i"te #n n@mero de re"tri$$ione" 4a de,inida" en UML .#e "e p#eden #ti i+ar en $#a .#ier dia9rama. 3.2.5. C ases ava"*a%as 6c asi2ica%#res7 La" $ a"e" $on"tit#4en e e emento de $on"tr#$$i%n m1" importante de $#a .#ier "i"tema orientado a o!8eto". Sin em!ar9o5 a" $ a"e" "on #no de o" tipo" de #n ! o.#e de $on"tr#$$i%n m1" 9enera en UML5 o" $ a"i,i$adore". Un $ a"i,i$ador e" #n me$ani"mo .#e de"$ri!e a" $ara$ter;"ti$a" de e"tr#$t#ra 4 de $omportamiento. UML propor$iona #n 9ran n@mero de tipo" de $ a"i,i$adore"5 aparte de a" $ a"e"5 .#e no" p#eden a4#dar a mode ar n#e"tro pro4e$to de m#ndo rea . 1C Inter,a+0 Un $on8#nto de opera$ione" .#e "e #ti i+an para e"pe$i,i$ar #n "er2i$io de #na $ a"e o de #n $omponente. 2C Tipo de dato" <datat)pe=0 Un tipo $#4o" 2a ore" no tienen identidad5 in$ #4endo tipo" primiti2o" <ta e" $omo entero" 4 $adena" de $ara$tere"=5 a"; $omo tipo" en#merado" <ta e" $omo !oo eano"=. 3C SeFa <signal=0 La e"pe$i,i$a$i%n de #n e"t;m# o a";n$rono $om#ni$ado entre in"tan$ia". &C Componente0 Una parte ,;"i$a de #n "i"tema .#e propor$iona a e8e$#$i%n de #n $on8#nto de inter,a$e". 'C Nodo0 Un e emento ,;"i$o en tiempo de e8e$#$i%n5 .#e repre"enta #n re$#r"o de ordenador5 9enera mente $on memoria 4 $apa$idad de pro$e"amiento. (C Ca"o de #"o0 Una de"$rip$i%n de #n $on8#nto de a$$ione"5 in$ #4endo 2ariante"5 .#e #n "i"tema e2a a $a!o tra" re$i!ir #n e"t;m# o por parte de #n a$tor en parti$# ar. UC S#!"i"tema0 Un 9r#po de e emento" de o" $#a e" a 9#no" $on"tit#4en #na e"pe$i,i$a$i%n de $omportamiento o,re$ido por o" otro" e emento" $ontenido" en e mi"mo. Todo" o" $ a"i,i$adore" anteriore" "e repre"entan 9r1,i$amente de di"tinta ,orma5 ta $omo m#e"tra a Ai9#ra 3.U.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o" CA-/TULO 30 DIAGRAMAS DE CLASES

33

$ a"e !e"ta"a tamaFo0Grea $o orHa$t#a

inter,a+

datat4pe Nt4p eO I"t Kran9o de 2a ore" de"de H2RR31H1 7a"ta I2RR31L

I"tDesc#"#ci%a 2i"i!i idad "eFa ?i"#a i+ar<= E"$onder<= N"i9na O Desc# &arTe 92#"# 8a arI!A $a"o de #"o

"#!"i"tema $omponent e :er"e 32. % nodo

Servi%#r;12

N"#!"i"temaO Servici# C ie"te s$<siste'a

Ai9#ra 3.U Un $ a"i,i$ador tiene $ara$ter;"ti$a" de e"tr#$t#ra <en a ,orma de atri!#to"=5 a"; $omo $ara$ter;"ti$a" de $omportamiento <en a ,orma de opera$ione"=. La" inter,a$e" "on a @ni$a e:$ep$i%n5 p#e" no p#eden tener atri!#to". 3.2.!.1. "nterfaces Una inter,a+ de"$ri!e "% o opera$ione" a!"tra$ta"5 .#e e"pe$i,i$an #n $omportamiento .#e #n e emento <pa.#ete5 $omponente o $ a"e= p#ede e e9ir "oportar imp ementando a inter,a+. A di,eren$ia de a" $ a"e"5 a" inter,a$e" no e"pe$i,i$an nin9#na e"tr#$t#ra <por e o no in$ #4en atri!#to"= ni nin9#na imp ementa$i%n <por e o no in$ #4en m6todo"5 o" $#a e" propor$ionan a imp ementa$i%n de #na opera$i%n=. E"ta" opera$ione" a!"tra$ta" p#eden "er adornada" $on propiedade" de 2i"i!i idad 4 $on re"tri$$ione". A i9#a .#e a" $ a"e"5 a" inter,a$e" p#eden parti$ipar en re a$ione" de a"o$ia$i%n5 dependen$ia 4 9enera i+a$i%n. La" inter,a$e" "e repre"entan 9r1,i$amente por medio de #n $;r$# o pe.#eFo $on #n nom!re "it#ado de!a8o de 6 . Se $one$tan a "#" e emento" mediante #na ;nea $ontin#a5 .#e repre"enta #na re a$i%n de a"o$ia$i%n $on m# tip i$idad 1H1. Una $ a"e .#e #"a a inter,a+ imp ementada en #na $ a"e e"pe$;,i$a "e $one$ta a $;r$# o de di$7a inter,a+ mediante #na re a$i%n de dependen$ia < ;nea di"$ontin#a=. La $ a"e dependiente "% o depende de a" opera$ione" de a inter,a+5 no depende de nin9#na de

a" opera$ione" de a $ a"e .#e a imp ementa <en $#4o $a"o5 a re a$i%n de dependen$ia de!er;a ap#ntar a ";m!o o de di$7a $ a"e=. La $ a"e dependiente podr;a amar a a" opera$ione" de$ arada" en a inter,a+5 a" $#a e" no "e m#e"tran dire$tamente en e dia9rama. -ara 2er a" e" ne$e"ario .#e a inter,a+ "ea e"pe$i,i$ada $omo #na $ a"e $on e e"tereotipo $inter az% dentro de re$t1n9# o 4 por en$ima de "# nom!re.

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

3&

CA-/TULO 30 DIAGRAMAS DE CLASES

En e primer e8emp o de a Ai9#ra 3.) a $ a"e -er"ona imp ementa a inter,a+ A ma$ena! e.

Pers#"a A 'ace"a< e

C ase A

A 'ace"a< e E0ec$ta< e

C as e.

Ninter,a+O E0ec$ta< e Ka!"tra$taL


E8e$#tar <= Ka!"tra$taL

Ninte r,a+O A 'ac e"a< e Ka!"tr a$taL Car9ar <= Ka!"tra$taL Sa 2ar <= Ka!"tra$taL

C as eC

E0ec$t a< e

Ai9#ra e Un 3.) pa. e m En e "e9#ndo e8emp o de a #et Ai9#ra 3.) a $ a"e Ae e" e n imp ementa a" inter,a$e"#n t E8e$#ta! e 4 A ma$ena! e 4 ame $ a"e C a inter,a+ E8e$#ta! e.$an o La $ a"e E #"a a" opera$ione"i"m " de a" inter,a$e" E8e$#ta! e 4o A ma$ena! e imp ementada" enpar d A 4 a" de E8e$#ta! ea e imp ementada en C. La"a9r inter,a$e" "on e"pe$i,i$ada"#pa o $omo $ a"e" $on e e"tereotipor t $inter az% 4 $ontienen a"$ a r opera$ione" a!"tra$ta" .#e a" o "e" $ a"e" .#e a" imp ementan # tienen .#e imp ementar. t otr i o" 3.2.!.2. #a$uetes p

o deM#$7a" metodo o9;a" de OO dia9r #"an e t6rmino "#!"i"tema para ama" de"$ri!ir #n pa.#ete. en mod Lo" pa.#ete" o "#!"i"tema" "e e o" repre"entan 9r1,i$amente por m1" medio de #n re$t1n9# o 9rande 9ran 8#nto $on otro m1" pe.#eFo de"5 "it#ado en a e".#ina "#perior dond i+.#ierda de re$t1n9# o ma4or. Si o" $ontenido" de o" e pa.#ete" no "e m#e"tran5 di$7 enton$e" e nom!re de pa.#ete o" de!e ir dentro de re$t1n9# o e em 9randeP en $a"o $ontrario dentro ento de re$t1n9# o pe.#eFo. " p#ed La" re a$ione" permitida" entre en pa.#ete" "on dependen$ia 4 "er 9enera i+a$i%n5 ta $omo "e inVa m#e"tra en a Ai9#ra 3.9. do".

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"

3'

CA-/TULO 30 DIAGRAMAS DE CLASES

S$<siste'a A

S$<siste'a .

S$<siste'a C

S$<siste'a D

S$<siste'a E

Ai9#ra 3.9

Mari Carmen Otero ?ida Dpto. de Len9#a8e" 4 Si"tema" In,orm1ti$o"