Subido por Anne Sophie

UML v1

Anuncio
Análisis y Diseño de
Sistemas Orientado a
Objetos
Versión 5.1
Libro 1
Análisis y Diseño de
Sistemas Orientado a
Objetos
Código de Curso: CY450
Versión 5.1
Guía del Estudiante
Libro 1: Análisis y
Diseño de Sistemas
Orientado a Objetos
IBM IT Education Services
Worldwide Certified Material
Información de la Publicación
Esta publicación 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 compañías, productos, y nombre de servicios pueden ser marcas registradas o
marcas de servicios de otros.
Marcas Registradas de otras compañías según se muestra
Windows
Microsoft Corporation
Red Hat Linux
Red Hat
Edición Diciembre 2007
La información contenida en este documento no ha sido sometida a ninguna prueba
formal de IBM y está distribuida en base a “como está” sin ninguna garantía expresa o
implícita. El uso de esta información o la implementación de cualquiera de estas
técnicas es responsabilidad del cliente y depende de la habilidad del cliente evaluar e
integrarlas dentro del entorno operacional del cliente. Aun cuando cada punto puede
haber sido revisado por IBM en su exactitud y para una situación específica, no hay
garantía de que los mismos resultados o similares, funcionarán en otra parte. Los
clientes que intenten adaptar estas técnicas a sus propios entornos, lo hacen bajo su
propio riesgo.
Copyright International Business Machines Corporation, 2007. Todos los
derechos reservados.
Este documento no puede ser reproducido total o parcialmente sin previo permiso
escrito de IBM.
.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Contenido
Descripción del Curso........................................................................................1
Descripción de Unidades ...................................................................................3
Volumen 1: Modelado Básico ............................................................................6
Unidad 1: Introducción a UML ...........................................................................7
1. La Necesidad del Análisis y Diseño Orientado a Objetos (OOAD)
8
2. Fundamentos de la Orientación a Objetos
12
3. Importancia del Modelado
19
4. UML
19
5. El Modelo UML
19
Resumen
19
Unidad 1: Examen de Autoevaluación
19
Respuestas a la Unidad 1: Examen de Autoevaluación
19
Unidad 2: Modelado del Comportamiento con Casos de Uso ......................19
1. Introducción
19
2. Importancia de los Casos de Uso
19
3. Casos de Uso
19
4. Análisis de un Caso de Uso
19
5. Diagrama de Caso de Uso
19
6. Diagramas de Actividad
19
7. Caso de Estudio
19
Resumen
19
Unidad 2: Examen de Autoevaluación
19
Respuestas de la Unidad 2: Examen de Autoevaluación
19
Unidad 3: Lab. de Modelado del Comportamiento con Casos de Uso.........19
1. Ejercicio de Laboratorio
19
Unidad 4: Modelado Estructural Básico .........................................................19
1. Modelado Estructural
19
2. Diagramas de Clase
19
3. Relaciones entre Clases
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.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Unidad 4: Examen de Autoevaluación
19
Respuestas de la Unidad 4: Examen de Autoevaluación
19
Volumen 2: Modelado Avanzado .....................................................................19
Unidad 1: Modelado Estructural Avanzado ....................................................19
1. Introducción
19
2. Clasificadores
19
3. Elementos Abstractos
19
4. Multiplicidad
19
5. Clases Plantillas (Template)
19
6. Estereotipos para Clases
19
7. Relaciones
19
8. Interfaces y Realización
19
9. Roles
19
10. Paquetes
19
11. Instancias
19
12. Diagramas de Objetos
19
13. Caso de Estudio
19
14. Algunas Recomendaciones
19
Resumen
19
Unidad 1: Examen de Autoevaluación
19
Respuestas de la Unidad 1: Examen de Autoevaluación
19
Unidad 2: Laboratorio de Modelado Estructural Avanzado ..........................19
Ejercicio de Laboratorio
19
Unidad 3: Modelado de interacción.................................................................19
1. Introducción
19
2. Interacción
19
3. Colaboración
19
4. Diagramas de Interacción
19
5. Manejar Tiempo y Espacio
19
6. Cómo Crear un Diagrama de Colaboración
19
Resumen
19
Unidad 3: Examen de Autoevaluación
19
Respuestas a Unidad 3: Examen de Autoevaluación
19
Unidad 4: Lab. de Modelado de Interacción ...................................................19
ii
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Ejercicio de Laboratorio
19
Unidad 5: Modelado de Comportamiento Avanzado .....................................19
1. Introducción
19
2. Máquinas de Estado
19
3. Eventos
19
4. Subestado
19
5. Diagramas de Estado
19
6. Clases Activas
19
7. Caso de Estudio: Trabajar con Diagramas de Estado
19
8. Algunas Recomendaciones
19
Resumen
19
Unidad 5: Examen de Autoevaluación
19
Respuestas a la Unidad 2: Examen de Autoevaluación
19
Unidad 6: Modelado Arquitectónico................................................................19
1. Introducción
19
2. Componentes
19
3. Diagrama de Componentes
19
4. Colaboraciones
19
5. Patrones
19
6. Diagrama de Despliegue
19
7. Caso de estudio Componentes y Despliegue
19
Resumen
19
Unidad 6: Examen de Autoevaluación
19
Respuestas a Unidad 4: Examen de Autoevaluación
19
iii
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Descripción del Curso
Nombre del Curso
Análisis y Diseño de Sistemas Orientado a Objetos.
Duración
La duración de este curso es de 40 horas académicas.
Propósito
El propósito de este curso es obtener conocimientos y destrezas en el manejo de los
Principios de la Orientación a Objeto y en el Lenguaje Unificado de Modelado UML
(Unified Modeling Language), considerado como un estándar de la industria del
software para apoyar el análisis y diseño 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 construcción (que incluyen mas de nueve
diagramas), las reglas que ayudan a juntar esos bloques de construcción y algunos
mecanismos de extensión.
Audiencia
Estudiantes, profesionales y desarrolladores que desean conocer acerca de Análisis y
Diseño de Sistemas Orientado a Objetos.
Prerrequisitos
•
Introducción a las computadoras personales y a Windows XP.
•
Fundamentos a la programación Orientada a Objetos.
Objetivos del Curso
Al final de este curso Ud. será capaz de:
•
Describir la necesidad del estudio del Análisis y Diseño Orientado a Objetos.
•
Conocer los conceptos básicos del paradigma orientado a objetos.
•
Describir la importancia del modelado UML.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Descripción del Curso 1
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
•
Describir el uso y funcionamiento de los diagramas UML en el aspecto
estructural.
•
Describir el uso y funcionamiento de los diagramas UML en el aspecto de
comportamiento.
•
Conocer las diferencias entre la especificación UML 1.x y la especificación UML
2.0.
•
Describir el uso y funcionamiento de los diagramas de la especificación UML 2.0
en el aspecto estructural y de comportamiento.
•
Aprender a manejar herramientas de modelado.
Agenda
Cada unidad del curso tiene una duración de 2 a 3 horas académicas.
Unidad 1:Programación en C – Los Primeros Pasos
Volumen 1: Fundamentos de C
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos en parte
o en su totalidad sin el previo permiso escrito de IBM.
2
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Descripción de Unidades
Volumen 1: Modelado Básico
Unidad 1: Introducción a UML
Esta unidad comienza dando la motivación para el estudio del Análisis y el Diseño
Orientado a Objetos. Ayuda a entender los diversos principios de orientado a objetos y
proporciona una introducción al Lenguaje Unificado de Modelado (UML).
Unidad 2: Modelado del Comportamiento con Casos de Uso
Esta unidad da inicio al Lenguaje de Modelado Unificado (UML), comenzando con el
Diagrama de Casos de Uso, el cual es el diagrama que permite modelar un sistema de
la forma como lo entendería el usuario. Este tipo de diagramas es muy usado en el
transcurso del levantamiento de información, debido a que el usuario puede tener una
mejor visión del sistema sin entrar en profundidad de programación.
Unidad 3: Laboratorio de Modelado del Comportamiento con Casos de
Uso
Esta unidad pretende poner en práctica los conocimientos adquiridos en la unidad
anterior, utilizando un ejercicio práctico de laboratorio.
Unidad 4: Modelado Estructural Básico
En esta unidad se discute uno de los diagramas más importantes de UML como lo es el
Diagrama de Clases. Conceptos como Clases, Objetos, herencia, polimorfismo,
relaciones entre clases y objetos, estereotipos, entre otros, que permiten mostrar una
cara estática del sistema.
Volumen 2: Modelado Avanzado
Unidad 1: Modelado Estructural Avanzado
Esta unidad se refiere a los diferentes tipos de clasificadores, además de proporcionar
mayor información sobre interfaces, tipos y paquetes. Discute diagramas e instancias de
objetos. Ayuda al estudiante a aprender cómo construir diagramas de objetos.
Unidad 2: Laboratorio de Modelado Estructural
Esta unidad de Laboratorio se construye sobre la base de las unidades anteriores en el
modelado estructural y ayuda a aprender a crear clases abstractas a partir de un
documento de requerimientos dado. Proporciona una forma de desarrollar la habilidad
de derivar diagramas de clase y diagramas de objetos en diferentes escenarios.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Descripción de Unidades 3
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Unidad 3: Modelado de Interacción
Esta unidad proporciona detalles de dos de los diagramas más importantes para
modelar la dinámica de un sistema, estos diagramas son: Diagramas de secuencia y
diagramas de colaboración. Los diagramas de interacción describen el modo en que los
grupos de objetos colaboran para realizar un trabajo y la subclasificación (Diagramas de
secuencia y colaboración) permite ver esa colaboración de dos maneras distintas pero
compatibles.
Unidad 4: Laboratorio de Modelado de Interacción
Esta unidad de Laboratorio se construye sobre la base de la unidad anterior en el
modelado de interacción y ayuda a aprender a crear Diagramas de secuencia y
colaboración a partir de un documento de requerimientos dado.
Unidad 5: Modelado de Comportamiento Avanzado
Esta unidad proporciona detalles de algunos de los aspectos avanzados de modelado
de comportamiento. Discute los eventos y señales, máquinas de estado y métodos de
construcción de diagramas de mapa de estado con cierto detalle. Una enumeración
breve de las diferencias y similitudes entre procesos e hilos se proporciona como una
base conceptual.
Unidad 6: Modelado Arquitectónico
Con la complejidad creciente de sistemas de software, la importancia del modelado
arquitectural está siendo enfatizada tanto en la industria y como en el entorno
académico. Esta unidad enfatiza los componentes, el despliegue y las colaboraciones.
Proporciona detalles de diagramas de componente y diagramas de despliegue.
Volumen 3: Introducción a UML 2.0 y a Herramientas de Modelado
Unidad 1: Introducción a UML 2.0 (Diagramas Estructurales)
Esta unidad proporciona una introducción a la nueva versión de UML llamada UML 2.0.
Explica los cambios más relevantes entre esta nueva versión y las versiones anteriores
de UML. También, se enumeran las diferencias entre los diagramas estructurales del las
versiones 1.X y la versión 2.0. Se explican de forma básica los nuevos diagramas de la
nueva especificación.
Unidad 2: Introducción a UML 2.0 (Diagramas de Comportamiento)
En esta unidad se explican de manera básica los diagramas de comportamiento de la
nueva versión de UML, tales como: Diagramas de Casos de Uso, Diagramas de
Actividad, Diagramas de interacción, Diagramas de Máquinas de Estado, así como
también se detallan los nuevos diagramas incluidos en la versión 2.0 de UML.
Unidad 1:Programación en C – Los Primeros Pasos
Volumen 1: Fundamentos de C
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos en parte
o en su totalidad sin el previo permiso escrito de IBM.
4
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Apéndice A: Manejo de la Herramienta EclipseUML Free Edition
Esta unidad proporciona una introducción a la herramienta EclipseUML Free Edition, el
cual es un plugin para ser instalado en la Plataforma Eclipse. Aquí se explica cómo
crear nuevo proyecto en eclipse, como crear paquetes, instalación en windows y linux,
como crear un diagrama UML y la barra de herramientas de cada tipo de diagrama,
proporcionándole al estudiante las prácticas necesarias para el manejo de herramientas
de modelado.
Apéndice B: Manejo de la Herramienta Rational Software Modeler
Esta unidad proporciona una introducción a la herramienta Rational Software Modeler,
la cual es la herramienta por excelencia de IBM para modelado con UML. Aquí, se
explican cómo crear diagramas, exportar a imagen, crear proyectos, ingeniería hacia
delante y reversa, entre otras características, proporcionado al estudiante prácticas para
realizar modelos UML en esta herramienta.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Descripción de Unidades 5
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Volumen 1: Modelado Básico
Unidad 1:Programación en C – Los Primeros Pasos
Volumen 1: Fundamentos de C
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos en parte
o en su totalidad sin el previo permiso escrito de IBM.
6
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML
Objetivos de Aprendizaje
Al final de esta unidad, usted será capaz de:
•
Describir la necesidad del Análisis y Diseño Orientado a Objetos (Object
Oriented Analysis and Design - OOAD).
•
Explicar los principios de la orientación a objetos.
•
Describir el trabajo del Lenguaje Unificado de Modelado (Unified Modeling
Language - UML).
•
Describir la importancia del modelado en UML.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 7
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. La Necesidad del Análisis y Diseño Orientado a
Objetos (OOAD)
El desarrollo de aplicaciones de software es fundamentalmente un proceso complejo,
por lo que, entender, diseñar, desarrollar y desplegar grandes sistemas de software son
los retos que enfrenta la industria de software en la actualidad. El proceso del ciclo de
vida involucra las siguientes etapas:
•
Entender los requerimientos.
•
Analizar los requerimientos.
•
Diseñar el sistema de software.
•
Implementar el sistema de software.
•
Probar el sistema de software.
•
Realizar mantenimiento del sistema de software.
Al completar cada una de las etapas, se crean uno o más documentos (reportes o
código). Estos documentos son llamados productos de trabajo y permiten comprender el
sistema en cada etapa.
Después de la primera etapa, de entender los requerimientos, se crea un producto de
trabajo llamado entendimiento preliminar de requerimientos. Muchos analistas no ven
esta etapa de modo diferente a la segunda etapa de análisis de los requerimientos y las
fusionan en una. Sin embargo, el entender los requerimientos juega un rol importante en
el desarrollo de software de hoy día debido a que los dominios de aplicaciones de
software son cada vez más variados y complejos. La etapa de analizar los
requerimientos da origen a un producto de trabajo llamado especificación de
requerimientos de software.
El producto de trabajo de la tercera etapa, correspondiente a diseñar el sistema, es el
documento de diseño. En la etapa de implementación, el sistema resulta en la creación
de manuales de diversos tipos, tales como: el manual de usuario, manual administrativo
y otros. En algunos casos, cualquier tipo de código que se use en la parte inicial de la
implementación es también documentado.
La fase de prueba crea productos de trabajo en las siguientes áreas:
•
Metodologías de prueba.
•
Planes y casos de pruebas utilizados.
•
Resultados obtenidos de la prueba del sistema.
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 volátiles 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 difícil. El análisis y
diseño de sistemas complejos es un proceso difícil que demanda tiempo. Las
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 8
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
metodologías de análisis y diseño estructurado usadas anteriormente, intentaron
proporcionar soluciones y eran exitosas en muchas situaciones. Sin embargo, el mundo
real es complejo, y con el creciente uso de computadoras en todos los aspectos de la
vida, el manejo de aplicaciones complejas del mundo real es cada vez más desafiante.
OOAD tiene la capacidad inherente para ocuparse de los diferentes aspectos de
sistemas de software complejos. Mientras la metodología de análisis y diseño
estructurado construye un sistema usando funciones, la orientación a objetos construye
sistemas usando objetos. Estos objetos tienen una correspondencia directa con los
objetos del mundo real. Las entidades del mundo real son simples de entender. Por lo
tanto, no es una tarea muy difícil transferir conocimiento del mundo real al dominio del
software, usando la orientación a objetos.
Para mostrar la importancia de OOAD, se muestra una narración de la construcción del
buque de guerra Vasa, más conocida como la Tragedia de Vasa.
El Rey Gustav de Suecia, quien obtuvo grandes victorias en las Guerras Bálticas,
anhelaba poseer el mejor buque insignia en toda Europa. Él quería un barco que fuese
el orgullo de la Marina Sueca. El Rey designó a Hendrick Hybertzoon, un experto
constructor de barcos de Holanda, para que construyera el buque insignia, y le dio
instrucciones preliminares. Pronto, Hybertzoon pudo construir un modelo a escala del
buque insignia propuesto. El Rey Gustav estaba feliz con el prototipo y ordenó a
Hybertzoon para que procediera con la construcción del verdadero barco. Un bosque
entero de robles fue dado al experto constructor de barcos para obtener madera para
este prestigioso proyecto.
Ni el Rey Gustav ni sus consejeros, incluyendo el Almirante de la Marina Sueca,
proporcionaron a Hybertzoon alguna especificación escrita. Hybertzoon decidió que el
barco debía tener una longitud de 108 pies y ordenó que se cortara la madera del
bosque de robles de acuerdo a eso. La construcción estaba progresando hasta que un
día el Rey vino a inspeccionar. Él consideró que la longitud del barco debía
incrementarse en otros 35 pies. Después de todo, iba a ser el orgullo de la Marina
Sueca, pero Hybertzoon ya había cortado la madera y había terminado de construir la
quilla del barco. La quilla debía ser extendida con una longitud adicional de madera de
modo que la longitud pudiera incrementarse a 120 pies.
El Rey Gustav se enteró durante sus vacaciones de verano que el Rey de Dinamarca
también estaba construyendo un buque insignia. También se enteró que el barco Danés
iba a tener tres cubiertas de cañones mientras que su barco ¡tenía sólo dos! El ego del
Rey Gustav no pudo soportar esto. Él ordenó que se instalara en su buque insignia otra
cubierta de cañones con 50 cañones de bronce (cada uno pesando más de una
tonelada). También ordenó que su barco fuera completado antes de la fecha estimada
original. El dinero no iba a ser un obstáculo para este proyecto. Hybertzoon no era
capaz de convencer al Rey de que no era posible hacer cambios estructurales
importantes después de que la quilla había sido colocada y se había hecho el
entarimado. Hybertzoon aceptó las demandas imposibles del Rey, pero murió antes de
completar la tarea, quizás debido al stress. La tarea de completar el proyecto fue dada a
su hermano, Arent Hybertzoon de Groote, a pesar de su relativa inexperiencia.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 9
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
A principio del Siglo 17, los constructores de barcos estaban aún por empezar a utilizar
métodos analíticos para construir barcos. Ellos solamente hacían suposiciones bien
fundamentadas acerca de las especificaciones del barco y aprendían a través 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 cálculos para el buque insignia Sueco. Tampoco otros ítems
como un horno de cocina que se añadiría al peso total. El constructor del barco creyó
que el entarimado adicional en los lados y un lastre adicional de 130 toneladas se
encargarían del asunto. El entarimado fue completado, pero el constructor del barco se
dio cuenta entonces que no había espacio bajo la cubierta para otras 130 toneladas de
roca para proporcionar lastre. Este aspecto fue ignorado completamente.
Después 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 ocasión, pero nadie supo cómo 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. Difícilmente, el barco había
navegado apenas unos cuantos kilómetros cuando una pequeña ráfaga 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:
•
La construcción de barcos era un trabajo artesanal. Se practicaba con poco
énfasis en algún método científico o de ingeniería.
•
El Rey no dio especificaciones por escrito. Todos los requerimientos del barco
fueron recogidos verbalmente.
•
No se aplicaron métodos de diseño. La tarea de construir un buque de guerra
estaba basada en unos cuantos bosquejos y modelos.
•
Los resultados o consecuencias de cambiar los requerimientos en las diferentes
etapas de la construcción del barco no se conocían.
•
La prueba no se condujo científicamente y cualquier indicación de algún
problema no fue tomada en cuenta.
•
Todos los pedidos y demandas del cliente fueron aceptados sin analizar si era
posible incorporarlos.
Cada punto mencionado anteriormente tiene relación con lo que sucede típicamente en
un esfuerzo de desarrollo de software. La construcción de barcos era una tarea grande
y compleja. Los sistemas complejos del mundo real requieren además que el desarrollo
de sistemas sea dirigido de la manera correcta. Con la llegada del análisis y diseño
estructurado de sistemas de software, se proporcionó un enfoque de ingeniería para el
desarrollo de sistemas de software. Para la mayoría de los puntos cubiertos
anteriormente, la metodología de análisis y diseño estructurado se ocupó de ellos. Sin
embargo, la metodología no proporcionó una solución para hacer corresponder
directamente los objetos del mundo real en el dominio de software. La orientación a
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 10
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
objetos ofrece una solución que ayuda a los desarrolladores a hacer corresponder el
mundo real tan cerca como sea posible al dominio de la solución. Existen muchas
metodologías que permiten soluciones para problemas complejos. A continuación, se
discutirán brevemente las diversas metodologías disponibles y luego se estudiará en
detalle la orientación a objetos.
•
Orientada a Aspectos: La Programación Orientada a Aspectos (POA) permite a
los desarrolladores escribir, ver y editar un aspecto diseminado por todo el
sistema como una entidad por separado, de una manera inteligente, eficiente e
intuitiva. Un aspecto se define como una propiedad que afecta el rendimiento
(performance) o la semántica de los componentes en forma sistemática
(Ejemplo: sincronización, manejo de memoria, distribución, etc.). La POA es una
nueva metodología de programación que implica separar la funcionalidad básica
de los aspectos y los aspectos entre sí. Esta separación se realiza a través de
mecanismos que permitan la abstracción y la composición de los mismos, a fin
de poder implementar todos los requerimientos del sistema.
•
Literal: Esta metodología combina un lenguaje de programación y uno de
documentación. Donald Knuth es el inventor de la programación literal. El
propósito de esta metodología es mejorar la capacidad para la documentación
del lenguaje de programación nativo. Un programa es tratado típicamente como
una “pieza de literatura”. También puede verse en el modo hipertexto.
•
Estructurada: Esta metodología es la más usada y la mayoría está familiarizada
con ella. Lenguajes como BASIC, Pascal, COBOL y C son algunos de los
ejemplos que pueden ser usados para programar usando esta metodología. La
programación estructurada permite organizar programas en una jerarquía de
módulos. Cada módulo tiene un solo punto de entrada y, a menudo, un solo
punto de salida.
•
Orientada a Objetos: Esta metodología se basa en modelar el mundo real y ha
ganado importancia significativa en los últimos tiempos. En la orientación a
objetos se trabaja con objetos en el sistema que interactúan unos con otros a
través de mensajes. La orientación a objetos proporciona los recursos para
ocuparse de los objetos de un sistema complejo. El análisis y diseño de un
sistema desde una perspectiva orientada a objetos forma el núcleo de este
curso. Se aprenderá todo acerca de la orientación a objetos a medida que se
avance en el curso.
•
Patrones: De acuerdo con Dirk Riehle y Heinz Zullighoven, “un patrón es la
abstracción de una forma concreta, la cual reaparece frecuentemente en
contextos específicos no arbitrarios”. Dr. Christopher Alexander, un arquitecto,
concibió el concepto de patrones en el planeamiento urbano y arquitectura de
construcciones. La aplicación de patrones para el desarrollo de software está
inspirada por su trabajo. Simplemente los patrones son soluciones probadas
para problemas frecuentes dentro de un cierto contexto. De acuerdo con
Alexander, “cada patrón es una regla de tres partes, la cual expresa una relación
entre un cierto contexto, un problema y una solución”.
Cualquiera de las metodologías mencionadas anteriormente para desarrollar un
sistema, seguirá el proceso del ciclo de vida de desarrollo de software.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 11
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Indiferentemente de la metodología subyacente, el entender los requerimientos,
analizarlos, diseñar el sistema, implementarlo y probarlo son etapas esenciales de un
proceso de construcción de sistema. Por lo tanto, cada metodología requerirá un
traductor de requerimientos, un analista de requerimientos, un analista de sistemas, un
diseñador de sistemas, un programador y un probador, para llevar a cabo las diferentes
etapas del proceso de construcción de sistemas.
2. Fundamentos de la Orientación a Objetos
Antes de continuar y aprender acerca del Lenguaje de Modelado Unificado (UML), se
discutirán brevemente los principios de la orientación a objetos.
2.1 Modelado del Mundo Real
El creciente poder de la computación y la tecnología ha dado lugar a muchos esfuerzos
de desarrollo de sistemas grandes y complejos. El modelado del mundo real forma la
base para la orientación a objetos y ayuda a los analistas de sistemas a entender mejor
el sistema.
A continuación se presentan los requerimientos recopilados para automatizar el pago de
cuentas a través de la Internet.
Se requiere que el cliente llene un formulario de aplicación para permitir el pago de
cuentas a través de los servicios ofrecidos por BillPaymentJunction, Inc.
En el paradigma de análisis y diseño estructurado, el escenario anterior se pensaría de
forma lógica en términos de las funciones llenarFormularioAplicación() y pagarFactura().
El paradigma de análisis y diseño estructurado no está basado en modelar el mundo
real. En la orientación a objetos, se intentará modelar el mundo real y los objetos del
mundo real. Se aprecia que el mundo real tiene clientes, formularios de aplicación,
facturas, pagos de cuentas y servicios. Entre éstos, se pueden clasificar algunos de
ellos como acciones (pagos de cuentas y servicios) y otros como entidades (clientes,
formularios de aplicación, facturas). Primero se modelan estas entidades del mundo real
y luego se asocian las acciones identificadas como las funciones o responsabilidades
de estas entidades.
2.2 Tipos de Dato Abstracto
En la orientación a objetos, el modelado de la vida real resulta en tipos de dato
abstracto. Un tipo de dato abstracto es un modelo matemático. Las operaciones son
definidas en el modelo para permitir la aplicación del tipo de dato en un entorno de
programación. Algunos se refieren a la programación orientada a objetos como
programación de los tipos de dato abstracto. Las entidades Cliente y Formulario
Aplicación del ejemplo presentado en la sección anterior son tipos de dato abstracto.
En la orientación a objetos, se trabaja principalmente con datos. Por tanto, las
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 12
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado 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.3 Abstracción de Datos
La abstracción de datos es fundamental para el pensamiento orientado a objetos. La
abstracción permite a una persona concentrarse en los aspectos esenciales del
problema a la mano, mientras ignora detalles que tienden a distraer. El mundo real es
complejo y presenta demasiados elementos que deben manejarse simultáneamente. Se
necesita superar la complejidad para poder resolver los problemas. La abstracción es
una manera conveniente de manejar la complejidad. El Institute of Electrical and
Electronics Engineers’ Inc. - IEEE define la abstracción como “una visión del problema
que extrae la información esencial relevante a un propósito particular e ignora el resto
de la información“.
Dicho simplemente, la abstracción es eliminar lo innecesario. Por ejemplo, un libro en
una biblioteca puede ser visto de modo diferente que un libro en una editorial. En una
biblioteca, el libro puede verse que tiene un título, nombre de la editorial, fecha de
publicación, número de edición, precio y autor. El mismo libro, desde el punto de vista
de la editorial, puede verse que tiene un título, número de páginas, área impresa del
libro y muchas otras cosas relacionadas a la publicación del libro. De modo similar, en
una aplicación, la abstracción de una entidad se basa en su necesidad y relevancia en
la aplicación.
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 sólo tengan que comprender su interfaz,
olvidándose de cómo está implementada, y en definitiva, reduciendo la complejidad de
utilización.
La utilidad del encapsulamiento se ve en la reducción de la complejidad, esto es debido
a que las Clases se comportan como cajas negras donde sólo 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
están implementadas y los usuarios no están preocupados por conocerlas.
En la orientación 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.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 13
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
DATOS /
CARACTERÍSTICAS
Guía del Estudiante
OPERACIONES
Figura 1.1: Datos y Operaciones en el Paradigma Procedimental
En el paradigma orientado a objetos, los datos y las operaciones están juntos dentro de
una cápsula, tal como se muestra en la Figura 1.2.
OPERACIONES
DATOS/CARACTERISTICAS
Figura 1.2: Datos y Operaciones en el Paradigma Orientado a Objetos
2.5 Ocultamiento de la Información
El encapsulamiento conlleva al ocultamiento de la información, esto es, tanto los datos
como la implementación de las operaciones de un objeto son ocultados al usuario. Por
lo general, la mayoría de las personas que ve televisión no sabe o no se preocupa de la
complejidad electrónica que hay detrás de la pantalla, ni de todas las operaciones que
tienen que ocurrir para mostrar una imagen en la pantalla. La televisión hace lo que
tiene que hacer sin mostrarnos el proceso necesario para ello, esto es, ocultamiento de
la información. Al tener encapsulado juntos los datos miembros y las diferentes
operaciones, el usuario debe saber cómo acceder a las operaciones para trabajar con
los datos.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 14
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
2.6 Clase
Las clases son tipos de datos definidos por el usuario. Las clases, en la tecnología
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 solución en la tecnología 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
depósito de plazo fijo. Los clientes usan formularios de depósito 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 diseñado para este propósito. 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 descripción,
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
Mundo Orientado a Objetos
Cliente
CuentaAhorros
Cliente del
Banco
Cuenta de
Ahorros
CuentaCorriente
PlanillaDepositos
Cuenta
Corriente
Depósitos
Figura 1.3: Correspondencia de Entidades del Mundo Real a Clases en el Escenario
Bancario
2.7 Objeto
En términos sencillos, un objeto es una instancia de una clase. Los objetos interactúan
con otros para proporcionar una solución 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
sólo 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.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 15
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Un objeto promete cumplir el contrato prometido por su clase. Cada objeto puede
definirse en términos 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 fácil caracterizar
un carro como estar en movimiento o estático. El objeto carro puede poseer otras
propiedades físicas como modelo, año de fabricación, tamaño de tanque de
combustible, número de llantas, características de seguridad y número de registro.
Se puede decir que un objeto tiene lo siguiente:
•
Estado, en un instante dado en el tiempo:
El estado de un objeto son las propiedades y los valores que toman estas
propiedades en un instante en el tiempo. En un ejemplo de pila, el objeto
miPila de la clase Pila puede tener dos propiedades estáticas,
elemento_pila y tope_de_pila. Los valores que tienen son dinámicos por
naturaleza, dado que pueden cambiar con el paso del tiempo. Un objeto conoce
su estado en cualquier instante de tiempo. En la orientación a objetos, un objeto
conoce acerca de sí mismo y revela su estado a través de su interfaz.
•
Identidad, que es única entre objetos de la misma clase:
La identidad de un objeto se refiere a la manera única en que el objeto es
conocido, referido y distinguido de todos los objetos en el sistema. Los objetos
suPila y miPila se identifican como objetos diferentes en el sistema, dado
que poseen su espacio en memoria y un estado.
•
Comportamiento, que son usualmente los datos y funciones de dicha clase:
El comportamiento consiste de responsabilidades que promete llevar a cabo el
objeto. Es la manera en que un objeto reacciona a los mensajes que recibe (de
otros objetos). Las operaciones push (agregar) y pop (extraer) definidas en la
clase Pila son dos de los comportamientos presentados por la clase.
Una clase es un marco de trabajo (framework). Los objetos son manifestaciones
concretas de este marco de trabajo. Una definición de clase debe existir para que los
objetos sean creados y para interactuar unos con otros. Es a través de la interacción de
objetos que funciona el sistema completo orientado a objetos.
2.8 Interfaz e Implementación
Cuando la complejidad de una entidad en el mundo real llega a ser muy grande, se
precisa ocultar al usuario algunos de los detalles menos necesarios acerca de esa
entidad. Usualmente, cada entidad tiene dos aspectos:
•
Interfaz.
•
Implementación.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 16
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Una interfaz es la forma en la cual se presenta la clase al mundo real. Una
implementación es el método que se sigue para hacer que el objeto de la clase realice
sus responsabilidades.
Considere el siguiente ejemplo para entender la distinción entre interfaz e
implementación:
El aire acondicionado de un automóvil es una interfaz con métodos definidos como:
Distribuir el aire(), enfriar el aire(), entre otros, pero cada automóvil implementa estos
métodos según sus características, por ejemplo la distribución de aire de una camioneta
Pick-up no puede ser la misma que la de una camioneta VAN, ya que esta última
necesita más salidas de aire en su interior para que el enfriamiento sea uniforme.
En el ejemplo anterior, se ha visto de qué modo las actividades del mundo real se basan
en interfaces e implementaciones. La mayoría de las actividades que se realizan se
basan en el conocimiento del comportamiento proporcionado por la entidad en la que
uno se interesa. Como usuario de un servicio, uno está interesado en lo que la entidad
proporciona y no en cómo la entidad satisface el requerimiento. El “qué” describe la
interfaz de la entidad y el “cómo” proporciona la implementación de la entidad. Esta
distinción es crucial para el desarrollo orientado a objetos.
2.9 Métodos
En la mayoría de los lenguajes orientados a objetos, las operaciones que puede realizar
un cliente sobre un objeto se declaran como métodos. Los métodos son una parte de la
declaración de la clase. C++ usa el término función miembro y Java usa el término
métodos para denotar el mismo concepto. Se usarán estos términos de modo indistinto.
Los métodos 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 método.
2.10
Mensajes
Los objetos se comunican unos con otros a través de mensajes. Un mensaje es un
pedido a un objeto para que realice una tarea a través de un método apropiado. Es el
mecanismo usado por un objeto para hacer que otro objeto lleve a cabo una tarea. El
objeto iniciador conoce la interfaz del objeto sobre el cual esta acción es iniciada. El
objeto receptor satisface el requerimiento del objeto iniciador aceptándolo e
implementando la tarea.
Un buen ejemplo de la vida real podría ser un televisor y su control remoto, cuando
usted desea ver un programa en especial, busca el control remoto y presiona el botón
de encendido. En ese momento el control remoto le envía literalmente al televisor un
mensaje para que se encienda. El televisor recibe el mensaje, lo identifica como una
petición y la realiza.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 17
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Un mensaje puede cambiar el estado del objeto receptor. Un mensaje puede tener cero
o más argumentos explícitos. En este contexto, el objeto receptor es un argumento
implícito que siempre está presente. El mensaje retorna un valor de cierto tipo,
posiblemente void, al emisor del mensaje. Típicamente, un mensaje contiene lo
siguiente:
•
El nombre del objeto que va a recibir el mensaje.
•
El nombre del mensaje.
•
Argumentos que son pasados al objeto receptor. Esto es opcional. También se
pueden pasar los mismos objetos como argumentos.
2.11
Herencia
Herencia, quiere decir que la clase X comparte la estructura y comportamiento de la
clase Y. En este contexto, la clase Y se denomina la superclase y la clase X se
denomina la subclase. A veces se referirá a la clase Y como el padre y la clase X como
su hija.
La Figura 1.4 describe la herencia entre las entidades Vehículo y Carro.
SuperClase
SubClase
Vehículo
Carro
Figura 1.4: Herencia entre Vehículo y Carro
La subclase no sólo necesita heredar la estructura y comportamiento tal como se
encuentran en la superclase. Puede, y a veces lo hace, redefinir el comportamiento
proporcionado por el padre. De modo alternativo, la subclase puede también aumentar
los servicios proporcionados por la superclase. La superclase se denomina también la
clase base, mientras que la subclase es también referida como la clase derivada.
Ahora, ¿Por qué una clase debe heredar la estructura y comportamiento de otra clase?
La superclase publica algunas características que son más generales por naturaleza.
Las subclases pueden especializarse en estas características al heredar la clase
original y redefinir aquellas características. Por lo tanto, la herencia se refiere a una
relación de generalización-especialización entre clases.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 18
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Por ejemplo, animal es una categoría 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, también 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 también tiene algunas excepciones. Mientras casi todas las aves tienen la
habilidad de volar, algunas aves como el avestruz no pueden volar. La especialización
puede ocuparse también de tales excepciones.
La jerarquía de herencia especifica la relación “es un” entre la subclase y la superclase.
Es también 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
Extensión
Profesor
Profesor
Contratado
Staff
Administrativo
Profesor
Temporal
Figura 1.5: Jerarquía de Herencia
La Figura 1.5 describe una jerarquía de herencia la cual establece que cada subclase
“es un” tipo de su superclase. Se presentan los siguientes ejemplos:
•
Empleado “es una” Persona.
•
Staff Administrativo “es un” Empleado.
Algunos ejemplos de una jerarquía “es un” se listan a continuación:
•
Búsqueda binaria “es un” tipo de algoritmo de búsqueda.
•
Estudiante “es una” persona.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 19
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
•
Rosa “es una” flor.
•
Animal “es un” ser vivo.
•
Humano “es un” mamífero.
•
Carro “es un” tipo de vehículo.
•
Pantalón “es un” tipo de prenda de vestir.
•
Lapicero “es un” tipo de instrumento de escritura.
Guía del Estudiante
Los objetos que son diseñados cuidadosamente para ser muy generales pueden ser
reutilizados en muchas circunstancias, ahorrando mucho esfuerzo en futuros problemas
de programación. La herencia que se ha visto hasta ahora es conocida como herencia
simple.
Es también posible para una subclase heredar de dos superclases. En esa situación, la
herencia se conoce como herencia múltiple. Los animales anfibios, como la rana y la
tortuga, son ejemplos de esto. Se muestra un ejemplo en la Figura 1.6.
Animal
Animal
Acuático
Animal
Terrestre
Animal
Anfibio
Figura 1.6: Herencia Múltiple
Sin embargo, la herencia múltiple puede crear problemas. Tanto “Animal Terrestre”
como “Animal Acuático”, por ejemplo, pueden definir un método llamado “método de
respiración”. Evidentemente, “Animal Terrestre” respira a través de la nariz, mientras
que “Animal Acuático” respira a través de agallas. Ahora, con herencia múltiple, ¿Cuál
de los “métodos de respiración” hereda “Animal de anfibio”?. Esto se conoce como el
“problema del diamante”. La jerarquía mostrada en la Figura 1.6 describe un problema
de diamante.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 20
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Cabe destacar que no todos los lenguajes de programación implementan la herencia
múltiple. C++ usa la palabra reservada virtual durante la herencia para indicar que sólo
una copia del método es derivada en la subclase. En el caso de Java no proporciona
dicha capacidad.
2.12
Agregación
Se estudió que la herencia proporciona una jerarquía de generalización-especialización.
Es también posible que una entidad contenga otra entidad. Asuma que se tienen cuatro
entidades, Carro, Puerta, Asiento y Capó. Se puede afirmar que la entidad “Carro”
contiene Puertas, Asientos y un Capó. Se está enfatizando la relación de contenedor
cuando se asevera de esta manera. Esto es conocido como una relación “tiene un”
entre entidades. Presentado de otra manera, se puede decir, “Un Carro tiene Puertas,
Asientos y un Capó”, tal como se muestra en la Figura 1.7.
Carro
Puerta
Asiento
Capó
Figura 1.7: Relación “Tiene un” (‘has a’)
La figura anterior describe la relación “tiene un” entre Carro y las otras entidades.
Denota que la entidad Carro tiene Puertas, Asientos y un Capó. La relación “tiene un” es
conocida también como la relación contenedora.
A veces, se tiende a confundir la relación contenedora entre dos entidades. Se
entenderá esto con un ejemplo. Considere las dos entidades, Persona y Bebida. En
español, 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 aseveración no es verdadera
con respecto a Persona y Bebida. Ellas existen separadamente y la entidad Persona
sólo es capaz de beber la Bebida, no de contener la entidad Bebida.
Es también incorrecto indicar, “Lapicero tiene un Color”. Color es un atributo de un
Lapicero, no una entidad. Las características de cualquier entidad serán indicadas en
español como “la entidad tiene características”. Por eso las propiedades no califican
para que se les llamen entidades. Las jerarquías “es un” y “tiene un” son sólo entre dos
entidades.
Algunos ejemplos de una relación “tiene un” se listan a continuación:
•
Libro “tiene” Párrafos.
•
Párrafo “tiene” Palabras.
•
Sistema de Computadora “tiene un” Teclado.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 21
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
•
Aves “tienen” Alas.
•
Edificio “tiene” Cuartos.
Guía del Estudiante
Entender la distinción entre la relación “es un” y “tiene un” es muy importante en el
desarrollo de sistemas orientados a objetos.
2.13
Polimorfismo
Polimorfismo significa la posibilidad de hacer que una operación exhiba diferente
comportamiento en instancias diferentes. El comportamiento depende de los tipos de
datos usados en diferentes operaciones. Por ejemplo, las fechas se pueden crear de
algunas de las siguientes maneras:
•
Usando tres enteros distintos, día, mes y año (15, 8, 1947).
•
Usando una cadena (“15/08/1947”), de donde se pueden extraer las tres partes.
•
Usando un entero largo (“19471508”), de donde se pueden extraer las tres
partes.
En los paradigmas de programación tradicional, se debe proporcionar diferentes
nombres para las tres funcionalidades. Se les puede llamar fechaEnteros,
fechaString y fechaLarga. Sin embargo, mediante el concepto de polimorfismo, se
puede proporcionar sólo un nombre fecha y proporcionar tres diferentes
funcionalidades. La correspondencia entre la llamada actual y la implementación de la
funcionalidad dependerá de los argumentos pasados con la llamada. Polimorfismo
significa “un nombre, múltiples funcionalidades”.
2.14
Tipo
Un tipo (type) es un estereotipo de una clase. Un estereotipo permite al diseñador crear
nuevos bloques de construcción extendiendo bloques existentes. Se usa el tipo para
especificar un dominio de objetos y sus operaciones. Las implementaciones de estas
operaciones no están incluidas en el tipo. Se usa el tipo cuando se desea modelar el
significado de una abstracción y la adherencia de la abstracción a una interfaz.
Típicamente los tipos se usan para representar estructuras de datos. Por ejemplo, una
entidad estudiante se puede diseñar con una interfaz, mientras que la estructura de
datos que representa los detalles de un estudiante, como la estructura de datos lista, se
puede diseñar como un tipo.
2.15
Rol
Cada entidad tiene un cierto comportamiento asociado a ella. Un rol describe el
comportamiento de una entidad. Por ejemplo, una persona puede jugar diferentes roles
como profesora, hermana, hija, madre o pintora. Cuando un objeto juega un rol,
presenta un determinado comportamiento al mundo exterior, dependiendo del rol que
juega el objeto en ese momento.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 22
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
2.16
Análisis y Diseño de Sistemas Orientado a Objetos
Paquete
Un paquete es un mecanismo para agrupar elementos. Normalmente, los elementos
cohesivos son organizados en un paquete. Los elementos que se hacen referencia aquí
son elementos de modelo de alto nivel, a saber, clases y sus relaciones. Esto es similar
al concepto de módulos, donde los elementos de la función son agrupados.
A continuación se discutirá la importancia del modelado.
3. Importancia del Modelado
Un modelo es una representación de la realidad. Grady Booch, James Rumbaugh e Ivar
Jacobson definen un modelo como una simplificación de la realidad. Un modelo
proporciona el diseño de un sistema. Usando un modelo, se puede hacer lo siguiente:
•
Visualizar un sistema.
•
Especificar la estructura y comportamiento de un sistema.
•
Crear plantillas para construir el sistema.
•
Documentar las decisiones hechas a lo largo del sistema.
Nota: No es suficiente un solo modelo para entender y representar un sistema.
Modelar sistemas de software es tan importante como modelar un edificio antes de su
construcción. Un lenguaje de modelado consiste típicamente de elementos del modelo,
notaciones y directivas. Para ocuparse de los sistemas complejos, es esencial la
visualización. La visualización del sistema se convierte a un formato entendible por los
desarrolladores usando una técnica de Modelado. UML es un lenguaje de modelado
visual que ayuda a construir sistemas grandes y complejos orientados a objetos y
basados en componentes.
A continuación se aprenderá acerca de UML.
4. UML
UML es un lenguaje usado para especificar, visualizar, construir y documentar las
diversas piezas de sistemas de software y también 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 metodología, 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 estándar para el desarrollo de sistemas Orientados a Objetos. UML fue
desarrollado en Rational Software Corporation, con contribuciones de otros
metodologístas, líderes, vendedores de software y muchos usuarios. Hoy día, UML es
considerado el estándar de la industria para el desarrollo de sistemas de software
orientados a objetos.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 23
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Antes de UML, existieron tres metodologías populares de desarrollo de sistemas
Orientados a Objetos, cada cual un invento de los tres autores anteriores. La
metodología de Grady Booch fue llamada Boochgrams. La técnica de James Rumbaugh
era conocida como Técnica de Modelado de Objetos (Object Modeling Technique OMT) y el método de Ivar Jacobson fue llamado Ingeniería de Software Orientado a
Objetos (Object-Oriented Software Engineering - OOSE).
UML proporciona un lenguaje de modelado de aplicaciones para lo siguiente:
•
Modelado de proceso de negocios con casos de uso.
•
Modelado de clases y objetos.
•
Modelado de componentes.
•
Modelado de distribución e implementación (deployment).
5. El Modelo UML
Para entender UML en su totalidad, se deben aprender tres importantes elementos. Son
estos:
•
Bloques de construcción de UML.
•
Reglas que ayuden a agrupar los bloques de construcción.
•
Mecanismos comunes aplicados en el proceso de uso del lenguaje de
modelado.
La estructura de los bloques de construcción de UML se describe en la Figura 1.8.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 24
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Figura 1.8: Estructura de Bloques de Construcción de UML
A continuación se discute cada elemento, relación y diagrama.
5.1 Bloques de Construcción
Los bloques de construcción de UML se clasifican en tres amplios conceptos:
•
Elementos del modelo.
•
Relaciones.
•
Diagramas.
5.2 Elementos del Modelo
Existen cuatro tipos de elementos del modelo.
•
Elementos Estructurales: Los elementos estructurales son entidades estáticas.
No revelan un comportamiento dinámico. Forman los nombres para el modelo
UML. Representan ya sea un elemento físico o uno conceptual. Existen siete
tipos de elementos de modelo estructural. Éstos son:
- Clase: Representa un dominio de objetos que comparten los mismos atributos,
operaciones y relaciones.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 25
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
- Interfaz: Es un conjunto de operaciones que revela los servicios ofrecidos por
una clase o componente.
- Caso de Uso: Es una descripción de un conjunto de acciones que realiza un
sistema con respecto a un actor particular interesado en el sistema. Un actor
es una entidad que interactúa con algún aspecto del sistema. Una definición
formal de caso de uso será proporcionada en el Volumen 2, Unidad 1 –
Modelado Básico del Comportamiento.
- Colaboración: Es la realización de un caso de uso.
- Clase Activa: Es una clase cuyos objetos pueden poseer uno o más procesos.
Tales objetos pueden iniciar una actividad de control.
- Componente: Es la parte reemplazable de un sistema. Tal reemplazo es
posible sólo si el componente se ajusta al contrato proporcionado por la
interfaz.
- Nodo: Es un recurso que puede ser computado y por lo tanto, existe en tiempo
de ejecución. Es un elemento estructural físico.
•
Elementos de Comportamiento: Los elementos que representan el modelo
dinámico se denominan elementos de comportamiento. Se tienen dos elementos
de comportamiento: Interacción y Máquina de Estado. Las interacciones son
mensajes que son pasados entre objetos para permitirles interactuar unos con
otros para acometer una tarea particular. Una máquina de estado describe los
diferentes estados que atraviesa un objeto en respuesta a eventos.
•
Elementos de Agrupación: Partes del modelo UML que representan aspectos
organizacionales son llamados elementos de agrupación. El paquete es el único
elemento de agrupación. Un paquete se usa para organizar elementos
cohesivos en grupos.
•
Elementos de Anotación: Estos elementos se usan para describir las partes de
UML. Se tiene un elemento de anotación llamado “nota”, que se usa para
documentar restricciones y comentarios asociados con los elementos.
5.3 Relaciones
UML proporciona cuatro tipos de relaciones:
•
Dependencia: Es una relación semántica entre dos elementos. Un cambio en
un elemento puede causar un cambio en el elemento dependiente.
•
Asociación: Es una relación estructural. Es el enlace entre dos o más objetos
en el sistema. Es a través de la asociación que los objetos interactúan unos con
otros para cumplir tareas específicas.
•
Generalización: Es la relación de generalización / especialización. El objeto
especializado, el hijo, hereda los atributos, operaciones, relaciones y semántica
de la clase generalizada, el padre.
•
Realización: Esta relación existe entre las interfaces y las clases o
componentes que realizan las interfaces. También existe entre casos de uso y
las colaboraciones que realizan los casos de uso. La relación de realización
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 26
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
describe la relación semántica. Se aprenderá posteriormente más acerca de la
relación de realización.
5.4 Diagramas
Un diagrama es una representación gráfica. Cada diagrama de UML proporciona una
vista diferente del sistema. UML proporciona nueve tipos de diagramas. Son estos:
•
Diagrama de Clases: Muestra un conjunto de clases, interfaces, colaboraciones
y sus relaciones.
•
Diagrama de Objetos: Muestra un conjunto de objetos y sus relaciones.
•
Diagrama de Casos de Uso: Muestra casos de uso, actores y sus relaciones.
Ésta es una perspectiva importante para entender un sistema.
•
Diagrama de Secuencias: Muestra el ordenamiento en el tiempo de los
mensajes. También muestra el enfoque de control de cada objeto que participa
en un escenario.
•
Diagrama de Colaboración: Muestra la organización estructural de objetos que
interactúan unos con otros.
•
Diagrama de Estados: Se usa para representar máquinas de estado. Consiste
de estados, transiciones, eventos y acciones.
•
Diagrama de Actividad: Muestra el flujo de una actividad a otra en el sistema.
Éste es un tipo único de diagrama de estados.
•
Diagrama de Componentes: Muestra la organización y dependencias entre un
conjunto de componentes en el sistema.
•
Diagrama de Distribución e Implementación (Deployment): Muestra los
nodos y los componentes que residen en ellos.
5.5 Reglas
Las reglas ayudan a los bloques de construcción 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 semánticas para:
•
Nombre: Se usa para identificar elementos del modelo, relaciones y diagramas.
•
Visibilidad: Especifica la manera en que los nombres pueden ser vistos y
usados por los clasificadores.
•
Ámbito: Es el contexto en el cual los nombres residen.
•
Ejecución: Es la manera en que el modelo dinámico se simula.
•
Integridad: Específica cómo los elementos del modelo se relacionan unos con
otros.
5.6 Mecanismos Comunes
Los mecanismos se usan a lo largo de UML para simplificar el proceso de construcción
del modelo. Existen cuatro tipos de mecanismos, éstos son:
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 27
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
•
Especificación: Es el mecanismo que proporciona la descripción de la sintaxis y
semántica de los bloques de construcción de UML. La representación gráfica
simplemente proyecta partes relevantes del modelo en consideración, y por lo
tanto revela un aspecto específico del sistema.
•
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 símbolo básico para ese
elemento del modelo. Los adornos se usan para agregar más detalles al
elemento del modelo.
•
División Común: La construcción de sistemas orientados a objetos conlleva a
dividir el mundo real en diferentes segmentos. Una división se relaciona a:
- Clases e instancias de clases.
- Casos de uso e instancias de casos de uso.
- Componentes e instancias de componentes.
Otra división se relaciona a la separación entre interfaz e implementación. Las
implementaciones realizan el contrato especificado por la interfaz.
Otra división ocurre entre los casos de uso y colaboraciones, donde las
colaboraciones son realizaciones concretas de casos de uso.
•
Mecanismos de Extensibilidad: UML proporciona tres tipos de mecanismos
extensibles. Éstos son:
- Estereotipos.
- Valores etiquetados (Tagged values).
- Restricciones.
Un estereotipo permite al diseñador crear nuevos bloques de construcción extendiendo
bloques existentes. Los valores marcados se usan para crear información nueva en la
especificación de un elemento del modelo. Una restricción se usa para crear nuevas
reglas al extender aquellas existentes. Habiendo discutido brevemente el modelo UML,
se aprenderá acerca de los tres tipos de modelado que ofrece UML. Éstos son:
•
Modelado estructural.
•
Modelado de comportamiento.
•
Modelado arquitectónico.
En los siguientes volúmenes se estudiarán cada uno de ellos a profundidad.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 28
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
•
Describir la necesidad del Análisis y Diseño Orientado a Objetos (Object
Oriented Analysis and Design - OOAD).
•
Explicar los principios de la orientación a objetos.
•
Describir el trabajo del Lenguaje Unificado de Modelado (Unified Modeling
Language - UML).
•
Describir la importancia del modelado en UML.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 29
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Unidad 1: Examen de Autoevaluación
1) ¿Cuál(es) fase(s) del esfuerzo de la construcción del barco (en la Tragedia de
Vasa) puede relacionarse al esfuerzo del desarrollo de software?
a) Requerimientos
b) Diseño
c) Prueba
d) Todas las anteriores
2) ¿Cuál de los siguientes conceptos se relaciona a “eliminar lo innecesario”?
a) Encapsulamiento
b) Ocultamiento de información
c) Abstracción
d) Ninguna de las anteriores
3) ¿Cuál de los siguientes no es un bloque de construcción de UML?
a) Elementos del modelo
b) Relaciones
c) Diagramas
d) Adornos
4) UML fue la primera metodología inventada para desarrollar sistemas orientados a
objetos
a) Verdadero
b) Falso
5) ¿Cuáles de las siguientes afirmaciones son correctas?
a) La esencia del encapsulamiento recae en que cuando un objeto trae consigo
su funcionalidad, esta última se oculta.
b) Los objetos interactúan con otros para proporcionar una solución a un
problema.
c) Una interfaz es el método que se sigue para hacer que el objeto de la clase
realice sus responsabilidades.
d) Las operaciones que puede realizar un cliente sobre un objeto se declaran
como atributos.
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 30
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
6) ¿Cuál de las siguientes relaciones enfatiza una relación de “uso” (“using”)?
a) Asociación
b) Agregación
c) Generalización
d) Dependencia
7) Animal mamífero, es una categoría general de donde se deriva un caballo. ¿Qué
tipo de relación existe entre animal y caballo?
a) Asociación
b) Agregación
c) Generalización
d) Dependencia
8) La relación “tiene un” es conocida también como la relación asociativa
a) Verdadero
b) Falso
9) Permite a una persona concentrarse en los aspectos esenciales del problema a la
mano, mientras ignora detalles que tienden a distraer
a) Encapsulamiento
b) Rol
c) Tipo
d) Abstracción
10) ¿Cuáles de las siguientes afirmaciones son correctas?
a) La jerarquía de herencia permite que la subclase herede los miembros de
datos y operaciones.
b) Polimorfismo significa la capacidad para hacer que una operación exhiba el
mismo comportamiento en diferentes instancias.
c) “El encapsulamiento es un mecanismo para agrupar los datos y los métodos
de las clases”.
d) Ninguna de las anteriores.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Introducción a UML 31
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Respuestas a la Unidad 1: Examen de Autoevaluación
1) d
2) c
3) d
4) b
5) a y b
6) d
7) c
8) b
9) d
10) a y c
Unidad 1: Introducción a UML
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos 32
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 2: Modelado del Comportamiento
con Casos de Uso
Objetivos de Aprendizaje
Al final de esta unidad, usted será capaz de:
•
Definir la importancia de los casos de uso.
•
Definir cada uno de los elementos involucrados en un diagrama de casos de
uso.
•
Describir el análisis para un caso de uso.
•
Describir la importancia y los elementos de los diagramas de actividad.
•
Elaborar un diagrama de casos de uso.
•
Elaborar diagramas de actividad.
Libro 1: Análisis y Diseño 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.
33
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. Introducción
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
función, además de los diagramas de actividad que describen cada caso de uso del
sistema.
2. Importancia de los Casos de Uso
El caso de uso es una excelente herramienta para que los usuarios describan el sistema
desde sus propios puntos de vista.
La idea es involucrar a los usuarios en las etapas iniciales del análisis y diseño del
sistema. Esto aumentará las probabilidades de que el sistema sea de mayor provecho
para las personas que lo utilizan, en vez de ser un sistema computacional
incomprensible para los usuarios finales.
3. Casos de Uso
Un caso de uso es una interacción entre un usuario u otra entidad y el sistema que es
diseñado. Un caso de uso es una descripción 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 mayoría de sistemas orientados a
objetos. El usuario o la entidad que tiene interés en el sistema que se está diseñando es
llamado actor. En otras palabras, un actor es una entidad que interactúa 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 interactúan con el sistema.
Los casos de uso son útiles por varias razones ya que ayudan a hacer lo siguiente:
•
Descubrir requerimientos.
•
Capturar la necesidad del usuario al enfocarse en la tarea que el usuario
necesita realizar con el sistema.
•
Formular planes de prueba del sistema.
•
Controlar el desarrollo iterativo.
A continuación se muestran algunos casos de uso típicos:
•
Generar número identificación.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
34
Guía del Estudiante
•
Imprimir reporte.
•
Ver estadísticas.
•
Asignar curso.
•
Crear documento.
•
Publicar libro.
Análisis y Diseño de Sistemas Orientado a Objetos
Se observa de lo anterior que todos los casos de uso son una combinación 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 sólo en el contexto de un actor.
Para los casos de uso anteriores, se pueden identificar los siguientes actores:
•
Gerente de Registro.
•
Oficinista del Banco.
•
Responsable de actualizar Inventario.
•
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á diseñando.
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
Figura 2.1: Casos de Uso: Usando Nombres Simples y Nombres de Ruta
Los actores que participan en el sistema pueden ser heredados de un actor existente.
Un ejemplo se muestra en la Figura 2.2.
Libro 1: Análisis y Diseño 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.
35
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 2.2: Ejemplo de Herencia en Actores
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 colaboración se usa en UML para representar una sociedad de elementos, tanto
estáticos como dinámicos, que ayuden a implementar el comportamiento de un caso de
uso, esto es, un caso de uso es realizado por una colaboración.
La colaboración de un caso de uso se representa como una elipse punteada, y la
realización del caso de uso se describe como una línea 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
Figura 2.3: Representación de una Realización de Caso de Uso por Colaboración
3.2 Flujo de Eventos
Un caso de uso se usa para ilustrar lo que hace un sistema; sin embargo, un caso de
uso no especifica el modo en que el sistema lo implementa.
La descripción de un flujo de eventos describe el comportamiento de un caso de uso. El
flujo de eventos se puede mostrar usando cualquiera de los siguientes métodos:
•
Texto estructurado informal.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
36
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
Texto estructurado con precondiciones y postcondiciones.
•
Seudocódigo.
En cualquiera de los métodos anteriores, puede describirse el flujo principal de eventos
así como el flujo excepcional o alternativo.
Un ejemplo de flujo de eventos que usa texto informal se da a continuación. Esto es
para un caso de uso llamado Asignar Curso y el actor involucrado es el Gerente
de Registro, quien es responsable de la asignación de cursos.
Caso de uso: Asignar Curso
El flujo principal de eventos para el caso de uso Asignar Curso será el siguiente:
•
El sistema indica al Gerente de Registro para ingresar el código de
disciplina del curso, para el cual tiene que hacerse la asignación.
•
El Gerente de Registro ingresa el código de disciplina a través del teclado.
•
El sistema verifica la validez del código de disciplina.
•
Luego el sistema indica al Gerente de Registro para ingresar si los cursos
van a ser asignados a un solo estudiante, a un grupo de estudiantes o a todos
los estudiantes.
•
El Gerente de Registro elige una de las tres opciones.
•
El sistema muestra los cursos disponibles para el semestre actual para la
asignación.
•
El Gerente de Registro elige los cursos a ser asignados.
•
El sistema muestra los detalles al Gerente de Registro y espera una
confirmación.
•
El Gerente de Registro confirma la asignación.
•
El sistema genera una entrada en el registro del estudiante para el semestre
actual acerca de los cursos que han sido asignados para el estudiante.
•
El Gerente de Registro sale del sistema.
El flujo excepcional de eventos para el caso de uso Asignar Curso será el siguiente:
•
El Gerente de Registro puede cancelar la operación en cualquier momento.
No se realiza cambio alguno al registro del estudiante.
•
El Gerente de Registro puede ingresar el código de disciplina cualquier
número de veces. En tanto no presione el botón OK, puede limpiar y reingresar el
código de disciplina.
•
El sistema indica al Gerente de Registro para ingresar nuevamente el
código de disciplina si el código de disciplina no es válido.
El flujo de eventos anterior es para uno de los casos de uso. Cada caso de uso puede
ser asociado con una descripción de flujo de eventos, de un modo similar.
Libro 1: Análisis y Diseño 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
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
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.
Figura 2.4: Formato para Flujo de Eventos de Tipo Texto Estructurado
3.3 Escenarios
Un escenario es una instancia de un caso de uso. Normalmente existe una expansión
de un caso de uso a un escenario. Un solo caso de uso puede resultar en varios
escenarios. Para la mayoría 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 investigación. Estas variantes pueden ser modeladas como secuencias
alternas.
3.4 Relaciones
Se pueden usar tres tipos de relaciones con casos de uso. Éstas son:
•
Generalization (generalización): En la herencia de los casos de uso, el
caso de uso secundario hereda las acciones y significado del primario, además
agrega sus propias acciones. Tal como se muestra en la Figura 2.5.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
38
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Validar
curso
Validar
curso
Pregrado
Validar
curso
Postgrado
Figura 2.5: Relación de Generalización
•
La figura anterior indica que los casos de uso Validar curso Pregrado y
Validar curso Postgrado heredan de un caso de uso más 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
representación de la generalización es una flecha vacía que apunta del caso de
uso hijo al caso de uso padre
•
Include (inclusión): Los casos de uso pueden incluir otros casos de uso.
Cuando existen secuencias de pasos en común es importante crear un nuevo
caso de uso que agrupe esas secuencias, luego existirán casos de usos que
incluirán al nuevo creado, de manera de simplificar el diagrama. Es importante
destacar que los casos de uso que se incluyen nunca aparecerán solo,
simplemente funcionan como parte de un caso de uso que lo incluya. El
estereotipo <<include>> se usa para denotar la relación include. La
representación 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.
•
Extend (extensión): Los casos de uso pueden extenderse de otros casos de
uso. La relación extend indica que el comportamiento del caso de uso base es
extendido o ampliado por otro caso de uso (caso de uso que extiende), en la
ubicación especificada por el punto de extensión. El caso de uso base puede
existir por sí mismo. Los puntos de extensión pueden ser mencionados dentro
del caso de uso base, además los puntos de extensión son puntos donde el
comportamiento del caso de uso extendido aparece. Estos casos de uso puede
tener uno o más puntos de extensión. Todos los puntos de extensión tienen
nombre. La representación en UML es una flecha abierta punteada que sale del
caso de uso que extiende y apunta al caso de uso base. Un ejemplo puede
verse en la Figura 2.6.
Libro 1: Análisis y Diseño 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.
39
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 2.6: Relaciones include y extend
En la Figura 2.6, el caso de uso Generar tarjeta registro incluye explícitamente
el comportamiento de los casos de uso Validar curso y Validar estudiante.
Validar curso y Validar estudiante no pueden existir por sí mismos, sin ser
incluidos por un caso de uso.
También, se muestra que el caso de uso Ver status estudiante extiende el
comportamiento del caso de uso Chequear cuenta de estudiante. El punto de
extensión es validar cuenta. El flujo será el siguiente:
•
Ingresar para ver el estado de la cuenta del estudiante.
•
Seleccionar estudiante a visualizar.
•
Validar cuenta.
•
Mostrar detalles de la cuenta del estudiante.
En el punto de extensión, el comportamiento del caso de uso extendido Ver status
cuenta de estudiante será efectuado y luego el flujo dentro del caso de uso base
se reanuda.
4. Análisis de un Caso de Uso
Para el análisis de los casos de uso de un sistema se debe seguir las siguientes
recomendaciones:
•
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 diseñar. Lo que los usuarios indiquen conformaran los candidatos
para los casos de uso.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
40
Guía del Estudiante
•
Análisis y Diseño de Sistemas Orientado a Objetos
Describir brevemente los casos de usos candidatos y realizar una lista de los
posibles actores que van a interactuar con ellos.
5. Diagrama de Caso de Uso
Un diagrama de caso de uso describe un conjunto de caso de uso, actores y sus
relaciones. Un diagrama de caso de uso consiste de:
•
Un conjunto de casos de uso.
•
Actores.
•
Asociaciones de comunicación entre actores y casos de uso.
•
Relaciones entre casos de uso.
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 asociación con el caso de uso Verificar
horario. El actor Manejador Horario interactúa con el sistema a través 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 continuación se muestra un conjunto de
recomendaciones para entender cómo este modelado es posible usando los casos de
uso:
•
Establecer el contexto del sistema identificando los actores participantes en el
sistema.
•
Identificar el comportamiento que cada actor espera del sistema.
•
Utiliza el estereotipo <<System>> cuando los actores no sean humanos.
•
Especificar estos comportamientos como casos de uso.
Libro 1: Análisis y Diseño 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.
41
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
•
El comportamiento común puede ser dividido en nuevos casos de uso, de modo
que puedan ser incluidos por otros casos de uso.
•
El comportamiento variante del sistema debe ser dividido en nuevos casos de
uso que extiendan el flujo principal.
•
Los extends debe ser aplicados moderadamente en los diagramas.
•
Dibujar el diagrama de caso de uso que describe el conjunto de casos de uso,
actores y sus relaciones.
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 atómicos, dentro de una máquina de
estados. Las máquinas de estado modelan el comportamiento de un objeto individual.
Las máquinas de estado se discuten más adelante. Cada actividad resulta en una
acción. Una acción 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 interacción y
actividad son similares. La diferencia radica en el hecho de que los diagramas de
interacción 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 acción, estados de actividad y
transiciones.
6.1 Estados de Acción y Actividad
Los estados de acción son definidos usando tres términos, a saber:
•
Ejecutable.
•
Atómico.
•
Cálculo.
Algunos ejemplos se muestran a continuación:
•
Invocar una operación sobre otro objeto.
•
Enviar una señal a otro objeto.
•
Crear un nuevo objeto.
•
Destruir un objeto existente.
•
Especificar una expresión simple.
Todos los ejemplos anteriores significan estados de acción que son atómicos (no es
posible una descomposición posterior) por naturaleza. Por lo tanto, un estado de acción
es referido como un “cálculo atómico ejecutable”. Un estado de acción puede ser una
acción simple o una expresión.
La Figura 2.8 ilustra estados de acción.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Figura 2.8: Estados de Acción
El estado de acción Activar Bandera no puede ser más descompuesto. En la Figura
2.8, se muestra una acción simple y una expresión.
Los estados de actividad denotan algunas actividades a ser realizadas. Un ejemplo es
la invocación de una función o un procedimiento. Los estados de actividad toman una
cantidad de tiempo razonable para completarse. Pueden o no ser atómicos. Los estados
de actividad pueden ser divididos posteriormente en estados de acción. Un estado de
acción es un estado de actividad, el cual es atómico o no puede ser más dividido. Los
estados de actividad y acción se denotan gráficamente en forma de pastilla.
Figura 2.9: Dos Estados de Actividad
La Figura 2.9, muestra dos estados de actividad. Cada uno tiene una acción asociada a
él. Uno tiene una acción de salida llamada noid mientras que el otro tiene una acción
de entrada llamada obtenerAño. Al final del primer estado de actividad, se obtiene un
noid. En la otra representación, el punto de entrada, obtenerAño 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 acción. 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 acción 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 acción o actividad completa su
trabajo, el flujo de control debe ser pasado al siguiente estado de actividad o acción en
Libro 1: Análisis y Diseño 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
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
el diagrama. Se usan transiciones para mostrar el cambio de una actividad o acción a
otra en el sistema.
Las transiciones se muestran usando una línea dirigida con la punta de la flecha
apuntando hacia el siguiente estado o actividad. Para describir el flujo completo, se
muestra típicamente un estado inicial y uno final. La Figura 2.10, muestra el modo en
que las transiciones se representan en UML. El estado inicial indica el inicio de la
actividad. El resto de las acciones se mueven de un estado de acción a otro estado de
acción o estado de actividad. Finalmente, se muestra el final de un conjunto de
actividades con la ayuda del estado final.
Figura 2.10: Transiciones en UML
6.3 Condición de Guardia
Algunas veces las transiciones deberían ser ejecutadas solo cuando ciertas cosas han
ocurrido. Una condición de guardia puede ser asignada a una transición para restringir
su ejecución; es decir, si la condición de guardia no se cumple, la actividad siguiente a
la transición no se ejecuta. En la Figura 2.11, se muestra un ejemplo de condición de
guardia.
Figura 2.11: Condiciones de guardia en UML
6.4 Decisión o Bifurcación
Aunque existe un flujo de control de una actividad a otra, no siempre es puramente
secuencial. Se puede encontrar ramificación, bifurcación y unión de acciones. La
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
44
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
bifurcación es similar a una construcción if ... then ... else. Cuando se
muestra la bifurcación en diagramas de actividad, se indica la condición bajo la cual
tuvo lugar la transición. La bifurcación se denota con un diamante.
La Figura 2.12, muestra el modo en que es representada la bifurcación.
Figura 2.12: Representación de Bifurcación
El Revisar estado estudiante engloba un estado de actividad. Puede contener
otros estados de actividad y/o estados de acción. Cuando un estudiante se gradúa, el
registro de estudiante debe tener activada la bandera graduado. Un estudiante debe
haber pasado todos los cursos para poder graduarse. Si el estudiante no ha podido
aprobar siquiera un solo curso, entonces la bandera asesoría es activada. La Figura
2.12 muestra esta bifurcación, con la condición apropiada mostrada como una etiqueta
junto con la transición bifurcada (condición de guardia). Es importante destacar que se
pueden tener más de dos condiciones en una bifurcación, como se muestra en la Figura
2.13.
Libro 1: Análisis y Diseño 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.
45
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 2.13: Bifurcación con más de dos Condiciones
6.5 Punto de Fusión
Es el lugar donde dos rutas alternativas se unen y continúan juntas, esto es muy usado
cuando en algún momento 2 rutas o ramas de un diagrama realizan la misma secuencia
de pasos, para no repetir esos pasos, se utiliza el punto de fusión. El punto de fusión se
denota con un diamante, como se muestra en la Figura 2.14.
Figura 2.14: Notación para el Punto de Fusión
6.6 Concurrencia
Imagine una situación donde se deben manejar flujos concurrentes, es decir, manejar
más de un flujo al mismo tiempo. UML usa la ramificación (forking) y unión (joining) para
manejar un flujo concurrente.
Para mostrar la ramificación y unión de flujos de control, se usa una barra de
sincronización, la cual es una línea gruesa horizontal. Una bifurcación o ramificación
(fork) representa la separación de un flujo de control en dos o más transiciones
salientes, la simbología es mostrada en la Figura 2.15.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
46
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Figura 2.15: Notación para la Ramificación (fork)
Una unión (join) representa la unión de dos o más transiciones entrantes, la simbología
es mostrada la Figura 2.16.
Figura 2.16: Notación para la Unión (join)
Las transiciones salientes, como resultado de una bifurcación, representan flujos
concurrentes de control. Para poder mostrar correctamente el flujo de actividades, se
debe asegurar el balance de bifurcaciones y uniones. El balance es asegurado al
igualar el número de flujos que abandonan una bifurcación con el número de flujos que
ingresan a una unión.
La Figura 2.17 muestra un ejemplo de bifurcación y unión de transiciones con tres flujos
concurrentes, los cuales se bifurcan desde el estado de actividad Crear noid(). Los
tres flujos de control se encuentran donde la variable noid es creada. El control es
entonces pasado al siguiente estado de acción donde el noid es asignado.
Libro 1: Análisis y Diseño 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.
47
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Encontrar
disciplina
Noid=año+ disciplina+sno
Figura 2.17: Ejemplo de Bifurcación y Unión de Transiciones
6.7 Un Ejemplo de Diagrama de Actividad
La Figura 2.18 es un ejemplo de un diagrama de actividad completo. Incluye todos los
conceptos que se han aprendido: estados de acción, estados de actividad, transiciones,
ramificación, bifurcación y unión.
Cuando las actividades son modeladas, existen objetos que serán asociados al flujo de
control. Se puede describir el flujo de objetos en un diagrama de actividad.
En la Figura 2.18, se muestra un objeto s que es una instancia de la clase
Estudiante, cuyo estado es cambiado cuando se asigna un noid. Muchos objetos se
pueden mostrar en un diagrama de actividad.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
48
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Encontrar disciplina
Noid=año+disciplina+sno
Figura 2.18: Diagrama de Actividad
6.8 Indicaciones
Cuando se realiza una secuencia de actividades, es posible utilizar indicaciones para
enviar y recibir señales traducidas como eventos, dichas señales provocarán que se
ejecute una actividad.
El símbolo utilizado para enviar una señal es un pentágono convexo, y el utilizado para
recibir una señal es un pentágono cóncavo. Se puede ver un ejemplo en la Figura 2.19.
Libro 1: Análisis y Diseño 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.
49
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
:
Figura 2.19: Envió y Recepción de Señales
Como se observa en la Figura 2.19, la impresión se ejecuta gracias a que el procesador
de texto transmite una señal (evento) a la impresora, la cual recibe y realiza la
impresión, además se coloca el objeto Impresora para denotar que cambia de estado.
6.9 Carriles
Cuando se modelan los flujos de trabajo del negocio, se puede categorizar el diagrama
de actividad en grupos. Cada grupo representa típicamente la parte de la organización
que es responsable de esas actividades. En UML estos grupos son referidos como
carriles (swimlanes). Los carriles son descritos con una línea 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 más clases pueden representar cada carril en el
sistema. Cada actividad debe pertenecer a un solo carril. Una transición 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: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
La Figura 2.20 muestra un diagrama de actividad dividido en carriles.
Figura 2.20: Un Diagrama de Actividad Dividido en Carriles
Se observa que existen transiciones de un carril a otro. Los nombres que se asocian a
un carril representan clases y también pueden representar actores del sistema que son
los responsables de llevar a cabo las actividades que están en su carril.
Los diagramas de actividad se usan para modelar los aspectos dinámicos de un
sistema. Esto puede hacerse ya sea modelando un flujo de trabajo o modelando una
operación. 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
operación involucra entender los detalles computacionales de la operación.
Se puede asociar a cada diagrama de actividad un nombre. Empezando con el flujo de
trabajo principal, se puede continuar lentamente con la identificación de la ramificación,
concurrencia, bifurcación y unión.
7. Caso de Estudio
El caso de estudio planteado a continuación permitirá diseñar los distintos diagramas
que implementa la metodología UML; para comenzar se diseñarán el diagrama de caso
de uso y de actividad, y a lo largo del curso se diseñarán los diagramas restantes
utilizando el mismo caso de estudio.
Libro 1: Análisis y Diseño 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.
51
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
El enunciado se ambienta en la idea de que se han realizado entrevistas con el cliente y
los usuarios del sistema, lo cual se aprende en cursos anteriores.
Se desea diseñar un sistema computarizado para automatizar un club de video, el cual
debe tener las siguientes características:
•
El sistema debe llevar el control de afiliación y retiro de clientes.
•
Para llenar la ficha del cliente es necesario los siguientes datos:
- Nombre completo.
- Cédula.
- Dirección.
- Teléfono.
•
Como requerimiento de inscripción la persona debe de ser mayor de 18 años.
•
El cliente puede afiliarse por medio del sitio web y cancelar con su tarjeta de
crédito.
•
El sistema debe permitir alquilar, reservar, devolver y comprar películas.
•
El cliente puede devolver la película por el buzón de devolución el cual
automáticamente realiza el registro.
•
Debe permitir a los clientes consultar las películas disponibles por medio de
terminales remotos instalados en la tienda.
•
Para alquilar una película el operador del sistema introduce la cédula del cliente,
luego introduce el código de la película a ser alquilada, si la cédula del cliente no
aparece en el sistema, la transacción no procede.
•
Las reservaciones son realizadas por la página web del video club.
•
La duración de la reservación es de 24 horas, al cumplirse el lapso, la
reservación es cancelada automáticamente y la película estaría disponible en la
existencia.
•
El sistema gestiona el pago de la película por adelantado con tarjeta de crédito,
emitiendo una factura.
•
El alquiler de las películas tiene una duración de 2 días hábiles, los días
adicionales son cobrados como días de mora.
•
Para alquilar y reservar una película es necesario ser cliente del video club.
•
El sistema debe llevar el inventario de las películas del video.
•
El club de video ya dispone un sistema contable automatizado que se comunica
con el sistema planteado.
Cabe destacar que no se diseñará un diagrama de actividad por cada caso de uso, solo
los necesarios para entender la metodología, los diagramas restantes quedan para
prácticas del lector.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
52
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
7.1 Identificar los Actores del Sistema
Los actores principales para el sistema del video club son:
•
Cliente: Es la persona que compra, alquila, consulta, reserva películas en el
video club. Además, maneja el sistema directamente cuando reserva por Internet
y consulta películas en los terminales remotos.
•
Empleado: Es la persona que maneja el sistema directamente en el video club.
•
Banco: Representa a la entidad externa con la que el sistema debe contactar
para admitir y realizar los pagos con tarjetas de los clientes.
•
Sistema contable: Representa sistema externo con el cual se comunica el
sistema de video club para todos los movimientos administrativos.
•
Buzón: Representa la máquina automatizada que se conecta con el sistema
para registrar las películas devueltas.
7.2 Identificar los Casos de Uso Principales
Los casos de uso para el sistema de video club son:
•
Alquilar película: Permite al empleado registrar en el sistema las películas que
los clientes desean alquilar, verificando el cliente y el código de la película a
alquilar.
•
Devolver película: El empleado utiliza este caso de uso para registrar la entrega
de una película vencida, integrándola nuevamente en la existencia.
•
Consultar película: El cliente utiliza este caso de uso cuando quiere consultar la
existencia de una película en especial.
•
Reservar película: El cliente utiliza este caso de uso cuando desea realizar
reservaciones de películas 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 películas: El empleado utiliza este caso de uso cuando registra la venta
de una película en el sistema.
•
Consultar clientes: Es un caso de uso genérico utilizado por los casos de usos
alquilar película, afiliar cliente y desafiliar cliente.
•
Gestionar cobro: Se encarga de gestionar el cobro a los clientes ya sea en
efectivo o por medio de tarjeta de crédito, lo cual interactúa con el Banco.
•
Administrar inventario de películas: Se encarga de llevar el control de la
existencia de las películas, así como alimentar al sistema de contabilidad de club
de video.
Libro 1: Análisis y Diseño 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.
53
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
7.3 Describir el Modelo de Casos de Uso
Se describirá el modelo de casos de uso para observar las relaciones entre los actores
y los diferentes casos de uso identificados en el sistema.
Figura 2.21: Diagrama de casos de uso para el Video Club
Se puede observar en la Figura 2.21 que el caso de uso Consultar cliente es incluido
por los casos de uso Alquilar película, Desafiliar cliente y Afiliar cliente. La razón por la
cual esto ocurre, es debido a que Consultar cliente es un modulo obligatorio para los
casos de usos mencionados, además no tiene funcionalidad independiente.
7.4 Flujo de Eventos
En este punto se muestra el flujo de eventos del caso de uso Alquilar película con un
formato del tipo texto estructurado, tomando en cuenta los flujos excepcionales (ver la
Tabla 1).
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
54
Guía del Estudiante
Nombre C.U:
Actores:
Descripción:
Casos de Uso
Relacionados:
Análisis y Diseño de Sistemas Orientado a Objetos
Alquilar película
Id C.U
Empleado
Permite que el cliente alquile una película
Consultar película, Consultar cliente
CU-001
Datos de la película
Registro de la película actualizado y
y del cliente
Salidas: registro del cliente actualizado
Curso Típico
Acción del Actor
Respuesta del Sistema
1.- El empleado introduce en el sistema la
cédula del cliente.
2.- El sistema verifica que el cliente este afiliado.
3.- El empleado introduce el código de la
película que el cliente escogió.
4.- El sistema verifica que la película exista o que
esté disponible.
5.- El sistema muestra los datos de la película.
6.- El sistema solicita la verificación de la película
7.-El empleado realiza la confirmación.
8.- El sistema muestra el monto a cancelar.
9.- El sistema pide los datos de la tarjeta de
crédito.
10.-El empleado introduce los datos de la
tarjeta.
11.- El sistema verifica con el banco la validez de
la tarjeta de crédito.
12.- El sistema muestra mensaje de transacción
exitosa.
13.- El sistema actualiza el inventario de películas
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 típico, el empleado introduce una cédula
Precondición:
Acción del Actor
Respuesta del Sistema
1.- Falla la búsqueda del cliente.
2.- El sistema muestra un mensaje, indicando que
el usuario no está afiliado.
3.- El caso de uso continúa en el paso 1 del
flujo principal.
Curso Excepcional # 2: La película esta alquilada
En el paso 3 del flujo típico, el empleado introduce el código de
la película.
Precondición:
Acción del Actor
Respuesta del Sistema
1.- El sistema encuentra que la película no está
disponible.
Entradas:
Libro 1: Análisis y Diseño 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.
55
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
2.- El sistema muestra en pantalla un mensaje,
indicando que la película no está disponible.
3.- El caso de uso continúa en el paso 3 del
flujo del flujo típico.
Curso Excepcional # 3: Tarjeta de crédito inválida
En el paso 11 del flujo típico, el sistema verifica la validez de la
tarjeta de crédito.
Precondición:
1.- Falla la transacción con el sistema bancario.
2.- El sistema muestra un mensaje de error
donde indica que la tarjeta es inválida.
3.- El caso de uso continúa en el paso 10 del
flujo típico.
Tabla 1: Curso Típico y Excepcional del Caso de Uso Alquilar Película
Cabe destacar que los cursos excepcionales desarrollados no son los únicos que
pueden conseguirse en este caso de uso, también existen otros como Cancelar la
operación, entre otros, los cuales se dejan de práctica al lector.
7.5 Diagrama de Actividad para el Caso de Uso
En este punto se realiza el diagrama de actividad del caso de uso Alquilar Película,
tomando en cuenta el flujo de evento típico y los flujos de eventos excepcionales
descritos anteriormente. El diagrama puede verse en la Figura 2.22.
En la Figura 2.22 puede observarse que cada flujo esta marcado por una línea con una
flecha de dirección que termina cuando termina el flujo. A continuación se describen los
diferentes flujos:
•
El flujo marcado como 1 (uno), indica el escenario exitoso, donde el cliente está
afiliado, la película que seleccionó está disponible y la tarjeta de crédito es
válida, lo cual produce una transacción exitosa.
•
El flujo marcado como 2 (dos), indica un escenario de excepción, donde el
cliente no aparece en el sistema (no esta afiliado). El sistema muestra un
mensaje de error indicando que el usuario no está afiliado, generando
automáticamente un ciclo, donde el sistema vuelve a pedir que se introduzca la
cédula.
•
El flujo marcado como 3 (tres), indica también un escenario de excepción, donde
la película no está disponible. El sistema muestra un mensaje de error indicando
que la película no está disponible, en este caso también se genera un ciclo, en el
cual el sistema vuelve a pedir que se introduzca el código de la película.
•
El flujo marcado como 4 (cuatro), es un escenario de excepción, donde cliente
no confirma el alquiler de la película, El sistema muestra un mensaje de
operación cancelada y termina el flujo.
•
El flujo marcado como 5 (cinco), es un escenario de excepción, donde el sistema
bancario reporta la tarjeta de crédito como tarjeta invalida, por lo tanto el sistema
muestra un mensaje de error, generando un ciclo, donde se vuelve a pedir los
datos de la tarjeta de crédito.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
56
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
2
3
1
4
5
Figura 2.22: Diagrama de Actividad para el Caso de Uso Alquilar Película
Libro 1: Análisis y Diseño 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.
57
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Resumen
Ahora, que ha completado esta unidad, usted debe ser capaz de:
•
Definir la importancia de los casos de uso.
•
Definir cada uno de los elementos involucrados en un diagrama de casos de
uso.
•
Describir el análisis para un caso de uso.
•
Describir la importancia y los elementos de los diagramas de actividad.
•
Elaborar un diagrama de casos de uso.
•
Elaborar diagramas de actividad.
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
58
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 2: Examen de Autoevaluación
1) Un diagrama de actividad es una interacción entre un usuario u otra entidad y el
sistema que es diseñado.
a) Verdadero
b) Falso
2) De las siguientes afirmaciones, seleccione las respuestas correctas:
a) El caso de uso es una excelente herramienta para que los usuarios describan
el sistema desde sus propios puntos de vista.
b) El nombre de un caso de uso es una combinación de un adjetivo y un
sustantivo.
c) En un diagrama de caso de uso, los actores que participan en el sistema
pueden ser heredados de un actor existente.
d) Un caso de uso se representa gráficamente con un círculo, con el nombre
dentro del círculo.
3) Una colaboración, es una sociedad de clases, que se utiliza para implementar un
caso de uso
a) Verdadero
b) Falso
4) ¿Cuáles de los siguientes métodos son utilizados para describir el flujo de eventos
de un caso de uso?
a) Texto estructurado informal
b) Texto estructurado con precondiciones y postcondiciones
c) Seudocódigo
d) Solo a y b
5) ¿Cuáles de las siguientes son relaciones entre casos de uso?
a) Asociación
b) Generalización
c) Inclusión
d) Agregación
6) La relación de inclusión quiere decir que un caso de uso incluye implícitamente a
otro caso de uso.
a) Verdadero
b) Falso
Libro 1: Análisis y Diseño 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.
59
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
7) De las siguientes afirmaciones seleccione las respuestas correctas:
a) Un estado de acción es un elemento no atómico.
b) Una condición de guardia puede ser asignada a una transición para restringir
su ejecución.
c) Un diagrama de actividad consiste de objetos, estados de acción, estados de
actividad y transiciones.
d) En los diagramas de actividad la bifurcación se denota gráficamente como un
diamante.
8) Las transiciones se muestran usando una línea punteada dirigida con la punta de
la flecha apuntando hacia el siguiente estado o actividad.
a) Verdadero
b) Falso
9) Es el lugar donde dos rutas alternativas se unen y continúan juntas.
a) Unión
b) Fusión
c) Concurrencia
d) Bifurcación
10) El símbolo utilizado para enviar una señal es un pentágono cóncavo y el utilizado
para recibir una señal es un pentágono convexo.
a) Verdadero
b) Falso
Unidad 2: Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
60
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Respuestas de la Unidad 2: Examen de Autoevaluación
1) b
2) a y c
3) a
4) a, b y c
5) b y c
6) b
7) b, c y d
8) b
9) b
10) b
Libro 1: Análisis y Diseño 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.
61
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Lab. de Modelado del
Comportamiento con Casos de Uso
Objetivos del Laboratorio
•
Identificar requerimientos del sistema usando Casos de Usos.
•
Describir los escenarios y flujos de eventos de los Casos de Usos.
•
Elaborar Diagrama de Casos de Usos.
•
Elaborar Diagramas de actividades.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Lab. de 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.
63
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. Ejercicio de Laboratorio
Se describe un sistema ATM para un e-Bank (Banco electrónico).
El e-Bank lanzó sus operaciones en Venezuela, con su casa matriz en Caracas, en
2002. Dentro de un periodo corto de tres años, construyó una red de 275 sucursales por
toda Venezuela. Quizás 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 diseñar e implementar un nuevo
sistema ATM basado en las últimas tecnologías. 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 fáciles de extender y mantener.
A continuación se presenta la descripción de los requerimientos claves del sistema ATM
para el e-Bank:
•
Existen dos tipos principales de clientes del banco: Individuales y corporativos.
•
Uno de los requerimientos importantes del sistema es permitir al cliente
depositar una cantidad y/o retirar una cantidad de una cuenta en los centros
ATM. Los centros ATM tienen un quiosco con capacidades de pantalla de
contacto.
•
El cliente debe tener la capacidad de revisar cada transacción realizada contra
una cuenta. Algunas de las transacciones registradas incluyen lo siguiente:
- Fecha.
- Hora.
- Tipo de transacción (o tipo de transacción).
- Cantidad.
- Balance de Cuenta.
•
Un cliente individual puede operar tres tipos de cuentas:
- Una cuenta de ahorros.
- Una cuenta de depósito fijo.
- Una cuenta de depósito recurrente.
•
Un cliente corporativo sólo puede operar un tipo de cuenta, llamada cuenta
corriente.
•
Los clientes pueden acceder a sus cuentas en el ATM insertando una tarjeta
ATM, dicha tarjeta es proporcionada al cliente junto con un código (PIN) que
tendrá que ser insertado después que se inserta la tarjeta. El código (PIN) está
compuesto de 4 dígitos decimales del 0 al 9.
•
Se supone que una sola tarjeta ATM proporciona acceso a todas las cuentas del
cliente.
•
Un cliente puede hacer depósitos en cualquiera de los tipos de cuenta.
Unidad 3: Lab. de Modelado del Comportamiento con Casos de Uso
Libro 1: Análisis y Diseño 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.
64
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
El retiro de dinero es permitido en la cuenta de ahorros sólo si existe un balance
positivo.
•
El retiro de efectivo directamente desde la cuenta de depósito fijo o la de
depósito recurrente no está permitido.
•
El retiro de efectivo desde la cuenta corriente está permitido incluso si no existe
un balance positivo.
•
La magnitud de sobregiro permitido se fija al momento de abrir la cuenta
corriente y puede ser modificado sólo por las autoridades del banco y no a
través del ATM.
•
Mientras el retiro no está permitido directamente desde la cuenta de depósito fijo
o recurrente, se puede transferir una cantidad de dinero desde estas cuentas
hacia una cuenta de ahorros. Sin embargo, dichas transferencias implican un
pago por transacción del 7% y las cantidades transferidas no pueden exceder
del 75% que se tiene en la cuenta origen.
Se requiere realizar las siguientes tareas:
•
Identificar los actores principales del sistema.
•
Identificar los casos de usos más relevantes en el sistema, indicando relaciones
extensión e inclusión.
•
Dibujar el diagrama de casos de usos.
•
Realizar el flujo de eventos para el caso de uso más relevante en el sistema,
tomando en cuenta los cursos típicos y excepcionales.
•
Realizar el diagrama de actividad del caso de uso más relevante en el sistema.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Lab. de 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.
65
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
Objetivos de Aprendizaje
Al final de esta unidad, usted será capaz de:
•
Describir el modelado estructural del UML en forma básica.
•
Describir clases y sus relaciones.
•
Conocer los mecanismos comunes que pueden ser aplicados a las clases.
•
Elaborar Diagrama de Clases.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
67
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. Modelado Estructural
El modelo estructural es el modelo UML básico. Estructura significa constitución. El
Modelado estructural de UML especifica cómo 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 verán dos diagramas bajo el modelado estructural. Éstos son:
•
Diagramas de clase.
•
Diagramas de objetos.
Se aprenderá acerca de diagramas de clase y las relaciones entre clases, comenzando
la discusión con los diagramas de clase.
2. Diagramas de Clase
Una clase es el marco de trabajo para un conjunto de objetos, que comparten los
mismos atributos, operaciones, relaciones y semánticas. En UML, una clase se
representa gráficamente con un rectángulo. A continuación se aprenderá acerca de los
nombres de clase.
2.1 Nombre de Clase
Cada clase tiene un nombre. Un nombre puede ser simple, en donde sólo el nombre de
la clase se especifica. La otra forma de nombrar una clase es especificando el nombre
de ruta, la cual contiene también el nombre del paquete. Es importante destacar que las
clases deben comenzar con letra mayúscula, si el nombre está compuesto por dos
palabras, las mismas deben ser unidas comenzando cada una en mayúscula. La Figura
1.9 muestra la notación más simple de representar una clase en UML.
Empleado
Estudiante
Vehículo
FormularioDeRegistro
Figura 4.1: Método Simple de Representar una Clase
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
68
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
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::Vehículo
Biblioteca::DetalleMiembro::
FormularioDeRegistro
Figure 4.2: Uso de Nombres de Rutas
El signo :: se usa como el símbolo de separación. 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 práctica estándar, la primera letra de
un paquete y de un nombre de clase está en mayúsculas. A continuación se aprenderá
acerca de los atributos de la clase.
2.2 Atributos de Clase
Un atributo es una propiedad de una clase y tiene un nombre. Los atributos de una
clase caracterizan la clase. Los atributos especifican un rango de valores que los
objetos de la clase pueden tomar. Los atributos de una clase describen las propiedades
esenciales de la clase, y pueden ser especificados dentro del rectángulo ubicado debajo
del nombre de la clase, tal como se muestra en la Figura 4.3.
Nombre de
clase
Empleado
empleadoId
empleadoNombre
fechaDeNacimiento
salario
departmento
Atributos
Figura 4.3: Atributos de una Clase
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
69
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Los nombres de atributos que constan de una sola palabra comienzan con letra
minúscula. Sí el nombre del atributo esta formado por más de una palabra, cada palabra
siguiente comenzará con una letra mayúscula, a excepción de la primera palabra que
comenzará en minúscula, tal como en nombreEmpleado. Esto se hace para mejorar la
legibilidad. Es posible además especificar el tipo de dato al que pertenece el atributo,
así como también 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 discutirán las operaciones de una clase.
La sintaxis de un atributo en UML, de forma completa, se muestra a continuación:
[visibilidad] nombre [multiplicidad] [: tipo ] [= valor inicial]
[{propiedad de la cadena}]
Algunos ejemplos de cómo se pueden especificar atributos en UML:
númeroIdentidad
Sólo el nombre del atributo
+ númeroIdentidad
Visibilidad y nombre del atributo
- númeroIdentidad = 10
Visibilidad, nombre y valor inicial
númeroIdentidad: Integer
Nombre y tipo
númeroIdentidad {frozen}
Nombre y propiedad
Se puede mencionar cualquiera de las tres propiedades, changeable, addOnly y
frozen. La propiedad changeable (cambiable) indica que el valor del atributo
puede ser fácilmente alterado. Esta es la propiedad por defecto.
La propiedad addOnly (solo adicionar) se usa cuando la multiplicidad es mayor
que uno, y puede ser completada con valores extra, pero una vez creada no puede ser
retirada o cambiada.
Cuando se usa la propiedad frozen (congelado), el valor de los atributos no puede
ser alterado después de que el atributo ha sido inicializado.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
70
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
2.3 Operaciones de una Clase
Las operaciones son las funcionalidades o comportamiento que una clase ofrece, por
ejemplo una clase llamada Carro puede realizar diferentes operaciones tales como:
Acelerar(), Frenar(), cruzar(), entre otros.
En UML, las operaciones se especifican en un rectángulo ubicado debajo de la lista de
atributos. Esto se ilustra en la Figura 4.5.
Nombre de
Clase
Empleado
empleadoId : Integer
empleadoNombre : String
...
Atributos
colocarDetalleEmpleado()
obtenerDetalleEmpleado()
colocarSalario(salario : Float)
obtenerSalario() : Float
Operaciones
Figura 4.5: Atributos y Operaciones de una Clase
En la Figura 4.5, se ilustra cómo se especifican las operaciones como parte de la clase.
Se puede especificar el parámetro tomado por una operación junto con su tipo de dato,
indicándolo entre los paréntesis que preceden al nombre de la operación, como en
colocarSalario(salario:Float). También se puede especificar el tipo de retorno
de una función, como en obtenerSalario().
La elipsis (...) o puntos suspensivos bajo la sección de atributos de la clase en la Figura
4.5, indica que tal vez existan más atributos para esta clase. Una clase juega un rol
particular en cada vista del sistema. Se pueden revelar sólo 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 continuación:
[visibilidad] nombre [(lista de parámetros)]
[: tipo del retorno] [{propiedad de la cadena}]
Algunos ejemplos de cómo se pueden usar las operaciones se muestran a continuación:
definirEmpleado()
sólo nombre de la operación
+ definirEmpleado ()
visibilidad y nombre
- definirEmpleado (e : Empleado)visibilidad, nombre y parámetro
obtenerEmpleado() : Empleado
nombre y tipo de retorno
obtenerEmpleado () {isQuery}
nombre y propiedad
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
71
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Existen cuatro tipos de propiedades de cadenas para las operaciones. Estas son:
•
isQuery (es consulta): Cuando se ejecuta esta operación, el sistema no
se modifica. Generalmente, la operación no tiene repercusiones.
•
Sequential (secuencial): Los que invocan la operación deben asegurar
que hay un sólo flujo del objeto (o sólo una llamada a una instancia) en un
instante en el tiempo. Si hay más, la semántica y la integridad no son
garantizadas por la operación.
•
Guarded (garantizada): Múltiples llamadas desde hilos concurrentes
pueden ocurrir simultáneamente para una instancia (sobre la operación
guarded), pero solo a una se le es permitido ejecutarse. Las otras son
bloqueadas hasta que la primera operación es completada. La semántica y la
integridad son garantizadas por la operación guarded.
•
Concurrent (concurrente): Cuando existen muchos flujos de control, se
garantiza la semántica e integridad del objeto tratando la operación como
atómica, o en otras palabras, múltiples flujos de control pueden ocurrir
simultáneamente para un objeto en operaciones concurrentes.
Las propiedades sequential, guarded y concurrent son relevantes para aplicar a objetos
activos, procesos o hilos.
Se puede agregar información adicional a la lista de parámetros, usando la siguiente
sintaxis:
[dirección] nombre : tipo [=valor por defecto]
La dirección puede ser in para parámetros de entrada, out para parámetros de
salida e inout para un parámetro que ingresa y puede ser modificado. El parámetro in
no puede ser modificado, mientras que el parámetro out puede ser modificado por la
operación. También se puede especificar un valor inicial al atributo. A continuación 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. También ayudan a una mejor
organización de atributos y operaciones cuando se especifican como parte de la clase.
La Figura 4.6 brinda un ejemplo de cómo usar los estereotipos. Típicamente, los
estereotipos son encerrados dentro de << >>.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
72
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Nombre de Clase
Empleado
<< detalles básicos >>
empleadoId : Integer
empleadoNombre : String
fechaDeNacimiento : DOB
<< detalles empleo >>
salario : Float = 0
Atributos
Estereotipo
<< operaciones de colocar >>
colocarDetallesEmpleado()
colocarSalario(salario : Float)
<< operaciones de recuperar >>
obtenerDetalleEmpleado()
Operaciones
Figura 4.6: Uso de Estereotipos
En la figura anterior, se tienen unos cuantos estereotipos, son estos: detalles
básicos, detalles empleo, operaciones de colocar y operaciones de
recuperar. Los atributos y operaciones que siguen un estereotipo pertenecen a
aquella categoría especificada por el estereotipo.
Ahora se examinarán las responsabilidades de una clase.
2.5 Responsabilidades de una Clase
¿Existe alguna diferencia entre una operación y una responsabilidad? Las operaciones
son las implementaciones de los servicios proporcionados por la clase. Por otro lado,
las responsabilidades son aquellas que una clase establece y que es capaz de realizar.
Las responsabilidades son obligaciones a ser cumplidas por una clase. Por ejemplo, la
clase Empleado es responsable de conocer el nombre del empleado o su edad. Las
responsabilidades se muestran en forma textual, en simple español.
La Figura 4.7 ilustra el modo en que las responsabilidades de una clase se muestran
dentro de la especificación de una clase.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
73
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Nombre de
Clase
Empleado
Responsabilidades
-- Mantener los detalles
del empleado
-- Determinar la edad
del empleado
Responsabilidades
-- Capaz de establecer
los detalles del
empleado
Figura 4.7: Responsabilidades de una Clase
2.6 Ámbito y Visibilidad
Hay dos tipos de ámbito para los atributos y operaciones de las clases, estos son, clase
e instancia.
•
Ámbito de clase: Indica que el atributo o la operación están disponibles a través
del nombre de la clase. No hay necesidad de tener un objeto que accede al
atributo u operación. El ámbito de clase se representa subrayando el atributo.
•
Ámbito de instancia: Indica que cada instancia del clasificador tiene su propia
copia del atributo u operación. 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.
•
Pública (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 operación denota visibilidad public.
•
Protegida (Protected): Cualquier subclase o descendiente de un clasificador
puede usar el atributo o la operación de una súper clase. El símbolo # se usa
para denotar miembros protected de una subclase.
•
Privada (Private): Sólo las instancias de un clasificador pueden usar los
atributos y operaciones que tienen visibilidad private, esto es, el atributo o la
operación sólo se puede utilizar dentro de la clase que lo contiene. Un signo –
denota visibilidad private.
•
Paquete (Package): Denota que los atributos y operaciones son visibles a
clasificadores que se encuentran dentro del mismo paquete. El símbolo ~ se
utiliza para indicar este tipo de visibilidad. Esta visibilidad es válida en la
especificación 2.0 de UML.
La Figura 4.8 muestra un ejemplo que ilustra ámbito y visibilidad.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
74
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Empleado
-cuentaEmpleado
# empleadoId
# empleadoNombre
+ colocarEmpleadoId()
+ colocarEmpleadoNombre()
+ obtenerEmpleadoId()
+ obtenerEmpleadoNombre ()
+ obtenerCuentaEmpleado()
...
Figura 4.8: Ilustración de Ámbito y Visibilidad
3. Relaciones entre Clases
Las relaciones conectan dos o más cosas. En la orientación a objetos, se hablan de
tales conexiones entre dos o más clases. Los cuatro tipos de relaciones entre clases
son las siguientes:
•
Dependencia.
•
Generalización.
•
Asociación.
•
Agregación.
Cada una de estos tipos de relaciones tiene una notación específica en UML. A
continuación se discute la relación de dependencia.
3.1 Relación de Dependencia
La relación de dependencia es la relación de “utiliza”. Esto quiere decir que un elemento
usa otro elemento para que se realice una tarea. Un cambio en el elemento que se está
usando afecta al elemento que lo usa. Lo inverso no necesariamente es cierto. Por
ejemplo, una relación de dependencia ocurre cuando un objeto es pasado como un
parámetro en una operación de una clase. La operación puede usar el objeto a través
de sus interfaces conocidas. Si la interfaz cambia, afecta al objeto que está usando el
otro objeto. En UML, una línea punteada dirigida denota una relación de dependencia.
Una dependencia puede tener nombre. Pero normalmente no se le pone nombre a
menos que se tenga un modelo que tenga muchas dependencias y exista la necesidad
de distinguirlas entre ellas.
La Figura 4.9 muestra cómo se usa una relación de dependencia en UML.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
75
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
GeneradorNomina
DatosNomina
actualizarDataEmpleado()
generarNomina()
DatosNomina
obtenerDataEmpleado()
añadirDataEmpleado()
GerenadorNomina
Figura 4.9: Relación de Dependencia
En la Figura 4.9, la dirección de la cabeza de la flecha es hacia la clase de la cual se
depende. La clase GeneradorNomina es dependiente de la clase DatosNomina. Para
que se genere la nómina, la clase GeneradorNomina requiere datos de la clase
DatosNomina. Un cambio en la interfaz de DatosNomina afectará a
GeneradorNomina. A continuación, se aprenderá acerca de la relación de
generalización.
3.2 Relación de Herencia o Generalización
La generalización consiste de la relación entre una clase principal (superclase) y la
subclase. La superclase representa un concepto general mientras que la subclase
representa un concepto más específico. Esta relación es llamada también una relación
“es un tipo de” (“is a kind of”). Ejemplos de esta relación son:
•
Rosa es un tipo de flor.
•
Quick sort es un tipo de algoritmo de ordenamiento.
•
Lapicero es un tipo de instrumento de escritura.
•
Windows 2000 es un tipo de sistema operativo.
En una relación de generalización, la entidad hija puede aparecer donde sea que
aparezca la entidad padre, pero lo inverso no es válido. Se alcanza el polimorfismo con
la generalización cuando una entidad hija sobrescribe una operación que es definida en
la entidad padre. En UML se denota la relación de generalización con una línea sólida
dirigida. La Figura 4.10 es una representación esquemática de tal relación.
Empleado
Gerente
IngSoftware
GerenteProducción
Staff
GerenteVentas
Figura 4.10: Relación de Generalización
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
76
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
La clase Gerente es una subclase de Empleado, y es también la superclase para las
clases GerenteVentas y GerenteProducción. A continuación se discute la relación
de asociación.
3.3 Relación de Asociación
La relación de asociación es una relación simple. Conecta dos clases, denotando la
relación estructural entre ellas. En una asociación, es posible navegar entre las clases
que participan en la relación. También puede existir una asociación de una clase a sí
misma. La notación UML para una asociación es una línea sólida que conecta las dos
clases que participan en la relación de asociación.
Una relación de asociación puede tener un nombre que indica la asociación entre las
dos clases, en este caso debe colocársele justo sobre la línea sólida que define la
asociación. Cuando una clase participa en una relación de asociación, juega un rol
específico en esa relación. Los roles pueden ser especificados para cada clase que
participa en la relación.
La Figura 4.11 describe una relación de asociación, mostrando el nombre de asociación
y los roles que cumplen las clases en esa relación.
Trabaja Para
Compañía
Gerente
Empleado
Empleador
Figura 4.11: Relación de Asociación
El nombre de la asociación es Trabaja Para y los roles son Empleado y
Empleador. Agregar estos adornos a la relación de asociación mejora el significado de
las clases que participan en la relación.
3.3.1
Multiplicidad
También se puede mostrar cuántos objetos pueden ser conectados para una instancia
de una relación de asociación. Esto se llama la multiplicidad del rol de una asociación.
Una asociación tiene dos extremos, en cada extremo se puede especificar un número
que indica el número de objetos a ser creados para esa asociación. Vea la Figura 4.12.
VehiculoCuatroRuedas
1
4
Puertas
Figura 4.12: Multiplicidad del Rol de una Asociación
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
77
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
En la figura anterior, se muestra que para cada instancia de VehiculoCuatroRuedas
existen cuatro instancias de Puertas.
También se puede especificar:
0..1 para cero o uno, también se puede definir como “ninguno o uno”.
0..* para cero o más.
1..* para uno o más.
3..5 para el rango 3, 4 ó 5.
Adicionalmente, se puede tener conjuntos de multiplicidad, por ejemplo, {7, 8, 12}.
3.3.2
Asociación Calificada
Cuando un objeto de una clase tiene que seleccionar un objeto de otra clase para
cumplir con un papel especial en la asociación, la primera clase debe valerse de un
atributo en específico para localizar al objeto adecuado. Este atributo debe ser un
identificador único. Esto es llamado asociaciones calificadas, por ejemplo cuando una
persona reserva por teléfono entradas para ir al cine, el recepcionista le entrega un
número de reservación único (localizador) de las entradas, si en algún momento se
desea saber el estado de la reservación o se va a comprar las entradas al cine, se debe
entregar el número de la reservación para realizar la operación. La Figura 4.13 muestra
la representación gráfica del ejemplo anterior.
RecepcionistaCine
NumeroReservacion
1
localiza 1..*
Reservacion
Figura 4.13: Asociación Calificada
3.3.3
Clase Asociación
Una clase asociación modela atributos y operaciones de una asociación, la clase
asociación se crea de la misma manera que una clase estándar, la conexión se realiza
mediante una línea discontinua entre la asociación de dos clases relacionadas.
La clase asociación puede tener asociaciones con otras clases. En la Figura 4.14, se
muestra una clase asociación Contrato para la asociación “trabaja para” entre la clase
Empleado y la clase Compañía. Esta misma clase Contrato se asocia con la Clase
Gerente.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
78
Guía del Estudiante
Empleado
Análisis y Diseño de Sistemas Orientado a Objetos
trabaja para
Compañia
Contrato
Gerente
aprobado por
Figura 4.14: Clase Asociación
3.4 Relación de Agregación
También se puede especificar una relación de agregación al extender la relación básica
de asociación. Se conoce como una relación todo-parte (whole-part). La clase en un
extremo de la relación contendrá las clases en el otro extremo de la relación. La relación
todo-parte significa la relación “es parte de” o “tiene un”. Algunos ejemplos de una
relación de agregación son los siguientes:
•
Un cuarto tiene una puerta.
•
Edificio tiene cuartos.
•
Vehículo tiene un motor.
•
Compañía tiene departamentos.
•
Libro tiene capítulos.
Existen dos formas de agregación:
•
Agregación simple.
•
Composición.
Una agregación establece una relación del tipo “tiene un” entre dos clases. En una
agregación simple, el tiempo de vida del todo y las partes no están enlazados. Por otro
lado, en la composición, si están enlazados. Si el todo deja de existir, las partes
automáticamente dejan de existir.
La Figura 4.15 muestra una agregación simple. Esta relación se muestra usando un
diamante sin rellenar. El diamante se ubica cerca de la clase que forma el todo en la
relación. Puerta y Asiento existen como entidades incluso si la clase
VehiculoCuatroruedas deja de existir. Ellas están disponibles para su uso con otros
vehículos similares.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
79
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
VehiculoCuatroRuedas
Puerta
Asiento
Figura 4.15: Agregación Simple
La Figura 4.16 describe la composición y la multiplicidad.
Edificio
nombreEdificio
numeroDePisos
colocarNombre()
colocarNumeroDePisos()
...
1
4..6
Habitación
Piso
numeroPisos
numeroDeHabitaciones
1
obtenerNumeroPiso()
obtenerNumeroDeHabit()
12
numeroHabitación
lugarHabitación
obtenerNumeroHabit()
obtenerLugarHabit()
...
Figura 4.16: Composición y Multiplicidad
Edificio tiene una relación de composición con Piso, y Piso a su vez tiene una
relación de composición con Habitación.
En la primera instancia, Edificio es el todo y Piso es la parte. En la segunda
instancia, Piso es el todo y Habitación es la parte. Esta relación se muestra como un
diamante negro ó relleno, que se coloca cerca de la clase que representa el todo en la
relación.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
También se muestra la multiplicidad del rol de la agregación. Un edificio puede tener 4,
5 ó 6 pisos mientras que cada piso tiene 12 habitaciones.
Antes de ver un ejemplo para ilustrar cómo se dibujan los diagramas de clase usando la
notación UML, se discutirá brevemente algunos adornos usados comúnmente en
diagramas de clase.
4. Mecanismos Comunes
Se aprendió que los mecanismos comunes, tal como los adornos, mejoran el
entendimiento del sistema.
A continuación se listan algunos de esos mecanismos comunes:
•
Nota: Una nota permite especificar comentarios acerca de un aspecto particular
de un modelo. Una nota se muestra gráficamente como un rectángulo con una
esquina doblada. También contiene comentarios textuales o gráficos. Vea la
Figura 4.17.
Los comentarios
van aquí
Figura 4.17: Especificación de Comentarios en UML
•
Valor Etiquetado (Value tagged): Los valores etiquetados permiten crear
nueva información en la especificación de un elemento. Se representa como una
cadena colocada entre un par de llaves {...}. Los valores etiquetados se colocan
debajo de un elemento.
•
Estereotipo: Los estereotipos permiten crear nuevos tipos de bloques de
construcción que son específicos al sistema que está siendo analizado. Estos
bloques de construcción son similares a los existentes. Los estereotipos están
encerrados dentro de << >> y son ubicados encima del elemento al cual se
refieren.
•
Restricción: Las restricciones ayudan a agregar nuevas reglas o a modificar
aquellas existentes. Éstas son de nuevo encerradas entre llaves y se ubican en
proximidad al elemento asociado.
•
Compartimentos Extra: Pueden ser agregados a una notación de clase para
proporcionar mayor significado a la existencia de la clase en el modelo.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
81
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
La Figura 4.18 ilustra los mecanismos comunes discutidos anteriormente.
La clase que
maneja todas las
operaciones de
nómina de la
compañía.
<< Subsistema Nómina >>
GerenteNómina
{version = 1.3}
revisarFecha()
activarProcesoNómina()
...
{Corre sólo el último
día de cada mes}
GeneradorNómina
{autor = jerry}
InformacionNómina
generarNómina()
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
...
Figura 4.18: Ilustración de los Mecanismos Comunes
En la Figura 4.18, se han incluido los siguientes mecanismos comunes:
•
Dos notas, una adjunta a GerenteNomina y otra a ConectorBaseDatos.
•
Valores etiquetados para las clases GerenteNomina, GeneradorNomina y
ConectorBaseDatos. Los valores son especificados como una cadena encerrada
dentro de { } justo debajo del nombre de la clase. Note que los valores
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
82
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
etiquetados son útiles para especificar el número de versión, nombre de autor y
la fecha en que se escribió el programa.
•
Restricción para GerenteNomina, colocada fuera de dicha clase, para indicar
que las operaciones de esta clase corren sólo en el último día del mes. Ésta es
la única restricción que se ha agregado a esta figura.
•
Se ha agregado un compartimiento extra llamado Excepciones, en la clase
ConectorBaseDatos. Este da la lista de excepciones lanzadas por esta clase.
También se pueden agregar compartimentos sin nombre dentro de una clase.
5. Caso de Estudio
Hasta aquí se ha aprendido acerca de clases, sus relaciones, adornos y mecanismos
comunes. Siguiendo con la resolución del caso de estudio planteado en la unidad 2,
ahora se aprenderá a construir un diagrama de clases. Un diagrama de clases describe
gráficamente un conjunto de clases, interfaces, colaboraciones y las relaciones entre
ellas.
Se coloca nuevamente el problema para mayor comprensión del mismo.
Se desea diseñar un sistema computarizado para automatizar un club de video, el cual
debe tener las siguientes características:
•
El sistema debe llevar el control de afiliación y retiro de clientes.
•
Al momento de la afiliación por Internet el sistema muestra un contrato, el cual
debe ser aceptado por el cliente para ser afiliado.
•
Para llenar la ficha del cliente es necesario los siguientes datos:
- Nombre completo.
- Cédula.
- Dirección.
•
Como requerimiento de inscripción la persona debe de ser mayor de 18 años.
•
El cliente puede afiliarse por medio del sitio web y cancelar con su tarjeta de
crédito.
•
El sistema debe permitir alquilar, reservar, devolver y comprar películas.
•
El cliente puede devolver la película por el buzón de devolución el cual
automáticamente realiza el registro.
•
Debe permitir a los clientes consultar las películas disponibles por medio de
terminales remotos instalados en la tienda.
•
Para alquilar una película el operador del sistema introduce la cédula del cliente,
luego introduce el código de la película a ser alquilada, si la cédula del cliente no
aparece en el sistema, la transacción no procede.
•
Las reservaciones son realizadas por la página Web del club de video.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
83
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
•
La duración de la reservación es de 24 horas, al cumplirse el lapso, la
reservación es cancelada automáticamente y la película estaría disponible en la
existencia.
•
El sistema gestiona el pago de la película por adelantado con tarjeta de crédito,
emitiendo una factura.
•
El alquiler de las películas tiene una duración de 2 días hábiles, los días
adicionales son cobrados como días de mora.
•
Para alquilar y reservar una película es necesario ser cliente del video club.
•
El sistema debe llevar el inventario de las películas del video.
El club de video ya dispone un sistema contable automatizado que se comunica con el
sistema planteado.
5.1 Identificar las Clases
•
En la Figura 4.19, se muestran Las clases
descripción del problema:
que son identificadas en la
Figura 4.19: Clases Identificadas
Para el diagrama final varias de estas clases no serán 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 abstracción de las clases realizadas, puede variar según la
capacidad de análisis de la persona encargada de realizar el modelo. Por lo tanto varias
personas pueden tener diferentes diagramas de clase del mismo problema.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
84
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
5.2 Identificar Propiedades y Métodos
En la Figura 4.20, se muestra las propiedades y los métodos principales extraídos de la
descripción de problemas, acompañado de sus respectivas visibilidades.
Los diagramas brindan la primera vista de la arquitectura del sistema, desde el punto de
vista de abstracciones del mundo real. Se usará el mismo ejemplo en otras unidades
para obtener las otras vistas del sistema.
C
Figura 4.20: Identificación de Propiedades y Métodos con Visibilidad
5.3 Identificar Relaciones
En la Figura 4.21, se observan las diferentes relaciones identificadas en el problema.
•
Asociación: Como se puede observar en la Figura 4.21, la asociación es la
relación más utilizada comúnmente. Se describe a continuación cada una de las
relaciones:
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
85
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Un cliente realizar distintas operaciones con películas, esto implica una relación de
asociación entre la clase Cliente y la clase Película
Figura 4.21: Diagrama de Clases
El cliente realiza los pagos de las películas, lo cual genera una relación de asociación
entre la clase Cliente y la clase Pagos.
La relación de asociación entre la clase Empleado y la Película, permite el registro del
empleado con la transacción de la película.
•
La clase Inventario tiene una relación de asociación con la clase Película, debido
a que el inventario contiene la cantidad de películas que hay en el stock de la
tienda de video.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
86
Guía del Estudiante
•
Análisis y Diseño de Sistemas Orientado a Objetos
Dependencia: La clase Factura depende de la clase Cliente, si cambian los
datos del cliente la factura es afectada directamente. También existe una
relación entre la clase Factura y la clase Pagos, la cual permite que en la factura
se imprima la forma de pago de la película.
Además de observar las relaciones, observe las clases que fueron descartadas del
análisis preliminar en los puntos anteriores, queda de parte del lector analizar el por
que fueron descartadas esas clases.
5.4 Algunas Recomendaciones
Se debe notar que cada clase que se modela debe corresponder a alguna entidad
tangible de una abstracción conceptual en el mundo real. Lo siguiente debe tenerse en
cuenta para lograr una clase bien estructurada:
•
La clase debe proporcionar una abstracción clara de algo desde el dominio del
problema o desde el dominio de la solución. Usualmente puede ser parte del
vocabulario del dominio del problema o del dominio de la solución.
•
La clase tiene un pequeño conjunto de responsabilidades bien definidas y las
lleva a cabo de una buena forma.
•
La clase proporciona una clara separación de la especificación y la
implementación.
•
La clase es fácilmente entendible.
•
La clase es simple.
Cuando se dibuja la clase en UML, es una buena idea seguir los consejos que se dan a
continuación:
•
Limitar la presentación de todas las propiedades de la clase siendo considerada
a niveles aceptables. Se debe mostrar sólo aquellas propiedades de la clase que
son importantes para entender la naturaleza de la abstracción en su contexto.
•
Si se tiene una larga lista de atributos, trate de agruparlos de acuerdo con
alguna categoría.
•
Si cierto conjunto de clases está relacionado, muéstrelos en el mismo diagrama.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
87
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
•
Describir el modelado estructural del UML en forma básica.
•
Describir clases y sus relaciones.
•
Conocer los mecanismos comunes que pueden ser aplicados a las clases.
•
Elaborar Diagrama de Clases.
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
88
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Examen de Autoevaluación
1) ¿Cuál de las siguientes es una relación simple, que conecta dos clases, denotando
la relación estructural entre ellas?
a) Realización
b) Generalización
c) Agregación
d) Asociación
2) Dentro de una clase, los estereotipos ayudan a agrupar atributos y operaciones.
a) Verdadero
b) Falso
3) Las operaciones y responsabilidades de una clase son las mismas.
a) Verdadero
b) Falso
4) ¿Cuál de los siguientes ayuda a agregar nuevas reglas a aquellas existentes?
a) Estereotipos
b) Notas
c) Restricciones
d) Ninguno de los anteriores
5) En UML, una línea punteada dirigida denota una relación de:
a) Generalización
b) Dependencia
c) Asociación
d) Ninguna de las anteriores
6) En una agregación simple, el tiempo de vida del todo y las partes están enlazadas.
a) Verdadero
b) Falso
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
89
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
7) Especifican un rango de valores que los objetos de la clase pueden tomar.
a) Operaciones
b) Atributos
c) Responsabilidades
d) Restricciones
8) ¿Cuáles de las siguientes multiplicidades son correctas?
a) 0..1 para cero o uno
b) 0..* para cero o más
c) 1..* para uno o más
d) 3..5 para el rango 3 , 4 ó 5
9) ¿Una asociación calificada se realiza cuando un objeto de una clase debe valerse
de un atributo en específico para localizar al objeto adecuado?
a) Verdadero
b) Falso
10) Indique cuáles de los siguientes nombres de clases son válidos:
a) DetalleEmpleado::Empleado
b) Empleado
c) Automóvil
d) Biblioteca::DetalleMiembro:: FormularioDeRegistro
Unidad 4: Modelado Estructural Básico
Libro 1: Análisis y Diseño 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.
90
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Respuestas de la Unidad 4: Examen de Autoevaluación
1) d
2) a
3) b
4) c
5) b
6) b
7) b
8) a, b, c y d
9) a
10) a, c y d
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
91
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Volumen 2: Modelado Avanzado
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Modelado Estructural Básico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin el previo permiso escrito de IBM.
93
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Modelado Estructural
Avanzado
Objetivos de Aprendizaje
Al final de esta unidad, usted será capaz de:
•
Describir los tipos de clasificadores.
•
Explicar acerca de las interfaces, roles, tipos y paquetes.
•
Describir instancias y diagramas de objetos.
•
Construir diagramas de objetos.
Libro 1: Análisis y Diseño 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.
95
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. Introducción
En la Unidad 4 – Modelado Estructural Básico del Volumen 1, se explicaron los
conceptos básicos de la orientación a objetos, modelado de ideas y diagramas de clase.
Esta unidad, se ocupa de las características avanzadas del modelado estructural del
UML.
2. Clasificadores
Los clasificadores son bloques de construcción de UML. Son elementos del modelo,
que pueden tener instancias. UML utiliza clasificadores para describir las características
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 aplicación
bancaria, se tienen abstracciones que modelan clientes, planillas de depósitos o
cuentas. Estas abstracciones son la esencia del modelo. Se crean instancias de los
elementos del modelo anterior, que interactúan 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 características idénticas. Los atributos de la clase forman las
características estructurales de un clasificador mientras las operaciones de la clase
forman las características de comportamiento.
Los demás clasificadores se muestran a continuación:
•
Interfaz: La interfaz describe los servicios proporcionados por una clase o un
componente.
•
Componente: Los componentes son las partes físicas de un sistema, que son
reemplazables. Ellos se adhieren a la interfaz y proporcionan la realización de un
conjunto de interfaces.
•
Nodo: Un nodo es un elemento físico que predomina en tiempo de ejecución.
Representa un recurso computacional. Los nodos generalmente tienen memoria
y capacidad de procesamiento.
•
Caso de Uso: La cadena de acciones realizadas por un sistema es descrita por
un caso de uso. Los resultados producidos por las acciones son de valor para un
actor particular del sistema.
•
Subsistema: Un subsistema es una agrupación de elementos del modelo.
•
Tipo de datos: Un tipo de dato puede ser primitivo o enumerado.
•
Señal: Una señal significa el estímulo asincrónico comunicado entre instancias.
La única excepción a la regla acerca de los clasificadores que tienen características
estructurales y de comportamiento es la interfaz. Las interfaces podrían no tener
atributos. La Figura 1.1 proporciona las notaciones UML para todos los clasificadores.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
96
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
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
Señal
<<tipo>>
color
{valores son azul,
verde, amarillo, rojo}
<<estado>
Impresora Encendida
Figura 1.1: Notaciones UML para Clasificadores
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 más 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: Análisis y Diseño 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
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
operaciones que no son implementadas, pero proporcionan sólo una interfaz, se
denominan operaciones abstractas. Estas operaciones deben ser implementadas en
algún nivel de la jerarquía de herencia. Las operaciones de una clase abstracta pueden
ser de tres tipos. Estos son:
•
Operaciones abstractas: Deben ser implementadas por una subclase o clase
hija.
•
Operaciones de polimorfismo: Estas operaciones pueden ser sobrescritas en
una subclase. El comportamiento de la superclase o clase padre es sobrescrito
en la subclase.
•
Operaciones de hoja: Estas operaciones no son ni abstractas ni polimórficas.
Se implementan en la clase abstracta, que puede ser heredada por la subclase,
dependiendo de su visibilidad. Una operación de hoja es una operación
concreta.
En UML, las clases abstractas y las operaciones abstractas se describen usando letra
cursiva o itálica. Las operaciones de hoja se indican como {leaf}. Las operaciones
desprovistas de adornos son operaciones polimórficas, 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 más hijos está adornada con {leaf}.
Usuario
{root}
# cedula
Operación
Abstracta
Operación
Polimórfica
incluir()
actualizarDatos()
...
Empleado
{leaf}
Cliente
{leaf}
# id_empleado
# id_cliente
incluir()
retirarEmpleado
actualizarDatos()
...
Incluir()
RetirarCliente()
actualizarDatos()
Figura 1.2: Ejemplo de Elementos Abstractos, Raíz (root), leaf y Polimórficos
La Figura 1.2 muestra una porción del diagrama de clases del caso de estudio anterior
agregándole algunas operaciones, donde se puede notar que la clase Usuario es una
clase abstracta, que también es la raíz y la clase base de la jerarquía de herencia. Las
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
clases Empleado y Cliente son hijos de la clase abstracta Usuario, las cuales no
pueden tener más hijos. Con respecto a las operaciones se tiene:
•
incluir(): Indicado en cursiva representa una operación abstracta, la cual es
implementada en las clases Empleado y Cliente.
•
actualizarDatos(): Es una operación polimórfica. Las clases hijas pueden
sobrescribirla, tal como lo hacen las clases Empleado y Cliente.
4. Multiplicidad
La multiplicidad se usa para permitir al diseñador especificar el número de objetos que
pueden ser creados para una clase. Generalmente, una clase puede tener cualquier
número de objetos. Pero en ciertas situaciones, se podría querer indicar el número
exacto de objetos para una clase. El número se muestra dentro de la notación de clase
para indicar el número de objetos para una clase.
En el caso de un atributo, como se vio anteriormente, se puede especificar el número de
objetos después del nombre del atributo. Adicionalmente, se puede diseñar una clase
que tenga sólo un objeto. Dichas clases se denominan clases singleton. Un ejemplo de
una clase singleton es cualquier generador o clase monitor, donde sólo se necesita una
instancia que puede ser usada por los demás objetos.
La Figura 1.3 ilustra la multiplicidad.
Empleado
Libro
1..3
100..*
Cliente
1..*
Biblioteca
1
libros[100..*]:Libro
Figura 1.3: Ilustración de Multiplicidad
Para una clase, se especifica la multiplicidad en el extremo derecho contra el nombre de
la clase. Las instancias de atributos se muestran al lado del nombre del atributo dentro
de los corchetes. La Figura 1.3 describe lo siguiente:
•
De una a tres instancias de la clase Empleado
•
100 ó más instancias de la clase Libro
•
Una o más instancias de la clase Cliente
Libro 1: Análisis y Diseño 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.
99
Análisis y Diseño de Sistemas Orientado a Objetos
•
Guía del Estudiante
Exactamente una instancia de la clase Biblioteca, pero contiene 100 o más
instancias de la clase Libro
5. Clases Plantillas (Template)
Un template o plantilla constituye un elemento parametrizado que permite definir una
familia de clases, las cuales comparten la misma definición.
Por ejemplo, si se define una clase plantilla (template) Pila, el tipo de elemento que
almacena la pila no es conocido al momento de definir la clase template. La clase
template pila entonces representa una familia de clases pilas, tal como, pila de
enteros, pila libro, pila de flotante o pila empleado. El proceso de crear una
clase fuera de una clase template se denomina enlace (binding). El tipo de los
elementos es pasado como un parámetro a la clase template.
Durante el enlace (binding), los elementos formales son asociados a los elementos
reales. La clase, enlazada (bind) fuera de una clase template es una clase concreta y
puede ser subclase.
Es importante destacar que no es posible añadir características a las clases enlazadas,
todas estas deben estar especificadas en la plantilla.
Los templates o plantillas son soportadas en C++ y Ada, por otra parte Java planea
introducirlo en JDK 1.5. La Figura 1.4 ilustra la notación UML para un template y su
correspondiente clase concreta.
Type
Pila
+ push (in elem:Type) : Type
+ pop (inout elem:Type) : Type
+ esVacia () : Boolean
...
<<bind>>
(Libro)
PilaLibro
<<bind>>
(Integer)
PilaInteger
Figura 1.4: Notación UML para un Template y su Correspondiente Clase Concreta
En la Figura 1.4, Pila es una clase template que está representada por el parámetro
dentro de un rectángulo 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 relación a la clase template. La
relación no describe una relación de generalización. Junto a la flecha dirigida, se
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
proporciona el tipo real que está asociado a los formales. El estereotipo <<bind>>
indica la asociación de clases template con las clases concretas.
6. Estereotipos para Clases
Estos estereotipos son una manera de especificar cómo una clase es utilizada en el
diseño. Un estereotipo de clase no es parte del nombre de la clase y no genera código
en la clase. Entre ellos se tienen:
•
Entity: Solo tiene conocimiento sobre sí mismo y sus relaciones inmediatas,
este conocimiento limitado lo hace altamente reutilizable. Una clase entidad
modela la información de larga vida y su comportamiento asociado. Cada clase
con el estereotipo <<entity>> representa un recurso en el mundo real y no un
recurso del software y debe preservar su propia integridad sin importar donde o
cuando se utiliza. Un ejemplo claro se puede observar en el caso de estudio del
club de video. En él, la clase Película puede tener el estereotipo <<entity>>,
debido a que no importa en que tienda de video se utilice, siempre un objeto
instanciado por la clase Película tendrá características en común, tales como
género, título, entre otras. Ver Figura 1.5.
<<entity>>
Pelicula
- id_pelicula
+ alquilarPelicula()
+ comprarPelicula()
...
Figura 1.5: Ejemplo de estereotipo <<entity>>
•
Control: Una clase con un estereotipo del <<control>>, no posee casi
ninguna información sobre sí mismo. Representa un comportamiento, más que
un recurso. Este tipo de clase se refiere más a dirigir el comportamiento de otros
objetos y no tiene casi ningún comportamiento propio. Por ejemplo, en el caso
de estudio de la tienda de video, se podría tener una clase llamada Gestor, la
cual tendría operaciones como alquilar película, reservar película, afiliar cliente,
devolver película y estaría relacionada con clases como Película, Cliente,
Factura. Ver Figura 1.6.
Libro 1: Análisis y Diseño 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.
101
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
<<control>>
Gestor
+ devolverPelicula()
+ afiliarEmpleado()
+ generarFactura()
...
Figura 1.6: Ejemplo de estereotipo <<control>>
Existen 4 formas de representar gráficamente los estereotipos <<entity>> y <<control>>,
las cuales se muestran en la Figura 1.7.
Película
Película
Película
Película
Gestor
Gestor
Gestor
Gestor
Figura 1.7: Ejemplo de estereotipo <<control>>
•
utility: Son aquellas clases cuyas operaciones y atributos tienen ámbito de
clase. Esto es para permitir que los demás objetos del sistema accedan a las
operaciones y atributos directamente con el nombre de la clase, sin crear
instancias de la clase. El principal uso de esta clase utility, es llevar a cabo
funcionalidades comunes a través de un sistema. Por ejemplo, una clase
Calculo, puede proporcionar funciones matemáticas básicas, en cualquier
parte del sistema sin necesidad de crear un objeto para utilizarlas. Ver la Figura
1.8.
<<utility>>
Calculo
+ sumar(): float
+ restar(): float
+ multiplicar(): float
...
Figura 1.8: Ejemplo de Estereotipo <<utility>>
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
102
Guía del Estudiante
•
Análisis y Diseño de Sistemas Orientado a Objetos
Enumeration: Son tipos de datos definidos por el usuario, que definen las
constantes de un sistema. Una clase enumeración define un conjunto de valores
literales, usados generalmente para validación. 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
Figura 1.9: Ejemplo de Estereotipo <<enumeration>>
7. Relaciones
Se ha comprendido los diferentes tipos de relaciones que permiten los sistemas
orientados a objetos. En esta sección se explican los conceptos avanzados de las tres
relaciones que se aprendieron en la Unidad 2 – Modelado Estructural Básico del
Volumen 1.
7.1 Relación de Dependencia
La relación de dependencia especifica un cambio en el elemento del modelo que afecta
al elemento dependiente del modelo. Aunque las dependencias se pueden crear tal
cual, es decir sin ningún estereotipo, UML permite dar más significado a las
dependencias, es decir concretar más, mediante el uso de estereotipos.
7.1.1
Estereotipos que se Aplican a Relaciones de Dependencia entre clases
Hay cinco estereotipos en esta categoría:
•
Bind: Se usa en enlace del template o plantilla. La fuente enlaza al template
destino junto con los parámetros reales. Se ha visto un ejemplo del estereotipo
bind en la Figura 1.4.
•
Derive: Se usa entre dos atributos o entre dos asociaciones. La fuente se
calcula en base a un valor en el destino. La Figura 1.10 muestra que el atributo
añosEnServicio deriva del atributo fechaDeInicio, que es una instancia de
la clase Fecha. Así añosEnServicio para un empleado puede ser calculado
en base a la fecha actual y la fecha de inicio.
•
Friend: Se usa normalmente para permitir a las demás 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
Libro 1: Análisis y Diseño 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.
103
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
la clase GeneradorPerfilEmpleado es friend de Empleado. Esto permite
a la clase GeneradorPerfilEmpleado ver los atributos y operaciones private
de la clase Empleado.
•
Refine: Se utiliza para indicar que una clase es la misma que otra, pero más
refinada, es decir dos vistas de la misma clase, la destino con mayor detalle.
•
Use: Se usa cuando se debe describir una relación semántica entre dos
elementos. La semántica del elemento origen depende de la semántica de la
parte pública del elemento destino. Se aplica cuando se requiere marcar
explícitamente una relación de dependencia.
La Figura 1.10 ilustra un ejemplo de algunos de los estereotipos mencionados
anteriormente.
Empleado
<<derive>>
empleadoID
empleadoNombre
fechaDeInicio:Date
empleadoDireccion
añosEnServicio
...
<<friend>>
GeneradorPerfilEmpleado
empleadoPerfil[1..*]: Perfil
Figura 1.10: Ejemplo de Algunos Estereotipos
Existen otros estereotipos para la relación de dependencia pero están ligados a otros
diagramas por lo cual se explican más adelante.
7.2 Relación de Generalización
La Figura 1.11 muestra cómo la herencia múltiple se representa gráficamente en UML.
GerenteProyecto es un IngenieroSoftwareSenior y un Gerente. Los objetos
de GerenteProyecto heredan atributos y operaciones de estas superclases. La
Figura 1.11 muestra herencias simples y múltiples.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
104
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Empleado
Gerente
GerenteProducción
IngenieroSoftwareSenior
GerenteVentas
PersonalOficina
GerenteProyecto
Figura 1.11: Herencias Simples y Múltiples
7.2.1
Estereotipo para la Relación de Generalización
El estereotipo asociado con la generalización es la implementación. El estereotipo de
implementación se usa cuando se debe modelar herencia privada. C++ soporta
herencia privada. Este estereotipo declara que el hijo hereda el comportamiento del
padre pero no hace público el comportamiento. También declara que no soporta
interfaces padre.
7.2.2
Restricciones en Relaciones de Generalización
Para una relación de generalización, existen cuatro restricciones que son:
•
Complete: Sugiere que el número de hijos requeridos por el modelo debe ser
especificado. No se permiten hijos adicionales.
•
Incomplete: Es lo contrario a la restricción anterior. Se permiten hijos
adicionales. Es útil para mostrar que la especificación completa de la jerarquía
de herencia no se realiza.
•
Disjoint: Especifica que los objetos del padre no pueden contener más de un
hijo como tipo. Esto se aplica en el contexto de herencia múltiple.
•
Overlapping: Permite más de un hijo en tiempo de ejecución. Esto también se
aplica en el contexto de herencia múltiple.
Las últimas dos restricciones se usan para distinguir entre clasificación estática y
dinámica. La restricción disjoint permite clasificación estática, mientras que el
overlapping permite clasificación dinámica. La clasificación dinámica ocurre cuando un
objeto cambia su tipo en tiempo de ejecución. Por defecto, para una generalización
simple las restricciones son {incomplete,disjoint}. En la Figura 1.12 se muestra un
ejemplo de alguna de estas restricciones.
Libro 1: Análisis y Diseño 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
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Usuario
{incomplete, disjoint}
Cliente
Empleado
Figura 1.12: Restricciones de la Relación de Generalización
7.3 Relación de Asociación
Esta relación se usa para mostrar que están conectados dos elementos del modelo. Los
tres adornos para esta relación son: nombre, rol, multiplicidad para cada uno de los
extremos de la asociación.
Ahora se presentarán otras dos propiedades importantes de una relación de asociación:
•
Navegación: Generalmente, una línea sólida entre las dos clases que están en
asociación denota una relación de asociación. También se puede mostrar la
dirección de la asociación colocando una cabeza de flecha en la línea. Se
muestra la dirección de la asociación entre GerenteDeRegistro y
TarjetaDeRegistro en la Figura 1.13. A menos que se especifique una
dirección de la línea, la navegación es bidireccional.
GerenteResgitro
TarjetaRegistro
1..
generarRegistroTarjeta
generarRegistroTarjeta()
crearPlantillaTarjeta()
Figura 1.13: Dirección de la Asociación
•
Visibilidad: Se pueden usar los símbolos asociados con la visibilidad public,
protected y private para mostrar si una clase en una asociación es visible a otras
clases o no. Se usan los símbolos +, # y – fuera del objeto, cerca de la clase que
necesita ser visible. La visibilidad private indica que las clases fuera de la
asociación no pueden tener acceso al objeto al final de la asociación que
describe la visibilidad. La visibilidad protected permite que las clases sean
visibles a los hijos de las clases en el otro extremo. Si no se menciona la
visibilidad, entonces se considera visibilidad public.
La Figura 1.14 muestra la visibilidad protected. Una juega el rol de un solicitante
y la otra el rol de un generador.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
106
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
GerenteRegistro
TarjetaRegistro
# Generador
generarRegistroTarjeta
generarRegistroTarje
ta()
crearPlantillaTarjet
Solicitante
Figura 1.14: Visibilidad Protected
7.3.1
Restricciones en Relaciones de Asociación
Son limitaciones hechas en un elemento del modelo que permiten asegurar su
integridad a lo largo de la vida del sistema. Para una relación de asociación existen
restricciones tales como:
•
Ordenación (Ordered): Indica que el conjunto de objetos asociados, representa
un conjunto ordenado, siguiendo una secuencia. Por ejemplo, en el club de
video un empleado atiende a un cliente, pero cada cliente debe ser atendido en
el orden que llegan, esto permite que el empleado atienda los requerimientos del
cliente en turno. Observe el ejemplo en la Figura 1.15.
atiende
Empleado
Cliente
{ordered}
Figura 1.15: Restricción 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 asociación entre una
clase Administrador de eventos y una clase eventos, el administrador de eventos
podría realizar una auditoria a un evento o también podría 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: Restricción XOR
•
Subconjunto (subset): Indica que una colección esta incluida en otra colección.
Por ejemplo en una escuela en la mayoría de los casos los representantes de
los alumnos también son sus padres.
Libro 1: Análisis y Diseño 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.
107
Análisis y Diseño de Sistemas Orientado a Objetos
7.3.2
Guía del Estudiante
Asociación Reflexiva
Es una clase que tiene una asociación con ella misma. Esto ocurre cuando una clase
tiene objetos que juegan diferentes roles. En importante que los roles estén bien
definidos para que se entienda con claridad la relación. Por ejemplo, en la Figura 1.17,
la clase Persona muestra la relación 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
*
Figura 1.17: Asociación Reflexiva
8. Interfaces y Realización
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, además es importante resaltar que
las interfaces no tienen atributos solo operaciones que serán implementadas por una o
varias clases.
UML representa las interfaces de dos maneras, como una clase con el estereotipo
<<interface>> o utilizando círculos pequeños conectados con una línea 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()
...
Figura 1.18: Formas de Representar una Interfaz
En UML, se puede proporcionar más información a una interfaz para hacerla fácilmente
comprensible.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
108
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
Se pueden adjuntar precondiciones o post condiciones para cada operación. Las
precondiciones son aquellas que deben ser satisfechas cuando la operación es
invocada. Las post condiciones son las que deben ser satisfechas al final de la
operación.
•
Las Interfaces pueden estar asociadas con máquinas de estado.
•
Las colaboraciones pueden ser adjuntadas a una interfaz.
8.1 Realización
Esta es una relación semántica entre dos clasificadores. La notación utilizada es una
línea punteada con una punta de flecha en forma de triángulo sin rellenar apuntando
hacia el clasificador que especifica el contrato.
La relación de realización tiene algunos ingredientes de relaciones de dependencia y
generalización, además se usa en el contexto de interfaces y colaboraciones.
Semánticamente, es correcto decir “una clase o un componente es la realización de una
interfaz”. Las clases implementan interfaces y de aquí el término realización es usado
en lugar de generalización. En el caso de generalización, se enfatiza una relación
padre/hijo. No hay tal relación enfatizada en una relación de realización. También es
muy usual ver realizaciones en casos de uso, las cuales son llamadas colaboraciones.
La Figura 1.18a muestra un ejemplo de una relación de realización.
Las Figuras 1.19a y 1.19b representan la realización 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 línea
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 realización de la interfaz
IAgenteFigura.
La Figura 1.19c representa la realización de un caso de uso a través de una
colaboración.
Las formas usadas para la realización de las Figuras 1.19a y 1.19c se denominan
formas canónicas y la usada en la Figura 1.19b se refiere a la forma abreviada (elided
form).
Libro 1: Análisis y Diseño 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.
109
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
<<inteface>>
IAgenteFigura
dibujar()
mover()
redimensionar()
...
ObjetoDocumento
Figura 1.19a: Interfaz Usando la Estructura de Clase con el Estereotipo <<interface>>
ObjetoDocumento
IAgenteFigura
Figura 1.19b: Realización de la Clase ObjetoDocumento desde la interfaz IAgenteFigura
GenerarReporte
Generación
Figura 1.19c: Realización de Colaboración de un Caso de Uso
9. Roles
Una clase puede llevar a cabo más 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 podría revelar sólo 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 abstracción se presenta al mundo.
La Figura 1.20 muestra cómo se describen los roles para una interfaz. El
ObjetoDocumento tiene dos interfaces, IFigureAgent y IDocumentoAgent. En el
contexto dado de la participación 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.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
110
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Figura
IFigureAgent
ObjetoDocumento
Documento
IDocumentoAgent
Figura 1.20: Descripción de Roles para una Interfaz
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.
Nómina
ENomina:: Nómina
{author:jerry}
Figura 1.21: Paquetes con un Nombre Simple y un Nombre de Ruta
También se puede revelar las clases o componentes dentro del paquete, junto con su
visibilidad. Esto se puede hacer de dos formas:
•
Anidamiento textual.
•
Anidamiento gráfico.
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
públicas, 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: Análisis y Diseño 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
Análisis y Diseño de Sistemas Orientado a Objetos
Nómina
+GeneradorNómina
+GeneradorPago
-ConectorBaseDatos
Guía del Estudiante
Nómina
+GeneradorNómina
+ GeneradorPago
- ConectorBaseDatos
Anidamiento Textual
Anidamiento Gráfico
Figura 1.22: Anidamiento Textual y Anidamiento Gráfico
10.1
Estereotipos de Paquetes
UML proporciona cuatro estereotipos para paquetes:
•
Facade: Esto permite especificar que un paquete es una vista a algún otro
paquete.
•
Framework: Se usa cuando un paquete principalmente sólo contiene patrones.
•
Sub-system: Este estereotipo se usa para mostrar que un paquete puede
representar un modelo independiente de un sistema.
•
System: Se usa para mostrar que un sólo paquete representa el sistema
completo.
La Figura 1.23, muestra como se representa gráficamente los estereotipos de paquetes.
<<System>>
TiendaVideo
<<System>>
TiendaVideo
Figura 1.23: Anidamiento textual y Anidamiento Gráfico
10.2
Relación de Dependencia con Paquetes
Existen estereotipos que permiten clarificar la dependencia entre paquetes, entre ellos
se tienen:
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
Import: Una clase contenida dentro de un paquete puede también aparecer en
otro paquete en la forma de un elemento importado, por medio de una relación
de dependencia entre paquetes. Es necesario resaltar que no todas las clases
dentro de un paquete son visibles por otros paquetes. La dependencia de
importación se utiliza para agregar nombres al espacio de nombres del paquete
del cliente como sinónimos de los caminos completos.
•
Access: La dependencia de acceso indica que el contenido del paquete del
proveedor puede aparecer en referencias efectuadas por los elementos del
paquete cliente. Este estereotipo no crea las referencias automáticamente,
simplemente concede permiso para establecer referencias.
La Figura 1.24 muestra un ejemplo de esta relación y estereotipos.
A
B
<<import>>
<<access>>
C
Figura 1.24: Ejemplo de estereotipos con relación de dependencia
En la Figura 1.24, el paquete A agrega el contenido público del paquete B al espacio de
nombres del paquete A. El paquete B puede ver todo el contenido público del paquete
C, sin añadirlo a su espacio de nombre, por lo cual para hacer una referencia a un
elemento público del paquete C, se necesita colocar todo el nombre de ruta.
10.3
Herencia entre Paquetes
Los paquetes pueden heredar de un paquete existente. Ellos siguen los mismos
principios que las clases.
Libro 1: Análisis y Diseño 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.
113
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
GUI
+ Ventana
+
WebGUI
+ Marco
+ GUI:Ventana
ApliGUI
+ Marco
+ GUI:Ventana
Figura 1.25: Ejemplo de Generalización de Paquetes
11. Instancias
Las clases son abstracciones del mundo real. Los objetos son instancias de una clase.
Una instancia es la manifestación concreta de una abstracción. En un sistema orientado
a objetos, las instancias forman el núcleo 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
Cada objeto tiene un nombre. Puede ser uno de los siguientes:
•
Instancia nombrada: Una instancia proporciona explícitamente un nombre. En
algunos casos, se puede especificar el nombre de la instancia y en otros el
nombre de la instancia junto con el nombre de clase.
•
Instancia anónima: No hay un nombre explícito para un objeto. Sólo se da el
nombre de la clase o paquete junto con el nombre de la clase.
•
Instancia huérfana: Una instancia huérfana es aquella cuya abstracción no es
conocida. Es útil en situaciones en que los objetos se cargan dinámicamente en
memoria. Al momento del diseño, la abstracción podría no ser conocida. Si
después se descubre la abstracción a la que corresponde esta instancia, se le
puede cambiar a una instancia nombrada.
También se puede mostrar una colección de objetos llamados multiobjetos.
La Figura 1.26 muestra ejemplos de las instancias nombradas y anónimas.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
114
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
esteEmpleado
Instancia nombrada, sin especificar el
nombre de la clase
esteEmpleado: Empleado
Instancia nombrada con el nombre de
clase dado
Instancia sin nombrar, sólo nombre de clase
dado
:Empleado
:EmpleadoData ::Empleado
Instancia sin nombre pero, tanto el paquete
como la clase son especificados
Multiobjeto, colección de objetos
anónimos
:Empleado
Figura 1.26: Ejemplos de Instancias Nombradas y Anónimas
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 jerarquía de herencias, la operación puede o no ser invocada
como una operación polimórfica.
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 estática empleadoNombre y el valor actual jerry. Usando la notación 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 rectángulo oscuro.
La Figura 1.27 muestra los atributos de un objeto y los objetos activos.
Libro 1: Análisis y Diseño 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
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
esteEmpleado
empleadoNombre="Scooby"
empleadoEdad=28
Instancia con valores de atributo
Instancia con un estado explícito
esteEmpleado
[En Prueba]
Objeto activo
t : EmpleadoHilo
Figura 1.27: Los Atributos de un Objeto y los Objetos Activos
11.4.1 Estereotipos de Objetos
Una instancia estereotipo se puede ilustrar en UML usando el estereotipo
<<exception>>. Cabe destacar que no hay estereotipos de objetos específicos.
Los estereotipos que aparecen en los objetos son los mismos que aparecen en las
clases. Ver Figura 1.28.
<<exception>>
Instancia estereotipada
e: Empleado
Figura 1.28: Instancia Estereotipo
Existen otros estereotipos que pueden ser usados con instancias pero junto con una
relación de dependencia. Entre ellos se tienen:
•
instanceOf: Este estereotipo se usa para especificar las instancias de un
clasificador. El objeto origen es una instancia del clasificador destino. Se usa
cuando en un diagrama de clases, se necesita mostrar la relación entre una
clase y un objeto.
•
Instantiate: Este estereotipo establece que la fuente crea instancias del destino.
11.4.2 Restricciones
Las instancias sólo tienen una restricción, referida como transient. Una restricción
transient especifica que la instancia debe ser creada durante la ejecución de una
interacción cerrada. Dichos objetos son destruidos después de que la ejecución se
completa.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
12. Diagramas de Objetos
Un diagrama de objeto ilustra un conjunto de objetos y sus relaciones para un contexto
o escenario dado. Contiene objetos y enlaces. Un enlace es una conexión semántica
entre objetos. También es una instancia de una asociación. Un enlace se muestra como
una línea. Generalmente, un diagrama de objeto es una instancia de un diagrama de
clases para un contexto dado.
La Figura 1.29 muestra un ejemplo de un diagrama de objetos extraído del diagrama de
clases de la tienda de video.
:usuario
miCliente: Cliente
miEmpleado: Empleado
realiza
opera con
opera con
miPago:Pagos
realiza
mipelicula: Pelicula
mireservacion: Reservacion
Figura 1.29: Ejemplo de un Diagrama de Objetos
El correspondiente diagrama de clases para el diagrama de objetos anterior representa
una relación de generalización entre Usuario/Cliente y Usuario/Empleado.
También muestra una relación de asociación entre Cliente/Pagos,
Cliente/Reservación, Cliente/Pelicula y Empleado/Pelicula.
13. Caso de Estudio
La Figura 1.30 muestra las reglas con respecto a los clientes y las reservaciones de la
tienda de video, también como la relación y la multiplicidad que existen entre ellos. Un
cliente puede tener cero o más reservaciones y cada reservación es realizada
únicamente por un cliente específico.
Libro 1: Análisis y Diseño 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.
117
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
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_afiliación
realiza
0..*
Fecha_reservacion
nombre
InscribirCliente()
RetirarCliente()
realizarReservacion()
eliminarReservacion()
Figura 1.30: Ejemplo de un Diagrama de Clases
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 múltiples 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, también los atributos pueden estar en
blanco o pueden ser nulos, todo depende de la definición del atributo en la clase.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
118
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
<<entity>>
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
Figura 1.31: Ejemplo de un Diagrama de Objetos
14. Algunas Recomendaciones
En el contexto del modelado de relaciones, se pueden considerar las siguientes pautas:
•
Restringir el uso de dependencias sólo a aquellas relaciones que no son
estructurales.
•
Hacer uso de la relación de generalización sólo si se encuentra una relación ‘es
un’ (herencia).
•
Evitar herencias múltiples. Usar agregación en su lugar.
•
El árbol de herencia no debe ser demasiado profundo (es buena idea tener
menos de 5 niveles).
•
El árbol de herencia no debe ser demasiado ancho.
•
Si se tiene un árbol de herencia demasiado ancho, buscar la posibilidad de
identificar clases abstractas.
•
Las asociaciones deben ser usadas sólo donde hay relaciones estructurales
entre objetos.
•
Mantener un diagrama UML simple. Esto permitirá no tener demasiadas líneas
que crucen y lo hagan difícil de leer y comprender.
Libro 1: Análisis y Diseño 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.
119
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Resumen
Ahora que ha completado esta unidad, debe ser capaz de:
•
Describir los tipos de clasificadores.
•
Explicar las interfaces, roles, tipos y paquetes.
•
Describir instancias y diagramas de objetos.
•
Construir diagramas de objetos.
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
120
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 1: Examen de Autoevaluación
1) ¿Cuál de las siguientes declaraciones es falsa?
a) Un clasificador es un bloque de construcción general de UML.
b) Los clasificadores son aquellos que pueden tener instancias.
c) Un clasificador es otro nombre para una clase.
d) Los clasificadores tienen características estructurales y de comportamiento.
2) El ámbito de clase para las operaciones declara que las operaciones pueden ser
invocadas usando sólo el nombre de la clase.
a) Verdadero
b) Falso
3) Algunos de los estereotipos de clases son, seleccione los correctos.
a) Facade
b) Utility
c) Control
d) Bind
4) ¿Cuál de los siguientes son restricciones para una asociación?
a) Complete
b) Ordered
c) Disjoint
d) Or exclusive
5) ¿Cuáles de las siguientes pueden ser operaciones de una clase abstracta?
a) Una operación abstracta.
b) Una operación de hoja.
c) Una operación de polimorfismo.
d) Ninguna de las anteriores.
6) La multiplicidad no puede ser mostrada para los atributos de una clase.
a) Verdadero
b) Falso
Libro 1: Análisis y Diseño 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.
121
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
7) ¿Cuál de los siguientes utiliza el estereotipo <<bind>> ?
a) Clases
b) Clases abstractas
c) Clases template
d) Súper clases
8) ¿Cuál de los siguientes utiliza un estereotipo import?
a) Objetos
b) Interfaces
c) Clases
d) Paquetes
9) La realización de los casos de uso no puede ser vista como colaboraciones.
a) Verdadero
b) Falso
10) Los diagramas de objetos son instancias de los diagramas de clases para un
contexto dado.
a) Verdadero
b) Falso
Unidad 1: Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
122
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Respuestas de la Unidad 1: Examen de Autoevaluación
1) c
2) a
3) b y c
4) b, d
5) a, b y c
6) b
7) c
8) d
9) b
10) a
Libro 1: Análisis y Diseño 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.
123
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 2: Laboratorio de Modelado
Estructural Avanzado
Objetivos de Aprendizaje
Al final de esta unidad, debería estar en capacidad de:
•
Identificar las clases de un determinado documento de requerimientos.
•
Dibujar diagramas de clase.
•
Dibujar diagramas de objeto para diferentes escenarios.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 2: Laboratorio de Modelado Estructural Avanzado
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
125
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Ejercicio de Laboratorio
Se describe un sistema ATM para un e-Bank (Banco electrónico).
El e-Bank lanzó sus operaciones en Venezuela, con su casa matriz en Caracas, en
2002. Dentro de un periodo corto de tres años, construyó una red de 275 sucursales por
toda Venezuela. Quizás 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 diseñar e implementar un nuevo
sistema ATM basado en las últimas tecnologías. 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 fáciles de extender y mantener.
A continuación se presenta la descripción de los requerimientos claves del sistema ATM
para el e-Bank:
•
Existen dos tipos principales de clientes del banco: Individuales y corporativos.
•
Uno de los requerimientos importantes del sistema es permitir al cliente
depositar una cantidad y/o retirar una cantidad de una cuenta en los centros
ATM. Los centros ATM tienen un quiosco con capacidades de pantalla de
contacto.
•
El cliente debe tener la capacidad de revisar cada transacción realizada contra
una cuenta. Algunas de las transacciones registradas incluyen lo siguiente:
- Fecha.
- Hora.
- Tipo de transacción (o tipo de transacción).
- Cantidad.
- Balance de Cuenta.
•
Un cliente individual puede operar tres tipos de cuentas:
- Una cuenta de ahorros.
- Una cuenta de depósito fijo.
- Una cuenta de depósito recurrente.
•
Un cliente corporativo sólo puede operar un tipo de cuenta, llamada cuenta
corriente.
•
Los clientes pueden acceder a sus cuentas en el ATM insertando una tarjeta
ATM, dicha tarjeta es proporcionada al cliente junto con un código (PIN) que
tendrá que ser insertado después que se inserta la tarjeta. El código (PIN) está
compuesto de 4 dígitos decimales del 0 al 9.
•
Se supone que una sola tarjeta ATM proporciona acceso a todas las cuentas del
cliente.
•
Un cliente puede hacer depósitos en cualquiera de los tipos de cuenta.
Unidad 2: Laboratorio de Modelado Estructural Avanzado
Libro 1: Análisis y Diseño 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.
126
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
El retiro de dinero es permitido en la cuenta de ahorros sólo si existe un balance
positivo.
•
El retiro de efectivo directamente desde la cuenta de depósito fijo o la de
depósito recurrente no está permitido.
•
El retiro de efectivo desde la cuenta corriente está permitido incluso si no existe
un balance positivo.
•
La magnitud de sobregiro permitido se fija al momento de abrir la cuenta
corriente y puede ser modificado sólo por las autoridades del banco y no a
través del ATM.
•
Mientras el retiro no está permitido directamente desde la cuenta de depósito fijo
o recurrente, se puede transferir una cantidad de dinero desde estas cuentas
hacia una cuenta de ahorros. Sin embargo, dichas transferencias implican un
pago por transacción del 7% y las cantidades transferidas no pueden exceder
del 75% que se tiene en la cuenta origen.
Se requiere realizar las siguientes tareas:
1) Identificar los paquetes en los cuales serán ubicadas las clases identificadas en el
volumen anterior. Mostrar la visibilidad apropiada.
2) Mostrar una realización de interfaz.
3) Dibujar el diagrama de objetos para cualquier instancia del diagrama de clases.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 2: Laboratorio de Modelado Estructural Avanzado
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
127
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
Objetivos de Aprendizaje
Al final de esta unidad, debería estar en capacidad de:
•
Definir colaboraciones.
•
Definir interacciones.
•
Elaborar Diagramas de secuencias.
•
Elaborar Diagramas de colaboración.
•
Describir pasos para realizar diagramas de colaboración.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
129
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. Introducción
La vista de interacción describe secuencias de intercambios de mensajes entre los roles
que implementan el comportamiento de un sistema.
Esta visión proporciona una vista integral del comportamiento del sistema, es decir,
muestra el flujo de control a través de muchos objetos. La vista de interacción se exhibe
en dos diagramas centrados en distintos aspectos pero complementarios: centrados en
los objetos individuales y centrados en objetos cooperantes. A continuación se explican
2 conceptos importantes para entender estos diagramas.
2. Interacción
Es el conjunto de mensajes intercambiados por los roles del clasificador a través de los
roles de asociación. Un mensaje es una comunicación unidireccional entre dos objetos,
un flujo de objeto con la información de un remitente a un receptor. Un mensaje puede
tener parámetros que transporten valores entre objetos. Un mensaje puede ser una
señal (comunicación explícita entre objetos, con nombre y asíncrona) o una llamada (la
invocación síncrona de una operación con un mecanismo para el control, que retorna
posteriormente al remitente).
3. Colaboración
Es una descripción de una colección de objetos que interactúan para implementar un
cierto comportamiento dentro de un contexto. Describe una sociedad de objetos
cooperantes unidos para realizar un cierto propósito. Una colaboración contiene ranuras
que son rellenadas por los objetos y enlaces en tiempo de ejecución. Una ranura de
colaboración se llama Rol porque describe el propósito de un objeto o un enlace dentro
de la colaboración. Conociendo estos conceptos, se puede aprender sobre estos
diagramas.
4. Diagramas de Interacción
Los diagramas de interacción 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 patrón de interacción entre los objetos. Por lo tanto, un diagrama de
interacción consiste de:
•
Conjunto de objetos.
•
Relaciones o enlaces entre objetos.
•
Mensajes entre objetos.
Existen dos tipos de diagramas de interacción. Éstos son:
•
Diagramas de Secuencia: Describen el comportamiento del sistema
enfatizando el orden ó secuencia en el tiempo de los mensajes. El orden ó
Unidad 3: Modelado de interacción
Libro 1: Análisis y Diseño 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.
130
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
secuencia en el tiempo se representa gráficamente como una tabla, donde los
objetos se disponen en lo alto del eje X, y los mensajes en orden de acuerdo al
tiempo, a lo largo del eje Y.
•
Diagramas de Colaboración: Representan colaboraciones que enfatizan la
organización estructural de los objetos que pasan mensajes entre ellos mismos.
La notación para un diagrama de colaboración es un conjunto de arcos y
vértices.
Ambos diagramas consisten típicamente de objetos, enlaces y mensajes. Los
diagramas de secuencia describen el tiempo de vida de un objeto y el enfoque de
control. Los diagramas de colaboración incluyen una ruta y diversos números de
secuencia. Estas dos características subrayan la diferencia entre estos diagramas.
Los diagramas de secuencia y colaboración son como dos caras de la misma moneda.
De hecho son considerados semánticamente equivalentes, esto significa que
representan la misma información, dado que son creados a partir del mismo conjunto de
datos. Así un diagrama puede ser convertido en otro y viceversa. No se perderán datos
durante el proceso de conversión. Sin embargo, de modo explícito, dan a conocer
diferentes vistas del mismo sistema.
Los diagramas de secuencia tienen varias características importantes que son
necesarias para este modelado, las cuales se denotan a continuación.
4.1 Diagrama de Secuencia
Todo el comportamiento en el sistema orientado a objeto es realizado por los objetos,
no por las clases.
Los objetos trabajan juntos para realizar tareas comunicándose el uno con el otro. El
examinar cómo los objetos trabajan bajo circunstancias específicas, revela la naturaleza
exacta de la comunicación. Por lo tanto, los diagramas de secuencia modelan al nivel
de objetos más que al nivel de clases. El diagrama de secuencia utiliza dos elementos
fundamentales los cuales se muestran a continuación.
4.1.1 Línea de Vida del Objeto
La notación de la línea de vida de un objeto es una combinación de un objeto con una
línea de tiempo, la cual es una línea discontinua que sale de la base del objeto. El largo
de dicha línea representa el tiempo que el objeto interactúa en el escenario.
El tope del diagrama es la localización por defecto de los objetos en un diagrama de
secuencia, si los objetos están en el tope del diagrama significa que el objeto existe con
anterioridad en el escenario, pero si el objeto es dibujado niveles más abajo, esto
significa que el objeto es creado durante el escenario. En la Figura 3.1 se muestra un
ejemplo de líneas de vida de un objeto.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
131
Análisis y Diseño de Sistemas Orientado a Objetos
:Cliente
:Cliente
:Reservación
Guía del Estudiante
:Empleado
Figura 3.1: Tres Objetos con Líneas de Vida
4.1.2 Mensajes
Un mensaje es la definición para la comunicación entre objetos, estos mensajes pueden
invocar una operación, enviar una señal, causar una creación o destrucción de un
objeto. Los mensajes se representan con una flecha, pero según 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 envío de mensajes simple con objetos.
Figura 3.2: Mensajes en Diagramas de Secuencia
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
método
cunsultar_Pelicula(id_pelicula) es invocado mucho antes que el mensaje
obtenerPelicula(). También 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
restricción {transient}. Dicho objeto luego de ser utilizado se destruye. La barra
vertical muestra el enfoque de control. Es el período de tiempo durante el cual un objeto
está realizando una acción. También es importante nombrar que las flechas punteadas
Unidad 3: Modelado de interacción
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
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:
•
Simples: Es la transferencia de control de un objeto a otro. Los mensajes
enviados en la Figura 3.2 son mensajes simples y las flechas punteadas
representan el retorno o la respuesta.
•
Síncronos: El objeto remitente pasa un mensaje y espera a que el receptor
acepte la llamada. El receptor despacha la operación y envía un valor de retorno
al remitente. Observe la Figura 3.3.
Figura 3.3: Mensajes Síncronos en Diagramas de Secuencia
•
Asíncronos: El objeto remitente envía una señal y continúa con sus tareas
independientes. El receptor recibe la señal, la procesa y luego de la finalización de la tarea, continúa con sus tareas independientes. El remitente no espera a
que el receptor complete la tarea. Los dos objetos no están sincronizados en
este tipo de comunicación. La Figura 3.4 ilustra el paso asíncrono de mensajes.
Figura 3.4: Mensajes Asincrónico en Diagramas de Secuencia
•
Reflexivos: En los mensajes reflexivos, el remitente y el receptor son el mismo
objeto. Por ejemplo, en la Figura 3.2 el objeto de la clase Película luego de
recibir la lista de películas, envía un mensaje invocando al método
llenarPelicula(). Este último, se encarga de crear la lista en el objeto para luego
seleccionar a través del Id, la película requerida por el objeto de la clase Cliente.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
133
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
4.1.3 Comentarios
En algunos casos es importante proporcionar alguna explicación sobre lo que sucede
en el diagrama o en los elementos dentro del diagrama. Para realizar esto la
especificación UML se vale del mecanismo común como las notas. Estas notas pueden
ser colocadas en cualquier parte del diagrama o pueden ser unidas a los elementos por
medio de una línea punteada. Como se muestra en la Figura 3.5.
Figura 3.5: Comentarios en Diagramas de Secuencia
4.1.4 Iteración
Una iteración significa que uno o más mensajes son ejecutados en secuencia más de
una vez. La iteración se denota usando un asterisco (*) y una condición para controlar el
número 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 películas en existencia según sus géneros entre otras cosas. El diagrama
de secuencia para este caso de uso utilizaría una iteración para recuperar de la base de
datos las películas según un filtro de búsqueda. Observe este ejemplo en la Figura 3.6.
Figura 3.6: Iteraciones en Diagrama de Secuencia
Unidad 3: Modelado de interacción
Libro 1: Análisis y Diseño 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.
134
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
4.2 Diagramas de Colaboración
Los diagramas de colaboración brindan una orientación visual acerca del flujo, en el
contexto de la organización estructural de objetos que interactúan unos con otros. Dado
que no existe un ordenamiento en el tiempo de los mensajes, se proporciona a los
mensajes un número de secuencia y así se mantiene una correspondencia uno a uno
entre los dos diagramas. La ventaja de un diagrama de colaboración es que puede
ayudar a validar las asociaciones entre las clases o a descubrir nuevas.
La Figura 3.7 ilustra un diagrama de colaboración.
Figura 3.7: Diagrama de colaboración
La Figura 3.7 muestra otra vista de lo que fue presentado en el diagrama de secuencia
de la Figura 3.2.
4.3 Iteraciones en Diagramas de Colaboración
Normalmente, los diagramas de colaboración se usan para modelar el flujo secuencial.
Sin embargo, se pueden modelar flujos más complejos que involucren iteración y
bifurcación.
En el caso de la iteración, el número de secuencia tiene como prefijo la expresión de
iteración [m: = 1 to 100], o simplemente *, para indicar que el mensaje es llamado
varias veces.
En el caso de la bifurcación, una condición como [a > b] es puesta como prefijo al
número de secuencia. Las rutas de la rama llevan el mismo número de secuencia pero
la condición asociada a ellas no debe solaparse. UML no formula estándar alguno para
las expresiones usadas en ambos casos. Puede ser usado cualquier seudo código
acordado.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
135
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
La Figura 3.8 ilustra la iteración y bifurcación en diagramas de colaboración. Dado que
el número de secuencia aparece dos veces, aunque se sabe que existe una rama en
esa etapa. El objeto :GerenteRegistro invoca a graduaEstudiante() 400 veces,
lo cual se indica como una iteración.
GerenteRegistro
[id:=1 to 499]
1: graduaEstudiante()
Graduador
3: estudianteNoGraduado()
2: modificaEstadoEstudiante()
[no aprobado]
[aprobado]
ManejadorExepcion
ConectorBaseDato
Figura 3.8: Iteración y Bifurcación en Diagrama de Colaboración
5. Manejar Tiempo y Espacio
El tiempo y espacio se modelan típicamente para sistemas de tiempo real y distribuido.
Un sistema en tiempo real requiere que las operaciones se lleven a cabo en un tiempo
preciso. La operación puede tener que terminar dentro de un tiempo estipulado. Algunos
ejemplos de sistemas en tiempo real son Controlador de Vuelos, Monitor de
Salud y Controlador de Cruceros.
Un sistema distribuido es aquél en donde los componentes se distribuyen a lo largo de
diferentes nodos. Los nodos pueden ser diferentes computadoras ubicadas físicamente
aparte unas de otras, o pueden estar en la misma computadora usando diferentes
procesadores.
La especificación del tiempo es importante para sistemas en tiempo real y la ubicación
para sistemas distribuidos.
Los términos asociados al tiempo y espacio son:
•
Marca de Tiempo: Es el tiempo en el que registra la ocurrencia de un evento.
Un ejemplo es s : obtenerEstudiantes(), donde s es la marca de tiempo. Es decir,
obtenerEstudiante() ocurrió en el instante s.
Unidad 3: Modelado de interacción
Libro 1: Análisis y Diseño 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.
136
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
Restricción de Tiempo: Se refiere a un valor absoluto o relativo del tiempo, que
se debe cumplir. En UML, la restricción de tiempo se denota por una cadena
encerrada entre llaves. Un ejemplo es {TiempoDeEspera <= 10 ns}.
•
Ubicación: Es el lugar donde reside el componente. En UML, éste es un valor
denotado por una cadena encerrada entre llaves. Un ejemplo es {location =
ServidorPrincipal}.
2: asignarId()
GerenteEstudiante
{Location= Servidor
Principal}
1: generarId()
Ge nerado rId
3: modi ficarDatosEst udia nte()
ConectorBaseDatos
{tiem po e jecuc ión < 10 ns }
{Location= servidor
Base de datos}
EnrutadorDatos
4: haltOperacio nes()
Figura 3.9: Representación de Tiempo y Espacio
6. Cómo Crear un Diagrama de Colaboración
Para una mejor comprensión de este diagrama se pueden seguir los siguientes pasos:
•
Colocar los objetos que participaran en el diagrama.
•
Dibujar los enlaces entre los objetos utilizando el diagrama de clases como guía.
•
Agregar un mensaje con una flecha paralela, en el enlace entre dos objetos.
•
Enumere el mensaje en el orden de ejecución.
•
Repita los pasos 3 y 4 hasta que este modelado todo el escenario.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
137
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
•
Definir colaboraciones.
•
Definir interacciones.
•
Describir diagramas de secuencias.
•
Describir diagramas de colaboración.
•
Describir pasos para realizar diagramas de colaboración.
Unidad 3: Modelado de interacción
Libro 1: Análisis y Diseño 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.
138
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Examen de Autoevaluación
1) ¿Cuál de las siguientes es una instancia de asociación?
a) Interacción
b) Enlace
c) Actividad
d) Relación
2) ¿Cuál de los siguientes introduce un ordenamiento dinámico de mensajes pasados
entre dos o más objetos?
a) Interacciones
b) Actividades
c) Clases
d) Carriles
3) ¿Cuáles son estereotipos asociados a los enlaces?
a) new
b) transient
c) destroy
d) Ninguna de las anteriores
4) Los diagramas de colaboración muestran los mensajes en orden ascendente en el
tiempo.
a) Verdadero
b) Falso
5) Los diagramas de interacción comprenden de: Seleccione los que apliquen
a) Conjunto de objetos.
b) Relaciones o enlaces entre objetos.
c) Mensajes entre objetos.
d) Generalizaciones.
6) Los términos asociados al tiempo y espacio son: Seleccione los que apliquen
a) Marca de tiempo
b) Expresión de tiempo
c) Ubicación
d) Restricción de espacio
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
139
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
7) Un diagrama de colaboración puede ser convertido en un diagrama de secuencia.
a) Verdadero
b) Falso
8) Algunas de las semejanzas entre el diagrama de secuencia y de colaboración son:
Seleccione las que apliquen.
a) Ambos diagramas consisten típicamente de objetos, enlaces y mensajes.
b) Los diagramas de secuencia y colaboración describen el tiempo de vida de un
objeto y el enfoque de control.
c) Estos diagramas son creados a través del mismo conjunto de datos.
d) Los diagramas de secuencia y colaboración no tienen semejanza alguna
9) El tipo de mensaje donde el objeto remitente pasa un mensaje y espera a que el
receptor acepte la llamada se llama:
a) Mensaje Simple
b) Mensaje asincrónico
c) Mensaje síncrono
d) Mensaje reflexivo
10) La iteración se denota usando un numeral (#) y una condición para controlar el
número de iteraciones.
a) Verdadero
b) Falso
Unidad 3: Modelado de interacción
Libro 1: Análisis y Diseño 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.
140
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Respuestas a Unidad 3: Examen de Autoevaluación
1) b
2) a
3) b y c
4) b
5) a, b y c
6) a, b y c
7) a
8) a y c
9) c
10) b
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 3: Modelado de interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
141
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Lab. de Modelado de
Interacción
Objetivos de Aprendizaje
Al final de esta unidad, usted será capaz de:
•
Diseñar diagramas de secuencia.
•
Diseñar diagramas de colaboración.
•
Aplicar los conceptos aprendidos en la unidad anterior.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Lab. de Modelado de Interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
143
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Ejercicio de Laboratorio
Se describe un sistema ATM para un e-Bank (Banco electrónico).
El e-Bank lanzó sus operaciones en Venezuela, con su casa matriz en Caracas en el
año 2002. Dentro de un periodo corto de tres años, construyó una red de 275
sucursales por toda Venezuela. Quizás 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 diseñar e implementar un
nuevo sistema ATM basado en las últimas tecnologías. 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 fáciles de extender y mantener.
A continuación se presenta la descripción de los requerimientos claves del sistema ATM
para el e-Bank:
•
Existen dos tipos principales de clientes del banco: Individuales y corporativos.
•
Uno de los requerimientos importantes del sistema es permitir al cliente
depositar una cantidad y/o retirar una cantidad de una cuenta en los centros
ATM. Los centros ATM tienen un quiosco con capacidades de pantalla de
contacto.
•
El cliente debe tener la capacidad de revisar cada transacción realizada contra
una cuenta. Algunas de las transacciones registradas incluyen lo siguiente:
- Fecha.
- Hora.
- Tipo de transacción (o tipo de transacción).
- Cantidad.
- Balance de Cuenta.
•
Un cliente individual puede operar tres tipos de cuentas:
- Una cuenta de ahorros.
- Una cuenta de depósito fijo.
- Una cuenta de depósito recurrente.
•
Un cliente corporativo sólo puede operar un tipo de cuenta, llamada cuenta
corriente.
•
Los clientes pueden acceder a sus cuentas en el ATM insertando una tarjeta
ATM, dicha tarjeta es proporcionada al cliente junto con un código (PIN) que
tendrá que ser insertado después que se inserta la tarjeta. El código (PIN) está
compuesto de 4 dígitos decimales del 0 al 9.
•
Se supone que una sola tarjeta ATM proporciona acceso a todas las cuentas del
cliente.
•
Un cliente puede hacer depósitos en cualquiera de los tipos de cuenta.
Unidad 4: Lab. de Modelado de Interacción
Libro 1: Análisis y Diseño 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.
144
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
El retiro de dinero es permitido en la cuenta de ahorros sólo si existe un balance
positivo.
•
El retiro de efectivo directamente desde la cuenta de depósito fijo o la de
depósito recurrente no está permitido.
•
El retiro de efectivo desde la cuenta corriente está permitido incluso si no existe
un balance positivo.
•
La magnitud de sobregiro permitido se fija al momento de abrir la cuenta
corriente y puede ser modificado sólo por las autoridades del banco y no a
través del ATM.
•
Mientras el retiro no está permitido directamente desde la cuenta de depósito fijo
o recurrente, se puede transferir una cantidad de dinero desde estas cuentas
hacia una cuenta de ahorros. Sin embargo, dichas transferencias implican un
pago por transacción del 7% y las cantidades transferidas no pueden exceder
del 75% que se tiene en la cuenta origen.
Se requiere realizar las siguientes tareas:
1) Realizar un diagrama de secuencia y colaboración para retirar efectivo de la
cuenta corriente.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 4: Lab. de Modelado de Interacción
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
145
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 5: Modelado de Comportamiento
Avanzado
Objetivos de Aprendizaje
Al final de esta unidad, usted será capaz de:
•
Discutir qué son los eventos y las señales.
•
Definir máquinas de estado.
•
Discutir y construir diagramas de estado.
Libro 1: Análisis y Diseño 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.
147
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. Introducción
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 interacción y diagramas de actividad. En esta unidad, se aprenderá
otro diagrama – el diagrama de estados – el cual permite realizar un Modelado de
Comportamiento.
2. Máquinas de Estado
En la dinámica de análisis y diseño orientado a objetos, los objetos son típicamente
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
máquinas 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 algún 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 máquinas de estado ayudan a modelar estos cambios de una
manera simple.
Las máquinas de estado representan un conjunto de estados que atraviesa un objeto
durante su tiempo de vida. También incluyen la reacción del objeto ante un evento.
Las máquinas de estado se pueden usar para modelar el comportamiento de una
instancia de una clase o un caso de uso. A veces, las máquinas de estado se usan para
modelar el sistema completo.
Las máquinas de estado pueden ser visualizadas de dos maneras, según se menciona
a continuación:
•
Usando Diagramas de Actividad: En este caso, el flujo de control se enfatiza
de una actividad a otra.
•
Usando Diagramas de Estado: Estos diagramas muestran los diversos estados
que atraviesa el objeto durante su tiempo de vida junto con las transiciones entre
estos estados.
Antes de continuar y aprender a construir un diagrama de estados, es necesario
entender algunas terminologías asociadas a las máquinas de estado.
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: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
Satisfacer una condición.
•
Realizar una actividad específica.
•
Esperar que ocurra un evento.
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:
•
Nombre: Cada estado tiene un nombre asociado a él. Si no se ha proporcionado
un nombre, es un estado anónimo.
•
Acciones de Entrada: Se puede especificar una acción cuando un objeto está
entrando a un estado. Por ejemplo, se puede fijar la acción colocarAlarma() al
entrar a un estado.
•
Acciones de Salida: También se puede especificar una acción cuando un
objeto sale de un estado. Por ejemplo, se puede fijar la acción
desactivarAlarma() al salir de un estado.
•
Transiciones Externas: Se refiere a las transiciones que suceden entre estados
distintos de un mismo estado. Se ejecuta una acción y se genera un cambio de
estado.
•
Transiciones Internas: Son transiciones que suceden internamente entre
subestados de un mismo estado. Se ejecuta una acción pero no se genera un
cambio de estado.
•
Subestados: Se pueden tener estados anidados dentro de otros estados. Estos
estados anidados pueden ser subestados secuenciales o concurrentes.
•
Eventos Diferidos: Un objeto puede diferir el manejo de eventos a otro estado.
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 representación gráfica de los estados.
Figura 4.1: Representación Gráfica de los Estados
UML define dos tipos especiales de estados:
•
Estado Inicial: Representa el inicio del diagrama. El estado inicial se representa
gráficamente con un punto sólido junto con una flecha que apunta al primer
Libro 1: Análisis y Diseño 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.
149
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
estado del diagrama, tal como se muestra a la izquierda de la Figura 4.2. El
estado inicial identifica el estado en el cual un objeto es creado.
•
Estado Final: Representa la culminación del diagrama de estados. El estado
final es una subclase de estado, razón por la cual toma todas las características
de un estado con la excepción que no puede salir ninguna transición de él. El
estado final se representa gráficamente como un ojo de buey (un punto dentro
de un círculo), tal como se muestra a la derecha de la Figura 4.2.
Figura 4.2: Representación Gráfica de Estado Inicial y Final
Es importante señalar que tanto el estado inicial como el final se denominan
seudoestados, ya que no cumplen con todas las características de un estado simple.
3. Eventos
Un evento es un suceso o hecho en el sistema que causa una transición de estado. Un
evento posee tiempo y espacio asociados a él. La Figura 4.3 es una ilustración de un
evento simple.
Figura 4.3: Evento Simple
La figura anterior describe dos estados: Inactivo y Activo. La transición del estado
Activo al estado Inactivo se debe al evento llamado Colgar. La mayoría de los
eventos resultan en una acción. En la Figura 4.3, el evento Colgar resulta en la acción
liberarConexion().
Los eventos pueden ser de dos tipos:
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
150
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
Eventos Externos: Los eventos que ocurren entre los actores y el sistema se
denominan eventos externos. La inserción 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 excepción de desbordamiento
de punto flotante es un ejemplo de un evento interno.
Un evento es análogo a los mensajes en un diagrama de secuencia. Existen cuatro
tipos de eventos que pueden ser modelados en UML: señales, eventos de llamada,
eventos de tiempo y eventos de cambio.
3.1 Señales
Las señales se refieren a la comunicación asíncrona entre objetos. Las señales no
devuelven valores a los que envían la señal. Las señales son siempre enviadas de un
objeto a otro, nunca son invocadas. Normalmente en un sistema se espera que los
objetos actúen y reaccionen al evento. De igual manera, las señales se usan para
manejar eventos excepcionales. Por lo tanto, una señal es un evento que es lanzado
asincrónicamente por un objeto y es capturado por otro objeto en el sistema. Esta
comunicación asíncrona entre objetos es referida como excepción, en los lenguajes de
programación modernos. Las excepciones son el tipo más común de señales que se
modelan en un sistema.
La Figura 4.4 muestra el modo en que las señales se representan en UML. Se muestra
que la señal ConexionFallida es lanzada asincrónicamente por la operación
obtenerConexion() del ConectorBaseDatos cuando existe una falla en la
conexión a la base de datos. Se usa el estereotipo <<send>> para indicar que se envía
una señal.
ConectorBaseDato
<<send>>
ObtenerConexion()
obtenerPelicula()
ObtenerPeliculA()
ObtenerListaPelicula()
ObtenerListaPelicula()
<<señal>>
ConexionFallida
nombreBd
Figura 4.4: Representación de Señales en UML
Típicamente, las excepciones son modeladas usando señales. La Figura 4.5 muestra un
ejemplo del modo en que pueden ser modeladas.
Libro 1: Análisis y Diseño 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.
151
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 4.5: Excepciones Modeladas con Señales usando Estereotipo <<exception>>
La señal es una clase estereotipada o que tiene un estereotipo. Los parámetros
enviados junto con la señal sirven de atributos de la señal. En el ejemplo anterior de la
Figura. 4.4, nombrebd es el parámetro.
Las señales también tienen relaciones de generalización. La Figura 4.6 ilustra la
jerarquía de señales.
Figura 4.6: Jerarquía de Señales
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
152
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
La
señal
FallaTeclado
es
una
especialización
de
la
señal
FallaDispositivoEntrada, la cual a su vez es una especialización de la señal
FallaHardware. En la Figura 4.6, se intenta modelar los eventos asíncronos para un
sistema de computadora.
Una señal puede ser enviada como una acción de una transición de estado en una
máquina de estado. También puede ser un mensaje enviado desde un objeto hacia otro
en una interacción. Las señales pueden ser enviadas dentro de una operación durante
su ejecución.
3.2 Eventos de Llamada
La emisión de operaciones se llama eventos de llamada. El despacho de la operación
resulta en una transición de estado a diferencia de las señales que son asíncronas, por
lo general, los eventos de llamada son típicamente síncronos. Un objeto invoca una
operación sobre otro objeto que tiene un estado, así el objeto receptor completa la
operación y cambia a un nuevo estado, después del cual el control es regresado al
emisor. El emisor espera hasta que el receptor finalice la operación.
La Figura 4.7 muestra un ejemplo de un evento de llamada.
Figura 4.7: Evento de Llamada
La Figura 4.7 describe una transición de estado de Inactivo a Procesando. El
objeto estaba en el estado Inactivo cuando recibió el mensaje
validarIdSeguridad. Al completar la validación, el objeto cambia al estado
Procesando.
3.3 Eventos de Tiempo
Los eventos de tiempo se usan en casos donde el paso del tiempo tiene que ser
registrado. En UML, los eventos de tiempo son modelados usando la palabra reservada
after, seguida por la expresión que caracteriza el tiempo. Por ejemplo, after (4
segundos) o after (2 horas) son formas válidas en las que pueden especificarse
los eventos de tiempo. Aquí, el evento en sí mismo es el paso del tiempo. La Figura 4.8
ilustra los eventos de tiempo.
Libro 1: Análisis y Diseño 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.
153
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Inactivo
Figura 4.8: Evento de Tiempo
La Figura 4.8 ilustra una funcionalidad simple de un salva pantalla. La expresión 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 expresión que sigue a un
after es el momento cuando se ingresó al estado actual.
3.4 Eventos de Cambio
En UML, un cambio de estado o el cumplimiento de una condición se puede representar
usando eventos de cambio. La palabra reservada usada para describir eventos de
cambio es when, seguida de una expresión condicional. El evento de cambio ocurre
cuando la condición en la expresión condicional cambia de falso a verdadero. Algunos
ejemplos del modelado de eventos de cambio son when (inventario < 1000) y
when (tiempo = 20:00 horas). El evento de cambio puede ocurrir cuando el
inventario cae debajo del valor 1000. El evento ocurre cuando la condición es
cambiada de falso a verdadero.
La Figura 4.9 demuestra un evento de cambio.
Figura 4.9: Evento de Cambio
La Figura 4.9 ilustra el modo en que una alarma para una reunión 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 través de una transición. Cuando
un objeto se mueve de un estado a otro, el movimiento se muestra usando una
transición. Bajo la ocurrencia de un evento, el objeto ingresa al siguiente estado en la
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
relación. La ocurrencia del evento resulta en alguna acción especificada. Una transición
puede tener múltiples fuentes y múltiples destinos.
Un estado puede transitar a sí mismo. Esto es referido como autotransición. En la
autotransición, el objeto abandona el estado debido a la ocurrencia de un evento,
maneja el evento, ejecuta una acción y reingresa al mismo estado. Un ejemplo de
autotransición puede verse en la Figura 4.10.
Figura 4.10: Autotransición
En la Figura 4.10, se muestra el modo en que un teléfono realiza el discado de un
número telefónico. Cada vez que se presiona un dígito numérico se activa un evento
que va asociado a la acción AñadirDigito() que almacena el número para luego
validarlo y conectar la llamada. Cada vez que es presionado un número, el objeto
abandona el estado Marcando para ejecutar una acción y luego regresar al mismo.
Número válido es una restricción que debe cumplirse para ir al estado En línea.
Existen cinco partes en una transición. Éstas son:
•
Estado Fuente: Un estado fuente es aquel que es afectado por la transición.
Antes de la transición, el objeto está activo en el estado fuente.
•
Estado Destino: Se alcanza este estado después de completar la transición. El
objeto ahora está activo en ese estado.
•
Acción: Es la computación atómica que puede afectar el objeto al que
pertenece la máquina de estado. La acción puede afectar otros objetos
indirectamente, si están visibles para ese objeto.
•
Evento Activador: El evento activador dispara la transición que permite
moverse al siguiente estado. Debe cumplirse la condición de guarda.
•
Condición de Guarda: Hay una evaluación de una expresión Booleana cuando
ocurre el activador de eventos. Si la evaluación de la expresión resulta
verdadero, la transición se dispara, de lo contrario no se dispara.
Antes de ver cómo son modelados los subestados en UML, se verán brevemente las
características avanzadas asociadas a estados y transiciones. Vea la Figura 4.11.
Libro 1: Análisis y Diseño 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.
155
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 4.11: El Estado Procesando de un Objeto
La Figura 3.11 describe el estado Procesando de un objeto. A continuación se
discuten cinco características asociadas a estados y transiciones:
•
Acción de Entrada (Entry): Las acciones de entrada pueden no tener
condiciones de guarda, sin embargo pueden tener parámetros. Los parámetros
pueden representar los argumentos que recibe la máquina de estado durante el
proceso de creación del objeto. Al entrar en este estado, el objeto siempre activa
la alarma. Esto sucede cuando un objeto ingresa a ese estado. Es posible que
existan múltiples flujos de eventos concurrentes desde múltiples estados.
•
Acción de Salida (Exit): Pueden existir múltiples transiciones desde el estado
Procesando del objeto. Al abandonar ese estado, la alarma siempre es
desactivada, sin tomar en cuenta el estado en que pueda entrar después de salir
ese estado. Las acciones de salida pueden no tener argumentos o condiciones
de guarda.
•
Transiciones Internas: Las transiciones internas se usan para manejar eventos
dentro del estado. Son diferentes de las autotransiciones. Las transiciones
internas no ejecutan las acciones de entrada y salida dado que los eventos se
manejan sin abandonar el estado.
•
Actividades: Típicamente, para un objeto en un estado particular se dice que
está Inactivo hasta que ocurra un evento. Sin embargo, el objeto puede realizar
cierto trabajo hasta que un evento ocurra aunque la secuencia de acciones que
está realizando el objeto será interrumpida cuando ocurra el evento.
En la Figura 4.11 se usa la transición 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 acción 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 transición a otro
estado fuera de este estado. En este caso, accion2() puede no ser llevada a cabo.
•
Eventos Diferidos: Se usa para diferir el manejo de un evento a otro estado en
el cual pueda estar el objeto, en algún otro momento. Esto significa solamente
que el evento no es manejado inmediatamente.
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
156
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
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.
4.1 Subestados Secuenciales
Los subestados secuenciales son referidos también como subestados disjuntos.
La Figura 4.12 brinda un ejemplo de un estado con subestados secuenciales.
Figura 4.12: Estado con Subestados Secuenciales
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 acción 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 máquinas de estado
pueden ser muy complejas.
•
Cuando un objeto está en un estado compuesto, se dice que está a la vez en
alguno de los subestados. Un estado fuente puede transitar hacia el estado
compuesto o directamente hacia algún subestado específico del estado
compuesto.
Libro 1: Análisis y Diseño 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.
157
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
4.2 Subestados Concurrentes
Los subestados concurrentes permiten especificar dos o más estados que se ejecutan
en paralelo. La Figura 4.13 muestra un ejemplo de un estado con subestados
concurrentes.
Figura 4.13: Un Estado con Subestados Concurrentes
Se nota en la figura anterior que un objeto, el cual está en el estado Mantenimiento,
ingresa concurrentemente a los dos subestados anidados. El control es pasado al
estado inicial de ambos estados concurrentemente. Dentro de los subestados
concurrentes, los subestados son secuenciales por naturaleza.
En este caso, cuando una transición va a un estado compuesto, se divide entre los
subestados concurrentes; es decir, el control fluye hacia todos los subestados
concurrentes. Esto es equivalente a una ramificación. Cuando una transición abandona
un estado compuesto, las actividades en cada subestado concurrente deben ser
completadas antes de que el objeto abandone el estado compuesto. Esto es
equivalente a una unión.
Los subestados concurrentes pueden no tener estados inicial, final o historial. Sin
embargo, el subestado secuencial dentro de un subestado concurrente puede incluir
estas características. Esto se describe en la Figura 4.13. Los dos subestados
concurrentes son subestados secuenciales anidados. Por lo tanto, tienen sus estados
inicial y final correspondientes.
Los estados concurrentes son también llamados subestados ortogonales.
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
158
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
4.3 Historial de Estados
A veces es útil y necesario mantener el último subestado activo antes de salir por
transición del estado compuesto. Cuando el objeto reingresa al estado compuesto, se
reanuda el trabajo en ese último subestado activo, saltando los subestados anteriores.
Esto contribuye a mantener el historial dentro del estado compuesto.
Para mantener el historial, cuando el objeto abandona un subestado, se puede fijar una
variable del estado compuesto con un valor, este valor puede ser verificado al
reingresar en el estado compuesto usando una condición. Basado en la condición, el
estado inicial transitará hacia cada subestado verificando el valor de la variable. De esta
manera, el último subestado activo puede ser recordado por el estado compuesto y el
subestado apropiado puede ser ubicado por la fuente. Esto es incómodo, dado que
cada subestado necesita mantener una acción de salida. Al reingresar al estado
compuesto, se realiza una verificación para encontrar la transición hacia el estado
correcto.
UML proporciona una manera más simple en donde un historial del estado puede ser
modelado. No hay necesidad de mantener acciones de salida con este método. En vez
de ello, se usa el símbolo H dentro de un círculo para indicar que el estado compuesto
mantiene un historial. La transición desde fuera del estado compuesto es dirigida hacia
la H y luego el control pasa al subestado secuencial (el estado inicial, la primera vez), y
en posteriores transiciones, al último subestado activo.
Se mantiene el historial mientras los eventos que ocurran causen una transición en
medio del flujo de control secuencial. Una vez que la transición dentro de los
subestados anidados alcance al estado final, se pierden los detalles del historial. Vea la
Figura 4.14.
Libro 1: Análisis y Diseño 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.
159
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 4.14: Máquina de Estado Compleja
La Figura 4.14 es una máquina de estado razonablemente compleja. El estado
compuesto Reportando representa un historial profundo. Éste recuerda el historial del
estado anidado más interno, el cual es Conectando. El subestado anidado Generando
muestra un historial superficial y mantiene el historial sólo para los subestados dentro
de su espacio circundante.
El evento activarReporte() causa una transición del estado Esperando al estado
Reportando. Éste estado contiene subestados.
UML diferencia entre historial superficial y profundo. El historial superficial es descrito
con una H dentro de un círculo y un historial profundo es descrito con una H* dentro de
un círculo. El historial superficial mantiene el historial del subestado anidado inmediato.
El historial profundo mantiene el historial hasta el subestado anidado más interior de
cualquier profundidad.
La Figura 4.14 muestra un ejemplo de historial superficial y profundo. Los estados del
historial se pueden usar sólo con los subestados secuenciales Generando, Validando
e Imprimiendo. El subestado Generando tiene dos subestados Conectando y
Calculando. El subestado Conectando de nuevo es un estado compuesto, con
Esperando y Recibiendo como sus subestados. La Figura 4.14 no menciona los
eventos dentro de los subestados, dado que su enfoque se encuentra en el
mantenimiento del historial de los estados.
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
160
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
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 estímulos y mensajes exteriores. Un
diagrama de estados se representa gráficamente como vértices y arcos. El nombre UML
designado para la máquina 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 estímulo externo,
para causar que un objeto actúe 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. También 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 máquina 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 señal de activación realizan una llamada a una
central de bomberos y descuelgan la llamada.
Libro 1: Análisis y Diseño 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.
161
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 4.15: Una Máquina de Estados para un Objeto DetectorDeHumo
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. Típicamente, 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 dirección 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 dirección. Los hilos pueden ser
conocidos para el sistema operativo, pero típicamente 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 semántica de
concurrencia. Esto ayuda a la sincronización de las interacciones entre flujos
independientes.
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Una clase activa es descrita gráficamente en la Figura 4.16. El borde exterior del
rectángulo es más grueso. Una clase activa es como una clase normal con atributos,
operaciones y compartimentos adicionales. Los objetos activos reciben señales, las
cuales se listan en un compartimiento llamado Señales.
La Figura 4.16 muestra las diversas partes de una clase activa. Las clases estáticas no
reciben señales y por lo tanto no tienen un compartimiento llamado Señales. Se ve
que la clase ConectorBaseDatos recibe dos señales.
Figura 4.16: Clase Activa
Para modelar un proceso o hilo en UML, se usan clases activas. Cada flujo de control
independiente, dentro de una aplicación, 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 estándar 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 continuación:
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 operación
desde un objeto hacia otro objeto. La Figura 4.17 muestra este tipo de paso de
mensaje.
Libro 1: Análisis y Diseño 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
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 4.17: Paso de Mensaje entre Objetos Pasivos
2) Pasar un mensaje desde un objeto activo hacia otro objeto activo
La comunicación interprocesos ocurre cuando dos objetos activos se involucran en una
comunicación. Existen dos maneras en las que ocurre la comunicación interprocesos:
•
Un objeto activo invoca una operación sobre otro objeto activo sincrónicamente.
El objeto llamador pasa un mensaje y espera a que el receptor acepte la
llamada. El receptor despacha la operación y envía un valor de retorno al
llamador. El llamador y el receptor continúan con sus tareas independientes. Por
la duración de la operación, los dos objetos son sincronizados. La Figura 4.18
muestra un ejemplo de paso síncrono de mensajes.
Figura 4.18: Paso Síncrono de Mensajes
•
Un objeto activo invoca una operación sobre otro objeto activo
asincrónicamente. El objeto llamador envía una señal y continúa con sus tareas
independientes. El receptor recibe la señal, la procesa y luego de la finalización
de la tarea, continúa con sus tareas independientes. El llamador no espera a que
el receptor complete la tarea. Los dos objetos no están sincronizados en este
tipo de comunicación. La Figura 4.19 ilustra el paso asíncrono de mensajes.
Figura 4.19: Paso Asíncrono de Mensajes
Note la diferencia entre los símbolos usados en las Figuras 4.18 y 4.19 para el paso
síncrono y asíncrono 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: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
nueva ruta. Esto puede ocurrir cuando existe una saturación de la red. En el segundo
caso, el objeto :EnrutadorDatos pasa un mensaje asíncrono haltOperations() y
luego continúa con su tarea independiente. La finalización de la tarea
haltOperations() no afecta las tareas independientes de :EnrutadorDatos.
3) Pasar un mensaje desde un objeto pasivo hacia un objeto activo
Algún flujo de control inicia desde un objeto activo. Esto permite que el objeto pasivo
invoque una operación sobre el objeto activo. La misma semántica 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.20: Paso de Mensajes entre un Objeto Pasivo y un Objeto Activo
4) Pasar un mensaje desde un objeto activo hacia un objeto pasivo
El paso de mensajes de un objeto activo a un objeto pasivo es similar a una simple
invocación de una operación. Sin embargo, se tiene que ver el tema de la sincronización
cuando más de un objeto activo pasa un flujo de control al mismo tiempo a un solo
objeto pasivo. La Figura 4.21 muestra el modo en que más de un objeto activo pasa
mensajes a un objeto pasivo.
Figura 4.21: Paso de Mensajes desde Múltiples Objetos Activos hacia un Objeto Pasivo
En la figura anterior, dos instancias de la clase Parser están enviando mensajes al
objeto :AcumuladorDatos.
Libro 1: Análisis y Diseño 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.
165
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
7. Caso de Estudio: Trabajar con Diagramas de Estado
Para el caso de estudio de la tienda de video, a continuación se muestra el diagrama de
estados para un objeto Película. La Figura 4.22 muestra los diversos estados en que
estará el objeto durante su tiempo de vida. Se parte de la premisa que la película existe
en Stock, estando en ese estado la película puede ser Alquilada, Comprada o
Reservada. Note que para que ocurra una transición al estado Alquilada, es necesario
que el cliente que desea alquilar la película este afiliado, igual pasa cuando ocurre una
transición del estado Reservada al estado Alquilada si la reservación tiene menos de 24
horas ocurre la transición y si es mayor de 24 horas la reservación es rechazada
(eventos de cambio). En el caso del estado Comprada no existe ninguna restricción
asociada al evento ComprarPelicula().
Figura 4.22: Los Diversos Estados del Objeto y sus Transiciones
Otro caso que puede ser presentado es el diagrama de estado de un objeto cliente,
desde la perspectiva de alquilar y devolver película. Ver Figura 4.23
En esta figura se muestran 2 estados en la que un objeto cliente puede estar cuando
alquila y devuelve películas, estos son: SinPelicula y ConPelicula.
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
166
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Figura 4.23 Los Diversos Estados del Objeto y sus Transiciones
En la Figura 4.23, se puede observar que un cliente está en estado SinPelícula
cuando no realiza ningún alquiler, al activarse el evento AlquilerPelicula()ocurre
una transición al estado ConPelicula, el cual tiene 2 transiciones reflexivas. La
transición reflexiva de la izquierda se realiza cuando se activa el evento
DevolverPelícula(), tomando en cuenta que el cliente tiene más de una película
alquilada. La transición reflexiva de la derecha se realiza cuando se activa el evento
AlquilarPelicula() y el cliente ya tiene películas alquiladas. El objeto pasa de
nuevo al estado SinPelicula cuando se activa el evento DevolverPelicula(),
tomando en cuenta que el cliente solo le queda una película alquilada.
8. Algunas Recomendaciones
Las siguientes, son algunas recomendaciones en el contexto de manejo de eventos:
•
Puede construirse una jerarquía de señales; esto le permitirá sacar provecho de
las propiedades comunes de algunas señales relacionadas.
•
Un elemento que recibe un evento debe tener definitivamente una máquina de
estados adecuada.
•
Los elementos que envían eventos y también aquellos que reciben eventos
deben ser modelados.
•
La máquina de estados no debe ser complicada por estados y transiciones
superfluos; debe mantenerse simple.
•
La máquina de estados debe ser eficiente en términos de espacio y tiempo.
•
Debe usarse un vocabulario apropiado cuando se nombran los estados y
transiciones para permitir un mejor entendimiento.
•
No deben introducirse subestados que se aniden demasiado profundo; no es
considerada una buena práctica tener más de dos niveles de anidamiento.
Libro 1: Análisis y Diseño 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.
167
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
•
Discutir eventos y señales.
•
Definir máquinas de estado.
•
Discutir y construir diagramas de estado.
•
Describir de qué modo las restricciones de tiempo y espacio afectan el modelado
del sistema.
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
168
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 5: Examen de Autoevaluación
1) ¿Cuál de los siguientes causa una transición de estado?
a) Estado
b) Evento
c) Acción
d) Ninguno de los anteriores
2) ¿Cuál de los siguientes es asíncrono por naturaleza?
a) Señales
b) Eventos
c) Acciones
d) Ninguno de los anteriores
3) ¿Cuál de los siguientes tipos de eventos representa el despacho de una operación?
a) Acción
b) Tiempo
c) Cambio
d) Llamada
4) ¿Qué tipo de evento es when (tiempo = 10 horas)?
a) Evento de llamada
b) Evento de cambio
c) Evento de tiempo
d) Evento de acción
5) ¿Cuáles de los siguientes elementos pueden modelar su comportamiento con
máquinas de estado?
a) Clase
b) Caso de uso
c) Interacciones
d) Colaboraciones
Libro 1: Análisis y Diseño 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.
169
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
6) Las acciones de entrada y salida, son parte de:______________________
a) Un estado
b) Un evento
c) Una acción
d) Ninguno de los anteriores
7) Las transiciones internas no resultan en un cambio de estado.
a) Verdadero
b) Falso
8) Un estado puede tener una auto-transición.
a) Verdadero
b) Falso
9) ¿Qué tipo de subestado puede no tener estados inicial o final?
a) Secuencial
b) Concurrente
c) Iterativo
d) Ninguno de los anteriores
10) A menos que se indique el tiempo de inicio para verificar una expresión que sigue a
un after es el momento cuando se ingresó al estado actual
a) Verdadero
b) Falso
Unidad 5: Modelado de Comportamiento Avanzado
Libro 1: Análisis y Diseño 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.
170
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Respuestas a la Unidad 2: Examen de Autoevaluación
1) b
2) a
3) d
4) b
5) a y b
6) a
7) a
8) a
9) b
10) a
Libro 1: Análisis y Diseño 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.
171
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
Objetivos de Aprendizaje
Al final de esta unidad, usted será capaz de:
•
Describir componentes, nodos y colaboraciones.
•
Discutir diagramas de componentes.
•
Discutir la necesidad de diagramas de despliegue.
•
Describir estereotipos y relaciones entre componentes y nodos.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
173
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
1. Introducción
En esta unidad se aprenderá acerca del modo en que son modeladas las partes
arquitectónicas 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 físicos del
mismo. Se construyen modelos lógicos para visualizar y conceptualizar el sistema. El
modelo arquitectónico se usa para modelar las entidades físicas que existen
eventualmente en el mundo real, es importante destacar que tanto las vistas física como
lógica 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 más objetos modelados usando diferentes diagramas. Los
diagramas arquitectónicos permiten modelar ejecutables, librerías, tablas, archivos,
código fuente y nodos físicos. En esta unidad, se aprenderá acerca de los diagramas de
componentes y diagramas de despliegue. A continuación se discutirá sobre
componentes.
2. Componentes
Un componente es un tipo Clasificador con la diferencia de que no tiene características
propias, pero contiene las clases que definen las características. Un componente
proporciona una vista encapsulada de la funcionalidad definida por las clases
contenidas.
Un componente es una parte física del sistema. Cada componente tiene un nombre, el
cual puede ser un nombre simple o un nombre de ruta.
En la especificación UML 1.4 se describe como una caja rectangular con dos
rectángulos más pequeños 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 representación de
componentes en UML.
Figura 6.1: Representación de Componentes en UML
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
174
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
En la Figura 6.1, se observa que el componente ProcesadorImagen.exe tiene una
relación con tres clases ProcesadorImagenes, GeneradorVectores y
GeneradorBMP. Por lo tanto, se puede decir que las clases mencionadas implementan
el componente en cuestión.
La Figura 6.2 muestra otra manera de ver las relaciones del componente y las clases,
estas relaciones son llamadas relaciones de dependencia.
Figura 6.2: Relación de Dependencia entre un Componente y sus Clases
2.1 Clases vs. Componentes
Las clases representan abstracciones lógicas del mundo real, mientras que los
componentes representan las partes físicas de un sistema. Cualquier sistema tiene
elementos físicos y lógicos. Un componente es la implementación física de un conjunto
de elementos lógicos en el sistema. Las clases y colaboraciones son simples ejemplos
de elementos lógicos en un sistema. Por lo tanto, se ve una relación entre un
componente y las clases que realiza. De modo similar, un componente puede ser la
implementación física de un conjunto de colaboraciones. La relación de dependencia se
usa para describir la relación entre clases y componentes.
2.2 Estereotipos de Componentes
Los estereotipos de componentes muestran una vista de los roles que juegan los
componentes en la arquitectura. Los estereotipos de componentes se refieren a los
tipos de artefactos (código fuente, archivos binarios, bases de datos, entre otros), que
son utilizados parta implementar las características del componente.
UML proporciona cinco estereotipos estándar que aplican a componentes. Éstos son:
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
175
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
•
<<executable >>– Para describir que un componente puede ser ejecutado en
un nodo.
•
<<library >>– Para describir una inclusión de una librería. Puede ser una
librería estática o dinámica.
•
<<table >>–Para mostrar que se usa una tabla de la base de datos.
•
<<file >>– Para mostrar que se incluye un código fuente o un archivo de
datos.
•
<<document>> – Para representar un documento.
En la Figura 6.3, se muestra un componente estereotipado.
Figura 6.3: Componente con el Estereotipo File
2.3 Relación entre Interfaces y Componentes
Una interfaz es un conjunto de operaciones en las cuales una clase o componente se
revela al mundo exterior. Una interfaz puede ser realizada por un componente y una
clase. El servicio de una clase está disponible directamente, mientras que los servicios
de un componente están disponibles sólo a través de sus interfaces.
La relación entre un componente y una interfaz puede mostrarse de dos formas:
•
Usando la forma abreviada (icónica).
•
Usando la forma expandida.
Un componente puede realizar o usar una interfaz. Cuando un componente realiza una
interfaz se llama una interfaz exportada o de exportación. 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 icónica,
dicha interfaz proporciona la funcionalidad al componente de manejar el archivo de
imagen a procesar (crear archivo, abrir archivo, entre otras).
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
176
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Figura 6.4: Realización de una Interfaz de Forma Icónica
La Figura 6.5 muestra la misma realización pero de forma expandida. Nótese que en
esta representación se da a conocer las operaciones que son parte de la interfaz.
Figura 6.5: Realización de una Interfaz de Forma Expandida
En la Figura 6.6, la interfaz exportada por el componente ProcesadorImagen.exe es
usada por el componente ProcesadorTexto.exe. El enlace entre esos dos
componenentes es a través de la interfaz MenuArchivo. La interfaz MenuArchivo
contiene
las
firmas
de
operaciones
como
abrirArchivo(),
cerrarArchivo(),que
son
realizadas
por
el
componente
ProcesadorImagen.exe; quedando disponibles para cualquier otro componente
que las necesite, tal es el caso del componente ProcesadorTexto.exe
Figura 6.6: Realización y Uso de la Interfaz
2.4 Tipos de Componentes
UML presenta tres tipos de componentes. Éstos son:
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
177
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
•
Componentes de Despliegue o Distribución (Deployment): Estos
componentes se usan para formar un sistema ejecutable. Un ejemplo de tal
componente es la librería de enlace dinámico y los archivos ejecutables. Otros
ejemplos son los componentes COM+, Enterprise Java Beans, componentes
CORBA y objetos de base de datos.
•
Componentes de Producto de Trabajo: Estos componentes son parte del
proceso de desarrollo que es esencial para el sistema. Algunos ejemplos de
componentes de producto de trabajo son los archivos fuente, archivos de datos y
tablas. Ellos son los archivos fuente y archivos de datos que se usan para crear
los componentes de distribución como AgenteAnalizado.java y
AnalizadorDatos.txt.
•
Componentes de Ejecución: Estos componentes son el resultado de un
sistema que se está ejecutando. Cuando un DLL es instanciado como un
componente COM+, es un ejemplo de un componente de ejecución.
3. Diagrama de Componentes
Los diagramas de componentes se usan para modelar la implementación estática de
elementos físicos que residen en un nodo, como los ejecutables, librerías, tablas y
archivos. Los diagramas de componentes son útiles también para construir sistemas
ejecutables a través de la ingeniería reversa y la ingeniería hacia adelante.
Un diagrama de componentes es un conjunto de componentes y la relación entre ellos.
Consiste de componentes, interfaces y relaciones entre ellos. Pueden agregarse notas y
restricciones a un diagrama de componentes.
Figura 6.7: Diagrama de Componentes
La Figura 6.7 muestra un ejemplo de un diagrama de componentes. En este diagrama
el componente ProcesadorImagen.exe es construido usando diversos elementos. El
diagrama de componentes dice el modo en que el componente está compuesto de
diferentes elementos como una librería de enlace dinámico, una librería .h, una tabla y
un archivo fuente CPP.
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
178
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Los diagramas de componentes se usan típicamente para modelar los siguientes
elementos:
•
Código Fuente.
•
Lanzamiento de Ejecutables (releases).
•
Bases de Datos Físicas.
•
Sistemas Adaptables.
•
Ingeniería Hacia Adelante y Reversa.
3.1 Modelar Código Fuente
El conjunto de archivos de código fuente se identifican y modelan. Pueden usarse
paquetes para agrupar archivos fuente. El estereotipo <<parent>> puede mostrar
versiones anteriores. Los valores etiquetados pueden usarse para indicar la versión o
cualquier otra información acerca de un archivo.
La Figura 6.8 muestra el modo en que los archivos de código fuente se describen en
UML.
En la Figura 6.8 se muestra que la versión 3.1 del archivo de encabezado
LibreriaImagenes.h es la versión anterior. Esto se describe usando el estereotipo
<<parent>>. También se muestra que AnalizadorImagen.cpp está usando el
archivo LibreriaImagenes.h y RenderImagen.dll es dependiente de
AnalizadorImagen.cpp. Obtener un diagrama de componentes de esta manera
ayuda a ver las dependencias relacionadas al código fuente.
Figura 6.8: Descripción de Archivos de Código Fuente en UML
3.2 Modelar Lanzamiento de Ejecutables (Releases)
Así como se puede modelar código fuente usando UML, también se puede modelar el
lanzamiento de ejecutables. Aplicaciones simples pueden requerir solamente un solo
archivo .exe. Pero para sistemas grandes, puede ser necesario un archivo ejecutable,
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
179
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
una librería de enlace dinámico y un archivo de base de datos. En Java se necesitan
archivos .class y .jar. Tal como se muestra en la Figura 6.9, también se pueden
modelar las diferentes partes de un lanzamiento.
La liberación ejecutable contiene el AnalizadorComponente.jar, el cuales
dependiente de AnalizadorDatos.jar, quien a su vez es dependiente de dos
archivos de clase.
Figura 6.9: Modelado de Diversas Partes de una Liberación
3.3 Modelar Bases de Datos Físicas
Se pueden modelar bases de datos físicas del mismo modo en que se modela el código
fuente. La Figura 6.10 ilustra esto. Cabe destacar que la base de datos también es un
componente y puede tener relaciones con otros componentes y artefactos. Se puede
observar en la figura que las tablas Estudiantes, Cuotas y Notas residen dentro
del componente Bdimagenes, el estereotipo <<reside>> ayuda a aclarar la
relación.
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
180
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Figura 6.10: Modelado de Bases de Datos Físicas
3.4 Modelar Sistemas Adaptables
Existen dos tipos de sistemas: estáticos y dinámicos. En los sistemas estáticos, los
componentes entran a la escena de ejecución, participan en la ejecución y luego se
retiran. No existe movimiento de componentes de un procesador a otro. Los sistemas
dinámicos contienen agentes que son móviles. Estos agentes móviles se desplazan de
un procesador a otro para manejar el balance de carga y la recuperación ante fallas. Se
puede usar el diagrama de componentes UML para modelar dichas entidades
dinámicas en el sistema.
La Figura 6.11 muestra un ejemplo del modo en que los sistemas adaptables se
modelan. Simplemente muestra la replica de los datos de un servidor a otro. La replica
de bases de datos es típica en cualquier aplicación intensiva de datos. Esto permite a
las aplicaciones su ejecución, incluso si falla el servidor primario.
Figura 6.11: Modelado de Sistemas Adaptables
Se asumirá que existe una falla del servidor primario. En este caso, el componente de
base de datos de la aplicación 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 interacción
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
181
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
que muestra un objeto del componente que migra, además de la acción resultante de la
migración. Existen dos instancias del mismo componente mostrado, pero se diferencian
en cuanto a la localización del servidor. La Figura 6.12 muestra esta migración.
Figura 6.12: Migración del Servidor Primario al Secundario
En la Figura 6.12 se muestra la migración del servidor primario al secundario ante una
falla del servidor y el posterior retorno al servidor primario luego de la recuperación ante
la falla.
3.5 Ingeniería hacia Adelante y Reversa
La ingeniería hacia adelante es la creación del código a partir de un modelo existente.
La ingeniería en reversa es la creación del modelo a partir del código existente. Los
diagramas de componentes pueden usarse para mostrar la ingeniería hacia adelante y
en reversa. Típicamente, los diagramas de componentes ayudan a entender el tipo de
elementos que van hacia un componente. Algunas ayudas están disponibles en forma
de herramientas, las cuales permiten a los diseñadores realizar la ingeniería hacia
adelante y en reversa.
En el caso de la ingeniería hacia adelante, se necesita identificar las clases y
colaboraciones para un componente. Las clases y colaboraciones identificadas permiten
diseñar y escribir el código. El objetivo para la ingeniería hacia adelante es el código
fuente, una librería binaria o un ejecutable.
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
182
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
En el caso de la ingeniería en reversa, tanto el código fuente como las librerías binarias
pueden ser la fuente. Al código fuente se le puede aplicar ingeniería en reversa para
tener componentes seguidos por clases. A las librerías binarias se les puede aplicar
ingeniería en reversa para conocer sus interfaces.
La Figura 6.13 muestra un ejemplo de ingeniería hacia adelante. Muestra el modo en
que el componente AgenteAnalizador recibe ingeniería hacia adelante y se
convierte en un conjunto de códigos fuente y archivos de base de datos. De modo
similar, a una librería de enlace dinámico o un código fuente se le puede hacer
ingeniería en reversa para mostrar los componentes y las clases que se usaron para
construir los archivos de librería y código fuente.
Figura 6.13: Ingeniería Hacia Adelante
4. Colaboraciones
Las colaboraciones son un conjunto de clases, interfaces, nodos, componentes y casos
de uso. La colaboración 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 colaboración. La notación UML para la colaboración es una
elipsis con líneas punteadas. La Figura 6.14 ilustra la colaboración
AfiliacionClientes. Para el caso de estudio de la tienda de video.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
183
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Figura 6.14: Ilustración de la Colaboración AfiliaciónClientes
Las colaboraciones se ocupan de dos aspectos. Éstos son:
•
Aspectos Estructurales: Incluye clases, interfaces, nodos, componentes y
casos de uso. Típicamente, los aspectos estructurales de una colaboración son
realizados como un conjunto de relaciones entre los elementos estructurales.
Los aspectos estructurales se muestran a través de un diagrama de clases. La
Figura 6.15 muestra una vista simple de los aspectos estructurales de la
colaboración AfiliaciónClientes.
•
Aspectos de Comportamiento: Incluye los aspectos dinámicos del modo en
que los elementos estructurales interactúan unos con otros. Los aspectos de
comportamiento se describen a través del diagrama de interacción. La
colaboración proporciona el contexto en donde pueden modelarse las
interacciones. La Figura 6.16 muestra los aspectos de comportamiento para la
colaboración AfiliacionClientes.
Us uario
(fro m L o g i ca l V i e w)
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
+ inc luirE m pleado()
+ ret irarE m pleado()
Cliente
TiendaV ideo
(fro m L o g i ca l V i e w)
- 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
+ ins c ribi rC lie nte()
+ retira rCli ente()
(fro m L o g i ca l V i e w )
- des c ripc ion
+ generarContrato()
Figura 6.15: Aspectos Estructurales de la Colaboración Afiliación Estudiante
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
184
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
La Figura 6.16 representa un simple diagrama de clases. El diagrama de clases
mostrado anteriormente es la realización de aspectos estructurales de la colaboración
AfilizacionClientes. Las colaboraciones ayudan a modelar el sistema desde una
perspectiva diferente conforme a las necesidades del sistema.
Figura 6.16: Aspectos de Comportamiento para la Colaboración AfiliacionClientes
En el proceso del entendimiento del sistema, los casos de uso son identificados y
diseñados. Pero en la implementación final del sistema, los casos de uso deben ser
convertidos en términos de los aspectos estructurales y de comportamiento del sistema.
Las colaboraciones se usan para modelar la realización de un caso de uso y la
implementación de una operación. La colaboración, se describe usando los aspectos
estructurales y de comportamiento. Para la colaboración especificada, esto resulta en
diagramas de clases y de interacción. En otras palabras, el caso de uso se convierte en
diagramas de clases y de interacción a través de colaboraciones. La Figura 6.17
muestra la realización de uno caso de uso por una colaboración.
Figura 6.17: Realización de Caso de Uso como Colaboración
5. Patrones
El diccionario define un patrón como una forma o modelo propuesto para imitación, por
ejemplo, un diseño. En terminología de computadoras, patrón es algo que brinda una
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
185
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
solución, en un contexto dado, para problemas comunes. Un patrón consiste de tres
elementos:
•
Contexto.
•
Problema.
•
Solución.
Cuando se enfrenta un problema, no siempre es necesario pensar en una solución
nueva y única al problema. Se puede reutilizar una solución existente en vez de dedicar
tiempo y recursos tratando de encontrar una nueva solución.
Se asumirá que se desea construir una casa. Existen diferentes soluciones para
construir una casa. Se puede construir una casa con un estilo Victoriano, Rancho,
Chalet o Europeo. Se puede hacer uso de una o más de las soluciones ya disponibles y
trabajar en la construcción de la nueva casa, quizás mejorando las características que
proporcionan las soluciones existentes. Este ejemplo da a conocer que el contexto es
conocido donde el problema ya tiene una solución. Una casa tiene dos constituyentes
importantes. Éstos son:
•
Vista Externa: Se refiere al exterior de la casa, la cual puede tener estilos
Gótico, Victoriano o Neogótico.
•
Vista Interna: Se refiere al esfuerzo dedicado al diseño de la casa, es decir, la
manera en que los techos son fijados por pilares.
Aunque las vistas son diferentes, los problemas con los que se enfrentan son comunes
y existen soluciones para estos problemas.
En terminología 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 ingeniería reversa (reverse) como la ingeniería hacia adelante
(forward).
Existen 2 tipos de patrones:
•
Patrones arquitectónicos.
•
Patrones de diseño.
Estos patrones no serán discutidos en este curso.
A continuación se aprenderá acerca de los Diagramas de Despliegue.
6. Diagrama de Despliegue
Los diagramas de despliegue (deployment) muestran la disposición de los elementos de
procesamiento en tiempo de ejecución. Estos elementos contienen componentes,
procesos y objetos. Estos elementos de procesamiento en tiempo de ejecución son
referidos como nodos que representan un recurso computacional que tiene memoria y
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
capacidad de procesamiento. Los diagramas de componentes son normalmente
combinados con diagramas de despliegue para mostrar el modo en que los elementos
físicos están distribuidos sobre diversas plataformas de hardware. Un diagrama de
despliegue es un gráfico de nodos. Cada nodo está conectado para describir la
asociación de comunicación.
Los diagramas de componentes y de despliegue son llamados colectivamente
diagramas de implementación.
6.1 Nodo
Son clasificadores que representan un recurso computacional en tiempo de ejecución.
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.
Figura 6.18: 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,
generalización y asociación, también pueden participar en diagramas de interacción y
se pueden crear instancias de nodos y componentes. Sin embargo, existen dos
diferencias entre nodos y componentes, éstas son:
•
Los componentes toman parte en la ejecución de un sistema, mientras que los
nodos ejecutan componentes.
•
Los componentes caracterizan el empaquetamiento de elementos lógicos como
colaboraciones y clases, mientras que los nodos representan componentes
físicamente desplegados.
Cuando un conjunto de componentes es desplegado en un nodo, el grupo es referido
como una unidad de distribución.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
187
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
La relación entre nodo y componente puede mostrarse usando la notación para relación
de dependencia.
La conexión entre dos o más nodos se hace a través de la relación de asociación, y el
mecanismo de comunicación es escrito como un estereotipo. Por ejemplo, el
mecanismo de comunicación 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 línea recta para especificar la relación entre nodos,
describiendo la relación de asociación. La relación entre un nodo y los componentes
que despliega es una relación 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 explosión
de un nodo del diagrama de despliegue, se puede obtener la vista mostrada en la
Figura 6.19.
Figura 6.19: Dos Instancias de un Nodo Conectado a un Conjunto de Componentes
Un típico diagrama de despliegue se muestra en la Figura 6.20. Se ha mostrado dos
servidores de almacenamiento temporal (caching servers) conectados a una red de
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
188
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
á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 demás
diagramas. Estos diagramas se usan para modelar la vista estática del sistema, llamada
la vista de despliegue. La vista incluye la distribución, entrega e instalación 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.
Un sistema comprende un conjunto de elementos usados para cumplir una tarea. Un
sistema se puede categorizar en subsistemas, siendo cada subsistema un grupo de
elementos. Estos elementos pueden ser componentes, clases, interfaces, nodos y sus
relaciones. La relación entre un sistema y un subsistema se llama relación de
agregación. Esta relación denota que el sistema contiene los subsistemas.
Figura 6.20: Un Típico Diagrama de Despliegue
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
189
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Se han estado usando los términos modelo y vista en todo el curso. Ahora se
entenderán estos elementos claramente. Se establece simplemente que un modelo es
una representación. Es un tipo de paquete y por lo tanto no se proporciona una notación
separada para un modelo en UML. Un modelo posee típicamente elementos como
clases, interacciones y relaciones.
Una vista proporciona una observación del modelo. Muestra la parte relevante del
sistema según sea aplicable a la vista.
La notación usada para sistemas y subsistemas en el UML es el ícono de paquete
estereotipado.
7. Caso de Estudio: Componentes y Despliegue
Para el caso de estudio de la tienda de video, se realizarán los diagramas de
componentes y de despliegue. Para un mejor entendimiento, se describe nuevamente el
problema.
Se desea diseñar un sistema computarizado para automatizar un club de video, el cual
debe tener las siguientes características:
•
El sistema debe llevar el control de afiliación y retiro de clientes.
•
Para llenar la ficha del cliente es necesario los siguientes datos:
- Nombre completo.
- Cédula.
- Dirección.
- Teléfono.
- Edad.
- Estado civil.
- Referencias personales.
•
Como requisito de inscripción la persona debe de ser mayor de 18 años.
•
El cliente puede afiliarse por medio del sitio Web y cancelar con su tarjeta de
crédito.
•
El sistema debe permitir alquilar, reservar, devolver y comprar películas.
•
El cliente puede devolver la película por el buzón de devolución el cual
automáticamente realiza el registro.
•
Debe permitir a los clientes consultar las películas disponibles por medio de
terminales remotos instalados en la tienda.
•
Para alquilar una película el operador del sistema introduce la cédula del cliente,
luego introduce el código de la película a ser alquilada, si la cédula del cliente no
aparece en el sistema, la transacción no procede.
•
Las reservaciones son realizadas por la página Web del video.
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
190
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
•
La duración de la reservación es de 24 horas, al cumplirse el lapso, la
reservación es cancelada automáticamente y la película estaría disponible en la
existencia.
•
El sistema gestiona el pago de la película por adelantado con tarjeta de crédito,
emitiendo una factura.
•
El alquiler de las películas tiene una duración de 2 días hábiles, los días
adicionales son cobrados como días de mora.
•
Para alquilar y reservar una película es necesario ser cliente del video club.
•
El sistema debe llevar el inventario de las películas del video.
•
El club de video ya dispone un sistema contable automatizado que se comunica
con el sistema planteado.
Para el sistema de la tienda de video, se supone que el sistema está desarrollado en
Java, una de las interfaces gráficas es la pantalla de reservar películas; la misma se
compone de cajas de texto, combos, entre otros. Esa pantalla es un componente
llamado IreservarPeliculas.class, dicho componente necesita relacionarse con
otros
componentes
para
poder
funcionar
correctamente,
tales
como:
Película.class, Cliente.class, Reservación.class. En la Figura 6.21
puede observar el diagrama de componentes.
Figura 6.21: Diagrama de Componentes para la Interfaz Gráfica
IReservacionPeliculas.class.
El componente IResevacionPeliculas es dependiente de Cliente.class,
Reservación.class y Películas.class, además realiza la interfaz
IEventosReservacion.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
191
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
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 películas. Se puede notar en la figura que la comunicación entre el nodo
SistemaCentral y el nodo Terminal es realizada por el protocolo TCP/IP. También
se puede notar que en la asociación se coloca la multiplicidad, del mismo modo, un
Sistema Central puede tener cero o muchos Terminales.
Figura 6.22: Diagrama de Despliegue
La Figura 6.23, modela cómo se realiza la comunicación entre el sitio Web de la tienda
de video, el servidor http y el servidor de bases de datos, además muestra los
componentes que juegan el papel más 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 código PHP que está en la página HTML. El componente MotorPhP
depende de EjecucionBD para acceder a la base de datos.
Figura 6.23: Diagrama de Despliegue
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
192
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
En el ejemplo de trabajo, se ha concentrado solo en algunas funcionalidades del
sistema. El proceso completo de la tienda también puede ser modelado. Éste puede
seguir los mismos principios aplicados a los diversos diagramas que se han visto en los
ejemplos ilustrados en las unidades anteriores.
Con esto, se completa la discusión sobre OOAD usando los elementos de Modelado de
UML, a saber, los modelos estructurales, de comportamiento y arquitectónicos. Cada
uno de estos modelos proporciona una perspectiva diferente del sistema. Es importante
que cada modelo sea entendido desde sus bases conceptuales hasta su aplicación al
dominio de un problema. Típicamente, el análisis empieza con la identificación de los
casos de uso, derivación de clases a través de abstracciones, adjuntar
responsabilidades a las abstracciones y posicionamiento hacia la construcción del
modelo de diseño usando los diversos diagramas.
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
193
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
Resumen
Ahora que ha completado esta unidad, usted debe ser capaz de:
•
Describir componentes, nodos y colaboraciones.
•
Discutir diagramas de componentes.
•
Discutir la necesidad de Diagramas de despliegue.
•
Describir estereotipos y relaciones entre componentes y nodos.
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
194
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Examen de Autoevaluación
1) ¿Qué permiten modelar los diagramas arquitectónicos?
a) Ejecutables
b) Librerías
c) Tablas
d) Archivos
2) ¿Qué representan los componentes?
a) Abstracciones lógicas
b) Partes físicas del sistema
c) Colecciones de abstracciones lógicas
d) a y c
3) ¿Con qué clasificadores puede ser realizada una interfaz?
a) Clase
b) Componente
c) Casos de uso
d) Objetos
4) ¿Cuáles de los siguientes son tipos de componentes?
a) Componentes de desplegado
b) Componentes de producto de trabajo
c) Componentes de ejecución
d) Componentes de librería
5) ¿Cuáles de los siguientes son estereotipos que aplican a componentes?
a) Ejecutable
b) Encapsulado
c) Tabla
d) Documento
6) ¿De qué se ocupan las colaboraciones?
a) Relaciones es-un
b) Relaciones tiene-un
c) Aspectos estructurales
d) Aspectos de comportamiento
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
195
Análisis y Diseño de Sistemas Orientado a Objetos
Guía del Estudiante
7) ¿Para qué se usan las colaboraciones?
a) Para modelar la realización de casos de uso
b) Para la implementación de una operación
c) Para el paso de mensajes
d) Para el manejo de excepciones
8) ¿Cuáles de los siguientes elementos son usados típicamente en los diagramas de
componentes para modelar?
a) Sistemas Adaptables
b) Ingeniería hacia Adelante y en Reversa
c) Elementos Estructurales
d) Elementos de comportamiento
9) La ingeniería hacia adelante es la creación del código a partir de un modelo
existente.
a) Verdadero
b) Falso
10) ¿Cuáles de los siguientes son verdaderos con respecto a diagramas de
despliegue?
a) Los diagramas de despliegue muestran la disposición de los elementos de
procesamiento en tiempo de ejecución.
b) Un diagrama de despliegue es un grafo de nodos.
c) La relación entre diagramas de componentes y de despliegue es fuerte.
d) Los diagramas de despliegue y los diagramas de interacción tienen una fuerte
relación.
Unidad 6: Modelado Arquitectónico
Libro 1: Análisis y Diseño 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.
196
Guía del Estudiante
Análisis y Diseño de Sistemas Orientado a Objetos
Respuestas a Unidad 4: Examen de Autoevaluación
1) a, b, c y d
2) b
3) a y b
4) a, b y c
5) a, c y d
6) c y d
7) a y b
8) a y b
9) a
10) a, b y c
Libro 1: Análisis y Diseño de Sistemas Orientado a Objetos
Unidad 6: Modelado Arquitectónico
© Copyright IBM Corp. 2007
Los materiales del curso no pueden ser reproducidos total o
parcialmente sin previo permiso escrito de IBM.
197
Descargar