Professional Documents
Culture Documents
Sistemas Orientado a
Objetos
Versin 5.1
Libro 1
Anlisis y Diseo de
Sistemas Orientado a
Objetos
Cdigo de Curso: CY450
Versin 5.1
Libro 1: Anlisis y
Diseo de Sistemas
Orientado a Objetos
Informacin de la Publicacin
Esta publicacin ha sido producida usando Microsoft Word 2000 y Microsoft PowerPoint
2000 para Windows.
Marcas Registradas
IBM es una marca registrada por International Business Machines Corporation.
Otras compaas, productos, y nombre de servicios pueden ser marcas registradas o
marcas de servicios de otros.
Marcas Registradas de otras compaas segn se muestra
Windows
Microsoft Corporation
Red Hat
Contenido
Descripcin del Curso........................................................................................1
Descripcin de Unidades ...................................................................................3
Volumen 1: Modelado Bsico ............................................................................6
Unidad 1: Introduccin a UML ...........................................................................7
1. La Necesidad del Anlisis y Diseo Orientado a Objetos (OOAD)
12
19
4. UML
19
5. El Modelo UML
19
Resumen
19
19
19
19
19
3. Casos de Uso
19
19
19
6. Diagramas de Actividad
19
7. Caso de Estudio
19
Resumen
19
19
19
19
19
2. Diagramas de Clase
19
19
4. Mecanismos Comunes
19
5. Caso de Estudio
19
Resumen
19
i
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
19
19
19
2. Clasificadores
19
3. Elementos Abstractos
19
4. Multiplicidad
19
19
19
7. Relaciones
19
8. Interfaces y Realizacin
19
9. Roles
19
10. Paquetes
19
11. Instancias
19
19
19
19
Resumen
19
19
19
19
19
2. Interaccin
19
3. Colaboracin
19
4. Diagramas de Interaccin
19
19
19
Resumen
19
19
19
Ejercicio de Laboratorio
19
19
2. Mquinas de Estado
19
3. Eventos
19
4. Subestado
19
5. Diagramas de Estado
19
6. Clases Activas
19
19
8. Algunas Recomendaciones
19
Resumen
19
19
19
19
2. Componentes
19
3. Diagrama de Componentes
19
4. Colaboraciones
19
5. Patrones
19
6. Diagrama de Despliegue
19
19
Resumen
19
19
19
iii
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Duracin
La duracin de este curso es de 40 horas acadmicas.
Propsito
El propsito de este curso es obtener conocimientos y destrezas en el manejo de los
Principios de la Orientacin a Objeto y en el Lenguaje Unificado de Modelado UML
(Unified Modeling Language), considerado como un estndar de la industria del
software para apoyar el anlisis y diseo de sistemas orientados a objetos (OOAD). El
uso del Lenguaje Unificado de Modelado UML permite al desarrollador de sistemas
especificar, visualizar, construir y documentar los artefactos de sistemas de software
orientados a objetos, utilizando un formato visual de modelado con sus tres elementos
importantes a saber: los bloques de construccin (que incluyen mas de nueve
diagramas), las reglas que ayudan a juntar esos bloques de construccin y algunos
mecanismos de extensin.
Audiencia
Estudiantes, profesionales y desarrolladores que desean conocer acerca de Anlisis y
Diseo de Sistemas Orientado a Objetos.
Prerrequisitos
Agenda
Cada unidad del curso tiene una duracin de 2 a 3 horas acadmicas.
Volumen 1: Fundamentos de C
Descripcin de Unidades
Volumen 1: Modelado Bsico
Unidad 1: Introduccin a UML
Esta unidad comienza dando la motivacin para el estudio del Anlisis y el Diseo
Orientado a Objetos. Ayuda a entender los diversos principios de orientado a objetos y
proporciona una introduccin al Lenguaje Unificado de Modelado (UML).
Descripcin de Unidades 3
Volumen 1: Fundamentos de C
Descripcin de Unidades 5
Volumen 1: Fundamentos de C
Metodologas de prueba.
Aunque cada etapa resulta en un producto de trabajo til, se est conciente de los
diferentes problemas que los analistas y desarrolladores de software deben confrontar.
Los requerimientos son poco claros y voltiles por naturaleza. Un requerimiento
ignorado o dejado de lado tiene un efecto cascada en todo el proceso de desarrollo del
sistema. Entender un sistema grande y complejo es en s una tarea difcil. El anlisis y
diseo de sistemas complejos es un proceso difcil que demanda tiempo. Las
Unidad 1: Introduccin a UML
A principio del Siglo 17, los constructores de barcos estaban an por empezar a utilizar
mtodos analticos para construir barcos. Ellos solamente hacan suposiciones bien
fundamentadas acerca de las especificaciones del barco y aprendan a travs del
proceso de ensayo y error. Las especificaciones eran secretos celosamente guardados
y no estaban sujetas a revisiones abiertas. El peso de las armas (unas 50 toneladas
extra) no figur en los clculos para el buque insignia Sueco. Tampoco otros tems
como un horno de cocina que se aadira al peso total. El constructor del barco crey
que el entarimado adicional en los lados y un lastre adicional de 130 toneladas se
encargaran del asunto. El entarimado fue completado, pero el constructor del barco se
dio cuenta entonces que no haba espacio bajo la cubierta para otras 130 toneladas de
roca para proporcionar lastre. Este aspecto fue ignorado completamente.
Despus de que el buque insignia real estuvo al fin listo, la Marina Sueca prob el barco
haciendo que 30 marinos corrieran a lo largo del barco. El barco casi se inclin hacia un
lado en una ocasin, pero nadie supo cmo resolver el problema de estabilidad. El
barco fue declarado probado y listo para zarpar, dado que el tiempo estipulado y la
paciencia del Rey se estaban agotando. El barco fue bautizado como Vasa y fue
lanzado del puerto de Estocolmo en Agosto de 1628. Difcilmente, el barco haba
navegado apenas unos cuantos kilmetros cuando una pequea rfaga de viento
sacudi la vela mayor. El orgullo de la Marina Sueca se volc y se hundi
inmediatamente.
Se pueden aprender algunas lecciones de la tragedia de Vasa. stas son:
El Rey no dio especificaciones por escrito. Todos los requerimientos del barco
fueron recogidos verbalmente.
Todos los pedidos y demandas del cliente fueron aceptados sin analizar si era
posible incorporarlos.
Cada punto mencionado anteriormente tiene relacin con lo que sucede tpicamente en
un esfuerzo de desarrollo de software. La construccin de barcos era una tarea grande
y compleja. Los sistemas complejos del mundo real requieren adems que el desarrollo
de sistemas sea dirigido de la manera correcta. Con la llegada del anlisis y diseo
estructurado de sistemas de software, se proporcion un enfoque de ingeniera para el
desarrollo de sistemas de software. Para la mayora de los puntos cubiertos
anteriormente, la metodologa de anlisis y diseo estructurado se ocup de ellos. Sin
embargo, la metodologa no proporcion una solucin para hacer corresponder
directamente los objetos del mundo real en el dominio de software. La orientacin a
Unidad 1: Introduccin a UML
objetos ofrece una solucin que ayuda a los desarrolladores a hacer corresponder el
mundo real tan cerca como sea posible al dominio de la solucin. Existen muchas
metodologas que permiten soluciones para problemas complejos. A continuacin, se
discutirn brevemente las diversas metodologas disponibles y luego se estudiar en
detalle la orientacin a objetos.
operaciones son definidas sobre esos datos. Cada dato que se vuelve parte de un
sistema orientado a objetos es, en esencia, un tipo de dato abstracto.
2.4 Encapsulamiento
La esencia del encapsulamiento recae en que cuando un objeto trae consigo su
funcionalidad, esta ltima se oculta. Con el encapsulamiento de los datos se consigue
que las personas que utilicen un objeto slo tengan que comprender su interfaz,
olvidndose de cmo est implementada, y en definitiva, reduciendo la complejidad de
utilizacin.
La utilidad del encapsulamiento se ve en la reduccin de la complejidad, esto es debido
a que las Clases se comportan como cajas negras donde slo se conoce el
comportamiento pero no los detalles internos, y esto es conveniente porque solo
interesa conocer qu hace la Clase, pero no como lo hace.
Tomemos un ejemplo de un telecajero, se puede ir a un telecajero a retirar dinero,
consultar saldo y realizar transferencias. Estas son funcionalidades que se les
proporcionan a los usuarios, pero no es posible conocer como estas funcionalidades
estn implementadas y los usuarios no estn preocupados por conocerlas.
En la orientacin a objetos, el encapsulamiento ayuda a mantener juntos los elementos
de datos, as como las funciones y procedimientos que operan sobre ellos.
En el paradigma procedimental, los datos y operaciones se mantienen separados, tal
como se muestra en la Figura 1.1.
DATOS /
CARACTERSTICAS
OPERACIONES
En el paradigma orientado a objetos, los datos y las operaciones estn juntos dentro de
una cpsula, tal como se muestra en la Figura 1.2.
OPERACIONES
DATOS/CARACTERISTICAS
2.6 Clase
Las clases son tipos de datos definidos por el usuario. Las clases, en la tecnologa
orientada a objetos, representan la mayor parte de las veces a las entidades del mundo
real, excepto para unos pocos conceptos abstractos. Dado el dominio de un problema,
el dominio de la solucin en la tecnologa orientada a objetos, contendr clases que son
identificadas como entidades en el dominio del problema.
Se presenta el ejemplo de un sistema bancario para entender esto. Los bancos
permiten a los clientes operar con diferentes tipos de cuentas, como ahorro, corriente y
depsito de plazo fijo. Los clientes usan formularios de depsito para depositar dinero y
usan formularios de retiro para retirar dinero del banco. La transferencia de fondos de
una cuenta a otra, dentro del mismo banco se puede hacer usando un formulario
especialmente diseado para este propsito. La perspectiva dada aqu es desde el
punto de vista del cliente del banco. Internamente, el banco tendr muchos otros
formularios adicionales para acometer estas tareas. A partir de esta corta descripcin,
se pueden representar algunas de las siguientes entidades del mundo real y sus
correspondencias a clases en el mundo orientado a objetos. Esto es ilustrado en la
Figura 1.3.
Mundo Real
Cliente del
Banco
Cuenta de
Ahorros
CuentaCorriente
PlanillaDepositos
Cuenta
Corriente
Depsitos
2.7 Objeto
En trminos sencillos, un objeto es una instancia de una clase. Los objetos interactan
con otros para proporcionar una solucin a un problema. Se asumir por ejemplo que se
tiene definida una clase Pila. Este tipo de dato definido por el usuario puede ser usado
slo cuando se crean instancias del tipo de dato. Por lo tanto, se puede crear miPila,
tuPila y suPila como instancias de la clase Pila. Es el objeto quien ocupa
memoria en una computadora.
Un objeto promete cumplir el contrato prometido por su clase. Cada objeto puede
definirse en trminos del comportamiento que muestra o se espera que muestre. Un
objeto carro se define por su comportamiento como, moverse, acelerar, llevar
personas, detenerse o voltear. Basado en su comportamiento, es fcil caracterizar
un carro como estar en movimiento o esttico. El objeto carro puede poseer otras
propiedades fsicas como modelo, ao de fabricacin, tamao de tanque de
combustible, nmero de llantas, caractersticas de seguridad y nmero de registro.
Se puede decir que un objeto tiene lo siguiente:
Interfaz.
Implementacin.
2.9 Mtodos
En la mayora de los lenguajes orientados a objetos, las operaciones que puede realizar
un cliente sobre un objeto se declaran como mtodos. Los mtodos son una parte de la
declaracin de la clase. C++ usa el trmino funcin miembro y Java usa el trmino
mtodos para denotar el mismo concepto. Se usarn estos trminos de modo indistinto.
Los mtodos son los algoritmos usados por la clase para implementar la tarea
prometida por la interfaz. Por lo tanto, en el ejemplo de la pila, la tarea o responsabilidad
de agregar un elemento a la pila (push) se denomina un mtodo.
2.10
Mensajes
Un mensaje puede cambiar el estado del objeto receptor. Un mensaje puede tener cero
o ms argumentos explcitos. En este contexto, el objeto receptor es un argumento
implcito que siempre est presente. El mensaje retorna un valor de cierto tipo,
posiblemente void, al emisor del mensaje. Tpicamente, un mensaje contiene lo
siguiente:
2.11
Herencia
SuperClase
SubClase
Vehculo
Carro
Por ejemplo, animal es una categora general de donde se deriva un caballo. La idea es
modelar el hecho de que un caballo es un animal. De modo similar, el hecho de que
un guila sea un tipo de ave puede lograrse al heredar el guila de un ave. La idea es
muy simple. Piense en un guila. Qu imagen se obtiene inmediatamente? Se obtiene
la imagen de una criatura que tiene alas y tiene la habilidad de volar. El hecho de que el
guila tenga alas y pueda volar es fundamental para cualquier ave. El comportamiento
general de volar est encapsulado en un ave lo cual es verdadero para cualquiera que
es un ave. De modo similar, la estructura de un ave, que tiene alas, tambin est
encapsulada en el ave. Ahora, corre por cuenta del guila especializarse bajo esta
estructura y comportamiento, dado que tiene su propia manera de volar o mantener sus
alas. Por lo tanto, se puede decir que un guila es un ave.
El mundo real tambin tiene algunas excepciones. Mientras casi todas las aves tienen la
habilidad de volar, algunas aves como el avestruz no pueden volar. La especializacin
puede ocuparse tambin de tales excepciones.
La jerarqua de herencia especifica la relacin es un entre la subclase y la superclase.
Es tambin posible que una subclase sea una superclase de otra clase. El ejemplo en la
Figura 1.5 resalta esto.
Persona
Estudiante
Estudiante
Graduado
Empleado
Estudiante de
Extensin
Profesor
Profesor
Contratado
Staff
Administrativo
Profesor
Temporal
La Figura 1.5 describe una jerarqua de herencia la cual establece que cada subclase
es un tipo de su superclase. Se presentan los siguientes ejemplos:
Humano es un mamfero.
Los objetos que son diseados cuidadosamente para ser muy generales pueden ser
reutilizados en muchas circunstancias, ahorrando mucho esfuerzo en futuros problemas
de programacin. La herencia que se ha visto hasta ahora es conocida como herencia
simple.
Es tambin posible para una subclase heredar de dos superclases. En esa situacin, la
herencia se conoce como herencia mltiple. Los animales anfibios, como la rana y la
tortuga, son ejemplos de esto. Se muestra un ejemplo en la Figura 1.6.
Animal
Animal
Acutico
Animal
Terrestre
Animal
Anfibio
Figura 1.6: Herencia Mltiple
Sin embargo, la herencia mltiple puede crear problemas. Tanto Animal Terrestre
como Animal Acutico, por ejemplo, pueden definir un mtodo llamado mtodo de
respiracin. Evidentemente, Animal Terrestre respira a travs de la nariz, mientras
que Animal Acutico respira a travs de agallas. Ahora, con herencia mltiple, Cul
de los mtodos de respiracin hereda Animal de anfibio?. Esto se conoce como el
problema del diamante. La jerarqua mostrada en la Figura 1.6 describe un problema
de diamante.
2.12
Agregacin
Puerta
Asiento
Cap
La figura anterior describe la relacin tiene un entre Carro y las otras entidades.
Denota que la entidad Carro tiene Puertas, Asientos y un Cap. La relacin tiene un es
conocida tambin como la relacin contenedora.
A veces, se tiende a confundir la relacin contenedora entre dos entidades. Se
entender esto con un ejemplo. Considere las dos entidades, Persona y Bebida. En
espaol, se dice, Persona tiene una Bebida, pero esto no significa que la entidad
Persona contiene la entidad Bebida. Lo que se quiere decir con contenedora es que la
entidad contenida es parte de la entidad contenedora. Esa aseveracin no es verdadera
con respecto a Persona y Bebida. Ellas existen separadamente y la entidad Persona
slo es capaz de beber la Bebida, no de contener la entidad Bebida.
Es tambin incorrecto indicar, Lapicero tiene un Color. Color es un atributo de un
Lapicero, no una entidad. Las caractersticas de cualquier entidad sern indicadas en
espaol como la entidad tiene caractersticas. Por eso las propiedades no califican
para que se les llamen entidades. Las jerarquas es un y tiene un son slo entre dos
entidades.
Algunos ejemplos de una relacin tiene un se listan a continuacin:
2.13
Polimorfismo
Usando una cadena (15/08/1947), de donde se pueden extraer las tres partes.
2.14
Tipo
2.15
Rol
2.16
Paquete
Visualizar un sistema.
4. UML
UML es un lenguaje usado para especificar, visualizar, construir y documentar las
diversas piezas de sistemas de software y tambin para modelado de negocios y otros
sistemas que no sean software. El uso de UML en el desarrollo de sistemas orientados
a objetos gan importancia cuando los tres autores de esta metodologa, Grady Booch,
James Rumbaugh e Ivar Jacobson, llegaron juntos a Rational Software Corporation.
Estos autores presentaron un lenguaje de modelado visual que puede considerarse
como un estndar para el desarrollo de sistemas Orientados a Objetos. UML fue
desarrollado en Rational Software Corporation, con contribuciones de otros
metodologstas, lderes, vendedores de software y muchos usuarios. Hoy da, UML es
considerado el estndar de la industria para el desarrollo de sistemas de software
orientados a objetos.
Modelado de componentes.
5. El Modelo UML
Para entender UML en su totalidad, se deben aprender tres importantes elementos. Son
estos:
Relaciones.
Diagramas.
5.3 Relaciones
UML proporciona cuatro tipos de relaciones:
5.4 Diagramas
Un diagrama es una representacin grfica. Cada diagrama de UML proporciona una
vista diferente del sistema. UML proporciona nueve tipos de diagramas. Son estos:
5.5 Reglas
Las reglas ayudan a los bloques de construccin de UML a especificar un modelo bien
formado. Un modelo est bien formado si es auto-consistente y sincroniza con todos los
otros modelos relacionados. UML incluye reglas semnticas para:
Integridad: Especfica cmo los elementos del modelo se relacionan unos con
otros.
Adornos: Los adornos son simples decoraciones que ayudan a entender el rol
del elemento del modelo en el sistema. Un elemento del modelo se representa
por un componente visual en UML, el cual es el smbolo bsico para ese
elemento del modelo. Los adornos se usan para agregar ms detalles al
elemento del modelo.
Modelado estructural.
Modelado de comportamiento.
Modelado arquitectnico.
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
33
1. Introduccin
Cuando se comienza el desarrollo de un sistema es de crucial importancia comprender
el punto de vista del usuario. Comprender tal punto de vista es clave para generar
sistemas que sean tanto tiles como funcionales, es decir, que cumplan con los
requerimientos y sean sencillos de trabajar.
El modelado, desde el punto de vista del usuario, es llamado Casos de Uso. En esta
unidad se comprender todo lo relacionado con los casos de uso, su importancia y su
funcin, adems de los diagramas de actividad que describen cada caso de uso del
sistema.
3. Casos de Uso
Un caso de uso es una interaccin entre un usuario u otra entidad y el sistema que es
diseado. Un caso de uso es una descripcin de un conjunto de acciones que realiza un
sistema con respecto a un actor particular interesado en el sistema. Formulado por Ivar
Jacobson, los casos de uso se popularizaron en la mayora de sistemas orientados a
objetos. El usuario o la entidad que tiene inters en el sistema que se est diseando es
llamado actor. En otras palabras, un actor es una entidad que interacta con el sistema.
Un caso de uso involucra interacciones entre diversos actores y el sistema. El actor
puede ser otro sistema o subsistema. El actor representa el rol que cumplen los
usuarios mientras interactan con el sistema.
Los casos de uso son tiles por varias razones ya que ayudan a hacer lo siguiente:
Descubrir requerimientos.
34
Imprimir reporte.
Ver estadsticas.
Asignar curso.
Crear documento.
Publicar libro.
Se observa de lo anterior que todos los casos de uso son una combinacin de un verbo
y un sustantivo. Al listar los casos de uso, se observa esencialmente el sistema desde el
punto de vista del actor. En consecuencia, cada caso de uso o conjunto de casos de
uso tiene sentido slo en el contexto de un actor.
Para los casos de uso anteriores, se pueden identificar los siguientes actores:
Gerente de Registro.
Adjudicador de cursos.
Autor.
Editor libros.
Los actores no son las abstracciones del sistema. Ellos representan los usuarios
externos que pueden usar el sistema que se est diseando.
Cada caso de uso tiene un nombre; puede ser un nombre simple o un nombre de ruta.
El nombre de ruta puede tener el nombre del paquete en donde se ubica el caso de uso.
En UML, un caso de uso se dibuja como una elipse con el nombre dentro de la elipse,
tal como se muestra en la Figura 2.1.
Nombre simple
Validar curso
Nombre de ruta
DetalladorCurso::
Validar curso
Los actores que participan en el sistema pueden ser heredados de un actor existente.
Un ejemplo se muestra en la Figura 2.2.
35
3.1 Colaboraciones
Un caso de uso captura el comportamiento deseado del sistema. Esto no especifica de
qu modo ser llevado a cabo el comportamiento. Pero eventualmente, cada caso de
uso tiene que ser implementado, creando una sociedad de clases y otros elementos que
ayuden a implementar el comportamiento del caso de uso. Por ejemplo, la sociedad de
clases necesarias para implementar el caso de uso Asignar Curso consiste de
GerenteRegistro, Curso, Disciplina, Estudiante y Visualizador.
La colaboracin se usa en UML para representar una sociedad de elementos, tanto
estticos como dinmicos, que ayuden a implementar el comportamiento de un caso de
uso, esto es, un caso de uso es realizado por una colaboracin.
La colaboracin de un caso de uso se representa como una elipse punteada, y la
realizacin del caso de uso se describe como una lnea punteada con la flecha
apuntando hacia el caso de uso que realiza, tal como se ilustra en la Figura 2.3.
Asignar
cursos
Administrar
cursos
36
Seudocdigo.
El flujo excepcional de eventos para el caso de uso Asignar Curso ser el siguiente:
El flujo de eventos anterior es para uno de los casos de uso. Cada caso de uso puede
ser asociado con una descripcin de flujo de eventos, de un modo similar.
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 2: Modelado del Comportamiento con Casos de Uso
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
37
En la Figura 2.4, se muestra un formato para el flujo de eventos del tipo Texto
estructurado con precondiciones y postcondiciones, cabe destacar que no es un modelo
nico, sino una referencia.
3.3 Escenarios
Un escenario es una instancia de un caso de uso. Normalmente existe una expansin
de un caso de uso a un escenario. Un solo caso de uso puede resultar en varios
escenarios. Para la mayora de casos de uso, se pueden tener escenarios primarios y
secundarios. Los escenarios primarios definen las secuencias esenciales y los
secundarios definen las secuencias alternativas. Por ejemplo, el caso de uso Generar
lista de estudiantes graduados puede tener variantes como generar listas
basado en ciertas entradas que son diferentes para estudiantes universitarios, de
postgrado y de investigacin. Estas variantes pueden ser modeladas como secuencias
alternas.
3.4 Relaciones
Se pueden usar tres tipos de relaciones con casos de uso. stas son:
38
Validar
curso
Validar
curso
Pregrado
Validar
curso
Postgrado
La figura anterior indica que los casos de uso Validar curso Pregrado y
Validar curso Postgrado heredan de un caso de uso ms generalizado,
Validar curso. El caso de uso hijo hereda el comportamiento y significado
del caso de uso padre. As como es posible con clases, un caso de uso hijo
puede ser sustituido donde sea que aparezca el caso de uso padre. La
representacin de la generalizacin es una flecha vaca que apunta del caso de
uso hijo al caso de uso padre
Include (inclusin): Los casos de uso pueden incluir otros casos de uso.
Cuando existen secuencias de pasos en comn es importante crear un nuevo
caso de uso que agrupe esas secuencias, luego existirn casos de usos que
incluirn al nuevo creado, de manera de simplificar el diagrama. Es importante
destacar que los casos de uso que se incluyen nunca aparecern solo,
simplemente funcionan como parte de un caso de uso que lo incluya. El
estereotipo <<include>> se usa para denotar la relacin include. La
representacin en UML es una flecha abierta punteada que sale desde el caso
de uso base y apunta al caso de uso que se quiere incluir. Un ejemplo puede
verse en la Figura 2.6.
39
Validar cuenta.
Entrevistas con los clientes, esto le dar una idea del rea en que se estar
trabajando, la cual da el fundamento para entrevistar a los usuarios.
Entrevistar a los usuarios, ellos deben indicar todo lo que ellos deben hacer con
el sistema a disear. Lo que los usuarios indiquen conformaran los candidatos
para los casos de uso.
40
Describir brevemente los casos de usos candidatos y realizar una lista de los
posibles actores que van a interactuar con ellos.
Actores.
Figura 2.7: Un Diagrama de Caso de Uso con Tres Actores y Cinco Casos de Uso
La Figura 2.7, ilustra un diagrama de caso de uso que consiste de tres actores y cinco
casos de uso. Los tres actores tienen una asociacin con el caso de uso Verificar
horario. El actor Manejador Horario interacta con el sistema a travs del caso
de uso Generar horario, el cual incluye el caso de uso Validar curso.
Se discuti anteriormente que los casos de uso son tiles para modelar los
requerimientos de un sistema. A continuacin se muestra un conjunto de
recomendaciones para entender cmo este modelado es posible usando los casos de
uso:
41
6. Diagramas de Actividad
Los diagramas de actividad muestran el flujo desde una actividad hacia otra actividad en
el sistema. Las actividades son elementos no atmicos, dentro de una mquina de
estados. Las mquinas de estado modelan el comportamiento de un objeto individual.
Las mquinas de estado se discuten ms adelante. Cada actividad resulta en una
accin. Una accin puede resultar en un cambio de estado del objeto, una llamada a
otro objeto o un valor que es devuelto al llamador. Los diagramas de interaccin y
actividad son similares. La diferencia radica en el hecho de que los diagramas de
interaccin representan objetos que pasan mensajes entre ellos, mientras que los
diagramas de actividad representan las operaciones que ejecutan los objetos. La
diferencia es sutil, pero presenta diferentes vistas a los usuarios.
Un diagrama de actividad consiste de objetos, estados de accin, estados de actividad y
transiciones.
Ejecutable.
Atmico.
Clculo.
Todos los ejemplos anteriores significan estados de accin que son atmicos (no es
posible una descomposicin posterior) por naturaleza. Por lo tanto, un estado de accin
es referido como un clculo atmico ejecutable. Un estado de accin puede ser una
accin simple o una expresin.
La Figura 2.8 ilustra estados de accin.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
42
La Figura 2.9, muestra dos estados de actividad. Cada uno tiene una accin asociada a
l. Uno tiene una accin de salida llamada noid mientras que el otro tiene una accin
de entrada llamada obtenerAo. Al final del primer estado de actividad, se obtiene un
noid. En la otra representacin, el punto de entrada, obtenerAo es requerido. Se
observa que los estados de actividad son representados como operaciones, las que a
su vez pueden tener otros estados de actividad o estados de accin. Por ejemplo, el
estado de actividad Procesar noid puede incluir el estado de actividad Generar
noid, el cual a su vez puede incluir el estado de accin Encontrar disciplina y
otro estado de actividad Generar numero secuencia.
6.2 Transiciones
Tal como se mencion anteriormente, los diagramas de actividad muestran el flujo de
una actividad a otra en el sistema. Cuando un estado de accin o actividad completa su
trabajo, el flujo de control debe ser pasado al siguiente estado de actividad o accin en
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 2: Modelado del Comportamiento con Casos de Uso
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
43
44
45
6.6 Concurrencia
Imagine una situacin donde se deben manejar flujos concurrentes, es decir, manejar
ms de un flujo al mismo tiempo. UML usa la ramificacin (forking) y unin (joining) para
manejar un flujo concurrente.
Para mostrar la ramificacin y unin de flujos de control, se usa una barra de
sincronizacin, la cual es una lnea gruesa horizontal. Una bifurcacin o ramificacin
(fork) representa la separacin de un flujo de control en dos o ms transiciones
salientes, la simbologa es mostrada en la Figura 2.15.
46
47
Encontrar
disciplina
Noid=ao+ disciplina+sno
48
Encontrar disciplina
Noid=ao+disciplina+sno
6.8 Indicaciones
Cuando se realiza una secuencia de actividades, es posible utilizar indicaciones para
enviar y recibir seales traducidas como eventos, dichas seales provocarn que se
ejecute una actividad.
El smbolo utilizado para enviar una seal es un pentgono convexo, y el utilizado para
recibir una seal es un pentgono cncavo. Se puede ver un ejemplo en la Figura 2.19.
49
6.9 Carriles
Cuando se modelan los flujos de trabajo del negocio, se puede categorizar el diagrama
de actividad en grupos. Cada grupo representa tpicamente la parte de la organizacin
que es responsable de esas actividades. En UML estos grupos son referidos como
carriles (swimlanes). Los carriles son descritos con una lnea vertical, la cual separa
cada grupo.
En un diagrama de actividad cada carril tiene un nombre. Dado que un carril representa
un conjunto de actividades, una o ms clases pueden representar cada carril en el
sistema. Cada actividad debe pertenecer a un solo carril. Una transicin de una
actividad a otra puede hacerse desde un carril hacia otro, haciendo que las transiciones
atraviesen los carriles.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
50
Se observa que existen transiciones de un carril a otro. Los nombres que se asocian a
un carril representan clases y tambin pueden representar actores del sistema que son
los responsables de llevar a cabo las actividades que estn en su carril.
Los diagramas de actividad se usan para modelar los aspectos dinmicos de un
sistema. Esto puede hacerse ya sea modelando un flujo de trabajo o modelando una
operacin. Al modelar un flujo de trabajo, el enfoque est en actividades en el sistema y
la manera en que los actores del sistema colaboran con el sistema. El modelado de una
operacin involucra entender los detalles computacionales de la operacin.
Se puede asociar a cada diagrama de actividad un nombre. Empezando con el flujo de
trabajo principal, se puede continuar lentamente con la identificacin de la ramificacin,
concurrencia, bifurcacin y unin.
7. Caso de Estudio
El caso de estudio planteado a continuacin permitir disear los distintos diagramas
que implementa la metodologa UML; para comenzar se disearn el diagrama de caso
de uso y de actividad, y a lo largo del curso se disearn los diagramas restantes
utilizando el mismo caso de estudio.
51
El cliente puede afiliarse por medio del sitio web y cancelar con su tarjeta de
crdito.
Debe permitir a los clientes consultar las pelculas disponibles por medio de
terminales remotos instalados en la tienda.
Para alquilar una pelcula el operador del sistema introduce la cdula del cliente,
luego introduce el cdigo de la pelcula a ser alquilada, si la cdula del cliente no
aparece en el sistema, la transaccin no procede.
Las reservaciones son realizadas por la pgina web del video club.
El alquiler de las pelculas tiene una duracin de 2 das hbiles, los das
adicionales son cobrados como das de mora.
Para alquilar y reservar una pelcula es necesario ser cliente del video club.
Cabe destacar que no se disear un diagrama de actividad por cada caso de uso, solo
los necesarios para entender la metodologa, los diagramas restantes quedan para
prcticas del lector.
52
Devolver pelcula: El empleado utiliza este caso de uso para registrar la entrega
de una pelcula vencida, integrndola nuevamente en la existencia.
Consultar pelcula: El cliente utiliza este caso de uso cuando quiere consultar la
existencia de una pelcula en especial.
Reservar pelcula: El cliente utiliza este caso de uso cuando desea realizar
reservaciones de pelculas por Internet.
Afiliar cliente: El operador utiliza este caso de uso cuando afilia a un cliente en el
video club.
Desafiliar cliente: El empleado utiliza este caso de uso cuando retira a un cliente
del video club.
Comprar pelculas: El empleado utiliza este caso de uso cuando registra la venta
de una pelcula en el sistema.
Consultar clientes: Es un caso de uso genrico utilizado por los casos de usos
alquilar pelcula, afiliar cliente y desafiliar cliente.
53
Se puede observar en la Figura 2.21 que el caso de uso Consultar cliente es incluido
por los casos de uso Alquilar pelcula, Desafiliar cliente y Afiliar cliente. La razn por la
cual esto ocurre, es debido a que Consultar cliente es un modulo obligatorio para los
casos de usos mencionados, adems no tiene funcionalidad independiente.
54
CU-001
Datos de la pelcula
Registro de la pelcula actualizado y
y del cliente
Salidas: registro del cliente actualizado
Curso Tpico
Accin del Actor
Respuesta del Sistema
1.- El empleado introduce en el sistema la
cdula del cliente.
2.- El sistema verifica que el cliente este afiliado.
3.- El empleado introduce el cdigo de la
pelcula que el cliente escogi.
4.- El sistema verifica que la pelcula exista o que
est disponible.
5.- El sistema muestra los datos de la pelcula.
6.- El sistema solicita la verificacin de la pelcula
7.-El empleado realiza la confirmacin.
8.- El sistema muestra el monto a cancelar.
9.- El sistema pide los datos de la tarjeta de
crdito.
10.-El empleado introduce los datos de la
tarjeta.
11.- El sistema verifica con el banco la validez de
la tarjeta de crdito.
12.- El sistema muestra mensaje de transaccin
exitosa.
13.- El sistema actualiza el inventario de pelculas
14.- El sistema actualiza la BD del sistema
contable.
15.-El sistema genera un recibo de pago al
cliente.
Curso Excepcional # 1: El cliente no aparece en el sistema
En el paso 1 del flujo tpico, el empleado introduce una cdula
Precondicin:
Accin del Actor
Respuesta del Sistema
1.- Falla la bsqueda del cliente.
2.- El sistema muestra un mensaje, indicando que
el usuario no est afiliado.
3.- El caso de uso contina en el paso 1 del
flujo principal.
Curso Excepcional # 2: La pelcula esta alquilada
En el paso 3 del flujo tpico, el empleado introduce el cdigo de
la pelcula.
Precondicin:
Accin del Actor
Respuesta del Sistema
1.- El sistema encuentra que la pelcula no est
disponible.
Entradas:
55
Cabe destacar que los cursos excepcionales desarrollados no son los nicos que
pueden conseguirse en este caso de uso, tambin existen otros como Cancelar la
operacin, entre otros, los cuales se dejan de prctica al lector.
El flujo marcado como 1 (uno), indica el escenario exitoso, donde el cliente est
afiliado, la pelcula que seleccion est disponible y la tarjeta de crdito es
vlida, lo cual produce una transaccin exitosa.
56
4
5
57
Resumen
Ahora, que ha completado esta unidad, usted debe ser capaz de:
58
59
60
61
63
1. Ejercicio de Laboratorio
Se describe un sistema ATM para un e-Bank (Banco electrnico).
El e-Bank lanz sus operaciones en Venezuela, con su casa matriz en Caracas, en
2002. Dentro de un periodo corto de tres aos, construy una red de 275 sucursales por
toda Venezuela. Quizs deba su xito al excelente servicio al cliente y a la banca por
Internet para clientes individuales y corporativos. Aunque tiene un sistema ATM
existente en todas sus sucursales, el banco desea disear e implementar un nuevo
sistema ATM basado en las ltimas tecnologas. La necesidad es tener un sistema de
software orientado a objetos para el ATM, que resulte en una estructura sencilla con
componentes reutilizables que sean fciles de extender y mantener.
A continuacin se presenta la descripcin de los requerimientos claves del sistema ATM
para el e-Bank:
Los clientes pueden acceder a sus cuentas en el ATM insertando una tarjeta
ATM, dicha tarjeta es proporcionada al cliente junto con un cdigo (PIN) que
tendr que ser insertado despus que se inserta la tarjeta. El cdigo (PIN) est
compuesto de 4 dgitos decimales del 0 al 9.
Se supone que una sola tarjeta ATM proporciona acceso a todas las cuentas del
cliente.
64
65
Conocer los mecanismos comunes que pueden ser aplicados a las clases.
67
1. Modelado Estructural
El modelo estructural es el modelo UML bsico. Estructura significa constitucin. El
Modelado estructural de UML especifica cmo est constituido el sistema completo. El
modelado revela las partes concretas del sistema completo. Simplemente, el modelado
estructural se ocupa de las clases (abstracciones) y objetos (realizaciones concretas de
las abstracciones).
Se vern dos diagramas bajo el modelado estructural. stos son:
Diagramas de clase.
Diagramas de objetos.
2. Diagramas de Clase
Una clase es el marco de trabajo para un conjunto de objetos, que comparten los
mismos atributos, operaciones, relaciones y semnticas. En UML, una clase se
representa grficamente con un rectngulo. A continuacin se aprender acerca de los
nombres de clase.
Vehculo
FormularioDeRegistro
68
La Figura 4.2 muestra el modo en que se usan los nombres de ruta cuando se nombran
clases.
DetalleEmpleado::Empleado
Universidad::DetalleEstudiante::
Estudiante
Fabricante::Vehculo
Biblioteca::DetalleMiembro::
FormularioDeRegistro
El signo :: se usa como el smbolo de separacin. La ltima parte del nombre de ruta es
el nombre de la clase (en el extremo de la derecha) y hacia el extremo contrario
(izquierdo) es el nombre del paquete. Como una prctica estndar, la primera letra de
un paquete y de un nombre de clase est en maysculas. A continuacin se aprender
acerca de los atributos de la clase.
Nombre de
clase
Empleado
empleadoId
empleadoNombre
fechaDeNacimiento
salario
departmento
Atributos
69
Los nombres de atributos que constan de una sola palabra comienzan con letra
minscula. S el nombre del atributo esta formado por ms de una palabra, cada palabra
siguiente comenzar con una letra mayscula, a excepcin de la primera palabra que
comenzar en minscula, tal como en nombreEmpleado. Esto se hace para mejorar la
legibilidad. Es posible adems especificar el tipo de dato al que pertenece el atributo,
as como tambin un valor por defecto, tal como se muestra en la Figura 4.4.
Nombre de
Clase
Empleado
empleadoId : Integer
empleadoNombre : String
fechaDeNacimiento : DOB
salario : Float = 0.0
departmento : String
Atributos
Figura 4.4: Atributos de una Clase con sus Valores por Defecto
El atributo salario se establece con un valor por defecto de 0.0. Separando el atributo y
la clase con dos puntos (:) muestra la clase a la cual pertenece el atributo.
Ahora se discutirn las operaciones de una clase.
La sintaxis de un atributo en UML, de forma completa, se muestra a continuacin:
[visibilidad] nombre [multiplicidad] [: tipo ] [= valor inicial]
[{propiedad de la cadena}]
Algunos ejemplos de cmo se pueden especificar atributos en UML:
nmeroIdentidad
+ nmeroIdentidad
- nmeroIdentidad = 10
nmeroIdentidad: Integer
Nombre y tipo
nmeroIdentidad {frozen}
Nombre y propiedad
70
Empleado
empleadoId : Integer
empleadoNombre : String
...
Atributos
colocarDetalleEmpleado()
obtenerDetalleEmpleado()
colocarSalario(salario : Float)
obtenerSalario() : Float
Operaciones
En la Figura 4.5, se ilustra cmo se especifican las operaciones como parte de la clase.
Se puede especificar el parmetro tomado por una operacin junto con su tipo de dato,
indicndolo entre los parntesis que preceden al nombre de la operacin, como en
colocarSalario(salario:Float). Tambin se puede especificar el tipo de retorno
de una funcin, como en obtenerSalario().
La elipsis (...) o puntos suspensivos bajo la seccin de atributos de la clase en la Figura
4.5, indica que tal vez existan ms atributos para esta clase. Una clase juega un rol
particular en cada vista del sistema. Se pueden revelar slo aquellos atributos y
operaciones para la clase que son aplicables para esa vista.
La sintaxis de las operaciones en UML, de forma completa, se muestra a continuacin:
[visibilidad] nombre [(lista de parmetros)]
[: tipo del retorno] [{propiedad de la cadena}]
Algunos ejemplos de cmo se pueden usar las operaciones se muestran a continuacin:
definirEmpleado()
+ definirEmpleado ()
visibilidad y nombre
obtenerEmpleado () {isQuery}
nombre y propiedad
71
Existen cuatro tipos de propiedades de cadenas para las operaciones. Estas son:
Las propiedades sequential, guarded y concurrent son relevantes para aplicar a objetos
activos, procesos o hilos.
Se puede agregar informacin adicional a la lista de parmetros, usando la siguiente
sintaxis:
[direccin] nombre : tipo [=valor por defecto]
La direccin puede ser in para parmetros de entrada, out para parmetros de
salida e inout para un parmetro que ingresa y puede ser modificado. El parmetro in
no puede ser modificado, mientras que el parmetro out puede ser modificado por la
operacin. Tambin se puede especificar un valor inicial al atributo. A continuacin un
ejemplo:
definirEmpleado(in e : Empleado)
InicializarId (in IDNo : Integer = 100)
2.4 Estereotipo
Cada conjunto de atributos u operaciones puede ser categorizado y un nombre puede
proporcionarse para este grupo. Esto se denomina un estereotipo. Los estereotipos
ayudan a agrupar operaciones o atributos similares. Tambin ayudan a una mejor
organizacin de atributos y operaciones cuando se especifican como parte de la clase.
La Figura 4.6 brinda un ejemplo de cmo usar los estereotipos. Tpicamente, los
estereotipos son encerrados dentro de << >>.
72
Nombre de Clase
Empleado
Atributos
Estereotipo
Operaciones
73
Empleado
Responsabilidades
Responsabilidades
-- Capaz de establecer
los detalles del
empleado
Figura 4.7: Responsabilidades de una Clase
mbito de instancia: Indica que cada instancia del clasificador tiene su propia
copia del atributo u operacin. El mbito de instancia es el mbito por defecto.
Los atributos y operaciones de una clase pueden o no ser usados por otras clases. La
visibilidad refiere al alcance de acceso permitido para un miembro de una clase.
Pblica (Public): Denota que los atributos y operaciones son visibles a otros
clasificadores, de modo que cualquier otro clasificador podr utilizarlos. Un signo
+ al lado del atributo o la operacin denota visibilidad public.
74
Empleado
-cuentaEmpleado
# empleadoId
# empleadoNombre
+ colocarEmpleadoId()
+ colocarEmpleadoNombre()
+ obtenerEmpleadoId()
+ obtenerEmpleadoNombre ()
+ obtenerCuentaEmpleado()
...
Dependencia.
Generalizacin.
Asociacin.
Agregacin.
Cada una de estos tipos de relaciones tiene una notacin especfica en UML. A
continuacin se discute la relacin de dependencia.
75
GeneradorNomina
DatosNomina
actualizarDataEmpleado()
generarNomina()
DatosNomina
obtenerDataEmpleado()
aadirDataEmpleado()
GerenadorNomina
En una relacin de generalizacin, la entidad hija puede aparecer donde sea que
aparezca la entidad padre, pero lo inverso no es vlido. Se alcanza el polimorfismo con
la generalizacin cuando una entidad hija sobrescribe una operacin que es definida en
la entidad padre. En UML se denota la relacin de generalizacin con una lnea slida
dirigida. La Figura 4.10 es una representacin esquemtica de tal relacin.
Empleado
Gerente
IngSoftware
GerenteProduccin
Staff
GerenteVentas
76
Trabaja Para
Compaa
Gerente
Empleado
Empleador
Multiplicidad
Tambin se puede mostrar cuntos objetos pueden ser conectados para una instancia
de una relacin de asociacin. Esto se llama la multiplicidad del rol de una asociacin.
Una asociacin tiene dos extremos, en cada extremo se puede especificar un nmero
que indica el nmero de objetos a ser creados para esa asociacin. Vea la Figura 4.12.
VehiculoCuatroRuedas
Puertas
77
Asociacin Calificada
Cuando un objeto de una clase tiene que seleccionar un objeto de otra clase para
cumplir con un papel especial en la asociacin, la primera clase debe valerse de un
atributo en especfico para localizar al objeto adecuado. Este atributo debe ser un
identificador nico. Esto es llamado asociaciones calificadas, por ejemplo cuando una
persona reserva por telfono entradas para ir al cine, el recepcionista le entrega un
nmero de reservacin nico (localizador) de las entradas, si en algn momento se
desea saber el estado de la reservacin o se va a comprar las entradas al cine, se debe
entregar el nmero de la reservacin para realizar la operacin. La Figura 4.13 muestra
la representacin grfica del ejemplo anterior.
RecepcionistaCine
NumeroReservacion
localiza 1..*
Reservacion
3.3.3
Clase Asociacin
78
Empleado
trabaja para
Compaia
Contrato
Gerente
aprobado por
Agregacin simple.
Composicin.
Una agregacin establece una relacin del tipo tiene un entre dos clases. En una
agregacin simple, el tiempo de vida del todo y las partes no estn enlazados. Por otro
lado, en la composicin, si estn enlazados. Si el todo deja de existir, las partes
automticamente dejan de existir.
La Figura 4.15 muestra una agregacin simple. Esta relacin se muestra usando un
diamante sin rellenar. El diamante se ubica cerca de la clase que forma el todo en la
relacin. Puerta y Asiento existen como entidades incluso si la clase
VehiculoCuatroruedas deja de existir. Ellas estn disponibles para su uso con otros
vehculos similares.
79
VehiculoCuatroRuedas
Puerta
Asiento
nombreEdificio
numeroDePisos
colocarNombre()
colocarNumeroDePisos()
...
1
4..6
Habitacin
Piso
numeroPisos
numeroDeHabitaciones
obtenerNumeroPiso()
obtenerNumeroDeHabit()
12
numeroHabitacin
lugarHabitacin
obtenerNumeroHabit()
obtenerLugarHabit()
...
Edificio tiene una relacin de composicin con Piso, y Piso a su vez tiene una
relacin de composicin con Habitacin.
En la primera instancia, Edificio es el todo y Piso es la parte. En la segunda
instancia, Piso es el todo y Habitacin es la parte. Esta relacin se muestra como un
diamante negro relleno, que se coloca cerca de la clase que representa el todo en la
relacin.
Unidad 4: Modelado Estructural Bsico
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
80
4. Mecanismos Comunes
Se aprendi que los mecanismos comunes, tal como los adornos, mejoran el
entendimiento del sistema.
A continuacin se listan algunos de esos mecanismos comunes:
81
La clase que
maneja todas las
operaciones de
nmina de la
compaa.
revisarFecha()
activarProcesoNmina()
...
GeneradorNmina
{autor = jerry}
InformacionNmina
generarNmina()
Se conecta
a Oracle 8i
el cual es
residente
en el
servidor
King.
ConectorBaseDatos
{version = 2.0}
{autor = donald}
{fecha = 03/03/2001}
traerDataEmpleado()
traerDeducciones()
traerIngreso()
Excepciones
noHayEmpleado
accesoIncorrectoBaseDatos
...
82
5. Caso de Estudio
Hasta aqu se ha aprendido acerca de clases, sus relaciones, adornos y mecanismos
comunes. Siguiendo con la resolucin del caso de estudio planteado en la unidad 2,
ahora se aprender a construir un diagrama de clases. Un diagrama de clases describe
grficamente un conjunto de clases, interfaces, colaboraciones y las relaciones entre
ellas.
Se coloca nuevamente el problema para mayor comprensin del mismo.
Se desea disear un sistema computarizado para automatizar un club de video, el cual
debe tener las siguientes caractersticas:
El cliente puede afiliarse por medio del sitio web y cancelar con su tarjeta de
crdito.
Debe permitir a los clientes consultar las pelculas disponibles por medio de
terminales remotos instalados en la tienda.
Para alquilar una pelcula el operador del sistema introduce la cdula del cliente,
luego introduce el cdigo de la pelcula a ser alquilada, si la cdula del cliente no
aparece en el sistema, la transaccin no procede.
Las reservaciones son realizadas por la pgina Web del club de video.
83
El alquiler de las pelculas tiene una duracin de 2 das hbiles, los das
adicionales son cobrados como das de mora.
Para alquilar y reservar una pelcula es necesario ser cliente del video club.
Para el diagrama final varias de estas clases no sern tomadas en cuenta, esto nos dice
que no todas las clases que se identifican a primera vista son todas las clases que
finalmente quedaran para el diagrama.
Cabe destacar que la abstraccin de las clases realizadas, puede variar segn la
capacidad de anlisis de la persona encargada de realizar el modelo. Por lo tanto varias
personas pueden tener diferentes diagramas de clase del mismo problema.
84
85
Un cliente realizar distintas operaciones con pelculas, esto implica una relacin de
asociacin entre la clase Cliente y la clase Pelcula
El cliente realiza los pagos de las pelculas, lo cual genera una relacin de asociacin
entre la clase Cliente y la clase Pagos.
La relacin de asociacin entre la clase Empleado y la Pelcula, permite el registro del
empleado con la transaccin de la pelcula.
La clase Inventario tiene una relacin de asociacin con la clase Pelcula, debido
a que el inventario contiene la cantidad de pelculas que hay en el stock de la
tienda de video.
86
Adems de observar las relaciones, observe las clases que fueron descartadas del
anlisis preliminar en los puntos anteriores, queda de parte del lector analizar el por
que fueron descartadas esas clases.
La clase debe proporcionar una abstraccin clara de algo desde el dominio del
problema o desde el dominio de la solucin. Usualmente puede ser parte del
vocabulario del dominio del problema o del dominio de la solucin.
La clase es simple.
Cuando se dibuja la clase en UML, es una buena idea seguir los consejos que se dan a
continuacin:
87
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
Conocer los mecanismos comunes que pueden ser aplicados a las clases.
88
89
90
91
93
95
1. Introduccin
En la Unidad 4 Modelado Estructural Bsico del Volumen 1, se explicaron los
conceptos bsicos de la orientacin a objetos, modelado de ideas y diagramas de clase.
Esta unidad, se ocupa de las caractersticas avanzadas del modelado estructural del
UML.
2. Clasificadores
Los clasificadores son bloques de construccin de UML. Son elementos del modelo,
que pueden tener instancias. UML utiliza clasificadores para describir las caractersticas
estructurales y de comportamiento del sistema. Las clases son tipos de clasificadores.
Ahora se va a considerar un ejemplo de clases en un sistema. En una aplicacin
bancaria, se tienen abstracciones que modelan clientes, planillas de depsitos o
cuentas. Estas abstracciones son la esencia del modelo. Se crean instancias de los
elementos del modelo anterior, que interactan entre s para realizar una tarea en
particular. Se sabe que cada una de las instancias de un clasificador, la clase en este
ejemplo, comparte caractersticas idnticas. Los atributos de la clase forman las
caractersticas estructurales de un clasificador mientras las operaciones de la clase
forman las caractersticas de comportamiento.
Los dems clasificadores se muestran a continuacin:
Componente: Los componentes son las partes fsicas de un sistema, que son
reemplazables. Ellos se adhieren a la interfaz y proporcionan la realizacin de un
conjunto de interfaces.
96
Interfaz
Clase
Empleado
empleadoId
empleadoNombre
setEmployeeName()
setEmployeeID()
...
Componente
Caso de Uso
parser.dll
GenerarPago
Subsistema
Nodo
Servidor
Base de
Datos
<<Subsistema
Manejador de
Datos>>
Subsistema
Administrador de
Transacciones
Tipo de Dato
Seal
<<tipo>>
color
{valores son azul,
verde, amarillo, rojo}
<<estado>
Impresora Encendida
3. Elementos Abstractos
Existen en un modelo algunas clases, cuyas instancias no pueden ser creadas. Dichas
clases se denominan clases abstractas. Generalmente, las clases abstractas contienen
una o ms operaciones que no son implementadas. Dichas operaciones se dejan
abiertas para que las implementen las clases que heredan de una clase abstracta. Las
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 1: Modelado Estructural Avanzado
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
97
En UML, las clases abstractas y las operaciones abstractas se describen usando letra
cursiva o itlica. Las operaciones de hoja se indican como {leaf}. Las operaciones
desprovistas de adornos son operaciones polimrficas, esto quiere decir que pueden
ser reescritas por las subclases. Una clase que no tiene padre puede ser adornada con
{root}. Una clase que no puede tener ms hijos est adornada con {leaf}.
Usuario
{root}
# cedula
Operacin
Abstracta
Operacin
Polimrfica
incluir()
actualizarDatos()
...
Empleado
{leaf}
Cliente
{leaf}
# id_empleado
# id_cliente
incluir()
retirarEmpleado
actualizarDatos()
...
Incluir()
RetirarCliente()
actualizarDatos()
La Figura 1.2 muestra una porcin del diagrama de clases del caso de estudio anterior
agregndole algunas operaciones, donde se puede notar que la clase Usuario es una
clase abstracta, que tambin es la raz y la clase base de la jerarqua de herencia. Las
Unidad 1: Modelado Estructural Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
98
clases Empleado y Cliente son hijos de la clase abstracta Usuario, las cuales no
pueden tener ms hijos. Con respecto a las operaciones se tiene:
4. Multiplicidad
La multiplicidad se usa para permitir al diseador especificar el nmero de objetos que
pueden ser creados para una clase. Generalmente, una clase puede tener cualquier
nmero de objetos. Pero en ciertas situaciones, se podra querer indicar el nmero
exacto de objetos para una clase. El nmero se muestra dentro de la notacin de clase
para indicar el nmero de objetos para una clase.
En el caso de un atributo, como se vio anteriormente, se puede especificar el nmero de
objetos despus del nombre del atributo. Adicionalmente, se puede disear una clase
que tenga slo un objeto. Dichas clases se denominan clases singleton. Un ejemplo de
una clase singleton es cualquier generador o clase monitor, donde slo se necesita una
instancia que puede ser usada por los dems objetos.
La Figura 1.3 ilustra la multiplicidad.
Empleado
Libro
1..3
100..*
Cliente
1..*
Biblioteca
libros[100..*]:Libro
99
<<bind>>
(Libro)
PilaLibro
<<bind>>
(Integer)
PilaInteger
En la Figura 1.4, Pila es una clase template que est representada por el parmetro
dentro de un rectngulo punteado. Ambas operaciones push y pop muestran que los
argumentos que toman son del tipo parametrizado Type. Las clases concretas se
representan como clases normales especificando una relacin a la clase template. La
relacin no describe una relacin de generalizacin. Junto a la flecha dirigida, se
Unidad 1: Modelado Estructural Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
100
proporciona el tipo real que est asociado a los formales. El estereotipo <<bind>>
indica la asociacin de clases template con las clases concretas.
101
<<control>>
Gestor
+ devolverPelicula()
+ afiliarEmpleado()
+ generarFactura()
...
Pelcula
Pelcula
Pelcula
Pelcula
Gestor
Gestor
Gestor
Gestor
102
Enumeration: Son tipos de datos definidos por el usuario, que definen las
constantes de un sistema. Una clase enumeracin define un conjunto de valores
literales, usados generalmente para validacin. En la Figura 1.9 se tiene una
clase CategoriaPelicula, la cual define ciertos literales que no pueden ser
cambiados.
<<enumeration>>
CategoriaPelicula
infantil
terror
drama
aventura
7. Relaciones
Se ha comprendido los diferentes tipos de relaciones que permiten los sistemas
orientados a objetos. En esta seccin se explican los conceptos avanzados de las tres
relaciones que se aprendieron en la Unidad 2 Modelado Estructural Bsico del
Volumen 1.
Friend: Se usa normalmente para permitir a las dems clases acceder a los
miembros de una clase. Proporciona al clasificador origen visibilidad especial en
los atributos y operaciones del clasificador destino. La Figura 1.10 muestra que
103
Refine: Se utiliza para indicar que una clase es la misma que otra, pero ms
refinada, es decir dos vistas de la misma clase, la destino con mayor detalle.
Use: Se usa cuando se debe describir una relacin semntica entre dos
elementos. La semntica del elemento origen depende de la semntica de la
parte pblica del elemento destino. Se aplica cuando se requiere marcar
explcitamente una relacin de dependencia.
Empleado
<<derive>>
empleadoID
empleadoNombre
fechaDeInicio:Date
empleadoDireccion
aosEnServicio
...
<<friend>>
GeneradorPerfilEmpleado
empleadoPerfil[1..*]: Perfil
Existen otros estereotipos para la relacin de dependencia pero estn ligados a otros
diagramas por lo cual se explican ms adelante.
104
Empleado
Gerente
GerenteProduccin
IngenieroSoftwareSenior
GerenteVentas
PersonalOficina
GerenteProyecto
7.2.1
Complete: Sugiere que el nmero de hijos requeridos por el modelo debe ser
especificado. No se permiten hijos adicionales.
Las ltimas dos restricciones se usan para distinguir entre clasificacin esttica y
dinmica. La restriccin disjoint permite clasificacin esttica, mientras que el
overlapping permite clasificacin dinmica. La clasificacin dinmica ocurre cuando un
objeto cambia su tipo en tiempo de ejecucin. Por defecto, para una generalizacin
simple las restricciones son {incomplete,disjoint}. En la Figura 1.12 se muestra un
ejemplo de alguna de estas restricciones.
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 1: Modelado Estructural Avanzado
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
105
Usuario
{incomplete, disjoint}
Cliente
Empleado
Navegacin: Generalmente, una lnea slida entre las dos clases que estn en
asociacin denota una relacin de asociacin. Tambin se puede mostrar la
direccin de la asociacin colocando una cabeza de flecha en la lnea. Se
muestra la direccin de la asociacin entre GerenteDeRegistro y
TarjetaDeRegistro en la Figura 1.13. A menos que se especifique una
direccin de la lnea, la navegacin es bidireccional.
GerenteResgitro
TarjetaRegistro
1..
generarRegistroTarjeta
generarRegistroTarjeta()
crearPlantillaTarjeta()
106
GerenteRegistro
TarjetaRegistro
# Generador
generarRegistroTarjeta
generarRegistroTarje
ta()
crearPlantillaTarjet
Solicitante
7.3.1
Empleado
Cliente
{ordered}
Figura 1.15: Restriccin Ordered
OR Exclusivo (Exclusive OR): Esto permite que las instancias de una clase
deben participar en una sola a la vez. Por ejemplo en una asociacin entre una
clase Administrador de eventos y una clase eventos, el administrador de eventos
podra realizar una auditoria a un evento o tambin podra realizar supervisiones
al evento, pero no los dos roles al mismo tiempo. Observe la Figura 1.16.
Supervisa
Evento
AdministradorEvento
{xor}
Audita
Figura 1.16: Restriccin XOR
Subconjunto (subset): Indica que una coleccin esta incluida en otra coleccin.
Por ejemplo en una escuela en la mayora de los casos los representantes de
los alumnos tambin son sus padres.
107
7.3.2
Asociacin Reflexiva
Es una clase que tiene una asociacin con ella misma. Esto ocurre cuando una clase
tiene objetos que juegan diferentes roles. En importante que los roles estn bien
definidos para que se entienda con claridad la relacin. Por ejemplo, en la Figura 1.17,
la clase Persona muestra la relacin que existe entre padres y sus hijos, una o
muchas personas tienen cero o dos padres y entre cero y muchos hijos.
Persona
Padres
0..2
Hijos
8. Interfaces y Realizacin
Una interfaz es el conjunto de operaciones que una clase o un componente especifica
como su servicio. Se pueden tener interfaces subsistemas. El nombre de la interfaz
puede ser un nombre simple o un nombre de ruta, adems es importante resaltar que
las interfaces no tienen atributos solo operaciones que sern implementadas por una o
varias clases.
UML representa las interfaces de dos maneras, como una clase con el estereotipo
<<interface>> o utilizando crculos pequeos conectados con una lnea con el elemento
que provee los servicios descritos por la interfaz. Observe un ejemplo de interface en la
Figura 1.18.
<<inteface>>
IFigureAgent
interfaz
Clase
dibujar()
mover()
redimensionar()
...
108
8.1 Realizacin
Esta es una relacin semntica entre dos clasificadores. La notacin utilizada es una
lnea punteada con una punta de flecha en forma de tringulo sin rellenar apuntando
hacia el clasificador que especifica el contrato.
La relacin de realizacin tiene algunos ingredientes de relaciones de dependencia y
generalizacin, adems se usa en el contexto de interfaces y colaboraciones.
Semnticamente, es correcto decir una clase o un componente es la realizacin de una
interfaz. Las clases implementan interfaces y de aqu el trmino realizacin es usado
en lugar de generalizacin. En el caso de generalizacin, se enfatiza una relacin
padre/hijo. No hay tal relacin enfatizada en una relacin de realizacin. Tambin es
muy usual ver realizaciones en casos de uso, las cuales son llamadas colaboraciones.
La Figura 1.18a muestra un ejemplo de una relacin de realizacin.
Las Figuras 1.19a y 1.19b representan la realizacin de una interfaz por una clase. En
la Figura 1.18a, la interfaz revela algunas de las operaciones. Por tanto, se describe la
interfaz usando la estructura de clase con el estereotipo <<interface>> en una lnea
anterior el nombre de la interfaz. En la segunda Figura 1.19b, se usa el cono de interfaz
y se observa que la clase ObjetoDocumento es la realizacin de la interfaz
IAgenteFigura.
La Figura 1.19c representa la realizacin de un caso de uso a travs de una
colaboracin.
Las formas usadas para la realizacin de las Figuras 1.19a y 1.19c se denominan
formas cannicas y la usada en la Figura 1.19b se refiere a la forma abreviada (elided
form).
109
<<inteface>>
IAgenteFigura
dibujar()
mover()
redimensionar()
...
ObjetoDocumento
ObjetoDocumento
IAgenteFigura
GenerarReporte
Generacin
9. Roles
Una clase puede llevar a cabo ms de una interfaz. Una instancia de la clase soporta el
contrato especificado en todas las interfases que sus clases se han comprometido. Pero
en un determinado contexto o escenario, la instancia podra revelar slo algunas de las
interfaces. En ese caso, la interfaz representa un rol que juega el objeto. Un rol es una
forma por la cual una abstraccin se presenta al mundo.
La Figura 1.20 muestra cmo se describen los roles para una interfaz. El
ObjetoDocumento tiene dos interfaces, IFigureAgent y IDocumentoAgent. En el
contexto dado de la participacin del ObjetoDocumento con un EditorTexto, el rol
de la interfaz est siendo descrito en el terminal del ObjetoDocumento. El rol de la
interfaz est en la forma de un Documento.
110
Figura
IFigureAgent
ObjetoDocumento
Documento
IDocumentoAgent
10. Paquetes
Un paquete es un mecanismo para agrupar elementos. Los paquetes organizan
modelos de la misma manera que los directorios organizan y almacenan archivos. Cada
paquete tiene un nombre, que es un nombre simple o un nombre de ruta. Los nombres
de ruta tienen otros nombres de paquete en los que el paquete especificado est
encapsulado. Los paquetes, como las clases pueden ser adornados con valores
etiquetados o tener compartimientos adicionales para exponer otros detalles. La Figura
1.21 muestra dos paquetes, uno con un nombre simple y otro con un nombre de ruta.
Uno tiene valores etiquetados indicando el autor. ENomina es el paquete que encierra
a Nomina.
Nmina
ENomina:: Nmina
{author:jerry}
Tambin se puede revelar las clases o componentes dentro del paquete, junto con su
visibilidad. Esto se puede hacer de dos formas:
Anidamiento textual.
Anidamiento grfico.
La Figura 1.22 ilustra esto. Las clases mostradas dentro del paquete son elementos que
son apropiados por el paquete. GeneradorNomina y GeneradorPago son clases
pblicas, mientras que ConectorBaseDatos es una clase privada. Esta clase puede
ser usada por todas las clases dentro de este paquete, pero no por uno fuera del
paquete Nomina.
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 1: Modelado Estructural Avanzado
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
111
Nmina
+GeneradorNmina
+GeneradorPago
-ConectorBaseDatos
Nmina
+GeneradorNmina
+ GeneradorPago
- ConectorBaseDatos
Anidamiento Textual
Anidamiento Grfico
10.1
Estereotipos de Paquetes
Facade: Esto permite especificar que un paquete es una vista a algn otro
paquete.
<<System>>
TiendaVideo
10.2
Existen estereotipos que permiten clarificar la dependencia entre paquetes, entre ellos
se tienen:
Unidad 1: Modelado Estructural Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
112
<<import>>
<<access>>
C
10.3
Los paquetes pueden heredar de un paquete existente. Ellos siguen los mismos
principios que las clases.
113
GUI
+ Ventana
+
WebGUI
+ Marco
+ GUI:Ventana
ApliGUI
+ Marco
+ GUI:Ventana
11. Instancias
Las clases son abstracciones del mundo real. Los objetos son instancias de una clase.
Una instancia es la manifestacin concreta de una abstraccin. En un sistema orientado
a objetos, las instancias forman el ncleo del sistema. Las interacciones se llevan a
cabo entre las instancias. En UML, una instancia es descrita justo como una clase, con
el nombre subrayado.
11.1
Nombres de Instancia
114
esteEmpleado
esteEmpleado: Empleado
:Empleado
:EmpleadoData ::Empleado
:Empleado
11.2
Operaciones de Instancias
El objeto puede trabajar con todas las operaciones definidas como parte de su clase. Si
el objeto es parte de una jerarqua de herencias, la operacin puede o no ser invocada
como una operacin polimrfica.
11.3
Estado de un Objeto
Cada objeto tiene un estado. El estado de un objeto es una de las posibles condiciones
bajo las que el objeto puede existir. El estado de un objeto cambia con el tiempo y est
definido por un conjunto de propiedades (atributos), por los valores de esas propiedades
y por las relaciones que dicho objeto puede tener con otros objetos.
Por ejemplo, el estado del objeto esteEmpleado de la clase Empleado incluye la
propiedad esttica empleadoNombre y el valor actual jerry. Usando la notacin UML,
se pueden especificar los atributos y sus valores.
11.4
Objetos Activos
Los objetos activos son aquellos que tienen su propio flujo de control. Los hilos y
procesos son ejemplos de objetos activos. Un objeto activo est descrito en la misma
forma en que est un objeto, pero con el contorno del rectngulo oscuro.
La Figura 1.27 muestra los atributos de un objeto y los objetos activos.
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 1: Modelado Estructural Avanzado
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
115
esteEmpleado
empleadoNombre="Scooby"
empleadoEdad=28
esteEmpleado
[En Prueba]
Objeto activo
t : EmpleadoHilo
<<exception>>
Instancia estereotipada
e: Empleado
Existen otros estereotipos que pueden ser usados con instancias pero junto con una
relacin de dependencia. Entre ellos se tienen:
Instantiate: Este estereotipo establece que la fuente crea instancias del destino.
11.4.2 Restricciones
Las instancias slo tienen una restriccin, referida como transient. Una restriccin
transient especifica que la instancia debe ser creada durante la ejecucin de una
interaccin cerrada. Dichos objetos son destruidos despus de que la ejecucin se
completa.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
116
miCliente: Cliente
miEmpleado: Empleado
realiza
opera con
opera con
miPago:Pagos
realiza
mipelicula: Pelicula
mireservacion: Reservacion
117
El diagrama de clase define los atributos que deben ser usados para definir cada tipo de
objeto y el comportamiento que cada tipo de objeto debe soportar.
<<entity>>
Cliente
<<entity>>
Reservacion
Id_reservacion
Id_cliente
1
Fecha_afiliacin
realiza
0..*
Fecha_reservacion
nombre
InscribirCliente()
RetirarCliente()
realizarReservacion()
eliminarReservacion()
El diagrama de objeto de la Figura 1.31, muestra que el objeto manuel de tipo Cliente
ha realizado dos reservaciones. Note que los objetos no tienen los compartimientos de
las operaciones, que son necesarias para las clases. Los objetos definen los atributos
debido a que cada objeto posee diferentes valores de atributos definidos por la clase,
pero no contiene operaciones porque ellas no tienen mltiples interpretaciones o
valores. Esto quiere decir, que todos los objetos derivados de la misma clase contienen
las mismas operaciones.
Es importante destacar que aunque todos los atributos de los objetos de la Figura 1.31
tienen valores, no necesariamente es una regla, tambin los atributos pueden estar en
blanco o pueden ser nulos, todo depende de la definicin del atributo en la clase.
118
R001M: Reservacion
<<entity>>
Manuel: Cliente
id_reservacion=R001M
Fecha_reservacion=26/07/20
05
nombre= Manuel
id_cliente=001
Fecha_afiliacion=26/07/2
005
<<entity>>
R002M: Reservacion
id_reservacion=R002M
Fecha_reservacion=27/07/20
05
El rbol de herencia no debe ser demasiado profundo (es buena idea tener
menos de 5 niveles).
Las asociaciones deben ser usadas slo donde hay relaciones estructurales
entre objetos.
119
Resumen
Ahora que ha completado esta unidad, debe ser capaz de:
120
121
122
123
125
Ejercicio de Laboratorio
Se describe un sistema ATM para un e-Bank (Banco electrnico).
El e-Bank lanz sus operaciones en Venezuela, con su casa matriz en Caracas, en
2002. Dentro de un periodo corto de tres aos, construy una red de 275 sucursales por
toda Venezuela. Quizs deba su xito al excelente servicio al cliente y a la banca por
Internet para clientes individuales y corporativos. Aunque tiene un sistema ATM
existente en todas sus sucursales, el banco desea disear e implementar un nuevo
sistema ATM basado en las ltimas tecnologas. La necesidad es tener un sistema de
software orientado a objetos para el ATM, que resulte en una estructura sencilla con
componentes reutilizables que sean fciles de extender y mantener.
A continuacin se presenta la descripcin de los requerimientos claves del sistema ATM
para el e-Bank:
Los clientes pueden acceder a sus cuentas en el ATM insertando una tarjeta
ATM, dicha tarjeta es proporcionada al cliente junto con un cdigo (PIN) que
tendr que ser insertado despus que se inserta la tarjeta. El cdigo (PIN) est
compuesto de 4 dgitos decimales del 0 al 9.
Se supone que una sola tarjeta ATM proporciona acceso a todas las cuentas del
cliente.
126
127
Definir colaboraciones.
Definir interacciones.
129
1. Introduccin
La vista de interaccin describe secuencias de intercambios de mensajes entre los roles
que implementan el comportamiento de un sistema.
Esta visin proporciona una vista integral del comportamiento del sistema, es decir,
muestra el flujo de control a travs de muchos objetos. La vista de interaccin se exhibe
en dos diagramas centrados en distintos aspectos pero complementarios: centrados en
los objetos individuales y centrados en objetos cooperantes. A continuacin se explican
2 conceptos importantes para entender estos diagramas.
2. Interaccin
Es el conjunto de mensajes intercambiados por los roles del clasificador a travs de los
roles de asociacin. Un mensaje es una comunicacin unidireccional entre dos objetos,
un flujo de objeto con la informacin de un remitente a un receptor. Un mensaje puede
tener parmetros que transporten valores entre objetos. Un mensaje puede ser una
seal (comunicacin explcita entre objetos, con nombre y asncrona) o una llamada (la
invocacin sncrona de una operacin con un mecanismo para el control, que retorna
posteriormente al remitente).
3. Colaboracin
Es una descripcin de una coleccin de objetos que interactan para implementar un
cierto comportamiento dentro de un contexto. Describe una sociedad de objetos
cooperantes unidos para realizar un cierto propsito. Una colaboracin contiene ranuras
que son rellenadas por los objetos y enlaces en tiempo de ejecucin. Una ranura de
colaboracin se llama Rol porque describe el propsito de un objeto o un enlace dentro
de la colaboracin. Conociendo estos conceptos, se puede aprender sobre estos
diagramas.
4. Diagramas de Interaccin
Los diagramas de interaccin describen el modo en que grupos de objetos colaboran
para realizar un trabajo. Ellos capturan el comportamiento de un solo caso de uso,
mostrando el patrn de interaccin entre los objetos. Por lo tanto, un diagrama de
interaccin consiste de:
Conjunto de objetos.
130
131
:Cliente
:Cliente
:Reservacin
:Empleado
4.1.2 Mensajes
Un mensaje es la definicin para la comunicacin entre objetos, estos mensajes pueden
invocar una operacin, enviar una seal, causar una creacin o destruccin de un
objeto. Los mensajes se representan con una flecha, pero segn el tipo de mensaje el
tipo de flecha puede cambiar. La cola de la flecha representa al remitente del mensaje y
la cabeza representa el receptor del mensaje. En la Figura 3.2 se muestra un ejemplo
de envo de mensajes simple con objetos.
El diagrama de secuencia de la Figura 3.2 describe los mensajes en orden creciente del
tiempo.
Por
lo
tanto,
el
mensaje
que
invoca
al
mtodo
cunsultar_Pelicula(id_pelicula) es invocado mucho antes que el mensaje
obtenerPelicula(). Tambin puede observarse en la Figura 3.2 que el objeto de la
clase ConectorBaseDato es creado en el mbito del diagrama de secuencia, este tipo
de objeto se denomina objeto transitorio (transient objects), son denotados por la
restriccin {transient}. Dicho objeto luego de ser utilizado se destruye. La barra
vertical muestra el enfoque de control. Es el perodo de tiempo durante el cual un objeto
est realizando una accin. Tambin es importante nombrar que las flechas punteadas
Unidad 3: Modelado de interaccin
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
132
que aparecen en la Figura 3.2, las cuales representan las respuestas de los mensajes
enviados.
Existen diferentes tipos de mensajes entre ellos se tienen:
Asncronos: El objeto remitente enva una seal y contina con sus tareas
independientes. El receptor recibe la seal, la procesa y luego de la finalizacin de la tarea, contina con sus tareas independientes. El remitente no espera a
que el receptor complete la tarea. Los dos objetos no estn sincronizados en
este tipo de comunicacin. La Figura 3.4 ilustra el paso asncrono de mensajes.
133
4.1.3 Comentarios
En algunos casos es importante proporcionar alguna explicacin sobre lo que sucede
en el diagrama o en los elementos dentro del diagrama. Para realizar esto la
especificacin UML se vale del mecanismo comn como las notas. Estas notas pueden
ser colocadas en cualquier parte del diagrama o pueden ser unidas a los elementos por
medio de una lnea punteada. Como se muestra en la Figura 3.5.
4.1.4 Iteracin
Una iteracin significa que uno o ms mensajes son ejecutados en secuencia ms de
una vez. La iteracin se denota usando un asterisco (*) y una condicin para controlar el
nmero de iteraciones. Por ejemplo, un caso de uso adicional para la tienda de video es
Consultar Inventario, el cual tiene como una de sus responsabilidades mostrar por
pantalla las pelculas en existencia segn sus gneros entre otras cosas. El diagrama
de secuencia para este caso de uso utilizara una iteracin para recuperar de la base de
datos las pelculas segn un filtro de bsqueda. Observe este ejemplo en la Figura 3.6.
134
La Figura 3.7 muestra otra vista de lo que fue presentado en el diagrama de secuencia
de la Figura 3.2.
135
[id:=1 to 499]
1: graduaEstudiante()
Graduador
3: estudianteNoGraduado()
2: modificaEstadoEstudiante()
[no aprobado]
[aprobado]
ManejadorExepcion
ConectorBaseDato
136
GerenteEstudiante
{Location= Servidor
Principal}
1: generarId()
Ge nerado rId
ConectorBaseDatos
{Location= servidor
Base de datos}
EnrutadorDatos
4: haltOperacio nes()
Figura 3.9: Representacin de Tiempo y Espacio
Dibujar los enlaces entre los objetos utilizando el diagrama de clases como gua.
Agregar un mensaje con una flecha paralela, en el enlace entre dos objetos.
137
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
Definir colaboraciones.
Definir interacciones.
138
139
140
141
143
Ejercicio de Laboratorio
Se describe un sistema ATM para un e-Bank (Banco electrnico).
El e-Bank lanz sus operaciones en Venezuela, con su casa matriz en Caracas en el
ao 2002. Dentro de un periodo corto de tres aos, construy una red de 275
sucursales por toda Venezuela. Quizs deba su xito al excelente servicio al cliente y a
la banca por Internet para clientes individuales y corporativos. Aunque tiene un sistema
ATM existente en todas sus sucursales, el banco desea disear e implementar un
nuevo sistema ATM basado en las ltimas tecnologas. La necesidad es tener un
sistema de software orientado a objetos para el ATM, que resulte en una estructura
sencilla con componentes reutilizables que sean fciles de extender y mantener.
A continuacin se presenta la descripcin de los requerimientos claves del sistema ATM
para el e-Bank:
Los clientes pueden acceder a sus cuentas en el ATM insertando una tarjeta
ATM, dicha tarjeta es proporcionada al cliente junto con un cdigo (PIN) que
tendr que ser insertado despus que se inserta la tarjeta. El cdigo (PIN) est
compuesto de 4 dgitos decimales del 0 al 9.
Se supone que una sola tarjeta ATM proporciona acceso a todas las cuentas del
cliente.
144
145
147
1. Introduccin
En las unidades anteriores, se aprendi acerca de la necesidad y el uso de cinco
diagramas, a saber: diagramas de clase, diagramas de objetos, diagramas de casos de
uso, diagramas de interaccin y diagramas de actividad. En esta unidad, se aprender
otro diagrama el diagrama de estados el cual permite realizar un Modelado de
Comportamiento.
2. Mquinas de Estado
En la dinmica de anlisis y diseo orientado a objetos, los objetos son tpicamente
modelados mostrando los diversos estados por los que atraviesa durante su tiempo de
vida. Esto proporciona otra vista de los objetos en el sistema. Mientras sean empleadas
las interacciones para modelar el comportamiento de un conjunto de objetos, se utilizan
mquinas de estado para modelar y entender el comportamiento de un objeto individual.
Cada objeto tiene un tiempo de vida, por lo cual empieza su existencia en algn punto
en el tiempo y deja de existir en otro punto en el tiempo. Durante su existencia, puede
sufrir varios cambios. Los eventos causan cambios en el estado de un objeto basado en
la ocurrencia de eventos. Un objeto puede atravesar una serie de estados durante su
tiempo de vida y las mquinas de estado ayudan a modelar estos cambios de una
manera simple.
Las mquinas de estado representan un conjunto de estados que atraviesa un objeto
durante su tiempo de vida. Tambin incluyen la reaccin del objeto ante un evento.
Las mquinas de estado se pueden usar para modelar el comportamiento de una
instancia de una clase o un caso de uso. A veces, las mquinas de estado se usan para
modelar el sistema completo.
Las mquinas de estado pueden ser visualizadas de dos maneras, segn se menciona
a continuacin:
2.1 Estados
Un estado es un conjunto de valores que almacena un elemento en un punto en el
tiempo. Un objeto, durante su tiempo de vida, puede realizar una de las siguientes
tareas:
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
148
Cuando el objeto est llevando a cabo una de las tareas anteriores, se dice que el
objeto est en ese estado. Por ejemplo, un objeto en el estado Inactivo espera que
un evento ocurra, o un objeto en el estado Validando est realizando una actividad.
Un estado de un objeto tiene varias partes, estas son:
Un estado se representa como una caja redondeada con el nombre del estado en su
interior, la cual puede tener uno o dos compartimientos. En el primer compartimiento se
coloca el nombre del estado. El segundo compartimiento es opcional, en l se colocan
acciones de entrada, acciones de salida y acciones internas. En la Figura 4.1 se
muestra la representacin grfica de los estados.
149
3. Eventos
Un evento es un suceso o hecho en el sistema que causa una transicin de estado. Un
evento posee tiempo y espacio asociados a l. La Figura 4.3 es una ilustracin de un
evento simple.
La figura anterior describe dos estados: Inactivo y Activo. La transicin del estado
Activo al estado Inactivo se debe al evento llamado Colgar. La mayora de los
eventos resultan en una accin. En la Figura 4.3, el evento Colgar resulta en la accin
liberarConexion().
Los eventos pueden ser de dos tipos:
150
Eventos Externos: Los eventos que ocurren entre los actores y el sistema se
denominan eventos externos. La insercin de una tarjeta en un sistema
automatizado es un ejemplo de un evento externo.
Eventos Internos: Los eventos que suceden entre objetos que residen en el
sistema son referidos como eventos internos. Una excepcin de desbordamiento
de punto flotante es un ejemplo de un evento interno.
3.1 Seales
Las seales se refieren a la comunicacin asncrona entre objetos. Las seales no
devuelven valores a los que envan la seal. Las seales son siempre enviadas de un
objeto a otro, nunca son invocadas. Normalmente en un sistema se espera que los
objetos acten y reaccionen al evento. De igual manera, las seales se usan para
manejar eventos excepcionales. Por lo tanto, una seal es un evento que es lanzado
asincrnicamente por un objeto y es capturado por otro objeto en el sistema. Esta
comunicacin asncrona entre objetos es referida como excepcin, en los lenguajes de
programacin modernos. Las excepciones son el tipo ms comn de seales que se
modelan en un sistema.
La Figura 4.4 muestra el modo en que las seales se representan en UML. Se muestra
que la seal ConexionFallida es lanzada asincrnicamente por la operacin
obtenerConexion() del ConectorBaseDatos cuando existe una falla en la
conexin a la base de datos. Se usa el estereotipo <<send>> para indicar que se enva
una seal.
ConectorBaseDato
<<send>>
ObtenerConexion()
obtenerPelicula()
ObtenerPeliculA()
ObtenerListaPelicula()
ObtenerListaPelicula()
<<seal>>
ConexionFallida
nombreBd
Tpicamente, las excepciones son modeladas usando seales. La Figura 4.5 muestra un
ejemplo del modo en que pueden ser modeladas.
151
152
La
seal
FallaTeclado
es
una
especializacin
de
la
seal
FallaDispositivoEntrada, la cual a su vez es una especializacin de la seal
FallaHardware. En la Figura 4.6, se intenta modelar los eventos asncronos para un
sistema de computadora.
Una seal puede ser enviada como una accin de una transicin de estado en una
mquina de estado. Tambin puede ser un mensaje enviado desde un objeto hacia otro
en una interaccin. Las seales pueden ser enviadas dentro de una operacin durante
su ejecucin.
153
Inactivo
La Figura 4.8 ilustra una funcionalidad simple de un salva pantalla. La expresin indica
que si el usuario no presiona alguna tecla del teclado en 5 minutos, el estado del salva
pantalla es cambiado a activo. Luego, si el usuario presiona alguna tecla, el salva
pantalla vuelve al estado en reposo.
A menos que se indique, el tiempo de inicio para verificar una expresin que sigue a un
after es el momento cuando se ingres al estado actual.
La Figura 4.9 ilustra el modo en que una alarma para una reunin se fija en 'encendido',
cuando la hora es 12:00 pm.
3.5 Transiciones
Se define como la respuesta de un objeto, que se encuentra en un estado, a la
ocurrencia de un evento. Dos estados se relacionan a travs de una transicin. Cuando
un objeto se mueve de un estado a otro, el movimiento se muestra usando una
transicin. Bajo la ocurrencia de un evento, el objeto ingresa al siguiente estado en la
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
154
relacin. La ocurrencia del evento resulta en alguna accin especificada. Una transicin
puede tener mltiples fuentes y mltiples destinos.
Un estado puede transitar a s mismo. Esto es referido como autotransicin. En la
autotransicin, el objeto abandona el estado debido a la ocurrencia de un evento,
maneja el evento, ejecuta una accin y reingresa al mismo estado. Un ejemplo de
autotransicin puede verse en la Figura 4.10.
Antes de ver cmo son modelados los subestados en UML, se vern brevemente las
caractersticas avanzadas asociadas a estados y transiciones. Vea la Figura 4.11.
155
En la Figura 4.11 se usa la transicin especial do para indicar que el objeto est
realizando una secuencia de acciones, por ejemplo, accion1() y accion2(). El
trabajo realizado por el objeto mientras est en el estado Procesando se divide en
acciones separadas. Una accin no se puede interrumpir, pero una secuencia de
acciones puede ser interrumpida por un evento. Entre accion1() y accion2(), un
evento puede ser manejado por el objeto. Esto puede llevar a una transicin a otro
estado fuera de este estado. En este caso, accion2() puede no ser llevada a cabo.
156
4. Subestado
Un estado puede tener estados anidados, llamados subestados. Un estado puede o no
tener subestados. Un estado con subestados es llamado estado compuesto, mientras
que uno sin subestados es llamado estado simple. Los estados compuestos pueden
tener subestados secuenciales o concurrentes. Pueden existir varios niveles de
subestados en un estado particular.
La figura anterior muestra que un objeto est en el estado Inactivo cuando ocurre un
evento presionarTecla(). El objeto transita al estado Activo. Permanece en este
estado hasta que ocurra el evento Termino. El objeto entonces regresa al estado
Inactivo.
En el estado Activo, se encuentran tres subestados: Validando, Procesando y
Mostrando. Ellos representan un flujo de control secuencial. El estado compuesto tiene
una accin de entrada activar(). El estado Procesando bien puede ser el estado
mostrado en la Figura 4.11. Por lo tanto, se puede ver que las mquinas de estado
pueden ser muy complejas.
157
158
159
160
5. Diagramas de Estado
Un diagrama de estados muestra la secuencia de estados por la que atraviesa un objeto
durante su tiempo de vida, en respuesta a los estmulos y mensajes exteriores. Un
diagrama de estados se representa grficamente como vrtices y arcos. El nombre UML
designado para la mquina de estado conceptual es Diagrama de Estados. Consiste de
estados - simples y compuestos, eventos, acciones y transiciones.
Algunos objetos son manejados por eventos. Tales objetos permanecen inactivos hasta
que un evento es activado. Este comportamiento de espera por un estmulo externo,
para causar que un objeto acte se llama comportamiento establecido por eventos. Los
diagramas de estado se usan para modelar dicho comportamiento en el sistema. Estos
comportamientos pueden ser modelados para clases, interfaces, componentes y nodos
de un sistema. Tambin se puede usar un diagrama de estados para modelar un
escenario con ayuda de casos de uso.
La Figura 4.15 muestra un ejemplo de una mquina de estados para un objeto
DetectorDeHumo, el cual comienza en el estado Inicializando la alarma, luego
pasa al estado Inactivo esperando un evento para que la alarma se active. Cuando
se ejecute el evento activarAlarma() el objeto pasa al estado Activo, el mismo tiene
subestados secuenciales que verifican la seal de activacin realizan una llamada a una
central de bomberos y descuelgan la llamada.
161
6. Clases Activas
Una clase es referida como clase activa cuando es capaz de iniciar una actividad de
control. Una instancia de una clase activa es un objeto activo. Tpicamente, un objeto
activo es un proceso o un hilo, dado que es capaz de iniciar una actividad de control.
Un proceso puede ejecutarse concurrentemente con otros procesos. Cada proceso
tiene su propio espacio de direccin y es llamado componente pesado. Un proceso es
conocido por el sistema operativo. Por otro parte, un hilo es un componente ligero que
puede ejecutarse concurrentemente con otros hilos dentro del mismo proceso. Los hilos
dentro de un proceso comparten el mismo espacio de direccin. Los hilos pueden ser
conocidos para el sistema operativo, pero tpicamente residen dentro de un componente
pesado. Los procesos e hilos traen con ellos el concepto de concurrencia. Por lo tanto,
los objetos activos pasan mensajes a otros objetos activos al incorporar semntica de
concurrencia. Esto ayuda a la sincronizacin de las interacciones entre flujos
independientes.
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
162
Una clase activa es descrita grficamente en la Figura 4.16. El borde exterior del
rectngulo es ms grueso. Una clase activa es como una clase normal con atributos,
operaciones y compartimentos adicionales. Los objetos activos reciben seales, las
cuales se listan en un compartimiento llamado Seales.
La Figura 4.16 muestra las diversas partes de una clase activa. Las clases estticas no
reciben seales y por lo tanto no tienen un compartimiento llamado Seales. Se ve
que la clase ConectorBaseDatos recibe dos seales.
Para modelar un proceso o hilo en UML, se usan clases activas. Cada flujo de control
independiente, dentro de una aplicacin, se representa como un proceso o como un hilo
y se le asigna un nombre nico.
En UML, process y thread son los dos estereotipos estndar definidos para clases
activas. En un sistema, se pueden encontrar tanto objetos activos como pasivos. Un
objeto activo puede interactuar con un objeto pasivo y viceversa.
Existen cuatro maneras en las que las interacciones pueden ocurrir entre un objeto
activo y uno pasivo. Se discuten brevemente a continuacin:
1) Pasar un mensaje desde un objeto pasivo hacia otro objeto pasivo.
En un solo flujo de control, el paso de un mensaje es una llamada a una operacin
desde un objeto hacia otro objeto. La Figura 4.17 muestra este tipo de paso de
mensaje.
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 5: Modelado de Comportamiento Avanzado
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
163
Un objeto activo invoca una operacin sobre otro objeto activo sincrnicamente.
El objeto llamador pasa un mensaje y espera a que el receptor acepte la
llamada. El receptor despacha la operacin y enva un valor de retorno al
llamador. El llamador y el receptor continan con sus tareas independientes. Por
la duracin de la operacin, los dos objetos son sincronizados. La Figura 4.18
muestra un ejemplo de paso sncrono de mensajes.
Note la diferencia entre los smbolos usados en las Figuras 4.18 y 4.19 para el paso
sncrono y asncrono de mensajes. En el primer caso, el objeto de
:ConectorBaseDatos espera hasta que el objeto :EnrutadorDatos encuentre una
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
164
nueva ruta. Esto puede ocurrir cuando existe una saturacin de la red. En el segundo
caso, el objeto :EnrutadorDatos pasa un mensaje asncrono haltOperations() y
luego contina con su tarea independiente. La finalizacin de la tarea
haltOperations() no afecta las tareas independientes de :EnrutadorDatos.
3) Pasar un mensaje desde un objeto pasivo hacia un objeto activo
Algn flujo de control inicia desde un objeto activo. Esto permite que el objeto pasivo
invoque una operacin sobre el objeto activo. La misma semntica es aplicada en el
caso de un objeto pasivo que pasa un mensaje a otro objeto pasivo. La Figura 4.20
describe un simple paso de mensajes entre un objeto pasivo y un objeto activo.
Figura 4.21: Paso de Mensajes desde Mltiples Objetos Activos hacia un Objeto Pasivo
165
Otro caso que puede ser presentado es el diagrama de estado de un objeto cliente,
desde la perspectiva de alquilar y devolver pelcula. Ver Figura 4.23
En esta figura se muestran 2 estados en la que un objeto cliente puede estar cuando
alquila y devuelve pelculas, estos son: SinPelicula y ConPelicula.
166
8. Algunas Recomendaciones
Las siguientes, son algunas recomendaciones en el contexto de manejo de eventos:
Los elementos que envan eventos y tambin aquellos que reciben eventos
deben ser modelados.
167
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
168
169
170
171
173
1. Introduccin
En esta unidad se aprender acerca del modo en que son modeladas las partes
arquitectnicas de un sistema: componentes, nodos y colaboraciones. En cualquier
esfuerzo de desarrollo de sistemas, sta es una vista completamente diferente del
sistema. Proporciona una perspectiva que ayuda a modelar los componentes fsicos del
mismo. Se construyen modelos lgicos para visualizar y conceptualizar el sistema. El
modelo arquitectnico se usa para modelar las entidades fsicas que existen
eventualmente en el mundo real, es importante destacar que tanto las vistas fsica como
lgica son igual de importantes.
El modelado estructural se ocupa de las abstracciones, instancias de esas
abstracciones y sus relaciones. El Modelado del Comportamiento ayuda a entender el
flujo de control entre dos o ms objetos modelados usando diferentes diagramas. Los
diagramas arquitectnicos permiten modelar ejecutables, libreras, tablas, archivos,
cdigo fuente y nodos fsicos. En esta unidad, se aprender acerca de los diagramas de
componentes y diagramas de despliegue. A continuacin se discutir sobre
componentes.
2. Componentes
Un componente es un tipo Clasificador con la diferencia de que no tiene caractersticas
propias, pero contiene las clases que definen las caractersticas. Un componente
proporciona una vista encapsulada de la funcionalidad definida por las clases
contenidas.
Un componente es una parte fsica del sistema. Cada componente tiene un nombre, el
cual puede ser un nombre simple o un nombre de ruta.
En la especificacin UML 1.4 se describe como una caja rectangular con dos
rectngulos ms pequeos centrados en el borde izquierdo. Se pueden tener
compartimentos y valores etiquetados para un componente, tal como se hizo para las
clases. La Figura 6.1 es un ejemplo en el que se muestra la representacin de
componentes en UML.
174
175
<<library >> Para describir una inclusin de una librera. Puede ser una
librera esttica o dinmica.
Un componente puede realizar o usar una interfaz. Cuando un componente realiza una
interfaz se llama una interfaz exportada o de exportacin. Cuando un componente
realiza o implementa una interfaz ofrece como servicio los comportamientos de dicha
interfaz realizada a otros componentes. Una interfaz que es usada por un componente
se llama una interfaz importada. Cuando un componente usa una interfaz, utiliza el
comportamiento de una interfaz realizada por otro componente. En otras palabras, un
componente establece la disponibilidad de su interfaz para que otros componentes
puedan utilizar las operaciones o comportamientos que contiene. En la Figura 6.4 se
muestra un componente que realiza la interfaz MenuArchivo en la forma icnica,
dicha interfaz proporciona la funcionalidad al componente de manejar el archivo de
imagen a procesar (crear archivo, abrir archivo, entre otras).
176
La Figura 6.5 muestra la misma realizacin pero de forma expandida. Ntese que en
esta representacin se da a conocer las operaciones que son parte de la interfaz.
177
3. Diagrama de Componentes
Los diagramas de componentes se usan para modelar la implementacin esttica de
elementos fsicos que residen en un nodo, como los ejecutables, libreras, tablas y
archivos. Los diagramas de componentes son tiles tambin para construir sistemas
ejecutables a travs de la ingeniera reversa y la ingeniera hacia adelante.
Un diagrama de componentes es un conjunto de componentes y la relacin entre ellos.
Consiste de componentes, interfaces y relaciones entre ellos. Pueden agregarse notas y
restricciones a un diagrama de componentes.
178
Cdigo Fuente.
Sistemas Adaptables.
179
180
Se asumir que existe una falla del servidor primario. En este caso, el componente de
base de datos de la aplicacin ser adjuntado con aquel disponible en el servidor
secundario. sta es una instancia del componente de base de datos que migra del
servidor primario al secundario. Puede describirse usando un diagrama de interaccin
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectnico
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
181
que muestra un objeto del componente que migra, adems de la accin resultante de la
migracin. Existen dos instancias del mismo componente mostrado, pero se diferencian
en cuanto a la localizacin del servidor. La Figura 6.12 muestra esta migracin.
En la Figura 6.12 se muestra la migracin del servidor primario al secundario ante una
falla del servidor y el posterior retorno al servidor primario luego de la recuperacin ante
la falla.
182
En el caso de la ingeniera en reversa, tanto el cdigo fuente como las libreras binarias
pueden ser la fuente. Al cdigo fuente se le puede aplicar ingeniera en reversa para
tener componentes seguidos por clases. A las libreras binarias se les puede aplicar
ingeniera en reversa para conocer sus interfaces.
La Figura 6.13 muestra un ejemplo de ingeniera hacia adelante. Muestra el modo en
que el componente AgenteAnalizador recibe ingeniera hacia adelante y se
convierte en un conjunto de cdigos fuente y archivos de base de datos. De modo
similar, a una librera de enlace dinmico o un cdigo fuente se le puede hacer
ingeniera en reversa para mostrar los componentes y las clases que se usaron para
construir los archivos de librera y cdigo fuente.
4. Colaboraciones
Las colaboraciones son un conjunto de clases, interfaces, nodos, componentes y casos
de uso. La colaboracin especifica el modo en que los clasificadores y asociaciones
realizan un elemento. En unidades anteriores, se aprendi el modo en que un caso de
uso es realizado por una colaboracin. La notacin UML para la colaboracin es una
elipsis con lneas punteadas. La Figura 6.14 ilustra la colaboracin
AfiliacionClientes. Para el caso de estudio de la tienda de video.
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectnico
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
183
E m pleado
(f ro m Lo g i ca l V i e w)
+ id_em pleado
- c argo
- fec ha_ingres o
- s tatus _e mp
+
+
+
+
+
+
+
+
nom bre
apel lido
edad
te lefono
di rec c ion
e_c i vi l
nam e
cedul a
T_c redito
(f ro m Lo g ic a l V i e w)
- num _tarjeta
- fec ha_venc im iento
- lim ite_c redito
- r if
- nit
- no mbr e
(f ro m Lo g ic a l V i e w)
a fi li aci on
- id_ c liente
- fec ha_afiliac ion
- s tat us
c ontrato
(fro m L o g i ca l V i e w )
184
En el proceso del entendimiento del sistema, los casos de uso son identificados y
diseados. Pero en la implementacin final del sistema, los casos de uso deben ser
convertidos en trminos de los aspectos estructurales y de comportamiento del sistema.
Las colaboraciones se usan para modelar la realizacin de un caso de uso y la
implementacin de una operacin. La colaboracin, se describe usando los aspectos
estructurales y de comportamiento. Para la colaboracin especificada, esto resulta en
diagramas de clases y de interaccin. En otras palabras, el caso de uso se convierte en
diagramas de clases y de interaccin a travs de colaboraciones. La Figura 6.17
muestra la realizacin de uno caso de uso por una colaboracin.
5. Patrones
El diccionario define un patrn como una forma o modelo propuesto para imitacin, por
ejemplo, un diseo. En terminologa de computadoras, patrn es algo que brinda una
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectnico
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
185
Contexto.
Problema.
Solucin.
Aunque las vistas son diferentes, los problemas con los que se enfrentan son comunes
y existen soluciones para estos problemas.
En terminologa de software, los patrones son una parte importante del vocabulario de
un programador dado que le permiten imaginar, describir, generar y documentar
diferentes partes del sistema de software a ser desarrollado. Los patrones permiten
llevar a cabo tanto la ingeniera reversa (reverse) como la ingeniera hacia adelante
(forward).
Existen 2 tipos de patrones:
Patrones arquitectnicos.
Patrones de diseo.
6. Diagrama de Despliegue
Los diagramas de despliegue (deployment) muestran la disposicin de los elementos de
procesamiento en tiempo de ejecucin. Estos elementos contienen componentes,
procesos y objetos. Estos elementos de procesamiento en tiempo de ejecucin son
referidos como nodos que representan un recurso computacional que tiene memoria y
Unidad 6: Modelado Arquitectnico
Libro 1: Anlisis y Diseo de Sistemas Orientado a Objetos
Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
186
6.1 Nodo
Son clasificadores que representan un recurso computacional en tiempo de ejecucin.
Por ejemplo un CPU ejecutando un proceso.
Cada nodo tiene un nombre, ya sea un nombre simple o un nombre de ruta. La Figura
6.18 muestra dos ejemplos de un nodo.
La Figura muestra dos maneras en las que un nodo puede ser dibujado. En la primera
instancia, se muestra el nombre simple de un nodo junto con los componentes que
despliega. En la segunda, se muestra el nombre de paquete junto con un valor
etiquetado, el cual especifica el uso de este nodo.
Los nodos y los componentes pueden participar en relaciones de dependencia,
generalizacin y asociacin, tambin pueden participar en diagramas de interaccin y
se pueden crear instancias de nodos y componentes. Sin embargo, existen dos
diferencias entre nodos y componentes, stas son:
187
La relacin entre nodo y componente puede mostrarse usando la notacin para relacin
de dependencia.
La conexin entre dos o ms nodos se hace a travs de la relacin de asociacin, y el
mecanismo de comunicacin es escrito como un estereotipo. Por ejemplo, el
mecanismo de comunicacin puede ser un cable Ethernet.
La Figura 6.19 muestra dos instancias de un nodo conectado a un conjunto de
componentes.
En la Figura 6.19 se usa una simple lnea recta para especificar la relacin entre nodos,
describiendo la relacin de asociacin. La relacin entre un nodo y los componentes
que despliega es una relacin de dependencia.
Un diagrama de despliegue es un conjunto de nodos conectados unos con otros, sin
revelar las conexiones con los componentes que despliegan los nodos. Con la explosin
de un nodo del diagrama de despliegue, se puede obtener la vista mostrada en la
Figura 6.19.
188
rea local. La red local se conecta a los otros procesadores. En esta figura no se
muestra ninguno de los componentes de los cuales dependen los nodos.
Los diagramas de despliegue pueden llevar notas y restricciones tal como los dems
diagramas. Estos diagramas se usan para modelar la vista esttica del sistema, llamada
la vista de despliegue. La vista incluye la distribucin, entrega e instalacin de los
componentes y nodos que conforman el sistema actual.
Los diagramas de despliegue se usan para modelar lo siguiente:
Sistemas Incorporados.
Sistemas Cliente-Servidor.
Sistemas Distribuidos.
189
Se han estado usando los trminos modelo y vista en todo el curso. Ahora se
entendern estos elementos claramente. Se establece simplemente que un modelo es
una representacin. Es un tipo de paquete y por lo tanto no se proporciona una notacin
separada para un modelo en UML. Un modelo posee tpicamente elementos como
clases, interacciones y relaciones.
Una vista proporciona una observacin del modelo. Muestra la parte relevante del
sistema segn sea aplicable a la vista.
La notacin usada para sistemas y subsistemas en el UML es el cono de paquete
estereotipado.
El cliente puede afiliarse por medio del sitio Web y cancelar con su tarjeta de
crdito.
Debe permitir a los clientes consultar las pelculas disponibles por medio de
terminales remotos instalados en la tienda.
Para alquilar una pelcula el operador del sistema introduce la cdula del cliente,
luego introduce el cdigo de la pelcula a ser alquilada, si la cdula del cliente no
aparece en el sistema, la transaccin no procede.
190
El alquiler de las pelculas tiene una duracin de 2 das hbiles, los das
adicionales son cobrados como das de mora.
Para alquilar y reservar una pelcula es necesario ser cliente del video club.
191
La Figura 6.22 muestra el diagrama de despliegue que modela las conexiones entre el
sistema central de la tienda video y los terminales donde los clientes pueden consultar
las pelculas. Se puede notar en la figura que la comunicacin entre el nodo
SistemaCentral y el nodo Terminal es realizada por el protocolo TCP/IP. Tambin
se puede notar que en la asociacin se coloca la multiplicidad, del mismo modo, un
Sistema Central puede tener cero o muchos Terminales.
La Figura 6.23, modela cmo se realiza la comunicacin entre el sitio Web de la tienda
de video, el servidor http y el servidor de bases de datos, adems muestra los
componentes que juegan el papel ms importante en dicho proceso. Puede notarse que
el nodo Cliente utiliza el protocolo HTTP para comunicarse con el servidor HTTP y
el servidor HTTP accede a la base de datos por medio del protocolo ODBC. El
componente PaginaPHP-HTML depende de MotorPHP, ya que l se encarga de
interpretar el cdigo PHP que est en la pgina HTML. El componente MotorPhP
depende de EjecucionBD para acceder a la base de datos.
192
193
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
194
195
196
197