Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aprendiendo Uml en 24 Horas
Aprendiendo Uml en 24 Horas
ISBN: 968-444-463-X
Area: Computacidn
Envfo de mensajes
Asociaciones ................................................................................................... .26
Agregaci6n ..... .......................... 28
La recompensa ..................................................................................................... .30
Aprendiendo UML en 24 horas
1 vi
Ejercicios ........................................
HORA 4 US0 DE RELACIONES 45
Asociaciones .............................................................................. .46
Restricciones en las asociaciones ... .......41
Clases de asociacidn ...................................................................................... ..48
Vinculos ......................................... ........ .......48
Multiplicidad ....................................................................................................... .49
Resumen ...........................................................................................
Taller ...............................................................................................
Cuestionarios
., .......................................................................................................
Anotacion .86
Extensi6n ....... .87
.............................................................................. .87
El Panorama .......... .87
Resumen .............................................................................................................. ..88
Preguntas y respuestas .................. .........
................................................................................................ 89
Cuestionario ...........................................................................
................................................
HORA 8 DIAGRAMAS
DE ESTADOS 91
QuC es un diagrama de estados .... .........................................
Simbologia ..................................................................................................... .92
Adici6n de detalles a1 icono de estado ......................
Sucesos y acciones ....................................................
Condiciones de seguridad ................................................................................ 95
................................................ .96
Cuestionarios .
Ejercicios ...................................................................................................... 102
HORA 9 DIAGRAMAS
DE SECUENCIAS 103
QuC es un diagrama de secuencias ....................................
Objetos .............. ....................................................................... 104
Mensaje ...................................................................................
Tiempo ............................................................................................... 105
La GUI .........................................................................................
La secuencia .................... ....................................................................... 106
El diagrama de secuencias .....................................................
El caso de us0 ................ .............................................
Instancias y genCricos ........................................................................................ 108
Un diagrama de secuencias de instancias ............................................... 108
Un diagrama de secuencias genCrico ........ ............................................... 109
Creaci6n de un objeto en la secuencia 112
C6mo representar la recursividad ...................................................................... 114
Contenido IX
HORA 10 DIAGRAMAS
DE COLABORACIONES 119
QuC es un diagrama de colaboraciones ........................ ........................... 120
La GUI .......................... .................................................................. 121
Cambios de estado .................................................... .................. 122
La miquina de gaseosas ............................................................ 122
Creaci6n de un objeto ................................................... .............. 124
Algunos conceptos mis . ........................................................... 125
Varios objetos recepto ........................
Representaci6n de 10s .......................................................... 126
Objetos activos .....................................................
Sincronizacih ....................... ........................................................ 127
Adiciones a1 panorama ...................................................
Resumen ................................ ............................................................. 129
Preguntas y respuestas ................................................................
Taller .................................... ........................................................
Cuestionario ......................................................................
Ejercicios ......................... .......................................................... 130
HORA 11 DIAGRAMAS
DE ACTIVIDADES 133
Objetivos .. ..................................................................
QuC es un diagrama de actividades .....................................
Decisiones, decisiones, decisiones .................................
Rutas concurrentes .............. ................................................................ I35
Indicaciones ...........................................................................
Aplicaci6n de 10s diagramas de actividades .......................
Una operaci6n: Fibs ..............................................................
Proceso de creaci6n de un documento ....................................... 138
Marcos de responsabilidad ........................................................
Diagramas hibridos ................ ........................................................ 142
Adiciones a1 panorama ............................................................
Resumen ............................................. ................................................... 145
Preguntas y respuestas ........................................................
Taller ................................................... ............................................... 146
Cuestionario ........................................................ 146
Ejercicios ........................................ .................................. 147
X Aprendiendo UML en 24 horas
HORA12 DIAGRAMAS
DE COMPONENTES 149
QuC es un componente ...................... ........................................................... 150
Componentes e interfaces .................................................... .I50
Sustitucidn y reutilizacidn ........................................................................... .15 1
Tipos de componentes ................................................
QuC es un diagrama de componentes .......................................................... 152
Representacidn de un componente ....................
Cdmo representar las interfaces ....
Aplicacidn de 10s diagramas de componentes ...........
Una pigina Web con un subprograma Java ......
Una pagina Web con controles ActiveX ............
.................................................................... 157
norama ............
....................................................................... 159
Preguntas y respuestas ................................................
Taller ........................ ..................................................................... 160
Cuestionario ....................................................... ......................... 160
Ejercicios ........... ........................................................................ 160
Restricciones ....
HORA 19 DESARROLLO
DE LOS CASOS DE us0 267
Cuidado y provisidn de 10s casos de us0 .................... ............................ 268
El analisis de 10s casos de us0 ...........................
El paquete Mesero .................................................. ........................... ,269
Tomar una orden ...............................
Transmitir la orden a la cocina ................... ............................ 271
Cambiar una orden . .........................................
Sondeo del progreso ............................ 273
Notificar a1 chef del progreso de 10s clientes en sus alimentos .................... 273
Totalizar una cuenta ..................... ........................... .275
Imprimir una Cuenta ................... ................................................... 275
Llamar a un Asistente ................... .................................................. ,276
Casos de us0 restantes .................
Componentes del sistema .................
Resumen ............................................................................................................. .278
Preguntas y respuestas .................... ............................ 278
Taller .................................................................................................................. 279
........ ......... ........... 279
...................................................................................... ,279
HORA 20 ORlENTACldN A LAS INTERACCIONES Y CAMBIOS DE ESTADO 281
Las partes funcionales del sistema ................
El paquete Mesero ........................................................................................ 282
.................
............................ 283
El paquete Asistente Mesero
El paquete Asistente Chef ............................................................................ 283
El paquete Cantinero .......... 284
El paquete Encargado Del Guardarropa ........................................................ 284
Colaboracidn en el sistema
Tomar una orden .....
Cambiar una orden .
Sondeo del progreso .................................................................. 289
Implicaciones ...............
Resumen ............................................................................................................. .29 1
Preguntas y respuestas .
Taller ................................................................................................................. .292
Cuestionario ...........
. .
Ejercicios ..................................................................................................... ,292
I xiv Aprendiendo UML en 24 horas
Ejercicios ..................
HORA22 N O C I ~DE
N LOS PATRONES DE DISENO 309
Parametrizacih ......... .................................................................................... 310
Patrones de diseiio .................................... ................ ...... 312
Cadena de responsabilidad ................................................................................ 313
Cadena de responsabilidad: dominio Restaurante .......... ...314
Cadena de responsabilidad: Modelos de eventos de 10s exploradores Web 3 15
Nuestros propios patrones de diseiio ........
Ventajas de 10s patrones de diseiio .................................................................... 319
Resumen ....................................................
Preguntas y respuestas ..............................
Taller ...........................................................
Cuestionario .................................................................................... 320
Ejercicios ...................................................................................................... 320
B HERRAMIENTAS
AP~NDICE DE MODELADO PARA EL UML 369
AP~NDICE
C UN RESUMEN GRAFICO 377
Diagrama de actividades ................................. ........................... 378
Diagrama de clases ..... .................................................. 380
Diagrama de colaboraciones ........................... ............................... 382
Diagrama de component ......................................................... 382
Diagrama de distribuci6n ............................. ...................................... 383
Diagrama de secuencias .......................................................
Diagrama de estados .......................... ................................................ 384
Diagrama de casos de us0 .............................................................
~NDICE 387
Acerca del autor
Joseph Schmuller es vicepresidente de la divisidn de Consumer Finance Technologies
del Bank of America. De 1991 a 1997 fue editor en jefe de la revista PC AI. Ha escrito
diversos articulos y reseiias de tecnologias avanzadas de computacidn y es autor de
ActiveX No experience required y Dynamic HTML Muster the Essentials. Tiene un
doctorado de la Universidad de Wisconsin, y es profesor adjunto en la Universidad del
Norte de Florida.
Dedicato ria
A mi maravillosa madre, Sara Riba Schmuller;
quien me enseiid a aprender por mi' mismo.
Reconocimientos
Escribir un libro es un proceso arduo; per0 por fortuna, el equipo de Macmillan
Computer Publishing lo ha hecho m8s f8cil. Es un placer reconocer sus contribuciones.
Tanto el editor de adquisiciones, Chris Webb, como el de Desarrollo, Matt Purcell, me
ayudaron a convertir mis pensamientos en algo legible; por encima de su gran experien-
cia editorial, les agradezco sus alicientes, paciencia y apoyo. Los revisores tkcnicos, Bill
Rowe y Michael Tobler se aseguraron de que el contenido fuera tkcnicamente correct0
y se 10s agradezco. La editora, Susan Moore, 10s destacados artistas de Macmillan y el
personal de producci6n convirtieron el manuscrito y sus diversos diagramas en el libro
que ahora esti leyendo.
David Fugate de Waterside Productions conjug6 todo el proceso. Le agradezco haberme
hecho coincidir con Macmillan y haberme colocado en otro proyecto muy retribuyente.
Tengo el privilegio de trabajar todos 10s dias con un grupo de excelentes profesionales
en la divisi6n de Consumer Finance Technologies del Bank of America (especificamente,
como miembro del grupo de Objetos y componentes reutilizables). Mi agradecimiento
a mis colegas por su apoyo y cooperacibn. En particular, las conversaciones con Keith
Barret y Rob Warner me ayudaron a clarificar mis ideas sobre diversos puntos. Por des-
gracia Tom Williamson, nuestro Director de divisidn, falleci6 mientras escribia este libro.
El era el corazdn y el alma de CFT, y fue un asesor, tutor, colega y amigo.
Agradezco a mis queridos amigos, 10s Spragues de Madison, Wisconsin, en cuyo vecinda-
rio estaba de casualidad cuando empeck a escribir este libro y, nuevamente, a1 terminarlo.
Agradezco a mi madre y a mi hermano David por su amor y por siempre estar cerca de
mi, y a Kathryn por ser, por siempre, todo para mi.
1
I
Pearson Educacion Latinoamerica
El personal de Pearson Educacidn LatinoamCrica esth cornprometido en presentarle lo
I mejor en material de consulta sobre computaci6n. Cada libro de Pearson Educaci6n '
LatinoamCrica es el resultado de meses de trabajo de nuestro personal, que investiga y
refina la informacidn que se ofrece.
Como parte de este compromiso con usted, el lector de Pearson Educacidn
LatinoamCrica lo invita a dar su opinidn. Por favor hhganos saber si disfruta este libro, si
tiene alguna dificultad con la informacidn y 10s ejemplos que se presentan, o si tiene
alguna sugerencia para la prdxima edicidn.
Sin embargo, recuerde que el personal de Pearson Educaci6n LatinoamCrica no puede
actuar como soporte tCcnico o ni responder preguntas acerca de problemas relacionados
con el software o el hardware.
Si usted tiene alguna pregunta o comentario acerca de cualquier libro de Pearson
Educacidn LatinoamCrica, existen muchas formas de entrar en contacto con nosotros.
Responderemos a todos 10s lectores que podamos. Su nombre, direccidn y numero tele-
fdnico jamas formarhn parte de ninguna lista de correos ni seran usados para otro fin,
mas que el de ayudarnos a seguirle llevando 10s mejores libros posibles. Puede
escribirnos a la siguiente direccidn:
Pearson Educacidn LatinoamCrica
Attn: Editorial Divisidn Computacidn
Calle Cuatro No. 25, 2" Piso,
Col. Fracc. Alce Blanco
Naucalpan de Juirez, Edo. de Mexico.
1
C.P. 53370
Si lo prefiere, puede mandar un fax a Pearson Educacidn LatinoamCrica a1
(525) 5387-0811.
TambiCn puede ponerse en contacto con Pearson Educaci6n LatinoamCrica a travCs de
nuestraphgina Web: http://www.pearson.com.mx
lntroduccion
Todo gira en torno de una visibn. Un sistema complejo toma forma cuando alguien tiene
la visidn de cbmo la tecnologia puede mejorar las cosas. Los desarrolladores tienen que
entender completamente la idea y mantenerla en mente mientras crean el sistema que le
dC foma.
El Cxito de 10s proyectos de desarrollo de aplicaciones o sistemas se debe a que sirven
como enlace entre quien tiene la idea y el desarrollador. El UML (Lenguaje Unificado de
Modelado) es una herramienta que cumple con esta funcibn, ya que le ayuda a capturar
la idea de un sistema para comunicarla posteriormente a quien estC involucrado en su
proceso de desarrollo; esto se lleva a cab0 mediante un conjunto de simbolos y diagra-
mas. Cada diagrama tiene fines distintos dentro del proceso de desarrollo.
El objetivo de este libro es darle, en 24 horas de estudio, las bases sobre el UML. Cada
hora le presentara ejemplos para mejorar la comprensidn e incluiri ejercicios que le per-
mitiran practicar sus reciCn adquiridos conocimientos.
Dividi este libro en tres partes: la primera parte le da un panorama del UML y le explica
la orientacibn a objetos, misma que conforma 10s conceptos fundamentales de la diagra-
macidn de objetos y clases. Examinaremos 10s casos de us0 (una estructura para mostrar
la forma en que un sistema lucirii ante el usuario, para luego mostrar cdmo hacer dia-
gramas de esta estructura). Las horas restantes de la primera parte le permitiran trabajar
con el resto de 10s diagramas UML.
La segunda parte le muestra una metodologia simplificada para el desarrollo, enriquecida
con el estudio de un caso ficticio. Asi, las horas de la segunda parte le mostraran la
forma en que el UML se adapta a1 context0 de un proyecto de desarrollo. Vera la forma
en que 10s elementos del UML funcionan en conjunto para modelar un sistema.
Por ultimo, en la tercera parte aplicaremos el UML para diseiiar patrones y sistemas
incrustados, y examinaremos su camp0 de aplicacidn en dos keas mas.
Existen diversos fabricantes que cuentan con paquetes que le permitiran generar diagra-
mas UML y coordinarlos en un modelo. Los mas notables son Rational Rose y SELECT
Enterprise, aunque cabe mencionar que Visual UML es otro digno contendiente.
!
Microsoft esta autorizado para utilizar la tecnologia de Rational y asi comercializa Visual
I Modeler, un subconjunto de Rational Rose. No obstante, en este libro todo lo que necesi-
tarti sera un lapiz y papel para dibujar 10s diagramas y una sana curiosidad respecto a1
estado actual del diseiio de sistemas.
iIniciemos !
t
Aprendiendo UML en 24 horas
12
El consorcio aumentd y gener6 la versi6n 1.1, misma que se pus0 nuevamente a consi-
deraci6n del OMG. El grupo adopt6 esta versi6n a finales de 1997. El OMG se encargo de
la conservacidn del UML y produjo otras dos revisiones en 1998. El UML ha llegado a
ser el estandar de facto en la industria del software, y su evoluci6n continh
Diagrama de clases
Piense en las cosas que le rodean (una idea demasiado amplia, per0 iintkntelo de
cualquier forma!). Es probable que muchas de esas cosas tengan atributos (propiedades)
y que realicen determinadas acciones. Podriamos imaginar cada una de esas acciones
como un conjunto de tareas.
TambiCn se encontrara con que las cosas naturalmente se albergan en cate-
gorias (autom6viles, mobiliario, lavadoras ...). A tales categorias las llamare-
mos clases. Una clase es una categoria o grupo de cosas que tienen atributos y acciones
similares. He aqui un ejemplo: cualquier cosa dentro de la clase Lavadoras tiene atribu-
tos como son la marca, el modelo, el nlimero de serie y la capacidad. Entre las acciones
lntroduccion al UML 91
de las cosas de esta clase se encuentran: “agregar ropa”, “agregar detergente”, “activarse”
y “sacar ropa”.
La figura 1.1 le muestra un ejemplo de la notacidn del UML que captura 10s atributos y
acciones de una lavadora. Un rectingulo es el simbolo que representa a la clase, y se
divide en tres Areas. El Area superior contiene el nombre, el Area central contiene 10s
atributos, y el Area inferior las acciones. Un diagrama de clases esti formado por varios
rectingulos de este tipo conectados por lineas que muestran la manera en que las clases
se relacionan entre si.
FIGURA 1.1
El sirnbolo UML rnarca
de una clase. modelo
numero de serie
capacidad
agregar ropa()
agregar detergente()
sacar ropa()
iQuC objetivo tiene pensar en las clases, asi como sus atributos y acciones? Para interac-
tuar con nuestro complejo mundo, la mayoria del software modern0 simula algdn aspecto
del mundo. DCcadas de experiencia sugieren que es m8s sencillo desarrollar aplicaciones
que simulen algun aspecto del mundo cuando el software representa clases de cosas
reales. Los diagramas de clases facilitan las representaciones a partir de las cuales 10s
desarrolladores podrin trabajar.
A su vez, 10s diagramas de clases colaboran en lo referente a1 anilisis. Permiten a1
analista hablarle a 10s clientes en su propia terminologia, lo cual hace posible que 10s
clientes indiquen importantes detalles de 10s problemas que requieren ser resueltos.
Diagrama de objetos
Un objeto es una instancia de clase (una entidad que tiene valores especifi-
cos de 10s atributos y acciones). Su lavadora, por ejemplo, podria tener la
marca Laundatorium, el modelo Washmeister, el nlimero de serie GL57774 y una
capacidad de 7 Kg.
La figura 1.2 le muestra la forma en que el UML representa a un objeto. Vea que el sim-
bolo es un rectingulo, como en una clase, per0 el nombre esti subrayado. El nombre de
la instancia especifica se encuentra a la izquierda de 10s dos puntos (:), y el nombre de la
clase a la derecha.
I 10 Hora 1
FIGURA 1.2
El simbolo UML del
objeto.
FIGURA1.3
Diagranza de casos
de us0 UML.
K-
Usuario de la lavadora
Lavar ropa
Diagrama de estados
En cualquier momento, un objeto se encuentra en un estado en particular. Una persona
puede ser reciCn nacida, infante, adolescente, joven o adulta. Un elevador se moveri
hacia arriba, estar6 en estado de reposo o se mover6 hacia abajo. Una lavadora podri
estar en la fase de remojo, lavado, enjuague, centrifugado o apagada.
El diagrama de estados UML, que aparece en la figura 1.4, captura esta pequefia reali-
dad. La figura muestra las transiciones de la lavadora de un estado a1 otro.
El simbolo que esti en la parte superior de la figura representa el estado inicial y el de la
parte inferior el estado final.
lntroduccion at UML 11 1
FIGURA 1.4 t
Diagrarna de estados
UML.
Lavado
Q
Diagrama de secuencias
Los diagramas de clases y 10s de objeto representan informaci6n esthtica. No obstante,
en un sistema funcional 10s objetos interactfian entre si, y tales interacciones suceden
con el tiempo. El diagrama de secuencias UML muestra la mecinica de la interacci6n con
base en tiempos.
Continuando con el ejemplo de la lavadora, entre 10s componentes de la lavadora
se encuentran: una manguera de agua (para obtener agua fresca), un tambor (donde se
coloca la ropa) y un sistema de drenaje. Por supuesto, estos tambiCn son objetos (como
veri, un objeto puede estar conformado por otros objetos).
iQuC sucederh cuando invoque a1 caso de us0 Lavar ropa? Si damos por hecho que com-
plet6 las operaciones “agregar ropa”, “agregar detergente” y “activar”, la secuencia seria
mis o menos asi:
1. El agua empezari a llenar el tambor mediante una manguera.
2. El tambor permaneceri inactivo durante cinco minutos.
3. La manguera dejari de abastecer agua.
4. El tambor girari de un lado a otro durante quince minutos.
5. El agua jabonosa saldrh por el drenaje.
6. Comenzarh nuevamente el abastecimiento de agua.
7. El tambor continuari girando.
I12 Hora 1
FIGURA1.5 Drenaje
Diagrama de
secuencias UML.
- Reabastecer de agua
Detenerse
Por cierto, volviendo a las ideas acerca de 10s estados, podriamos caracterizar 10s pasos 1
y 2 como el estado de remojo, 3 y 4 como el estado de lavado, 5 a 7 como el estado de
enjuague y de18 a1 10 como el estado de centrifugado.
Diagrama de actividades
Las actividades que ocurren dentro de un caso de us0 o dentro del comportamiento de un
objeto se dan, normalmente, en secuencia, como en 10s once pasos de la secci6n anterior.
La figura 1.6 muestra la forma en que el diagrama de actividades UML representa 10s
pasos de14 a1 6 de tal secuencia.
lntroduccion al UML 13 I
FIGURA 1.6
Girar el tambor de un lado a otro 15 rninutos
Diagrama de
actividades UML. I.
Vaciar el agua jabonosa 3
Reiniciar el abastecimientode agua
Diagrama de colaboraciones
Los elementos de un sistema trabajan en conjunto para cumplir con 10s objetivos del sis-
tema, y un lenguaje de modelado deberfi contar con una forma de representar esto. El
diagrama de colaboraciones UML, diseiiado con este fin, se muestra en la figura 1.7.
Este ejemplo agrega un cron6metro interno a1 conjunto de clases que constituyen a una
lavadora. Luego de cierto tiempo, el cron6metro detendri el flujo de agua y el tambor
comenzari a girar de un lado a otro.
FIGURA 1.7
Cronometro interno
Diagrama de
colaboraciones UML.
2: Girar de un lado a otm Manguera de agua
r -T
Diagrama de componentes
Este diagrama y el siguiente dejarfin el mundo de las lavadoras, dado que estin intima-
mente ligados con 10s sistemas informfiticos.
El modern0 desarrollo de software se realiza mediante componentes, lo que es particular-
mente importante en 10s procesos de desarrollo en equipo. Sin extenderme mucho en este
punto le mostrare, en la figura 1.8, la manera en que el UML representa un componente
de software.
Diagrama de distribucion
El diagrama de distribuci6n UML muestra la arquitectura fisica de un sistema infor-
mhtico. Puede representar 10s equipos y dispositivos, mostrar sus interconexiones y el
software que se encontrari en cada miquina. Cada computadora esti representada por un
cub0 y las interacciones entre las computadoras esthn representadas por lineas que
conectan a 10s cubos. La figura 1.9 presenta un ejemplo.
FIGURA1.9
"Procesador"
Diagrarna de
Pequefio servidor Qube 2700WG
distribucidn UML. de Cobalt Networks
Otras caracteristicas
Anteriormente, mencionC que el UML proporciona caracten'sticas que le permiten orga-
nizar y extender 10s diagramas.
Paquetes
En algunas ocasiones se encontrari con la necesidad de organizar 10s elemen-
tos de un diagrama en un grupo. Tal vez quiera mostrar que ciertas clases o
componentes son parte de un subsistema en particular. Para ello, 10s agruparii en un
paquete, que se representarh por una carpeta tabular, como se muestra en la figura 1.10.
FIGURA1.I0 1
El paquete UML le Paquete 1
permite agrupar 10s
elementos de un
diagrama. 0Clase 1
lntroduccion al UML 15 I
Notas
Es frecuente que alguna parte del diagrama no presente una Clara explicaci6n
del porquC esti alli o la manera en que trabaja. Cuando Cste sea el caso, la
nota UML sera titil. Imagine a una nota como el equivalente gr6fko de un papel adhe-
sivo. La nota es un recthngulo con una esquina doblada, y dentro del rectbgulo se
coloca la explicaci6n. Usted adjunta la nota a1 elemento del diagrama conecthdolos
mediante una linea discontinua.
FIGURA 1.11
En cualquier respecto a la Clase 1
I I
diagrama, podra
0
agregar comentarios
aclaratorios mediante
Clase 1
una nota.
Estereotipos
El UML otorga varios elementos de utilidad, pero no es un conjunto minu-
cioso de ellos. De vez en cuando diseiiari un sistema que requiera algunos
elementos hechos a la medida. Los estereotipos o clisCs le permiten tomar elementos
propios del UML y convertirlos en otros. Es como comprar un traje del mostrador y
modificarlo para que se ajuste a sus medidas (contrario a confeccionarse uno completa-
mente nuevo). Imagine a un estereotipo como este tip0 de alteraci6n. Lo representari
como un nombre entre dos pares de parkntesis angulares y despuCs 10s aplicari correcta-
mente.
El concept0 de una interfaz provee un buen ejemplo. Una interfaz es una
clase que realiza operaciones y que no tiene atributos, es un conjunto de
acciones que tal vez quiera utilizar una y otra vez en su modelo. En lugar de inventar
un nuevo elemento para representar una interfaz, podri utilizar el simbolo de una clase
con dnterfazv situada justo sobre el nombre de la clase, como se muestra en la figura
1.12.
FIGURA 1.12
Un estereotipo le
n
pemzite crear nuevos
elementos a partir de
otros existentes. U
116 Hora 1
Resumen
El desarrollo de sistemas es una actividad humana. Sin un sistema de notacidn fAcil de
comprender, el proceso de desarrollo tiene una gran cantidad de errores.
El UML es un sistema de notacidn que se ha convertido en esthndar en el mundo del
desarrollo de sistemas. Es el resultado del trabajo hecho por Grady Booch, James
Rumbaugh e Ivar Jacobson. El UML esth constituido por un conjunto de diagramas, y
proporciona un esthndar que permite a1 analista de sistemas generar un anteproyecto de
varias facetas que Sean comprensibles para 10s clientes, desarrolladores y todos aquellos
que e s t h involucrados en el proceso de desarrollo. Es necesario contar con todos esos
diagramas dado que cada uno se dirige a cada tipo de persona implicada en el sistema.
Un modelo UML indica que‘ es lo que supuestamente harh el sistema, mas no cbmo lo
has&
Preguntas y respuestas
P He visto que se refiere a1 Lenguaje Unificado de Modelado como “UML” y
como “el UML”. LCuhl es el correcto?
R Los creadores del lenguaje prefieren el us0 de “el UML”.
P Ha indicado que el UML es adecuado para 10s analistas. No obstante, el
diagrama de distribucibn no parece ser algo muy 6til en la fase de anidisis
en el desarrollo de un sistema. iNo seria m b apropiado para una fase
posterior?
lntroduccion al UML 17 I
Cuestionario
1. iPorquC es necesario contar con diversos diagramas en el modelo de un sistema?
2. iCuiles diagramas le dan una perspectiva estitica de un sistema?
3. iCu6les diagramas le dan una perspectiva d i n h i c a de un sistema (esto es, mues-
tran el cambio progresivo)?
Ejercicios
1. Suponga que creari un sistema informitico que jugari ajedrez con un usuario.
iCuiles diagramas UML serian M e s para diseiiar el sistema? iPor quC?
2. Para el sistema del ejercicio que ha completado, liste las preguntas que formulm’a
a un usuario potencial y por quC las hm’a.
3RA 2
Orlientacion
3bjetos
E!5 fundamental que comprenda todo lo relacionado a la orientaci6n a
otIjetos para el proceso que realizark especificamente, es importante que
ccmozca algunos conceptos sobre la orientaci6n a objetos.
EIn esta hora se tratarin 10s siguientes temas:
Abstracci6n
Herencia
Polimorfismo
Encapsulamiento o encapsulaci6n
Envio de mensajes
Asociaciones
Agregacih
Lia orientacidn a objetos ha tomado por asalto y en forma legitima a1 mundo
dc:1 software. Como medio para la generaci6n de programas, tiene varias ven-
ta.jas. Fomenta una metodologia basada en componentes para el desarrollo
Hora 2
FIGURA2.1 Lavadora
La clase Lavadora
marca
(modelo original) modelo
es una plantilla numeroserie
para generar capacidad
nuevas instancias
agregarRopa0
de Lavadoras. agregarDetergente0
sacarRopa()
FIGURA2.2 Lavadora
La adicidn de
rnarca
atributos y acciones rnodelo
a1 modelo lo acerca numeroserie
a la realidad. capacidad
volurnenTarnbor
cronometrolnterno
trarnpa
motor
velocidadMotor
agregarRopa()
agregarDetergente0
sacarRropa()
agregarBlanqueador0
cronometrarRernojo()
cronornetrarLavado()
cronornetrarEnjuague()
cronometrarCentrifugado()
Algunos conceptos
La orientacidn a objetos se refiere a algo mhs que tan s610 atributos y acciones; tambiCn
considera otros aspectos. Dichos aspectos se conocen como abstruccibn, herenciu,
polirnorJisrno y encapsulamiento o encapsulacio'n. Otros aspectos importantes de la
orientacidn a objetos son: el envio de mensajes, las asociaciones y la agregacibn.
Examinemos cada uno de estos conceptos.
A bst raccion
La abstraccidn se refiere a quitar las propiedades y acciones de un objeto
para dejar s610 aquellas que Sean necesarias. iQuC significa esto liltimo?
Diferentes tipos de problemas requieren distintas cantidades de informacidn, aun si estos
problemas pertenecen a un k e a en comlin. En la segunda fase de la creacidn de la clase
Lavadora, se podrian agregar mhs atributos y acciones que en la primera fase. LVale la
pena?
Valdria la pena si usted pertenece a1 equipo de desarrollo que generarh finalmente la
aplicacidn que simule con exactitud lo que hace una lavadora. Un programa de este tip0
(que podria ser muy litil para 10s ingenieros de diseiio que actualmente estCn trabajando
en el diseiio de una lavadora) deberh ser tan cornpleto que permita obtener predicciones
exactas respecto a lo que ocurriria cuando se fabrique la lavadora, funcione a toda su
capacidad y lave la ropa. De hecho, para este caso podrh quitar el atributo del ndmero de
serie, dado que posiblemente no sera de mucha ayuda.
Por otra parte, si va a generar un software que haga un seguimiento de las transacciones
en una lavanderia que cuente con diversas lavadoras, posiblemente no valdrh la pena.
En este programa no necesitarh todos 10s atributos detallados y operaciones del p h a f o
anterior, no obstante, quizh necesite incluir el nlimero de serie de cada objeto Lavadora.
Orientacion a objetos 23 I
En cualquier caso, con lo que se quedari luego de tomar su decisi6n respecto a lo que
incluiri o desechari, sera una abstracci6n de una lavadora.
Herencia
Como ya se mencion6 anteriormente, una clase es una categoria de objetos
(y en el mundo del software, una plantilla sirve para crear otros objetos). Un
objeto es una instancia de una clase. Esta idea tiene una consecuencia importante: como
instancia de una clase, un objeto tiene todas las caracten'sticas de la clase de la que pro-
viene. A esto se le conoce como herenciu. No importa quk atributos y acciones decida
usar de la clase Lavadora, cada objeto de la clase heredari dichos atributos y operaciones.
Un objeto no s610 hereda de una clase, sino que una clase tambikn puede heredar de otra.
Las lavadoras, refrigeradores, homos de microondas, tostadores, lavaplatos, radios,
licuadoras y planchas son clases y forman parte de una clase mis genirica llamada:
Electrodomesticos. Un electrodomkstico cuenta con 10s atributos de interruptor y cable
elkctrico, y las operaciones de encendido y apagado. Cada una de las clases Electrodo-
mestico heredari 10s mismos atributos; por ello, si sabe que algo es un electrodomistico,
de inmediato sabri que cuenta con 10s atributos y acciones de la clase Electrodomestico.
Otra forma de explicarlo es que la lavadora, refrigerador, homo de microon-
das y cosas por el estilo son subcluses de la clase Electrodomestico. Podemos
decir que la clase Electrodomestico es una superclase de todas las demis. La figura 2.3
le muestra la relacidn de superclase y subclase.
*
FIGIJRA 2.3
Los electrodom6sticos Electrodomestico
heredan 10s atributos
y acciones de la clase
Electrodomestico.
Cada electrodomkstico
es una subclase de
la clase Electro-
domestico. La clase
Electrodomestico es
una superclase de
cada subclase.
I24 Hora 2
La herencia no tiene por quC terminar aqui. Por ejemplo, Electrodomestico es una sub-
clase de Articulos del hogar, como le muestra la figura 2.4. Otra de las subclases de
Articulos del hogar podria ser Mobiliario, que tendri sus propias subclases.
FIGUM 2.4
Las superclases Articulos del hogar
tambih pueden ser
Electrodomestico Mobiliario
Polimorfism0
En ocasiones una operacidn tiene el mismo nombre en diferentes clases. Por
ejemplo, podri abrir una puerta, una ventana, un peribdico, un regalo o una
cuenta de banco, en cada uno de estos casos, realizari una operacidn diferente. En la
orientacidn a objetos, cada clase “sabe” cdmo realizar tal operacidn. Esto es el polimor-
fismo (vea la figura 2.5).
FIGURA2.5 .
En el polimo@smo,
una operacidn puede
tener el mismo nombre
en diversas clases,
y funcionar distinto
en cada una.
En primera instancia, pareceria que este concept0 es mis importante para 10s desarrolla-
dores de software que para 10s modeladores, ya que 10s desarrolladores tienen que crear el
software que implemente tales mCtodos en 10s programas de computacidn, y deben estar
conscientes de diferencias importantes entre las operaciones que pudieran tener el mismo
nombre. Y podrin generar clases de software que “sepan” lo que se supone que harhn.
No obstante, el polimorfismo tambiCn es importante para 10s modeladores ya que les
permite hablar con el cliente (quien est5 familiarizado con la secci6n del mundo que seri
modelada) en las propias palabras y terminologia del cliente. En ocasiones, las palabras
y terminologia del cliente nos conducen a palabras de accidn (como “abrir”) que pueden
Orientacion a objetos 25 I
Encapsulamiento
En cierto comercial televisivo, dos personas discuten acerca de todo el dinero que ahorra-
rian si marcaran un prefijo telefbnico en particular antes de hacer una llamada de larga
distancia.
Uno de ellos pregunta con incredulidad: “LC6mo funciona?’
Y el otro responde: “LC6mo hacen que las rosetas de maiz estallen? LAquitn le importa?”
La esencia del encapsulamiento (0encapsulaci6n) es que cuando un objeto trae
consigo su funcionalidad, esta Gltima se oculta (vea la figura 2.6). Por lo gene-
ral, la mayoria de la gente que ve la televisi6n no sabe o no se preocupa de la compleji-
dad electr6nica que hay detrfis de la pantalla ni de todas las operaciones que tienen que
ocurrir para mostrar una imagen en la pantalla. La televisi6n hace lo que tiene que hacer
sin mostrarnos el proceso necesario para ello y, por suerte, la mayoria de 10s electrodomCs-
ticos funcionan asi.
FIGIJRA 2.6
La television oculta
LO5 objetos encapsu- sus operaekmes
lan ,lo que hacen; es de la persona
que la ve.
deci < ocultan la fun-
cionialidad interna de
sus ,operaciones,
de oitros obietos
Y de
En el mundo real, tambiCn verfi la importancia del encapsulamiento en 10s objetos con
10s que trabaje. Por ejemplo, el monitor de su computadora, en cierto sentido, oculta sus
operaciones de la CPU, es decir, si algo falla en su monitor, lo repararfi o lo reemplazarfi;
pero es muy probable que no tenga que reparar o reemplazar la CPU a1 mismo tiempo
que el monitor.
Ya que estamos en el tema, existe un concept0 relacionado. Un objeto oculta
lo que hace a otros objetos y a1 mundo exterior, por lo cual a1 encapsula-
miento tambiCn se le conoce como ocultamiento de la informacidn. Per0 un objeto
tiene que presentar un “rostro” a1 mundo exterior para poder iniciar sus operaciones.
Por ejemplo, la televisidn tiene diversos botones y perillas en si misma o en el control
remoto. Una lavadora tiene diversas perillas que le permiten establecer 10s niveles de
temperatura y agua. Los botones y perillas de la televisidn y de la lavadora se conocen
como integaces.
Envio de mensajes
MencionC que en un sistema 10s objetos trabajan en conjunto. Esto se logra mediante
el envio de mensajes entre ellos. Un objeto envia a otro un mensaje para realizar una
operacih, y el objeto receptor ejecutarfi la operaci6n.
Una televisidn y su control remoto pueden ser un ejemplo muy intuitivo del mundo
que nos rodea. Cuando desea ver un programa de televisidn, busca el control remoto,
se sienta en su silla favorita y presiona el b o t h de encendido. iQuC ocurre? El control
remoto le envia, literalmente, un mensaje a1 televisor para que se encienda. El televisor
recibe el mensaje, lo identifica como una peticidn para encenderse y asi lo hace. Cuando
desea ver otro canal, presiona el b o t h correspondiente del control remoto, mismo que
envia otro mensaje a la televisidn (cambiar de canal). El control remoto tambiCn puede
comunicar otros mensajes como ajustar el volumen, silenciar y activar 10s subtitulos.
Volvamos a las interfaces. Muchas de las cosas que hace mediante el control remoto,
tambiCn las podrfi hacer si se levanta de la silla, va a la televisidn y presiona 10s botones
correspondientes (ialguna vez lo habrfi hecho ya!). La interfaz que la televisidn le pre-
senta (el conjunto de botones y perillas) no es, obviamente, la misma que le muestra a1
control remoto (un receptor de rayos infrarrojos). La figura 2.7 le muestra esto.
Asociaciones
Otro acontecimiento coml[ln es que 10s objetos se relacionan entre si de alguna forma.
Por ejemplo, cuando enciende su televisor, en tCnninos de orientacidn a objetos, usted se
asocia con su televisor.
La asociaci6n “encendido” es en una sola direccidn (una via), esto es, usted enciende la
televisidn, como se ve en la figura 2.8. No obstante, a menos que vea demasiada tele-
visidn, ella no le devolver6 el favor. Hay otras asociaciones que son en dos direcciones,
como “casamiento”.
Orientacidn a objetos 27 1
FIG^IRA 2.7
Ejennplo de un mensaje
enviado de un objeto
a ot ro: el objeto
“COIttrol remoto ”
envia un mensaje a1
objc’to “televisidn”
p a nz encenderse.
El olbjeto “televisidn”
recibe el mensaje
mea!ante su interfaz,
un raceptor infrarrojo.
FIGURA 2.8
Corzfrecuencia 10s
a
obj,etos se relacionan
ent,re sf de alguna
fonna. Cuando usted Encender
P
enc,iende su televisidn,
ten,drd una asociacidn
en una sola direccidn
cori ella.
En ocasiones, un objeto podn’a asociarse con otro en mAs de una forma. Si usted y su
colaborador son amigos, ello servir5 de ejemplo. Usted tendria una asociacidn “es amigo
de”, asi como “es colaborador de”, como se aprecia en la figura 2.9.
FICium 2.9
En ocasiones, 10s
ob,ietos pueden
as1xiarse en ma’s
de una fomuz.
Tom Bill
I 28 Hora 2
Una clase se puede asociar con mhs de una clase distinta. Una persona puede viajar en
autombvil, per0 tambikn puede hacerlo en autobds (vea la figura 2.10).
FIGURA2.10
Una clase puede
asociarse con mds
de una clase distinta.
Agregacion
Vea su computadora: cuenta con un gabinete, un teclado, un rat6n, un monitor, una
unidad de CD-ROM, uno o varios discos duros, un m6dem, una unidad de disquete, una
impresora y, posiblemente, bocinas. Dentro del gabinete, junto con las citadas unidades
de disco, tiene una CPU, una tarjeta de video, una de sonido y otros elementos sin 10s
que, sin duda, dificilmente podria vivir.
Su computadora es una agregacidn o adicibn, otro tip0 de asociaci6n entre
objetos. Como muchas otras cosas que valdrian la pena tener, su equipo esth
constituido de diversos tipos de componentes (vea la figura 2.1 1). Tal vez conozca varios
ejemplos de agregaciones.
Orientacion a objetos 29 I
FIGURA 2.1 1
Una computadora
es un ejemplo de
agregacidn: un objeto
que se conforma de
una combinacibn
de diversos tipos de
objetos.
FIGURA2.12
En una composicidn,
un componente puede
morir antes que el
objeto compuesto.
Si destruye a1 objeto
compuesto, destruira'
tambiin a 10s
componentes.
La recompensa
Los objetos y sus asociaciones conforman la columna vertebral de la funcionalidad
de 10s sistemas. Para modelarlos, necesitara comprender lo que son las asociaciones.
Si esti consciente de 10s posibles tipos de asociaciones, tendra una amplia gama de
posibilidades cuando hable con 10s clientes respecto a sus necesidades, obtendri sus
requerimientos y creari 10s modelos de 10s sistemas que 10s ayudarin a cumplir con
sus retos de negocios.
Lo importante es utilizar 10s conceptos de la orientaci6n a objetos para ayu-
darle a comprender el Area de conocimiento de su cliente (su dorninio), y
esclarecer sus puntos de vista a1 cliente en tkrminos que 61 o ella puedan comprender.
Es alli donde se aplica el UML. En las siguientes tres horas, aprenderfi a aplicar el UML
para visualizar 10s conceptos que ha aprendido durante esta hora.
Resumen
La orientaci6n a objetos es un paradigma que depende de algunos principios fundamen-
tales. Un objeto es una instancia de una clase. Una clase es una categoria genCrica de
objetos que tienen 10s mismos atributos y acciones. Cuando crea un objeto, el 6rea del
problema en que trabaje determinari cuintos de 10s atributos y acciones debe tomar
en cuenta.
La herencia es un aspect0 importante de la orientacih a objetos, un objeto hereda
10s atributos y operaciones de su clase. Una clase tambiCn puede heredar atributos y
acciones de otra.
Orientacion a objetos 31 I
El polimorfismo es otro aspect0 importante, ya que especifica que una accidn puede
tener el mismo nombre en diferentes clases y cada clase ejecutarh tal operacidn de forma
distinta.
Los objetos ocultan su funcionalidad de otros objetos y del mundo exterior. Cada objeto
presenta una interfaz para que otros objetos (y personas) puedan aprovechar su
funcionalidad.
Los objetos funcionan en conjunto mediante el envio de mensajes entre ellos. Los
mensajes son peticiones para realizar operaciones.
Por lo general, 10s objetos se asocian entre si y esta asociacidn puede ser de diversos
tipos. Un objeto en una clase puede asociarse con cualquier cantidad de objetos distintos
en otra clase.
La agregacidn es un tip0 de asociacidn. Un objeto agregado consta de un conjunto de
objetos que lo componen y una composicidn es un tipo especial de agregacidn. En
un objeto compuesto, 10s componentes s610 existen como parte del objeto compuesto.
Preguntas y respuestas
P Usted dijo que la orientacibn a objetos ha tomado por asalto al mundo del
software. iQuC no hay algunas aplicaciones importantes que no e s t h orien-
tadas a objetos?
R Si, y se conocen como sistemas “heredados” (programas que en muchos casos
son ejecutados para mostrar su Cpoca). La orientacidn a objetos ofrece diversas
ventajas, como la reusabilidad y un ripido period0 de desarrollo. Por tales razones,
muy probablemente veri las nuevas aplicaciones (y las versiones rediseiiadas de
varias aplicaciones antiguas) escritas bajo el esquema de la orientacidn a objetos.
Taller
Para repasar lo que ha aprendido de la orientacidn a objetos, intente responder a algunas
preguntas y realizar 10s siguientes ejercicios. Las respuestas las encontrari en el
Ap6ndice A, “Respuestas a 10s cuestionarios”.
Cuestionario
1. iQu6 es un objeto?
2. iC6mo trabajan 10s objetos en conjunto?
3. iQuC establece la multiplicidad?
4. iPueden asociarse dos objetos entre si en mis de una manera?
I32 Hora 2
Ejercicios
Esta es una hora tebrica, asi que no inclui ejercicios. Vera algunos en las siguientes
horas.
4ORA 3
Jso de la orientacion
I objetos
A continuacidn conjugaremos las caracten'sticas del UML con 10s conceptos
de la orientacidn a objetos. Aqui reafirmari su conocimiento de la orientacidn
a objetos a1 tiempo que aprenderi otras cosas del UML.
En esta hora se tratarin 10s siguientes temas:
Concepcidn de una clase
Atributos
Operaciones
Responsabilidades y restricciones
QuC es lo que hacen las clases y cdmo encontrarlas
FIGURA3.1 l----l
La representacidn
U M L de una clase.
I Lavadoralndustrial
Otra estructura del UML, el paquete, puede jugar un papel en el nombre de la clase.
Como indiquC en la hora 1, “Introduccibn a1 UML”, un paquete es la manera en que el
UML organiza un diagrama de elementos. Tal vez recuerde que el UML representa un
paquete corno una carpeta tabular cuyo nombre es una cadena de texto (vea la figura 3.2).
FIGURA3.2
Un paquete del UML.
Electrodornesticos
Posiblernente haya notado que en 10s nornbres se han evitado 10s caracteres
acentuados (corno en Electrodornesticos) y la letra eAe. Esto se debe a que
en el alfabeto ingles, tales caracteres no estan conternplados y no podernos
asegurar que el utilizarlos en sus identificadores no le traiga problernas,
tanto en el UML corno en el lenguaje de programacion que piense utilizar
para traducir 10s rnodelos. Por ello, evitarernos 10s acentos en todos 10s dia-
grarnas que se presentan a lo largo de este libro, de igual rnanera, evitare-
rnos el us0 de la letra eAe, rnisrna que sustituirernos - e n su caso- por “ni“
(corno en Anio, en lugar de Afio).
FIGURA3.3
Una clase con un
nombre de ruta.
At ributos
i__l Electrodornesticos::Lavadora
de nombres de atributos iniciara luego de una linea que la separe del nombre de la clase,
como se aprecia en la figura 3.4.
I numeroserie
capacidad
Todo objeto de la clase tiene un valor especifico en cada atributo. La figura 3.5 le mues-
tra un ejemplo. Observe que el nombre de un objeto inicia con una letra minliscula, y
esti precedido de dos puntos que a su vez estan precedidos del nombre de la clase,
y todo el nombre esti subrayado.
FIGURA3.6 Lavadora I
Un atributo puede
rnarca: string = "Laundatoriurn"
mostrar su tipo modelo: string
asi como su valor nurneroserie: string
predeterminado. capacidad: integer
Operaciones
Una operucibn es algo que la clase puede realizar, o que usted (u otra clase)
pueden hacer a una clase. De la misma manera que el nombre de un atributo,
el nombre de una operacidn se escribe en mindsculas si consta de una sola palabra.
Si el nombre constara de mis de una palabra, dnalas e inicie todas con maydscula excep-
tuando la primera. La lista de operaciones se inicia debajo de una linea que separa a las
operaciones de 10s atributos, como se muestra en la figura 3.7.
FIGURA3.7 Lavadora
La lista de opera-
rnarca
ciones de una clase rnodelo
aparece debajo de nurneroserie
una linea que las capacidad
separa de 10s atributos
de la clase. agregarRopa()
sacarRopa()
agregarDetergente0
activar()
agregarRopa(C:String)
sacarRopa(C:String)
agregarDetergente(D:lnteger)
activar():Boolean
FIGURA3.9
En la practica, no
siempre rnostrard
todos 10s utributos
y operaciones de
una clase.
FIGURA3.10
Los puntos suspen-
sivos indican atributos
I
...
Lavadora
rnarca
u operaciones que
no se encuentran en
I
todo el conjunto.
I agregarRopa0
I 38 Hora 3
Si usted tiene una larga lista de atributos u operaciones podrfi utilizar un estereotipo para
organizarla de forma que sea~~mfis comprensible. Un estereotipo es el mod0 en que el
UML le permite extenderlo, es decir, crear nuevos elementos que son especfficos de
un problema en particular que intente resolver. Como lo mencion6 en la hora 1, usted
muestra un estereotipo como un nombre bordeado por dos pares de parkntesis angulares.
Para una lista de atributos, podrfi utilizar un estereotipo como encabezado de un sub-
conjunto de atributos, como en la figura 3.1 1.
FIGURA3.1 1 Lavadora
Podrd usar un 4nfo identificacion.
estereotipo para marca
modelo
organizur una lista
numeroserie
de atributos u .info maquinan
operaciones. capacidad
agregarRopa0
sacarRopa()
agregarDetergente0
<<relacionadocon
la maquina,,
Responsabilidades y restricciones
El simbolo de clase le permite establecer otro tipo de informaci6n de si misma.
En un 5rea bajo la lista de operaciones, podrfi mostrar la responsabilidad de la
clase. La responsabilidad es una descripcih de lo que harfi la clase, es decir, lo que sus
atributos y operaciones intentan realizar en conjunto. Una lavadora, por ejemplo, tiene la
responsabilidad de recibir ropa sucia y dar por resultado ropa limpia.
En el simbolo, indicarfi las responsabilidades en un h e a inferior a la que contiene las
operaciones (vea la figura 3.12).
Us0 de la orientacion a objetos 39 I
FIGURA3.12 Lavadora
En un sirnbolo de 4nfo identificacion,,
clase, que ira debajo marca
de la lista de opera- modelo
numeroserie
ciones, escribira las 4nfo maquina,,
responsabilidades de capacidad
I
la clase. -relacionado con la ropa>>
agregarRopa0
sacarRopa()
agregarDetergente0
.‘relacionado con
la maquina,,
activaro
2
Recibe ropa sucia y
devuelve ropa lirnpia
La idea es incluir informaci6n suficiente para describir una clase de forma inequivoca.
Una manera mis formal es agregar una restriccio’n, un texto libre bordeado
por llaves; este texto especifica una o varias reglas que sigue la clase. Por
ejemplo, suponga que en la clase Lavadora usted desea establecer que la capacidad de
una lavadora sera de 7, 8 o 9 Kg (y asi, “restringir” el atributo capacidad de la clase
Lavadora). Usted escribiri {capacidad= 7, 8 o 9 Kg} junto al simbolo de la clase Lava-
dora. La figura 3.13 le muestra c6mo hacerlo.
FIGURA3.13
La regla entre llaves
rnarca
restringe a1 atributo modelo
capacidad para numeroserie
contener uno de tres (capacidad = 7, 8 o 9 Kg)
posibles valores.
agregarRopa()
sacarRopa()
agregarDetergente0
El UML funciona con otra forma -aun mas formal- de agregar restricciones
que hacen mas explicitas las definiciones. Es todo un lenguaje conocido corno
OCL (Lenguaje de restriccidn de objetos). OCL cuenta con su propio conjunto
de reglas, terminos y operadores, lo que lo convierte en una herramienta avan-
zada y, en ocasiones, util.
I40 Hora 3
Notas adjuntas
Por encima y debajo de 10s atributos, operaciones, responsabilidades y restricciones,
puede agregar mayor informaci6n a una clase en la figura de notas adjuntas.
Con frecuencia agregarh una nota a un atributo u operaci6n. La figura 3.14 le muestra
una nota que se refiere a una norma gubernamental que indica d6nde encontrar la ma-
nera en que se generan 10s ndmeros de serie para 10s objetos de la clase Lavadora.
FIGURA 3.14
Una nota adjunta
rnarca
proporciona mayor
4
rnodelo
informacidn respecto nurneroserie --------- Vease la norrna
gubernarnental EV5-2241
a la clase. capacidad
de 10s Estados Unidos
para la generacion
agregarRopa0 de nurneros de serie
sacarRopa()
agregarDetergente0
activar()
FIGURA3.15 Balon
Un diagrama inicial
1
estatura
para modelar el juego
de baloncesto. driblarBalon()
pasarBalon() la mayor
tirarBalon() parte del
avanzar() rebotaro drible y pase
infraccionarODonente0
w +m u
Delantero
realiza
Centro
I
lnfraccion
perrnanece
la mayor parte cerca del cesto, DeTresPuntos
de 10s tiros tirade una
de media distancia distancia cercana
(profesional = 24 segs.
colegial = 35 segs.
internacional = 30 segs.)
U TiroLibre
E l
CronometroDeJuego
(profesional= 4 cuartos
de 12 mins. colegial e
internacional = 2 mitades
de 20 mins.)
I Linea
DeTiroLibre
I
I I I I
Duracion (profesional = 48 mins. Cancha
colegial e internacional =
40 mins.)
Us0 de la orientacion a obietos 43 I
Resumen
Un rectingulo es, en el UML, la representacidn simbdlica de una clase. El nombre,
atributos, operaciones y responsabilidades de la clase se colocan en Areas delimitadas
dentro del rectingulo. Puede utilizar un estereotipo para organizar las listas de atributos
y operaciones y ademis abreviar una clase a1 mostrar s610 un subconjunto de sus atri-
butos y operaciones. Esto hace un diagrama de clases menos complejo.
Podri mostrar el tip0 de un atributo, su valor inicial y enseiiar 10s valores con que funciona
una operacidn, asi como sus tipos. En una operacidn, esta informacidn se conoce como
firma.
Para reducir la ambiguedad en la descripcidn de una clase agregue restricciones. El UML
tambih le permite indicar mayor informacidn respecto a una clase mediante
notas adjuntas a1 rectingulo que la representa.
Las clases representan el vocabulario de un Area del conocimiento. Las conversaciones
con el cliente o un experto en el Area dejarin entrever 10s sustantivos que se convertirin
en clases en un modelo, y 10s verbos se transformarin en operaciones. Podri utilizar un
diagrama de clases como una forma de estimular a1 cliente a que diga mis respecto a su
Area y que ponga en evidencia cierta informacidn adicional.
Preguntas y respuestas
P Usted mencion6 el us0 del “sentido comun” para generar el diagrama de
clases del baloncesto. Ello suena bien en tal instancia pero, ;quC ocurre
cuando tengo que analizar un hrea desconocida para mi (donde el sentido
comun no sera de mucha ayuda)?
R Por lo general, contar6 con cierto apoyo en un Area desconocida para usted. Antes
de que se reiina con un cliente o con un experto en el campo, intente convertirse
en un “subexperto”. PrepArese para la reunidn y lea cuanta documentacidn rela-
cionada tenga a la mano. Pregunte a sus entrevistados respecto a documentos o
manuales que hayan escrito. Cuando haya terminado de leer, tendri cierto conoci-
miento bisico y podri realizar las preguntas indicadas.
P ;En qu6 momento tendria que mostrar la firma de una operacibn?
R Tal vez, luego de la fase de anilisis de un proceso de desarrollo, conforme se
adentre en el diseiio. La firma es una seccidn de informacidn que 10s desarrolla-
dores podrian encontrar muy iitil.
I44 Hora 3
Taller
Para repasar lo que ha aprendido respecto a la orientacidn a objetos, intente responder a
las siguientes preguntas. Las respuestas las encontrarh en el ApCndice A, “Respuestas
a 10s cuestionarios”.
Cuestionario
1. iC6mo representa una clase en el UML?
2. iQut informacidn puede mostrar en un simbolo de clase?
3. iQuC es una restriccibn?
4. iPara quC adjuntaria una nota a un simbolo de clase?
Ejercicios
1. He aqui una breve (e incompleta) descripcidn del balompiC:
Un equipo de balompiC (0ftitbol soccer) consiste en 11 jugadores de campo
(1 portero y el resto, jugadores de cancha que, en ocasiones, se organizan en cuatro
defensas, tres centrales y tres delanteros). Los jugadores pueden usar cualquier
parte de su cuerpo (except0 las manos) para introducir el bal6n a la porteria del
equipo contrario. La dnica excepci6n a esta regla la tiene el portero, quien puede
utilizar tambitn las manos para jugar el balbn, per0 s610 dentro del 6rea de meta.
El campo de juego es un rectingulo de una longitud maxima de 120 m y minima
de 90 m; y con una anchura no mayor de 90 m, ni menor de 45. Para partidos
internacionales, la longitud serh de 110 m como mhximo y 100 como minimo;
y una anchura no superior a 75 m ni inferior a 64. En cualquier caso, deberh ser
mayor la longitud que la anchura. El campo de juego se dividirh en dos mitades
transversales de igual tamaiio. El centro del campo sera marcado con un punto
visible, alrededor del cual se trazara una circunferencia de 9.15 m de radio. La
meta del juego es pasar el bal6n a 10s delanteros, quienes esthn mejor preparados
para patear el bal6n a la porteria. El portero (0arquero) es la tiltima linea de
defensa que intentarh bloquear, con cualquier parte de su cuerpo, 10s tiros de sus
opositores. Cada vez que evita un gol, es decir, que el bal6n entre a la porteria,
habrh salvado su meta. Cada go1 equivale a un punto. Un juego dura 90 minutos,
divididos en dos periodos de 45 minutos cada uno.
Vhlgase de la anterior informaci6n para crear un diagrama como el de la figura
3.15. Si usted conoce mas del balompit de lo que he descrito, agregue tal informa-
ci6n a su diagrama.
2. Si usted conoce mhs del baloncesto de lo que hay en la figura 3.15, agregue la
informacidn a tal diagrama.
H ORA 4
Us0 de relaciones
En la hora anterior creamos un conjunto de clases que representaban el
vocabulario del baloncesto. Aunque ello le da las bases para una mayor
exploraci6n de lo que es el baloncesto, tal vez haya sentido que algo le falta.
Ese “algo” es un sentido en el que las clases se relacionan entre si. Si
observa el modelo (vea la figura 3.15), veri que no se indica la manera en
que un jugador se relaciona con un bal6n, ni c6mo 10s jugadores confor-
man un equipo, ni la forma en que procede el juego. Es como si hubiera
constmido una lista de elementos, en lugar de una representacibn de un
Lea del conocimiento. Es importante saber c6mo se conectan las clases
entre si.
Ahora trazaremos las conexiones entre las clases y completaremos la re-
presentacibn.
En esta hora se tratarin 10s siguientes temas:
Asociaciones
Multiplicidad
Asociaciones calificadas
I46 Hora 4
Asociaciones reflexivas
Herencia y generalizacidn
Dependencias
Asociaciones
Cuando las clases se conectan entre si de forma conceptual, esta conexi6n se
conoce como asociacidn. El modelo inicial de baloncesto le darh algunos
ejemplos. Examinemos uno de ellos: la asociacidn entre un jugador y un equipo. Podrh
caracterizar tal asociacidn con la frase: “un jugador participa en un equipo”. Visualizarh
la asociacidn como una linea que conectarh a ambas clases, con el nombre de la aso-
ciaci6n (“participa en”) justo sobre la linea. Es fitil indicar la direccidn de la relacidn, y
lo harh con un trihngulo relleno que apunte en la direcci6n apropiada. La figura 4.1 le
muestra c6mo visualizar la asociacion “Participa en” entre el jugador y el equipo.
FIGURA4.1
Una usociacidn entre
un jugador y un
equipo.
Cuando una clase se asocia con otra, cada una de ellas juega un papel dentro de tal aso-
ciacidn. Puede representar estos papeles en el diagrama escribikndolos cerca de la linea
que se encuentra junto a la clase que juega el papel correspondiente. En la asociacidn
entre un jugador y un equipo, si el equipo es profesional, Cste es un empleador y el
jugador es un empleado. La figura 4.2 le muestra c6mo representar dichos papeles.
FIGURA 4.2
lJugadorl Participa en,
Por lo general, en una Empleado Empleador
asociacion cada clase
juega un papel. Puede
representar tales pape-
les en el diagrarna.
Las asociaciones podrian ser mis complejas que tan s610 una clase conectada a otra. Varias
clases se pueden conectar a una. Si toma en cuenta 10s defensas, delanteros y central, asi
como sus asociaciones con la clase Equipo, tendri el diagrama de la figura 4.4.
FIGURA4.5
Puede establecer una
restriccidn en una
asociacidn. En este
caso, la asociacidn
Atiende esta restringida
para que el Cajero
atienda a1 Cliente
en turno.
Otro tip0 de restricci6n es la relaci6n 0 (distinguida como {Or}) en una linea discon-
tinua que conecte a dos lineas de asociaci6n. La figura 4.6 modela a un estudiante de
educaci6n media superior que elegiri entre un curso acadkmico o uno comercial.
I48 Hora 4
FIGURA4.6
La relacidn 0 entre Estudiante de educacion I
Elige b I Academic0 I
dos asociaciones en
una restriccidn.
media superior
I&
I Elige b Cornercial
Clases de asociacion
Una asociacidn, a1 igual que una clase, puede contener atributos y operaciones.
De hecho, cuando Cste sea el caso, usted tendrh una cluse de usociacio’n.
Puede concebir a una clase de asociacidn de la misma forma en que lo hm’a con una
clase esthndar, y utilizarh una linea discontinua para conectarla a la linea de asociacidn.
Una clase de asociacidn puede tener asociaciones con otras clases. La figura 4.7 le mues-
tra una clase de asociacidn para la asociacidn “Participa en” entre un jugador y un
equipo. La clase de asociacidn, Contrato, se asocia con la clase DirectorGeneral.
FIGURA4.7
Una clase de asociacidn
modela 10s atributos y
operaciones de una
asociacidn. Se conecta
a una asociacidn me-
diante una linea dis-
continua, y puede
asociarse a otra clase.
I
DirectorGeneral
Vincu10s
Asi como un objeto es una instancia de una clase, una asociacidn tambiin cuenta con
instancias. Si podemos imaginar a un jugador especifico que juega para un equipo
especifico, la relacidn “Participa en” se conocerh como vinculo, y usted lo representarh
como una linea que conecta a dos objetos. Tal como tuvo que subrayar el nombre de un
objeto, deberh subrayar el nombre de un vinculo, como en la figura 4.8.
FIGURA4.8 Participa en b
un,,inculo es la
instan- gustavo naiera :Jugador nacional : Equipo
Multiplicidad
La asociacidn trazada entre Jugador y Equipo sugiere que las dos clases tienen una
relacidn de uno a uno. No obstante, el sentido comljn nos indica que Cste no es el caso.
Un equipo de baloncesto cuenta con cinco jugadores (sin contar a 10s sustitutos). La
asociacidn Tiene (Has) debe participar en este recuento. En la otra direccidn, un jugador
puede participar s610 en un equipo, y la asociacidn “Participa en” debe responder de
esto.
Tales especificaciones son ejemplos de la rnultiplicidud la cantidad de objetos
de una clase que se relacionan con un objeto de la clase asociada. Para repre-
sentar 10s niimeros en el diagrama, 10s colocar6 sobre la linea de asociacidn junto a la
clase correspondiente, como se denota en la figura 4.9.
FIGURA4.9
La multiplicidad
seriala la cantidad
de objetos de una
clase que pueden
iJugador 5 Participa en,
relacionarse con un
objeto de una clase
asociada.
La multiplicidad de este ejemplo no es la iinica que existe. Hay varios tipos de multipli-
cidades (una multiplicidad de multiplicidades, por decirlo asi). Una clase puede rela-
cionarse con otra en un esquema de uno a uno, uno a muchos, uno a uno o mis, uno a
ninguno o uno, uno a un interval0 definido (por ejemplo: uno a cinco hasta diez), uno a
exactamente n (como en este ejemplo), o uno a un conjunto de opciones (por ejemplo,
uno a nueve o diez). El UML utiliza un asterisco (*) para representar ma‘s y para repre-
sentar muchos. En un contexto 0 se representa por dos puntos, como en “l..*” (“uno o
mis”). En otro contexto, 0 se representa por una coma, como en “5, 10” (“5 o lo”). La
figura 4.10 le muestra cdmo concebir las posibles multiplicidades.
-
FIGURA4.10 1 Esposa
1 Esta casado con b
Posibles multiplici- uno a uno
dudes y cdmo repre-
Itiempo completo
1 1
HueVera I Contiene b 12,24 1 1 Huevos
uno a 12 o 24
Asociaciones calificadas
Cuando la multiplicidad de una asociacidn es de uno a muchos, con frecuencia se pre-
senta un reto muy particular: la bdsqueda. Cuando un objeto de una clase tiene que selec-
cionar un objeto particular de otro tipo para cumplir con un papel en la asociacidn, la
primera clase deberi atenerse a un atributo en particular para localizar a1 objeto ade-
cuado. Normalmente, dicho atributo es un identificador que puede ser un ndmero de
identidad. Por ejemplo, cuando usted realiza una reservacidn en un hotel, el hotel le
asigna un ndmero de confirmacidn. Si usted quiere hacer preguntas respecto a la reser-
vacidn, deberi proporcionar el ndmero de confirmacidn.
En el UML la informacidn de identidad se conoce como cal$cador. Su sim-
bolo es un pequeiio rectingulo adjunto a la clase que hari la bdsqueda. La
figura 4.1 1 muestra la representacidn. La idea es reducir, con eficiencia, la multiplicidad
de uno a muchos a una multiplicidad de uno a uno.
Us0 de relaciones 51 I
FIGURA4.12
En una asociacidn
refexiva, trazard la
linea de la clase hacia
si misma y podra Conduce
incluir 10s papeles, v
nombre de la asocia-
cidn y su direccidn, asi
como su multiplicidad.
Herencia y generalizacion
Uno de 10s sellos distintivos de la orientacidn a objetos es que captura uno de 10s ma-
yores aspectos del sentido comlin en cuanto a la vida diaria: si usted conoce algo de una
categoria de cosas, automaticamente sabra algunas cosas que podra transferir a otras cate-
gorias. Si usted sabe que algo es un electrodomkstico, ya sabra que contar5 con un in-
tenuptor, una marca y un nlimero de serie. Si sabe que algo es un animal darB por hecho
que come, duerme, tiene una forma de nacer, de trasladarse de un lugar a otro y algunos
otros atributos (y operaciones) que podria listar si pensara en ello por algunos instantes.
La orientacidn a objetos se refiere a esto como herencia. El UML tambikn lo
denomina generulizacidn. Una clase (la clase secundaria o subclase) puede
heredar 10s atributos y operaciones de otra (la clase principal o superclase). La clase
principal (o madre) es mas genkrica que la secundaria (0hija).
I52 Hora 4
La jerarquia de la herencia no tiene que finalizar en dos niveles: una clase secundaria
puede ser principal para otra clase secundaria. Un Mamifero es una clase secundaria de
Animal, y Caballo es una clase secundaria de Mamifero.
En el UML representari la herencia con una linea que conecte a la clase principal con la
secundaria. En la parte de la linea que se conecta con la clase principal, colocari un
triingulo sin rellenar que apunte a la clase principal. Este tip0 de conexitin se interpreta
con la frase es un t i p de. Un Mamifero es un t i p de Animal, y un Caballo es un t i p de
Mamifero. La figura 4.13 le muestra esta particular jerarquia de la herencia, junto con
otras clases. Observe la apariencia del trihngulo y las lineas cuando varias clases secun-
darias son herencia de una clase principal. A1 disponer el diagrama de este modo, trae
por resultado un diagrama m6s ordenado en lugar de mostrar todas las lineas y triingu-
los, aunque el UML no le prohibe colocarlos todos en la imagen. TambiCn vea que no
coloc6 10s atributos y operaciones heredadas en 10s rectingulos de las subclases, dado
que ya 10s habia representado en la superclase.
FIGURA4.13
T
Animal
Una jerarquia de
herencia en el reino
animal.
A Caballo
Con frecuencia las clases secundarias agregan otras operaciones y atributos a 10s que han
heredado. Por ejemplo: un Mamifero tiene pel0 y da leche, dos atributos que no se
encuentran en la clase Animal.
Una clase puede no provenir de una clase principal, en cuyo caso seri una clase
base o clase ruiz. Una clase podrfa no tener clases secundarias, en cuyo caso
seri una clase final o clase hoja. Si una clase tiene exactamente una clase principal, tendrh
una herencia simple. Si proviene de varias clases principales, tendri una herencia mriltiple.
Descubrimiento de la herencia
En el proceso de plitica con un cliente, un analista descubriri la herencia de varias for-
mas. Es posible que las clases candidatas que aparezcan incluyan tanto clases principales
como clases secundarias. El analista deberi darse cuenta que 10s atributos y operaciones
de una clase son generales y que se aplicarin a, quizh, varias clases (mismas que agre-
garin sus propios atributos y operaciones).
El ejemplo del baloncesto de la hora 3, “Us0 de la orientaci6n a objetos”, tiene las clases
Jugador, Defensa, Delantero y Central. El Jugador tiene atributos como nombre, estatura,
peso, velocidadAlCorrer y saltovertical. Tiene operaciones como dnblar(), pasar(), reborn()
y tirar(). Las clases Defensa, Delantero y Centro hered=& tales atributos y operaciones, y
agregarin 10s suyos. La clase Defensa podria tener las operaciones correrAlFrente0 y
quitarBalon(). El Central podria tener retacarBalon0. De acuerdo con 10s comentarios
del entrenador respecto a las estaturas de 10s jugadores, el analista tal vez quisiera colo-
car restricciones en las estaturas para cada posicibn.
Otra posibilidad es que el analista note que dos o mis clases tienen ciertos atributos y
operaciones en comdn. El modelo del baloncesto tiene un CronometroDeJuego (que con-
trola el tiempo que resta en un period0 de juego) y un LapsoDeTiro (que controla el
tiempo restante desde el instante que un equipo tom6 posesidn del baldn, hasta que
intente encestar). Si nos damos cuenta de que ambos controlan el tiempo, el analista
podria formular una clase Reloj con una operaci6n controlarTiempo() que podrfan
heredar tanto CronometroDeJuego como LapsoDeTiro.
Clases abstractas
En el modelo del baloncesto, el par de clases que mencionC -Jugador y Reloj- son
dtiles puesto que funcionan como clases principales para clases secundarias importantes.
Las clases secundarias son importantes en el modelo dado que finalmente usted querri
I54 Hora 4
FIGURA4.14 Jugador
Dos jerarquias de nombre
herencia con clases tamaiio
abstractas en el velocidadAlCorrer
modelo de baloncesto. saltovertical
correrAlFrente0
quitarBalon()
CronometroDelJuego LapsoDeTiro
Dependencias
__
En otro tipo de relacibn, una clase utiliza a otra. A esto se llama LLpenden-
cia. El us0 mas comun de una dependencia es mostrar que la firma de la
operacibn de una clase utiliza a otra clase.
Suponga que diseiiara un sistema que muestra formularios corporativos en pantalla para
que 10s empleados 10s Ilenen. El empleado utiliza un menu para seleccionar el formula-
rio por llenar. En su diseiio, tiene una clase Sistema y una clase Formulario. Entre sus
Us0 de relaciones 55 1
FIGURA4.15
Unaflecha represen-
tada por una linea
discontinua con una
punta de flecha en
U
forma de tria’ngulo sin
relleno simboliza una
dependencia.
Resumen
Sin las relaciones, un modelo de clases seria poco menos que una lista de cosas que repre-
sentm’an un vocabulario. Las relaciones le muestran c6mo se conectan 10s t6rminos del
vocabulario entre si para dar una idea de la secci6n del mundo que se modela. La asociacidn
es la conexidn conceptual fundamental entre clases. Cada clase en una asociaci6n juega un
papel, y la multiplicidad especifica cuhtos objetos de una clase se relacionan con un objeto
de la clase asociada. Hay muchos tipos de multiplicidad. Una asociaci6n se representa como
una linea entre 10s rectiingulos de clases con 10s papeles y multiplicidades en cada extremo.
A1 igual que una clase, una asociacidn puede contener atributos y operaciones.
Una clase puede heredar atributos y operaciones de otra clase. La clase heredada es secun-
daria de la clase principal que es de la que se hereda. Descubriri la herencia cuando
encuentre clases en su modelo inicial que tengan atributos y operaciones en comdn. Las
clases abstractas s610 se proyectan como bases de herencia y no proporcionan objetos por
si mismas. La herencia se representa como una linea entre la clase principal y la secun-
daria, con un triingulo sin rellenar que se adjunta (y apunta a) la clase principal.
En una dependencia, una clase utiliza a otra. El us0 mis comdn de una dependencia es
mostrar que una firma en la operaci6n de una clase utiliza a otra clase. Una dependencia
se proyecta como una linea discontinua que redne a las dos clases en la dependencia, con
una punta de flecha en forma de triingulo sin relleno que adjunta (y apunta a) la clase de
la que se depende.
Preguntas y respuestas
P iEn alguna ocasi6n se le puede poner nombre a una relaci6n de herencia,
como se hace en una asociaci6n?
R El UML no le impide que adjudique un nombre a una relacidn de herencia, per0
por lo general esto no es necesario.
I56 Hora 4
Taller
El cuestionario y 10s ejercicios se han diseiiado para reafirmar su conocimiento del UML
en el Lea de las relaciones. Cada pregunta y ejercicio requiere que usted piense en la
simbologia del modelado que ha aprendido y la aplique a una situacibn. Las respuestas
se encuentran en el ApCndice A, “Respuestas a 10s cuestionarios”.
Cuestionarios
1. iC6mo representaria la multiplicidad?
2. LCbmo descubriri la herencia?
3. iQu6 es una clase abstracta?
4. iCuil es el efecto de un calificador?
Ejercicios
1. Tome como base el modelo del baloncesto de la Hora 3, y agregue vinculos que
expresen las relaciones que ha visto en esta hora. Si conoce el juego del balon-
cesto, siCntase con libertad de agregar 10s vinculos que representen su
conocimiento.
2. De acuerdo con un viejo adagio: “Un abogado que se defiende a si mismo, tiene
por cliente a un tonto.” Cree un modelo que refleje esta pieza de sabiduria.
H ORA 5
Agregacion,
cornposicion,
interfaces
y realizacion
Continuaremos con las relaciones entre clases y comprenderA nuevos con-
ceptos respecto a las clases y sus diagramas.
En esta hora se tratarh 10s siguientes temas:
Agregaciones
Composiciones
Contextos
Interfaces y realizaciones
Visibilidad
Hora 5
Ag regaciones
. * 0
En ocasiones una clase consta de otras clases. Este es un tip0 especial de
relaci6n conocida como agregacidn o acumulacidn. Los componentes y la
clase que constituyen son una asociaci6n que conforma un todo. En la hora 2,
"Orientaci6n a objetos", mencionC que su computadora es un conjunto de elementos que
consta de gabinete, teclado, rat6n, monitor, unidad de CD-ROM, una o varias unidades
de disco duro, m6dem, unidad de disquete, impresora y, posiblemente, altavoces. AdemAs
de las unidades de disco, el gabinete contiene la memoria RAM, una tarjeta de video y
una tarjeta de sonido (tal vez algunos otros elementos).
Puede representar una agregaci6n como una jerarquia dentro de la clase completa (por
ejemplo el sistema computacional) en la parte superior, y 10s componentes por debajo de
ella. Una linea conectara el todo con un componente mediante un rombo sin relleno que
se colocari en la linea mis cercana a1 todo. La figura 5.1 le muestra el sistema de
c6mputo como una agregaci6n.
FIGURA5.1
Una asociacio'n por
agregacidn se repre- '?
senta por una linea
entre el componente y
el todo con un rombo
sin relleno que con- I I
forma a1 todo.
FIGURA 5.2
Puede establecer una
restriccidn a una agre-
gacidn para mostrar
que un componente u
LJ
Comida
Cornposiciones
Una composicidn es un tip0 muy representativo de una agregacidn. Cada componente
dentro de una composici6n puede pertenecer tan s610 a un todo. Los componentes de una
mesa de caf6 (la superficie de la mesa y las patas) establecen una composicidn. El sim-
bolo de una cornposicion es el mismo que el de una agregacidn, except0 que el rombo
esth relleno (vea la figura 5.3).
I
FIGURA 5.3
,
MesaDeCafe
En una composicidn,
cada componente
pertenece solamente
a un todo. Un rombo
I),
relleno representa
esta relacio’n. SuperficieDeLaMesa Pata
Contextos
Cuando modele un sistema podrian producirse, con frecuencia, agrupamientos de clases,
como agregaciones o composiciones. En tal caso, deberi enfocar su atencidn en un agru-
pamiento o en otro, y el diagrama de contexto le proporciona la caracteristica de mode-
laje que requiere para tal fin. Las composiciones figuran en gran medida dentro de 10s
diagramas de contexto. Un diagrama de contexto es como un mapa detallado de alguna
seccidn de un mapa de mayores dimensiones. Pueden ser necesarias varias secciones para
capturar toda la informacidn detallada.
160 Hora 5
He aqui un ejemplo: suponga que esth creando un modelo de una camisa y la forma en
que se podria combinar con algun atuendo y un guardarropa. Un tip0 de diagrama de
contexto (vea la figura 5.4) le mostrarh la camisa como un gran rectingulo de clase, con
un diagrama anidado en el interior, el cual le muestra cdmo 10s componentes de la
camisa esthn relacionados entre si. Este es un diagrama de contexto de composici6n
(dado que la sola camisa retine a cada componente se le denomina de composicidn).
FIGURA5.4 I Camisa
Un diagrama de con-
tento de composicidn
le muestra 10s compo-
nentes de una clase
esta cosida en
como un diagrama
v
1 5,6
anidado dentro de un
enorme recta'ngulo de I Botonadura
clase.
7-
Boton Ojal
FIGURA5.5 Guardarropa
Un diagrama de
contexto del sistema
le muestra 10s com-
ponentes de una
clase y la forma
L$
en que la clase se
relaciona con las
otras que hay en
el sistema.
fIAtuendo
Agregacion, cornposicion, interfaces y realizacion
61 I
Podrh ver de cerca alguna otra clase y presentar sus detalles en algdn otro diagrama de
contexto.
Interfaces y realizaciones
Una vez que haya creado varias clases, tal vez se dC cuenta que no pertenecen a una
clase principal, pero en su comportamiento debe incluir algunas de las mismas opera-
ciones con las mismas firmas de la primera clase. Podria codificar las operaciones en
una de las clases y reutilizarlas en otras. Una segunda posibilidad es que desarrolle una
serie de operaciones para las clases en un sistema, y reutilizarlas para las clases de otro
sistema.
De cualquier manera, desearh contar con algtin medio para capturar el con-
junto reutilizable de operaciones. La interfaz es la estructura del UML que le
permite hacerlo. Una intefaz es un conjunto de operaciones que especifica cierto aspect0
de la funcionalidad de una clase, y es un conjunto de operaciones que una clase presenta
a otras.
Con un ejemplo podriamos aclarar lo anterior. El teclado que usted utiliza para comuni-
carse con su equipo es una interfaz reutilizable. Su operacidn basada en la opresidn de
teclas ha provenido de la mhquina de escribir. La disposicidn de las teclas es casi la
misma que en una mhquina de escribir, pero el punto principal es que la operacidn por
opresidn de teclas ha sido cedida de un sistema a otro. Otras operaciones (Mayds, Bloq
Mayds y Tab) tambiCn se integraron a partir de la mhquina de escribir.
Por supuesto, el teclado de una computadora incluye diversas operaciones que no encon-
trarh en una mhquina de escribir: Control, Alt, RePhg, AvPhg y otras. Asi pues, la inter-
faz puede establecer un subconjunto de las operaciones de una clase y no necesariamente
todas ellas.
Puede modelar una interfaz del mismo mod0 en que modelm’a una clase, con un sim-
bolo rectangular. La diferencia sera que, como un conjunto de operaciones, una interfaz
no tiene atributos. Recordarh que puede omitir 10s atributos de la representacidn de una
clase. LEntonces, cdmo distinguiria entre una interfaz y una clase que no muestra sus
atributos? Una forma es utilizar la estructura “estereotipo” y especificar la palabra
ccinterfazw sobre el nombre de la interfaz en el recthgulo. Otra es colocar la letra “I” a1
principio del nombre de una interfaz.
En cierto sentido, es como si el teclado de la computadora garantizara que
esta parte de su funcionalidad “hm’a las veces” del teclado de una mhquina de
escribir. Bajo este esquema, la relacidn entre una clase y una interfaz se conoce como
realizacidn. Esta relacidn esth modelada como una linea discontinua con una punta de
flecha en forma de trihngulo sin rellenar que adjunte y apunte a la interfaz. La figura 5.6
le muestra cdmo se lleva a cab0 esto.
162 Hora 5
FIGURA5.6
Una integaz es un con-
junto de operaciones cantidadDeTeclas DeEscribir
que realiza una clase.
Esta Lltima se relaciona TeclazoO
con una interfaz me-
diante la realizacidn, ...
misma que se indica por
una linea discontinua
con una punta de f l e c k
en forma de trihngulo
sin rellenar que apunte
a la integaz.
Otra forma (omitida) de representar una clase y su interfaz es con un pequeiio circulo
que se conecte mediante una linea a la clase, como se ve en la figura 5.7.
FIGURA5.7
La forma omitida de
representar una clase
que realice una interfaz.
Una clase puede realizar mis de una interfaz, y una interfaz puede ser realizada por mis
de una clase.
Visibilidad
El concept0 de visibilidad esti muy relacionado con las interfaces y la reali-
zacibn. La visibilidad se aplica a atributos u operaciones, y establece la pro-
porcidn en que otras clases podrin utilizar 10s atributos y operaciones de una clase dada
(0en operaciones de una interfaz). Existen tres niveles de visibilidad: Nivel pziblico, en el
cual la funcionalidad se extiende a otras clases. En el nivel protegido la funcionalidad
se otorga s610 a las clases que se heredan de la clase original. En el nivel privudo s610 la
clase original puede utilizar el atributo u operaci6n. En una televisibn, modificarVolumen()
y cambiarCanal() son operaciones pdblicas, en tanto que dibujarImagenEnPantalla() es
privada. En un autom6vi1, aceleraro y frenar() son operaciones pdblicas, per0
actualizarKilometraje() o actualizarMillaje() es protegida.
La realizaci6n, como podria imaginar, implica que el nivel pdblico se aplique a cualquier
operacidn en una interfaz. La protecci6n de operaciones mediante cualquiera de 10s otros
niveles tal vez no tendria sentido, dado que una interfaz se orienta a ser realizada por
diversas clases.
Para indicar el nivel publico, anteceda el atributo u operaci6n con un signo de suma (+), para
revelar un nivel protegido, anteckdalo con un simbolo de ndmero (#), y para indicar el nivel
privado, antecCdalo con un gui6n (-). La figura 5.8 muestra 10s atributos y operaciones publi-
cos, protegidos y privados tanto en una televisi6n como en un autom6vil.
Agregacion, cornposicion, interfaces y realizacion 63 I
Ambito
El imbito es otro concept0 referente a 10s atributos y operaciones, y la forma
en que se relacionan dentro de un sistema. Hay dos tipos de imbitos, el de
instancia y el de archivador. En el primer0 cada instancia cuenta con su propio valor en
un atributo u operaci6n. En un imbito de archivado, s610 habri un valor del atributo u
operaci6n en todas las instancias de la clase. Un atributo u operacidn con el imbito de
archivador, aparece con su nombre subrayado. Este tip0 de imbito se utiliza con frecuen-
cia cuando un grupo especifico de instancias (ningunas otras) tienen que compartir 108
valores exactos de un atributo privado. El imbito de instancia es, por mucho, el tip0 mas
comdn de Bmbito.
Resumen
Para completar sus nociones de clases y la forma en que se conectan, es necesario com-
prender algunas relaciones adicionales. Una agregaci6n establece una asociacidn para
conformar un todo: una clase “todo” se genera de clases que la componen. Un compo-
nente en una agregaci6n puede ser parte de m6s de un todo. Una composici6n es una
conformacidn muy intimamente ligada con la agregaci6n en el sentido de que un compo-
nente de una composici6n puede ser parte solamente de un todo. La representacibn del
UML de las agregaciones es similar a la representacibn de las composiciones. La linea
de asociacidn que une la parte con un todo tiene un rombo. En una agregacibn, el rombo
no est6 relleno, en tanto que en una composici6n si lo esth.
Un diagrama de contexto enfoca la atenci6n en una clase especifica dentro de un sis-
tema. Un diagrama de contexto de composici6n es como un mapa detallado de un mapa
mayor. Muestra un diagrama de clases anidado dentro de un gran simbolo rectangular de
clase. Un diagrama de contexto de sistema muestra la forma en que el diagrama de clases
compuestas se relaciona con otros objetos del sistema.
Una realizacidn es una asociaci6n entre una clase y una interfaz, una coleccidn de opera-
ciones que cierta cantidad de clases podri utilizar. Una interfaz se representa como una
clase sin atributos. Para distinguirla de una clase cuyos atributos hayan sido omitidos del
diagrama, el estereotipo ccinterfazn apareceri por encima del nombre de la interfaz. Otra
posibilidad es la de anteceder el nombre de la interfaz con una “I” mayuscula. La reali-
zacidn se representa en el UML mediante una linea discontinua con una punta de flecha
en forma de triingulo sin rellenar que conecta a la clase con la interfaz. Otra forma para
representar una realizaci6n es con una linea continua que conecte a una clase con un
pequeiio circulo, para que el circulo se interprete como la interfaz.
1 64 Hora 5
En tCrminos de visibilidad, todas las operaciones en una interfaz son pliblicus, de mod0
que cualquier clase podri utilizarlas. Los otros dos niveles de visibilidad son protegido
(la funcionalidad se extiende a las clases secundarias de aquella que contiene 10s atribu-
tos y operaciones) y privudo (atributos y operaciones que se pueden utilizar s610 dentro
de la clase que 10s contiene). Un signo de suma (+) denota a la visibilidad pdblica, el
simbolo de n ~ m e r o(#) la protegida y el gui6n (-) la privada.
El Bmbito es otro aspect0 de 10s atributos y operaciones. En un Bmbito de instancia, cada
objeto de una clase cuenta con su propio valor en un atributo u operaci6n. En un imbito
de archivador, s610 hay un valor para un atributo u operaci6n en particular a travCs de un
conjunto de objetos de una clase. Los objetos que no estCn en este conjunto no podran
acceder a1 valor contenido en el Bmbito de archivador.
Preguntas y respuestas
P ;Se considera transitiva a la agregacidn? Es decir, si la clase 3 es un compo-
nente de la clase 2, y la clase 2 es un componente de la clase 1, ;la clase 3 serh
un componente de la clase l?
R Asi es, la agregacibn es transitiva. En nuestro ejemplo, 10s botones y la bola del
rat6n son parte del ratbn, a la vez que son parte de la computadora.
P ;La palabra “interfaz” implica ‘Tnterfaz de usuario” o GUI?
R No. Es algo mis genCrico. Una interfaz es tan s610 un conjunto de operaciones que
una clase presenta a las demis clases. De hecho, una de estas operaciones podria
ser (aunque no necesariamente) la del usuario.
Taller
El cuestionario y 10s ejercicios verificarin y fortalecerin su conocimiento respecto a1
tema de las agregaciones, composiciones, contextos e interfaces. Las respuestas las podrfi
ver en el ApCndice A, “Respuestas a 10s cuestionarios”.
Cuestionario
1. LCuBl es la diferencia entre una agregaci6n y una composici6n?
2. iQuC es la realizacGn?
3. Mencione 10s tres niveles de visibilidad y describa lo que significa cada uno de
ellos.
Ejercicios
1. Cree un diagrama de contexto de composicidn de una revista. Tome en cuenta la
tabla de contenido, la editorial, 10s articulos y las columnas. Luego, Cree un dia-
grama de contexto del sistema que muestre a la revista junto con el suscriptor y el
comprador en el puesto de revistas.
E
l Aqregacion, composicion, interfaces y realizacion 65 I
FIGURA6.1
Un caso de us0 esta-
blece un conjunto
de escenarios para
n
realizar algo u’tilpara
un actol: En este
ejemplo, un caso
de us0 es “Comprar
gaseosa ”.
Hora 6
Resumen
El caso de us0 es una estructura para describir la forma en que un sistema lucirh para 10s
usuarios potenciales. Es una colecci6n de escenarios iniciados por una entidad llamada
actor (una persona, un componente de hardware, un lapso u otro sistema). Un caso de
us0 deberfa dar por resultado algo de valor ya sea para el actor que lo inici6 o para otro.
Es posible volver a utilizar casos de uso. Una forma (“inclusidn”) es utilizar 10s pasos
de un caso de us0 como parte de la secuencia de pasos de otro caso de uso. Otra forma
(“extensi6n”) es crear un nuevo caso de us0 mediante la adicidn de pasos a un caso de
us0 existente.
La entrevista directa con 10s usuarios es la mejor tdcnica para derivar casos de uso.
Cuando se deriva un caso de uso, es importante destacar las condiciones para iniciar
el caso de uso, y 10s resultados obtenidos como consecuencia del mismo.
Harh las entrevistas a 10s usuarios despuCs de entrevistar a 10s clientes y generar una lista
de prospectos de clases. Esto le darh un fundamento en la terminologia que utilizarh para
hablar con 10s usuarios. Es una buena idea entrevistar a un grupo de usuarios. El objetivo
es derivar un conjunto candidato de casos de us0 y todos 10s posibles actores.
I74 Hora 6
Preguntas y respuestas
En realidad ipara quC necesito el concept0 del caso de uso? iQuC no s610
podriamos preguntar a 10s usuarios lo que deseen ver en el sistema y dejarlo
asi?
En realidad, no. Tenemos que crear una estructura de lo que 10s usuarios nos digan,
y 10s casos de us0 la proporcionan. La estructura se vuelve 6til cuando tiene que
llevar 10s resultados de sus entrevistas con 10s usuarios y comunicarlos a 10s
clientes y desarrolladores.
iQuC tan dificil es derivar 10s casos de uso?
De acuerdo con mi experiencia, el listado de casos de us0 -a1 menos 10s de alto
nivel- no es muy complejo. Hay ciertas dificultades a1 profundizar en cada una
e intentar lograr que 10s usuarios listen 10s pasos de cada escenario. Cuando genere
un sistema que reemplace una manera existente de hacer las cosas, 10s usuarios
tipicamente ya sabrfin 10s pasos bastante bien y 10s habrh utilizado con tanta
regularidad que se les dificultarfi estructurarlos. Es una buena idea tener un panel
de usuarios, ya que la discusidn en grupo por lo general trae consigo ideas que
un usuario en particular podria tener problemas para expresar.
Esta hora se b a d en teoria mfis que en el UML. En este taller, el objetivo sera compren-
der 10s conceptos tedricos y aplicarlos en diversos contextos. La prfictica, que veremos
en la siguiente hora, le ayudarfi a reafirmar 10s conceptos cuando aprenda a visualizarlos
mediante el UML. Las respuestas aparecen en el ApCndice A, “Respuestas a 10s cues-
tionarios”.
Cuestionario
1. iCdmo se llama a la entidad que inicia un caso de uso?
2. iQuC se entiende con “incluir un caso de uso”?
3. iQuC se entiende con “extender un caso de uso”?
4. LUn caso de us0 es lo mismo que un escenario?
Ejercicios
1. En el caso del ejemplo de la mfiquina de gaseosas, Cree otro caso de us0 que
incluya a 10s casos de us0 “Exhibir el interior” y “Cubrir el interior”.
2. Los casos de us0 pueden ayudarle a analizar un negocio y un sistema. Imagine a
una gran tienda de equipos de cdmputo que venda hardware, perifkricos y software.
LQuitnes serian 10s actores? LCufiles serian algunos de 10s principales casos de
uso? LCufiles serian algunos de 10s escenarios dentro de cada caso de uso?
HORA 7
Diagramas de casos de us0
El caso de us0 es un poderoso concept0 que ayuda a un analista a compren-
der la forma en que un sistema debera comportarse. Le ayuda a obtener 10s
requerimientos desde el punto de vista del usuario. Es necesario aprender a
visualizar 10s conceptos del caso de us0 que conocid en la hora anterior.
En esta hora se trataran 10s siguientes temas:
Representacidn de un modelo de caso de us0
Concepcidn de las relaciones entre casos de us0
Diagramas de casos de us0 en el proceso de analisis
Aplicacidn de 10s modelos de caso de us0
Vera la idea general del UML
El caso de us0 es muy poderoso, per0 lo es a6n m8s cuando se visualiza
por medio del UML. Esta visualizacidn le permitiri mostrar 10s casos de us0
a 10s usuarios para que ellos le puedan dar mayor informacidn. Es un hecho
que 10s usuarios con frecuencia saben mas de lo que dicen: el caso
de us0 ayuda a romper el hielo. A su vez, una representacidn visual le ayuda
a combinar 10s diagramas de casos de us0 con otro tip0 de diagramas.
Una de las finalidades del proceso de analisis de un sistema es generar una
coleccidn de casos de uso. La idea es tener la posibilidad de catalogar y
I76 Hora 7
hacer referencia a esta coleccibn, que sirve como el punto de vista de 10s usuarios acerca
del sistema. Cuando llegue el momento de actualizar el sistema, el catilogo de casos de
us0 funcionari como un fundamento para obtener 10s requerimientos de la actualizacibn.
Representacion de un modelo
de caso de us0
Hay un actor que inicia un caso de us0 y otro (posiblemente el que inici6, pero no nece-
sariamente) que recibiri algo de valor de 61. La representacibn grifica es directa. Una
elipse representa a un caso de uso, una figura agregada representa a un actor. El actor
que inicia se encuentra a la izquierda del caso de uso, y el que recibe a la derecha. El
nombre del actor aparece justo debajo de 61, y el nombre del caso de us0 aparece ya sea
dentro de la elipse o justo debajo de ella. Una linea asociativa conecta a un actor con el
caso de uso, y representa la comunicacibn entre el actor y el caso de uso. La linea aso-
ciativa es sblida, como la que conecta a las clases asociadas.
Uno de 10s beneficios del anilisis del caso de us0 es que le muestra 10s confines entre el
sistema y el mundo exterior. Generalmente, 10s actores estin fuera del sistema, mientras
que 10s casos de us0 estin dentro de 61. Utilizari un rectingulo (con el nombre del sis-
tema en algtin lugar dentro de 61) para representar el confin del sistema. El rectingulo
envuelve a 10s casos de us0 del sistema.
Los actores, casos de us0 y lineas de interconexibn componen un modelo de
caso de uso. La figura 7.1 le muestra estos simbolos.
FIGURA7.1
En un modelo de caso
de USO, unafigura
agregada representa a
un actor; una elipse Actor Actor
a un caso de us0 y una
linea asociativa repre-
senta la comunicacidn
entre el actor y el caso
de USO.
FIGURA7.2
Un modelo de caso de
us0 provenientede la
maquina de gaseosas
de la hora 6.
Cliente Cliente
O K
Reabastecer del
Representante
proveedor
x
Representante
del proveedor
. . . .
Recolector Recolector
La hora 6, “Introducci6n a 10s casos de uso”, present6 algunos escenarios alternativos del
caso de us0 “Comprar gaseosa”. En su descripcibn, tambiCn podria poner estos
escenarios de manera separada (“Sin el producto” y “Cambio incorrecto”), o podria
considerarlos como excepciones a1 primer escenario del caso de uso. La forma exacta
de hacerlo s610 le concernira a usted, su cliente y 10s usuarios.
Q G
Para rnostrar 10s pasos en un escenario, hay otra posibilidad que es utilizar
un diagrama de actividades UML sobre el cual hablaremos en la hora 11,
”Diagrarnas de actividades“.
Inclusion
Examinemos 10s casos de us0 “Reabastecer” y “Recolectar dinero” del ejemplo de la
hora 6. Ambos se inician mediante la apertura de la miquina, y finalizan con el cierre
y sellado de la misma. El caso de us0 “Exhibir el interior” se cre6 para capturar el primer
par de pasos; y “Cubrir el interior” para el scgundo. Tanto “Reabastecer”, como
“Recolectar dinero” incluyen este par de casos de uso.
Para representar a la inclusi6n utilizari el simbolo que us6 para la dependencia entre
clases: una linea discontinua con una punta de flecha que conecta las clases apuntando
hacia la clase dependiente. Justo sobre la linea, agregari un estereotipo: la palabra
“incluir” bordeada por dos pares de parkntesis angulares. La figura 7.3 le muestra la
relacidn de 4nclusibnn en el modelo de caso de us0 de la miquina de gaseosas.
En la notaci6n de texto que sigue 10s pasos en la secuencia, indicara 10s casos de us0
incluidos. El primer paso en el caso de us0 “Reabastecer” podria ser <<incluir>>(Exhibir
el interior).
Diagramas de casos de us0
79 I
FIGURA7.3
K- -K
Maquina de gaseosas
El modelo de caso de
us0 en la maquina
de gaseosas con
la inclusio’n.
Cliente
Cliente
?-
A
Representante
del proveedor
-
,
el interior
-K
Representante
del proveedor
Extension
K-
Recolector
3 Recolector
La hora 6 mostrd que el caso de us0 “Reabastecer” podria ser la base de otro
caso de uso: “Reabastecer de acuerdo a las ventas”. En lugar de s610 reabas-
tecer la mhquina de gaseosas para que todas las marcas tengan la misma cantidad
de latas, el representante podria anotar aquellas que se venden mejor y reabastecer acorde
con ello. Por lo que podemos decir que el nuevo caso de us0 extiende a1 original dado que
agrega otros pasos a la secuencia del caso de us0 original, que se conoce como el caso
de us0 base.
La extensidn s610 se puede realizar en puntos indicados de manera especifica
dentro de la secuencia del caso de us0 base. A estos puntos se les conoce
como puntos de extensidn. En el caso de us0 Reabastecer, 10s nuevos pasos (anotar
las ventas y abastecer de manera acorde) se dm’an luego que el representante haya
abierto la mhquina y estC listo para llenar 10s compartimientos de las marcas de gaseosas.
En este ejemplo, el punto de extensidn es “Llenar 10s compartimientos”.
Como la inclusidn, podrh concebir la extensidn con una linea de dependencia (linea
discontinua con punta una punta de flecha), junto con un estereotipo que muestra
“extender” entre parentesis angulares. Dentro del caso de us0 bhsico, el punto de extensidn
aparecerh debajo del nombre del caso de uso. La figura 7.4 le muestra la relacidn de
extensidn para “Reabastecer” y “Reabastecer de acuerdo a las ventas”, junto con la
inclusidn de relaciones para “Reabastecer” y “Recolectar dinero”.
I80 Hora 7
FIGURA7.4
Un diagrama de casos
10s compartimientos
de us0 que muestra
la extensidn y la
inclusidn. I -extender.
(llenar Ios
compartimientos)
Reabastecer de acuerdo
a las ventas
Generalizacion
Las clases pueden heredarse entre si y esto tambiCn se aplica a 10s casos de uso. En la
herencia de 10s casos de uso, el caso de us0 secundario hereda las acciones y significado
del primario, y ademis agrega sus propias acciones. Puede aplicar el caso de us0 secun-
dario en cualquier lugar donde aplique el primario.
En el ejemplo, debera imaginar un caso de us0 “Comprar un vaso de gaseosa” que se
hereda de “Comprar gaseosa”. El caso de us0 secundario tiene acciones como “agregar
hielo” y “mezclar marcas de gaseosas”. Modelar6 la generalizacih de casos de us0
de la misma forma que lo hace con las clases: con lineas continuas y una punta de flecha
en forma de trihgulo sin rellenar que apunta hacia el caso de us0 primario, como se
muestra en la figura 7.5.
FIGURA7.5
Un caso de uso puede
heredar el sentido y
comportamiento de
otro.
La relaci6n de generalizacibn puede establecerse entre actores, asi como entre casos de
uso. Quiz6 tenga personificados a1 representante del proveedor, a1 recolector y a1 agente
del proveedor. Si cambia el nombre del representante como Reabastecedor, tanto Cste
como el Recolector ser6n secundarios del Agente Proveedor, como muestra la figura 7.6.
FIGURA7.6
Como las clases
y 10s casos de USO,
Y Agente proveedor
A A
Reabastecedor Recolector
Diagramas de casos de us0 8’ I
Ag rupamiento
En ciertos diagramas de casos de uso, podria tener varios casos de us0 que querri organi-
zar. Esto puede ocurrir cuando un sistema consta de varios subsistemas. Otra posibilidad
seria cuando entrevista a 10s usuarios para obtener 10s requerimientos de un sistema. Cada
requerimiento podria ser representado como un caso de us0 por separado. Necesitari
alguna forma de ordenar 10s requerimientos por categorias.
La forma mis directa de organizar seria agrupar en un paquete 10s casos de us0 que se
relacionen. Recuerde que un paquete aparece como una carpeta tabular. Los casos de us0
agrupados aparecerin dentro de la carpeta.
FIGURA7.7
Un diagrama de clases
para el mundo I
’ sirve
de la consultoria. * Y
1 ..
’A 1A
.,* se presenta a * apareceen
1..
1 4 aparece en I..* Dam
K
FIGURA7.8
La jerarquia de
usuarios que
interactuarbn
con la LAN. EmDleado
Profundizacion
Elaboremos uno de 10s casos de us0 de alto nivel y generemos un modelo de caso de uso.
Una actividad extremadamente importante en una firma de consultoria es la generacibn
de propuestas, asi que examinemos el caso de us0 “Crear una propuesta”.
Las entrevistas con 10s consultores probablemente le indicaran cuantos pasos se necesitan
en este caso de uso. Para empezar, el actor inicial es un consultor. El consultor tiene
que iniciar una sesibn en la LAN y ser verificado como usuario valido. Luego tendrg que
utilizar alglin software integrado para oficina (procesador de textos, hoja de calculo y
graficos) para escribir la propuesta. En el proceso, el consultor podria volver a utilizar
porciones de propuestas previas. La firma de consultoria podria tener una directiva de
que un funcionario corporativo y otros dos consultores revisen una propuesta antes
de que llegue a manos del cliente. Para ello, el consultor almacena la propuesta en un
hrea central accesible mediante la LAN, y envia a 10s correos electrbnicos de 10s tres revi-
sores un mensaje que indique que la propuesta se encuentra lista, asi como su ubicacibn.
~ 8 4 Hora 7
FIGURA7.9
Un diagrama de cusos
de us0 de alto nivel
que representa una
LAN para una$rma
de consultoria.
x AN
x
Funcionario
corporativo
Adrninistrador
0 Crear
propuestas
x
de oficina
Adrninistrador
x
de proyecto
base de datos
Consultor
0 Utilizar
propuestas
previas
x
Adrninistrador
de red
Conectar
OO a Internet
Cornpartir
impresoras
Oficinista
Diagramas de casos de us0
85 I
En la secuencia anterior, es claro que ciertos pasos se repetir6n de un caso de us0 a otro,
y ello le llevarfi a otros casos de us0 (posiblemente incluidos) en 10s que tal vez no habia
pensado. Iniciar una sesidn y ser verificado son dos pasos que pueden incluir varios
casos de uso. Por ello, crear6 un caso de us0 “Verificar usuario” que incluya “Crear una
propuesta”. Otro par de casos de us0 son “Utilizar software de oficina” y “Finalizar sesidn
de la red”.
Podrian aparecer otros detalles del proceso de una propuesta cuando vea que las propues-
tas elaboradas para 10s clientes nuevos son diferentes a las de 10s clientes constantes. En
si, las propuestas a 10s nuevos clientes probablemente incluyen informaci6n promocional
de la empresa. Con 10s clientes constantes, no ser6 necesario enviar tal informacidn. Asi
pues, otro nuevo caso de uso, “Crear una propuesta para un cliente nuevo” extender6 a
“Crear una propuesta”.
La figura 7.10 le muestra el diagrama de casos de us0 que resulta de este analisis del caso
de us0 “Crear una propuesta”.
FIGURA7.10
El caso de us0 “Crear
una propuesta” en
la LAN de una firma
de consultoria.
.
Q
propuesta + ? i , de- oficina
a
I
.
<<extender,)’,,ccincIuir,,
Este ejemplo aterriza un punto importante, uno que habia destacado anteriormente: El
anfilisis del caso de us0 describe el comportamiento de un sistema. No toca a la imple-
mentacidn. iEsto es particularmente importante en este caso, dado que el diseiio de una
LAN supera, por mucho, el alcance de este libro!
Este es un buen momento para ver la estructura general del UML dado que ya ha avan-
zado en dos de sus principales aspectos: la orientacidn a objetos y el analisis de casos de
uso. Ha visto sus fundamentos y simbologia, asi como explorado algunas aplicaciones.
186 Hora 7
Elementos estructurales
Las clases, objetos, actores, interfaces y casos de us0 son cinco de 10s elementos es-
tructurales en el UML. Aunque tienen diversas diferencias (mismas que, como ejercicio,
deberi indicar), son similares en el sentido de que representan partes ya sea fisicas o
conceptuales de un modelo. Conforme avance en la parte I, veri otros elementos
estructurales.
Relaciones
La asociacibn, generalizacibn, dependencia y realizacibn, son las relaciones en el UML.
(La inclusi6n y extensi6n son dos tipos de dependencias.) Sin las relaciones, 10s modelos
UML no serfan m6s que listas de elementos estructurales. Las relaciones conectan a tales
elementos y de ese mod0 conectan 10s modelos con la realidad.
Agrupamiento
El paquete es el ~ n i c oelemento de agrupamiento en el UML, Cste le permite organizar
10s elementos estructurales en un modelo. Un paquete puede contener cualquier tiPo de
elemento estructural, y diferentes tipos a la vez.
Anotacion
La nota es el elemento de anotaci6n del UML; Cstas le permiten adjuntar restricciones,
comentarios, requerimientos y grhficos explicativos a sus modelos.
Diagramas de casos de us0 87 I
Extension
Los estereotipos o clisCs son dos estructuras que el UML proporciona para extender el
lenguaje. Le permiten crear nuevos elementos ademas de 10s existentes, de mod0 que
pueda modelar de forma adecuada la seccidn de realidad en la que se centrari su sistema.
...y mas
Ademis de 10s elementos estructurales, relaciones, agrupamientos, anotaciones y exten-
siones, el UML cuenta con otra categoria: elementos de comportamiento. Tales elementos
le muestran la forma en que las partes de un modelo (como 10s objetos) cambian con el
tiempo. Aun no sabe utilizarlos, per0 10s ver6 en la siguiente hora.
El Panorama
Ahora ya tiene una idea de la forma en que el UML se organiza. La figura 7.1 1 esquema-
tiza esta organizacidn por usted. Conforme vea las siguientes horas de la parte I, tenga
esta organizacidn en mente. Le hari adiciones conforme avance y este “panorama” le
mostrara ddnde agregar el nuevo conocimiento que adquiera.
La organizacidn del
UML, en te‘rrninos de
10s elernentos clue ha
utilizado hasta ahora.
0Caso de us0
Relaciones
Asociacion
D
-- Generalizacion
- - - - - - - -> Dependencia
- - - - - - - 5> Realizacion
Agrupacion Extension
c( Estereotipo>>
Paquete (Restriccion}
(valor etiquetado)
Anotacion
Hora 7
Resumen
El caso de us0 es una poderosa herramienta para obtener 10s requerimientos funcionales.
Los diagramas de casos de us0 agregan mayor poder: debido a que conciben 10s casos
de uso, facilitan la comunicacidn entre 10s analistas y 10s usuarios, y entre 10s analistas y
10s clientes. En un diagrama, el simbolo del caso de us0 es una elipse. El simbolo de un
actor es una figura adjunta. Una linea asociativa conecta a un actor con el caso de uso.
Los casos de us0 estin, por lo general, dentro de un recthngulo que representan el confin
del sistema.
La inclusidn se representa por una linea de dependencia con un estereotipo ccincluirn. La
extensidn se representa por una linea de dependencia con un estereotipo <<extender>>. Las
otras dos relaciones entre casos de us0 son generalizacidn, en la que un caso de us0 here-
da el sentido y acciones de otro, y el agrupamiento, mismo que organiza un conjunto de
casos de uso. La generalizacidn se representa por la misma linea que muestra la herencia
entre clases. El agrupamiento se representa por el icono del paquete.
Los diagramas de casos de us0 figuran con fuerza en el proceso de analisis. Se empieza
con entrevistas con 10s clientes para obtener diagramas de clases. Estos proporcionan una
base para entrevistar a 10s usuarios. Tales entrevistas dan por resultado un diagrama de
casos de us0 de alto nivel que muestra 10s requerimientos funcionales del sistema. Para
crear 10s modelos de caso de uso, profundice en cada caso de us0 de alto nivel. Los dia-
gramas resultantes de caso de us0 d a r h 10s fundamentos para el disefio y desarrollo.
Ahora que ha visto la orientacidn a objetos y 10s casos de uso, esti listo para ver el pano-
rama del UML. Los elementos que ha aprendido de las horas 2 a 7 se encuentran en estas
categorias: elementos estructurales, relaciones, organizacidn, anotacidn y extensidn. En la
siguiente hora Vera un elemento de la categoria restante: elementos de comportamiento.
Tenga en mente este panorama para que se le facilite el aprendizaje del UML.
Preguntas y respuestas
P Me di cuenta que en el diagrama de casos de us0 de alto nivel no mostr6 las
asociaciones entre 10s actores y 10s casos de uso. LA quC se debe?
R El diagrama de casos de us0 de alto nivel surge en las etapas iniciales de las entre-
vistas con 10s usuarios. En este punto, esto es mas o menos un ejercicio de recopi-
lacidn de ideas y el objetivo es encontrar 10s requerimientos generales, Ambit0 y
confines del sistema. Las asociaciones tendran mayor sentido cuando posteriores
entrevistas con 10s clientes le lleven a profundizar en cada requerimiento y que 10s
modelos de casos de us0 tomen forma.
Diagramas de casos de us0
89 1
P ;Por quC es importante tener en cuenta tal ”panorama” del UML? ;No bastaria
con que sepa utilizar cada tip0 de diagrama?
R Si usted comprende la organizacidn del UML, podri manejar situaciones que no
haya encontrado antes. Podri reconocer cuando un elemento UML existente no haga
el trabajo, y sabri cdmo construir uno nuevo. TambiCn sabri cdmo crear un diagrama
hibrido si llegara a ser la Gnica forma de presentar claramente un modelo.
Taller
En este taller continuari con el conocimiento obtenido en la hora 6 y lo usarh como base
para el conocimiento de la hora 7. El objetivo es utilizar su nuevo conocimiento para
concebir 10s casos de us0 y sus relaciones. Las respuestas aparecen en el ApCndice A,
“Respuestas a 10s cuestionarios”.
Cuestionario
1. Mencione dos ventajas de concebir un caso de uso.
2. Describa la generalizaci6n y el agrupamiento, las relaciones entre 10s casos de us0
que ha visto durante esta hora. Mencione dos situaciones en las que usted agrupm’a
10s casos de uso.
3. LCuiles son las similitudes entre las clases y 10s casos de uso? LCuiles las
diferencias?
Ejercicios
1. Bosqueje el diagrama de un modelo de caso de us0 para un control remoto de una
televisidn. Asegdrese de incluir todas las funciones del control remoto como casos
de us0 para su modelo.
2. En el segundo ejercicio de la hora 6 indic6 a 10s actores y casos de us0 de un al-
macCn de cdmputo. Esta vez, dibuje un diagrama de casos de us0 de alto nivel con
base en el trabajo que realizd en tal ejercicio. Luego, genere un modelo de caso
de us0 para a1 menos uno de 10s casos de us0 de alto nivel. En su trabajo, intente
incorporar las relaciones ccincluir,, o <<extender,que Sean necesarias.
HORA 8
Diagramas de estados
Hasta ahora ha comprendido 10s importantes elementos estructurales del
UML. Ahora ver5 un elemento que le muestra c6mo modificar 10s procedi
mientos con el tiempo.
En esta hora se trataran 10s siguientes temas:
QuC es un diagrama de estados
Sucesos, acciones y condiciones de seguridad
Subestados: secuenciales y concurrentes
Estados hist6ricos
Por quC son importantes 10s diagramas de estados
Adici6n del diagrama de estados a1 panorama del UML
A1 finalizar la hora anterior, dije que aqui tratm’a una nueva cate-
goria de elementos con la cual no habia trabajado, el elemento de
comportamiento, Cste muestra la forma en que las partes de un modelo UML
cambian con el tiempo. Vera un miembro en particular de 1
diagrama de estados.
I92 Hora 8
Cada aiio trae consigo nuevos estilos en ropas y autombviles, las estaciones cambian
el color de las hojas de 10s arboles y cada aiio que pasa deja entrever el crecimiento
y madurez de 10s nifios. A1 pasar el tiempo y conforme suceden las cosas, hay cambios
que afectan a 10s objetos que nos rodean.
Esto tambiCn se aplica en cualquier sistema. Conforme el sistema interactha con 10s
usuarios y (posiblemente) con otros sistemas, 10s objetos que lo conforman pasaran por
cambios necesarios para ajustar las interacciones. Si va a modelar sistemas, necesitari
contar con un mecanismo para 10s cambios en el modelo.
El diagrama de estados UML captura este tip0 de cambios. Presenta 10s estados
en 10s que puede encontrarse un objeto junto con las transiciones entre 10s
estados, y muestra 10s puntos inicial y final de una secuencia de cambios de estado.
Si mbologia
La figura 8.1 le muestra el recthgulo de vkrtices redondeados que representa a un estado,
junto con una linea continua y una punta de flecha, mismas que representan a una tran-
sicibn. La punta de la flecha apunta hacia el estado donde se hara la transicibn. La figura
tambiCn muestra un circulo relleno que simboliza un punto inicial y la diana que repre-
senta a un punto final.
Diagramas de estados 93 I
FIGURA 8.1
Los simbolos UML en
un diagrama de estados.
El icono para el estado
es un rectdngulo de
v&rticesredondeados,
y el simbolo de una
transicidn es una li‘nea
continua y una punta
de Jecha. Un circulo
relleno se interpreta
como el punto inicial de
una secuencia de esta-
dos, y una diana repre-
senta a1 punto final.
FIGURA8.2
Puede subdividir el
f-LL-1
simbolo del estado Variables de estado
en areas que muestren
el nombre, variables y Actividades
actividades del estado.
entraddfax finalizado
saliddiniciar fax
hacedmostrar Fecha
hacedmostrar Hora
Sucesos y acciones
TambiCn puede agregar ciertos detalles a las lineas de transicion. Puede indicar
un suceso que provoque una transici6n (desencadenar un suceso), y la actividad
de cdmputo (la accidn) que se ejecute y haga que suceda la modificaci6n del estado.
A 10s sucesos y acciones 10s escribiri cerca de la linea de transicidn mediante una dia-
gonal para separar un suceso desencadenado de una accibn. En ocasiones un evento
causari una transicidn sin una accidn asociada, y algunas veces una transicih sucederi
dado que un estado finalizari una actividad (en lugar de hacerlo por un suceso). A este
tip0 de transicidn se le conoce como transicidn no desencadenada. La GUI (interfaz
grifica de usuario) con que interactde le dari ejemplos de detalles de la transicibn. Por el
momento, asumamos que la GUI puede establecerse en uno de tres estados:
Inicializacidn
Operaci6n
Apagar
Diagramas de estados 95 I
>
Operacion
Apagado
>
Apagar
+@I
grafica del usuario hacer/Arrancar
Condiciones de seguridad
La anterior secuencia de estados de la GUI deja mucho que desear. Por ejemplo: si deja
solo su equipo o si realizara alguna actividad en la que no tocari a1 ratdn o a1 teclado,
podria aparecer un protector de pantallas que evitaria el desgaste de su pantalla. Para
decir esto en tCrminos de cambio de estado, si ha pasado cierto tiempo sin que haya
interaccidn con el usuario, la GUI hari una transicidn del estado Operacidn a un estado
que no aparece en la figura 8.4: el estado de Protector de pantallas.
El intervalo se especifica en el panel de control de su sistema operativo (Windows en
este caso). Por lo general es de 15 minutos. Cualquier opresidn de una tecla o
movimiento del ratdn provocari una transicidn del estado Protector de pantallas a1
estado Operacidn.
El intervalo de 15 minutos es una condicidn de seguridud cuando se llega a
ella, se realiza la transicidn. La figura 8.5 muestra el diagrama de estados de la
FIGIJRA
El 8.5
diagrama
de estados para
la GUI, con el estado
I-{ 0 [-k
GUI con el estado Protector de pantalla y la condicidn de seguridad aiiadida. Vea que
la condicidn de seguridad se establece como expresidn booleana.
la pc lnicializacion
hacer/Arrancar
Operacion
v
Apagado
Protector de pantalla
y la condicidn
de seguridad. [lapso transcurrido] II Teclazo o movimiento
del raton
Protector
I96 Hora 8
Subestados
Nuestro modelo de la GUI aun esta algo vacio. El estado Operacidn, en particular, es
mucho mis sustancioso de lo que he indicado en las figuras 8.4 y 8.5.
Cuando la GUI estfi en el estado Operacibn, hay muchas cosas que ocurren tras bambali-
nas, aunque no Sean particularmente evidentes en la pantalla. La GUI aguarda de forma
constante a que usted haga algo (oprimir una tecla, mover el raton u oprimir uno de sus
botones). Luego, deberi registrar tales acciones y modificar lo que se despliega para
reflejarlas en la pantalla (como mover el cursor cuando usted mueva el ratdn, o mostrar
una “a” cuando usted oprima la tecla “a”).
Con ello la GUI atravesari por varios cambios mientras se encuentre en el
estado Operaci6n. Tales cambios seran cambios de estado. Dado que estos
estados se encuentran dentro de otros, se conocerin como subestados. Hay dos tipos
de subestados: secuencial y concurrente.
Subestados secuenciales
Como su nombre lo indica, 10s subestados secuenciales suceden uno detras de otro. Si
retomamos 10s subestados mencionados con anterioridad dentro del estado Operaci6n
de la GUI, tendra la siguiente secuencia:
A la espera de acci6n del usuario
Registro de una acci6n del usuario
Representacidn de la accidn del usuario
La acci6n del usuario desencadena la transicidn a partir de A la espera de accidn del
usuario hacia Registro de una acci6n del usuario. Las actividades dentro del Registro
trascienden de la GUI hacia la Representacidn de la accion del usuario. DespuCs del
tercer estado, la GUI vuelve a iniciar A la espera de acci6n del usuario. La figura 8.6
le muestra c6mo representar 10s subestados secuenciales dentro del estado Operaci6n.
FIGURA8.6
Suhestados secuencia-
les dentro del estado
Operacidn de la GUI. A la espera
de la accion
del usuario del usuario del usuario
Subestados concurrentes
Dentro del estado Operacidn, la GUI no s610 aguarda a que usted haga algo. TambiCn
verifica el crondmetro del sistema y (posiblemente) actualiza el despliegue de una
aplicaci6n luego de un interval0 especifico. Por ejemplo, una aplicacidn podria incluir
un reloj en pantalla que tuviera que actualizar la GUI.
Diaqramas de estados 97 I
Todo esto sucede a1 mismo tiempo que la secuencia que ya indiquC. Aunque cada secuen-
cia es, claro, un conjunto de subestados secuenciales, las dos secuencias son concurrentes
entre si. Puede representar la concurrencia con una linea discontinua entre 10s estados
concurrentes, como en la figura 8.7.
FIGURA8.7 Operacion
Los subestados con-
currentes suceden
a1 mismo tiempo. de la accion
Una linea discontinua del usuario del usuario del usuario
10s separa.
........................................
Actualizar
cronometro
despliegue
del sistema
Esta d0 s historicos
Cuando se activa su protector de pantallas y mueve su rat6n para regresar a1 estado
Operaci6n LquC ocurre? LAcaso su pantalla retoma el estado inicial, como si apenas se
hubiera encendido? LO luciri tal como la dej6 antes de que se activara el protector de
pantallas?
Es obvio, si el protector de pantallas provocara que la pantalla regresara a su estado ini-
cia1 de operacibn, la idea del protector de pantallas seria contraproducente. Los usuarios
podrian perder su trabajo y tendrian que reiniciar una sesi6n nuevamente.
El diagrama de estados hist6ricos captura esta idea. El UML proporciona un simbolo que
muestra que un estado compuesto recuerda su subestado activo cuando el objeto trasciende
fuera del estado compuesto. El simbolo es la letra “H’ encerrada en un circulo que se
conecta por una linea continua a1 subestado por recordar, con una punta de flecha que
apunta a tal subestado. La figura 8.8 muestra este simbolo en el estado Operaci6n.
I98 Hora 8
FIGURA8.8
El estado histdrico,
simbolizudo con la “H”
dentro del circulo, le
muestra que un estudo A la espera Registro de Representacion
compuesto recuerdu
su subestado uctivo
de accion
del usuario
Action
’una accion
del usuario
de la accion
del usuario
cuundo el objeto
trasciende fuera de
tal estudo compuesto. Verificar el [Lapso transcurrido]
cronornetro
> Actualizar
despliegue
del sisterna <
[Lapso transcurrido] I J I
I
I
f
Teclazo o
novirniento
del raton
En el diagrama de estados no he tratado con las ventanas que estan abiertas por
otras ventanas (es decir, con subestados anidados en otros). Cuando un estado
histdrico recuerda 10s subestados en todos 10s niveles de anidaci6n (como el estado
Operacidn de Windows lo hace), el estado histdrico es profundo. Si sdlo recuerda el
subestado principal, el estado histdrico sera supe@ciul. Un estado histdrico profundo
se representa agregando un asterisco (*) a la “H’ en el circulo (H”).
Mensajes y sefiales
En el ejemplo, el suceso desencadenado que provocd la transicidn de Protector de pantalla
a Operacidn es la opresidn de una tecla, un movimiento del ratdn o una opresidn de uno
de sus botones. Cualquiera de estos sucesos es, en efecto, un mensaje del usuario a la
GUI. Esto es un concept0 importante dado que 10s objetos se comunican mediante el
envio de mensajes entre si. En este caso, el suceso desencadenado es un mensaje de un
objeto (el usuario) a otro (la GUI).
Diagramas de estados 99 I
Adiciones al panorama
Ahora puede agregar 10s “Elementos de comportamiento” a1 panorama del UML. La
figura 8.9 le muestra la imagen con el diagrama de estados incluido.
I100 Hora 8
FIGURA8.9
El panorama del
UML ahora incluye
Elementos estructurales
-I
Elernentos de comportamiento
[ Estado
un elemento de com- I
portarniento: el dia-
grams de estados.
La organizacidn del
0Caso de us0
Agrupacion Extension
Estereotipon
Paquete (Restriccion}
[valor etiquetado}
Anotacion
L.'4
Resumen
Los objetos en 10s sistemas modifican sus estados como respuestas a sucesos y a1 tiempo.
El diagrama de estados de UML captura estos cambios de estado. Un diagrama de estados
se enfoca en 10s cambios de estado en un solo objeto. Un recthngulo de vCrtices redon-
deados representa a un estado, y una linea continua con una punta de flecha representa
una transicidn de un estado a otro.
El simbolo del estado contiene el nombre del mismo y puede tener variables y actividades
del estado. Una transici6n puede suceder como respuesta a un suceso desencadenado,
e implicar una respuesta o accibn. Una transicidn tambiCn puede ocurrir por la actividad
en un estado: una transition que ocurre de esta forma se conoce como transicidn no desen-
cadenada. Finalmente, una transici6n puede ocurrir cuando se cumple una condici6n
particular, o condicidn de seguridad.
En ocasiones, un estado consta de subestados. Los subestados pueden ser secuenciales
(ocurrir uno despuCs del otro) o concurrentes (ocurrir a1 mismo tiempo). Un estado que
consta de subestados se conoce como estado compuesto. Un estado hist6rico indica que un
estado compuesto recordarh su subestado cuando el objeto trascienda de este estado com-
puesto. Un estado historic0 puede ser superficial o profundo. Tales tkrminos son propios
de 10s subestados anidados. Un estado historic0 superjicial recuerda so10 el subestado
principal. Un estado historic0 profundo recuerda todos 10s niveles de 10s subestados.
I
Diagramas de estados 101 I
Preguntas y respuestas
P iCua1 es la mejor manera de empezar a crear un diagrama de estados?
R Es muy parecido a crear un diagrama de clases o un modelo de caso de uso. En el
diagrama de clases, listara todas las clases y luego realizara las asociaciones entre
ellas. En el diagrama de estados, primer0 listara 10s estados del objeto, y luego se
enfocarh en las transiciones. Conforme avance en cada transicibn, debera prever si
un suceso desencadenado lo activarh y si se realizarii alguna accibn.
P iCada diagrama de estados debe tener un estado final (el que se representa
por la diana)?
R No. Un objeto que nunca queda inactivo jamhs tendra un estado final.
P iAlguna sugerencia para diseiiar un diagrama de estados?
R Intente arreglar 10s estados y transiciones para minimizar el cruzamiento
de lineas. Uno de 10s objetivos de este diagrama (y de cualquier otro) se centra
en la claridad. Si las personas no pueden comprender 10s modelos que Cree, nadie
10s usarh y sus esfuerzos (no importa quC tan minuciosos hayan sido) habran sido
infructuosos.
Taller
El cuestionario y 10s ejercicios le harhn trascender al estado “Aprendizaje de diagramas
de estados”. Como siempre, encontrarh las respuestas en el ApCndice A, “Respuestas a
10s cuestionarios”.
Cuestionarios
1. LDe quC forma difiere un diagrama de estados de uno de clases, de objetos o de
caso de uso?
2. Defina 10s siguientes tknninos: transicidn, suceso y accidn.
3. LQUCes una transicidn no desencadenada?
4. LCual es la diferencia entre 10s subestados secuenciales y 10s concurrentes?
I102 Hora 8
Eje rcicios
1. Suponga que diseiiarfi un tostador. Cree el diagrama de estados que controle 10s
estados del pan en el tostador. Incluya 10s sucesos desencadenados, acciones y
condiciones de seguridad necesarios.
2. Cada vez que un objeto envie una seiial, se crearfi un objeto Seiial y sera transmi-
tido. En Windows, hay varias seiiales posibles a partir de la GUI. Suponga que la
seiial (el tipo de seiial que envie a Windows) sea una clase. (iQuC tipo de clase es?)
Cree un diagrama de clases de las posibles sefiales y muestre toda la herencia
inherente.
3. La figura 8.7 le muestra 10s subestados concurrentes dentro del estado Operaci6n de
la GUI. Dibuje un diagrama del estado Protector de pantalla que incluya 10s subesta-
dos concurrentes.
9
Diagramas de secuencias
Los diagramas de estados se enfocan a 10s diferentes estados de un objeto.
Esto es s610 una pequeiia parte del cuadro. El diagrama de secuencias del
UML establece el siguiente paso y le muestra la forma en que 10s objetos
se comunican entre si a1 transcurrir el tiempo.
En esta hora se trataran 10s siguientes temas:
QuC es un diagrama de secuencias
LaGUI
Diagramas de instancias y diagramas genkricos
Us0 de “si” y “mientras”
Creaci6n de un objeto en la secuencia
Representaci6n de la recursividad
Diagramas de secuencias en el panorama del UML
Los diagramas de estados que vio en la hora anterior se centran en un objeto
y muestran 10s cambios por 10s que pasa dicho objeto.
I 104 Hora 9
Objetos
Los objetos se colocan cerca de la parte superior del diagrama de izquierda a
derecha y se acomodan de manera que simplifiquen a1 diagrama. La extensi6n
que esti debajo (y en forma descendente) de cada objeto seri una linea discontinua co-
nocida como la lfnea de vida de un objeto. Junto con la linea de vida de un objeto se
encuentra un pequeiio rectingulo conocido como activacidn, el cual representa la eje-
cuci6n de una operation que realiza el objeto. La longitud del rectangulo se interpreta
como la duracion de la activaci6n. La figura 9.1 muestra un objeto, su linea de vida y su
activacih.
FIGURA9.1
Representacidn de un
objeto en un diagrama
de secuencias.
Mensaje
Un mensaje que va de un objeto a otro pasa de la linea de vida de un objeto a la de otro.
Un objeto puede enviarse un mensaje a si mismo (es decir, desde su linea de vida hacia
su propia linea de vida).
Un mensaje puede ser simple, sincrdnico, o asincrdnico. Un mensaje simple es la trans-
ferencia del control de un objeto a otro. Si un objeto envia un mensaje sincr6nico, espe-
rari la respuesta a tal mensaje antes de continuar con su trabajo. Si un objeto envia un
mensaje asincrhico, no esperari una respuesta antes de continuar. En el diagrama de
secuencias, 10s simbolos del mensaje varian, por ejemplo, la punta de la flecha de un
mensaje simple esti formada por dos lineas, la punta de la flecha de un mensaje sin-
cr6nico esta rellena y la de un asincrhico tiene una sola linea, como se aprecia en la
figura 9.2.
!
Tiempo
El diagrama representa a1 tiempo en direccidn vertical. El tiempo se inicia en la parte
superior y avanza hacia la parte inferior. Un mensaje que est6 mas cerca de la parte supe-
rior ocurrira antes que uno que estC cerca de la parte inferior.
Con ello, el diagrama de secuencias tiene dos dimensiones. La dimensidn horizontal es la
disposici6n de 10s objetos, y la dimensi6n vertical muestra el paso del tiempo. La figura
9.3 muestra a1 conjunto bisico de simbolos del diagrama de secuencias, con 10s simbolos
en funcionamiento conjunto. La figura muestra a un actor que inicia la secuencia,
aunque, en sentido estricto, la figura adjunta no es parte del conjunto de simbolos del
diagrama de secuencias.
FIGURA 9.3
En un diagrarna de
secuencias 10s objetos
se colocan de izquierda
a derecha en la parte
superior Cada linea
de vida de un objeto es
R?! [3
;I,
Para ver en accidn a esta importante herramienta del UML, apliquCmosla en 10s ejemplos
que hemos visto en las horas anteriores. Cada aplicacidn le mostrari algunos conceptos
importantes que se relacionan con 10s diagramas de secuencias.
I 106 Hora 9
La GUI
En la hora anterior desarrollo 10s diagramas de estados que muestran 10s cambios por 10s
que pasa una GUI. Ahora dibujara un diagrama de secuencias que represente las interac-
tividades de la GUI con otros objetos.
La secuencia
Suponga que el usuario de una GUI presiona una tecla alfanumerica; si asumimos que
utiliza una aplicacion como un procesador de textos, el caracter correspondiente debera
aparecer de inmediato en la pantalla. iQuC ocurre tras bambalinas para que esto suceda?
1. La GUI notifica a1 sistema operativo que se oprimi6 una tecla.
2. El sistema operativo le notifica a la CPU.
3. El sistema operativo actualiza la GUI.
4. La CPU notifica a la tarjeta de video.
5. La tarjeta de video envia un mensaje a1 monitor.
6. El monitor presenta el carkter alfanumkrico en la pantalla, con lo que se har5
evidente a1 usuario.
Todo esto ocurre con tanta rapidez que olvidamos que todo ello se realiza. (iSi acaso
pensabamos que ocurria!)
El diagrama de secuencias
La figura 9.4 representa el diagrama de secuencias de la GUI. Como ve, 10s mensajes
son asincronicos: ninguno de 10s componentes aguarda nada antes de continuar. A1 traba-
jar con algunas aplicaciones de Windows, tal vez haya sentido algunos de 10s efectos de
la comunicacih asincrbnica, particularmente en una maquina lenta. Cuando teclea en
un procesador de textos, en ocasiones no ve aparecer en la pantalla el caracter correspon-
diente a la tecla que haya oprimido sino hasta despuCs de haber oprimido algunas mas.
Diagramas d e secuencias 107 I
FIGURA 9.4
Un diagrarna de se-
cuencias que rnuestra
la forrna en que la
GUI interacciona
con otros objetos.
x Teclazo
-1
1- I'I
En ocasiones, es muy instructivo mostrar 10s estados de uno o varios de 10s objetos en
el diagrama de secuencias. Dado que ya ha analizado 10s estados de la GUI (en la hora
anterior), esto es f k i l de hacer. La figura 9.5 le muestra un hibrido: el diagrama de
secuencias de la GUI con 10s estados de la GUI. Observe que la secuencia se origina
y finaliza en el estado Operativo de la GUI, como podria esperarlo.
FIGURA9.5
Un diagrarna de
0
1
x
secuencias puede lnicializacion
rnostrar 10s estados
de un objeto.
Operativo
.
.'
:retroalimentacioi
f
0
1 Apagar
I108 Hora 9
El caso de us0
iQuC es exactamente lo que representa un diagrama de secuencias? En este ejemplo,
muestra las interacciones de objetos que se realizan durante un escenario sencillo: la
opresidn de una tecla. Este escenario podria ser parte de un caso de us0 llamado “Ejecutar
la opresidn de una tecla” (vea la figura 9.6). A1 representar grificamente las interacciones
del sistema en el caso de uso, el diagrama de secuencias habri, en efecto, “delineado” el
caso de us0 dentro del sistema.
x
FIGURA9.6
El caso de uso repre-
sentado grbjicamente
por el diagrama Ejecutar la opresion
de secuencias de de una tecla
lajigura 9.4.
Usuario Usuario
I I
Instancias y genericos
El ejemplo anterior comenzd con un diagrama de estados. Este otro ejemplo empieza
con un caso de uso. “Comprar gaseosa” fue uno de 10s casos de us0 del ejemplo de la
maquina de gaseosas en las horas 6, “Introduccidn a 10s casos de uso”, y 7, “Diagramas
de casos de USO”.
FIGURA9.7 h
V lnsercion
I:Fachadal I :Registrador I (:Dispe;sadorl
Este diagrama de se-
(Alimentacion) ’
cuencias modela tan
sdlo el mejor esce-
?n
A E l e c c i o n (Selj ’ Enviar
FIGURA9.8 0 [:Fachadal
El diagrama de lnsercion
.,.’.
:I,
(Alirnentacion) I
. ’
secuencias luego
de agregar el ,I I
:Enviar (altmentacion)
I
..
,I I
I.
I
I
I
’.
.
,
: :
II
escenario de “Monto II IAlirnentacion = Preciol
.
):
I !. \ I
incorrecto ” a1 caso
: Despachar (Seleccion) [Alirnentacion >Prec6 :
Verificar carnbio
de us0 “Comprar
[Carnbio en reserva]
gaseosa ”. , Regresar carnbio [Carnbio en reserva] 1
FIGURA9.9 0 I:fachadal
Insertion
El diagram de
secuencias gene‘rico
[Alimentaclon = Precio]
de la ma’quina de Verificar (Selection)
gaseosas luego [Seieccion en existencia]
de agregarle
[Selection agatada]
el escenario I ’ Mostrar (mensale)
“Sin marca” I -
a la figura 9.8.
Si empieza a pensar que un diagrama de secuencias esta implicit0 en cada caso de uso,
ya tiene la idea.
~ ~
FIGURA9.10 E
El diagrama de
secuencias del caso
de us0 "Crear una
. ...
I.
, ,
?' .' :,
a- .0
'[trabajar]
war aplicaciones m
..
Iflnaiizado]
cerrar y almacenar
cerrar
' cerrado
; cerrado :
FIGURA9.1 1 I:Calculladora I
Cdmo reuresentar
InteresO
la recursividad
en un diagrama
de secuencias.
I
I
Adiciones al panorama
Ahora podri agregar otro diagrama a su panorama del UML. Dado que se refiere a1 com-
portamiento de 10s objetos, el diagrama de secuencias iria bajo la categoria “Elementos
de comportamiento”. La figura 9.12 actualiza su creciente panorama.
0Caso de us0
Relaciones
Asociacion
D
-, Generalizacion
- - - - - - - - + Dependencia
- - - - - - - - D Realizacion Secuencia
Agrupacion Extension
’ Estereotipo”
Paquete (Restriccion)
{valor etiquetado)
Anotacion
17
Resumen
El diagrama de secuencias UML agrega la dimensidn del tiempo a las interactividades
de 10s objetos. En el diagrama, 10s objetos se colocan en la parte superior y el tiempo
avanza de arriba hacia abajo. La linea de vida de un objeto desciende de cada uno de
ellos. Un pequeiio rectingulo de la linea de vida de un objeto representa una activacidn
(la ejecucidn de una de las operaciones del objeto). Puede incorporar 10s estados de un
objeto colocihdolos junto a su linea de vida.
Los mensajes (simples, sincrdnicos y asincrdnicos) son flechas que conectan a una linea
de vida con otra. La ubicacidn del mensaje en la dimensidn vertical representari el mo-
mento en que sucede dentro de la secuencia. Los mensajes que ocurren primer0 esthn
mis cerca de la parte superior del diagrama, y 10s que ocurren despuCs cerca de la parte
inferior.
I116 Hora 9
Un diagrama de secuencias puede mostrar ya sea una instancia (un escenario) de un caso
de uso, o puede ser genCrico e incorporar todos 10s escenarios de un caso de uso. Los
diagramas de secuencias genCricos con frecuencia dan la oportunidad de representar
instrucciones condicionales y ciclos “mientras”. Bordee a cada condicidn con corchetes,
y haga lo mismo en un ciclo “mientras” per0 anteceda a1 corchete izquierdo con un
asterisco.
Cuando una secuencia incluya la creacidn de un objeto, lo representar6 como un recthn-
gulo de la forma acostumbrada. Su posicidn en la dimensidn vertical representarhn el
momento en que se cred.
En ciertos sistemas, una operacidn puede invocarse a si misma. A esto se le conoce como
recursividud. Se representa con una flecha que sale de la activacidn hacia si misma, y un
pequeiio rectangulo sobrepuesto a la activacidn.
Preguntas y respuestas
P El diagrama de secuencias parece que podria ser util para miis que tan s610 el
analisis de sistemas. iPuedo usarlo para mostrar la interactividad en una
empresa?
R Asi es. Los objetos pueden ser 10s actores principales, y 10s mensajes pueden ser
simples transferencias de control.
P Usted indic6 la forma de representar la creaci6n de objetos en un diagrama de
secuencias. iLos objetos tambih se destruyen, y si es asi, c6mo lo represento?
R Los objetos, en efecto, se destruyen. Podr6 representar la destruccidn de un objeto
con una “X’ a1 final de la linea de vida correspondiente a tal objeto.
Taller
Ahora que ha vuelto hacia 10s objetos y ha visto sus interactividades, venga y responda
algunas preguntas y realice algunos ejercicios para reafirmar su conocimiento de 10s dia-
gramas de secuencias. Encontrarh las respuestas en el ApCndice A, “Respuestas a 10s
cuestionarios”.
Cuestionario
1. Defina mensaje sincro’nico y mensaje asincrdnico.
2. En un diagrama de secuencias genCrico jc6mo representm’a el control de flujo
implicito en una instrucci6n condicional?
3. iC6mo representm’a el control de flujo implicito en una instruccidn de ciclo
“mientras”?
4. En un diagrama de secuencias jcdmo representaria a un objeto reciCn creado?
Diagramas de secuencias 117 I
Ejercicios
1. Cree un diagrama de secuencias de instancias que muestre lo que ocurre cuando
envia con Cxito un fax. Esto es, modele las interactividades entre objetos en el
mejor escenario del caso de us0 “enviar fax” de una miquina de fax. Incluya 10s
objetos de la miquina que envia, la que recibe, el fax y un “intercambio” central
I
i que encause a 10s faxes y a las llamadas telefbnicas.
2. Cree un diagrama de secuencias gentrico que incluya escenarios infructuosos
(linea ocupada, error de la miquina que envia), asi como del mejor escenario
indicado en el ejercicio 1.
“*-
.a-
H ORA 10
Diagramas
de colaboraciones
Ahora veremos lo correspondiente a un diagrama que es similar a1 que
vimos en la hora anterior. Este tambiCn muestra la colaboraci6n entre 10s
objetos, per0 de una forma significativamente diferente del diagrama de
secuencias.
En esta hora se tratarh 10s siguientes temas:
QuC es un diagrama de colaboraciones
C6mo aplicar un diagrama de colaboraciones
Us0 de “si“ y “mientras”
Anidamiento
Objetos activos y concurrencia
Sincronizaci6n
D6nde encajan 10s diagramas de colaboraciones en el UML
1120 Hora 10
Los diagramas de colaboraciones muestran la forma en que 10s objetos colaboran entre
si, tal como sucede con un diagrama de secuencias. Muestran 10s objetos junto con 10s
mensajes que se envian entre ellos. Si el diagrama de secuencias hace eso, jpor quC
el UML requeriria otro diagrama?, LquC no son lo mismo?, jno es una pCrdida de
tiempo?
Ambos tipos de diagrama son similares. De hecho, son sema'nticarnente equivalentes.
Esto significa que representan la misma informaci6n, y podri convertir un diagrama
de secuencias en un diagrama de colaboraciones equivalente y viceversa.
Como se infiere, es litil contar con ambas formas. Los diagramas de secuencias destacan
la sucesi6n de las interacciones. Los diagramas de colaboraciones destacan el context0
y organizaci6n general de 10s objetos que interactlian. He aqui otra forma de encontrar
la diferencia: el diagrama de secuencias se organiza de acuerdo a1 tiempo, y el de colabo-
raci6n de acuerdo a1 espacio.
FIGURA 10.1
Simbologia del
diagrama de
\
colaboraciones.
,\
3:Actualizar()
:Nornbre3
~
-
/
I :NornbreZI
Z:Modificar()
La GUI
Este ejemplo es el caso mis directo. Un actor inicia la secuencia de interaccidn a1 oprimir
una tecla, con lo que 10s mensajes ocurririn de manera secuencial. Tal secuencia (a partir
de la hora anterior) es:
1. La GUI notifica a1 sistema operativo que se oprimi6 una tecla.
2. El sistema operativo le notifica a la CPU.
3. El sistema operativo actualiza la GUI.
4. La CPU notifica a la tarjeta de video.
5. La tarjeta de video envia un mensaje a1 monitor.
6. El monitor presenta el caricter alfanumkrico en la pantalla, con lo que se harA
evidente a1 usuario.
La figura 10.2 muestra la forma de representar esta secuencia de interacciones en un
diagrama de colaboraciones. El diagrama muestra la figura agregada que representa a1
usuario que inicia la secuencia, aunque esta figura no es parte de la simbologia de este
diagrama.
FIGURA10.2
Un diagrama de
colaboraciones para
el ejemplo de la GUI.
9-
.
:Monitor
Z:actualizar(tecleo)
5:rnostrar(tecleo)
I122 Hora 10
Cambios de estado
Puede mostrar 10s cambios de estado en un objeto en un diagrama de colaboraciones.
En el rectingulo del objeto indique su estado. Agregue otro rectingulo a1 diagrama que
haga las veces del objeto e indique el estado modificado. Conecte a 10s dos con una linea
discontinua y etiquete la linea con un estereotipo ccse toma>>.
La figura 10.3 ilustra un cambio de estado para la GUI, que muestra que el estado de
inicializacibn se convierte en el estado operativo.
FIGURA10.3
Un diugrumu de
coluboruciones puede -
incorporur cumbios
de estudo.
6:retroalirnentacion
:Monitor
5: mostrar(tec1eo) t 2:actualizar(tecleo)
La maquina de gaseosas
Las cosas se hacen mis interesantes cuando aplica las condiciones a una situaci6n real,
como lo hizo en la hora anterior con la miquina de gaseosas. Iniciemos con la mejor
situaci6n del caso de us0 “Comprar gaseosa”, donde la secuencia es:
1. El cliente inserta el dinero en la alcancia que se encuentra en la fachada de la
miquina.
2. El cliente hace su elecci6n.
3. El dinero viaja hacia el registrador.
4. El registrador verifica si la gaseosa elegida esti en el dispensador.
5. Dado que es la mejor situacibn, asumimos que si hay gaseosas, y el registrador
actualiza su reserva de efectivo.
6. El registrador hace que el dispensador entregue la gaseosa en la fachada de la
miquina.
El diagrama de colaboraciones es directo, como lo muestra la figura 10.4.
Diagramas de colaboraciones 123 1
FIGURA10.4
El diugramu de colubo-
raciones para el
+ insertar(alimentacion, seleccion)
mejor cuso de
“Comprur gaseosa ”.
i:agregar(alimentacion, seleccion)
:Despachador :Registrador
Z:despachar(seleccion)
FIGURA10.5
El diagrarna de insertar(a1irnentacion.seleccion)
colaboraciones con
parte de la situacidn
“rnontode dinero 1 .agregar(alirnentacion,seleccion)
inadecuado ”.
FIGURA10.6
El diagrama de
colaboraciones
“Cornprargaseosa”
con toda la situaci6n 4:despachar
“montode dinero
-
inadecuado ”.
:Reqistrador
En el taller, a1 finalizar esta hora, habri un ejercicio que le pediri que complete el diagrama
de colaboraciones mediante la adici6n de la situaci6n (‘no hay gaseosa”.
Creacion de un objeto
Para mostrar la creaci6n de objetos, volverC a1 caso de uso “Crear propuesta” de la firma
de consultoria. Una vez mis, la secuencia que modelari seri:
1. El consultor buscari en el irea de almacenamiento centralizada de la red una pro-
puesta adecuada en la cual basarse.
2. Si el consultor localiza una propuesta adecuada, la abriri y en el proceso abriri la
aplicaci6n de oficina. El consultor guardari el archivo bajo un nuevo nombre, con
lo que creari un nuevo archivo para la nueva propuesta.
3. Si el consultor no encuentra una propuesta, abriri la aplicacidn de oficina y generari
un nuevo archivo.
Diagramas de colaboraciones 125 1
FIGURA 10.7
El diugruma de 1:iniciarBusqueda()
colaboruciones [encontrado] 4.1: abrir(archiv0)
[no encontrado] 4.2: nuevo(archivo)
“Creur unu propuestu ”. ‘[trabajo] 7: usarAplics()
[completado] 10: cerrarYGuardar0
2: Buscar()
:Deposit0
<
- 3: Resultado
5:abrirYGuardarCorno(propuesta)
8: usarAplics()
11 : cerrarYGuardar0
14: completado()
crear>>6: crearArchivoO
9: rnodificaro
12: cerrar()
FIGURA10.8 F l
Un objeto que envia
’[todos] 1: atender(tarea)
un mensaje a diversos
objetos de una clase.
B :Estudiante
En algunos casos, el orden del mensaje enviado es importante. Por ejemplo, un empleado
bancario dara servicio a cada cliente conforme fue llegando a la fila. Esto lo representari
con un “mientras” cuya condicibn implicari orden (como en “posicibn en la fila = 1 ... n”)
junto con el mensaje y la pila de rectingulos (vea la figura 10.9).
FIGURA10.9
Un objeto que envia
*[position en la fila = 1...n] l:atender()
un mensaje a varios
otros en un orden
espec@co.
B
I :Cliente
FIGURA 10.10
Un diagrama de
1: precio total := calcular(precioElernento, irnpuestos)
colaboraciones que
incluye la sintaxis
de un resultado.
Objetos activos
En algunas interacciones, un objeto especifico controla el flujo. Este objeto
activo puede enviar mensajes a 10s objetos pasivos e interactuar con otros
objetos activos. En una biblioteca, un bibliotecario relaciona las peticiones a partir de un
patrdn, verifica la informacidn de referencia en una base de datos, devuelve una respuesta
a1 peticionario, asigna personas para reabastecer 10s libros, entre otras cosas. Un biblio-
tecario tambiCn interactda con otros que realicen las mismas operaciones. A1 proceso de
que dos o mis objetos activos hagan sus tareas a1 mismo tiempo, se le conoce como con-
currencia.
El diagrama de colaboraciones representa a un objeto activo de la misma manera que a
cualquier otro objeto, except0 que su borde sera grueso y mis oscuro. (Vea la figura 10.11.)
FIGURA10.11
Un objeto activo
controla el flujo
en una secuencia.
Se representa como
un recta‘ngulo con un
Si ncronizacion
Otro caso con el que se puede encontrar es que un objeto s610 puede enviar un mensaje
despuCs de que otros mensajes han sido enviados. Es decir, el objeto debe “sincronizar”
todos 10s mensajes en el orden debido.
I128 Hora 10
Un ejemplo aclarari esto. Suponga que sus objetos son personas en un corporativo,
y que estin ocupados en la campaiia de un nuevo producto. He aqui la secuencia de
interacciones:
1. El vicepresidente de comercializacidn le pide a1 de ventas que Cree una campaiia
para un producto en particular.
2. El vicepresidente de ventas crea la campaiia y la asigna a1 gerente de ventas.
3. El gerente de ventas instruye a un agente de ventas para que venda el producto de
acuerdo con la campaiia.
4. El agente de ventas hace llamadas para vender el producto a 10s clientes en potencia.
5. Luego de que el vicepresidente de ventas ha dado la comisi6n y el gerente de ven-
tas ha expedido la directiva (esto es, cuando se han completado 10s pasos 2 y 3), un
especialista en relaciones publicas de la corporaci6n hari una llamada a1 periddico
local y colocari un anuncio de la carnpaiia.
iC6mo representari la posicidn del paso cinco en la secuencia? Nuevamente, el UML le
da una sintaxis. En lugar de anteceder este mensaje con una etiqueta numkrica, lo ante-
ceder5 con una lista de mensajes que tendrin que completarse antes de que se realice el
paso cinco. La lista de elementos se separarfi mediante una coma, y finalizari con una
diagonal. La figura 10.12 le muestra el diagrama de colaboraciones en este ejemplo.
FIGURA10.12
La sincronizacidn
de mensajes en
un diagrama de F r ( c a r n p a r i a , producto)
colaboraciones.
:Gerente ventas
3: vender(campaiia. producto)
Vendedor
Ciiente
Adiciones al panorama
Ahora podrfi agregar el diagrama de colaboraciones a su panorama del UML. Es otro
elemento de comportamiento, corno se aprecia en la figura 10.13.
Diagramas de colaboraciones 1291
FIGURA 10.13
El panorama del
UML, que incluye
a1 dianrama de
Elementos estructurales
Clase
lnterfaz
-
I I
Elementos de cornportarniento
Estado
colaboraciones.
0Caso de us0
I :Nombrell
I I
Relaciones
o-n
I I
Asociacion
-D Generalizacion
- - - - - _ _ +_ Dependencia
- - - - - - - - D Realizacion
@ Secuencia
Agrupacion Extension
<<Estereotipo>>
Paquete {Restriccion}
(valor etiquetado) I:Nombre2 I
Colaboracion
Anotacion
17
Resumen
Un diagrama de colaboraciones es otra forma de presentar la informacidn en un dia-
grama de secuencias. Ambos tipos de diagramas son semgnticamente equivalentes y se
recomienda usar ambos cuando construya el modelo de un sistema. El diagrama de
secuencias se organiza de acuerdo a1 tiempo, y el de colaboracidn de acuerdo a1 espacio.
El diagrama de colaboraciones muestra las asociaciones entre objetos, asi como 10s
mensajes que pasan de un objeto a otro. El mensaje se representa con una flecha junto
a la linea de asociacih, y una etiqueta numerada que muestra el contenido del mensaje.
El numero representa el turno del mensaje en la secuencia.
Las condicionales se representan como antes, mediante la colocacidn de la instruccih
condicional entre corchetes. Para representar un ciclo “mientras”, anteceda a1 corchete
izquierdo con un asterisco.
Algunos mensajes provienen de otros. El esquema de numeracidn de las etiquetas repre-
senta esto de forma muy similar a 10s manuales tknicos que muestran sus encabezados
y subtitulos: con un sistema de numeracidn que utiliza puntos decimales para representar
10s niveles del anidamiento.
1130 Hora 10
Preguntas y respuestas
P LRealmente tengo que incluir a ambos diagramas (el de colaboraciones y el de
secuencias) en la mayoria de 10s modelos UML que genere?
R Se recomienda hacerlo. Ambos tipos de diagramas podrin estimular diversas ideas
de 10s procesos durante el segment0 de anilisis en el proceso de desarrollo. El
diagrama de colaboraciones clarifica las relaciones entre 10s objetos debido a
que incluye 10s vinculos entre ellos. El de secuencia se enfoca en la secuencia de
las interacciones. A su vez, la organizacidn de su cliente podria incluir personas
cuya idea de 10s procesos podria diferir entre ellos. Cuando tenga que presentar
su modelo, un tip0 de diagrama podria comprenderse mejor para ciertas personas.
Ahora que ha comprendido 10s diagramas de secuencias y a sus hermanos, 10s de colabo-
racidn, pruebe y fortalezca su conocimiento con el cuestionario y 10s ejercicios. Como
siempre, veri las respuestas en el ApCndice A, “Respuestas a 10s cuestionarios”.
Cuestionario
1. iC6mo representa a un mensaje en un diagrama de colaboraciones?
2. iC6mo mostrm’a informacidn secuencial en un diagrama de colaboraciones?
3. iC6mo mostrm’a 10s cambios de estado?
4. iQu6 se entiende por la “equivalencia sem5ntica” de dos tipos de diagramas?
Ejercicios
1. En el ejemplo de la miquina de gaseosas, s610 mostrC un diagrama de colabora-
ciones equivalente a1 diagrama de secuencias de instancia de la situacidn “importe
incorrecto”. Cree un diagrama de colaboraciones que corresponda a1 diagrama
de secuencias genCfico de la hora 9 para el caso de us0 “Comprar gaseosa”. Esto
es, agregue la situacidn “Gaseosa agotada” a1 diagrama de colaboraciones de la
figura 10.5.
Diagramas de colaboraciones 131 I