Você está na página 1de 27

Proyecto Final

ADOO

Etapas y actividades en el desarrollo OO basado en UML........................................................... ....4


Etapas............................................................................................................... ...........................4
Análisis de Requerimientos................................................................................................ ..............5
Descripción....................................................................................................................... ............5
Actividades técnicas........................................................................................................... .......5
Documentos Entregables.......................................................................................... ................5
Actividades Técnicas................................................................................................ ....................5
1. Identificar Casos de Uso del sistema........................................................... .........................5
2. Dar detalle a los casos de uso descritos......................................................... ......................6
3. Definir una interfaz inicial del sistema (si es aplicable).................................................... ......6
4. Desarrollar el modelo ..................................................................................... ......................7
5. Validar los modelos...................................................................................... .......................10
Documentos Entregables................................................................................................. ...........11
Diseño del Sistema............................................................................................ ............................12
Descripción..................................................................................................................... ............12
Actividades técnicas......................................................................................................... .......12
Documentos Entregables........................................................................................ ................12

Actividades Técnicas............................................................................................. .....................12


1. Identificar la arquitectura del sistema.............................................................. ....................12
Documentos Entregables.......................................................................................................... ..12
Diseño detallado............................................................................................................................ .13
Descripción..................................................................................................................... ............13
Actividades técnicas......................................................................................................... .......13
Documentos Entregables........................................................................................ ................13
Actividades Técnicas............................................................................................. .....................13
1. Detalles de implementación del modelo............................................................... ...............13
2. Desarrollar el modelo de interfaz.................................................................................... .....14
3. Desarrollar los modelos de control, persistencia y comunicaciones..................... ...............14
Documentos Entregables.......................................................................................................... ..14
Implementación y pruebas................................................................................... ..........................15
Descripción..................................................................................................................... ............15
Actividades técnicas......................................................................................................... .......15
Documentos Entregables........................................................................................ ................15

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 1/27


Proyecto Final

Actividades Técnicas............................................................................................. .....................15


1. Definir estándares de programación.................................................................................... 15
2. Codificación y pruebas unitarias...................................................................................... ....15

3. Pruebas de módulos y de sistema........................................................ ..............................15


Documentos Entregables.......................................................................................................... ..15
Diagramas............................................................................................................................ ..........17
Conceptos de un diagrama de Casos de Uso.......................................................................... ...17
Caso de uso.............................................................................................................. ..............17
Actor..................................................................................................................................... ...18
Relaciones en un diagrama de casos de uso............................................................... ...........18
Elementos básicos en un diagrama de clases (estructura estática)....................................... .....18
Clase............................................................................................................................. ..........19
Atributo............................................................................................................................... .....19
Operación................................................................................................................................ 20
Asociación (rol, multiplicidad, cualificador).............................................................. ................20
Asociación binaria................................................................................................. ..................20
Composición................................................................................................ ...........................21
Agregación................................................................................................................. .............21
Generalización.................................................................................................. ......................21
Clase paramétrica................................................................................................. ..................21
Paquete.............................................................................................................................. .....22
Dependencia............................................................................................................ ...............22
Nota............................................................................................................. ...........................22
Conceptos básicos en un Diagrama de Secuencia.............................................................. .......22
Línea de vida de un objeto..................................................................................... .................23
Activación......................................................................................................................... .......23
Mensaje.................................................................................................... ..............................23
Conceptos básicos en un Diagrama de Colaboración..................................... ...........................24
Objeto........................................................................................................ .............................24
Enlaces............................................................................................................ .......................24
Flujo de mensajes................................................................................................. ..................24
Conceptos básicos en un Diagrama de Estados.......................................... ..............................24
Estado........................................................................................................................... ..........25
Eventos.................................................................................................................. .................25

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 2/27


Proyecto Final

Envío de mensajes............................................................................................................ ......26


Fuentes y Bibliografía................................................................................................................ .....27

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 3/27


Proyecto Final

Etapas y actividades en el desarrollo OO basado en UML

Etapas
• Análisis de Requerimientos

• Diseño del sistema

• Diseño detallado

• Implementación y pruebas
En cada etapa se resaltan las actividades que le dan cuerpo y los documentos que se esperan al
final de cada una de ellas.

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 4/27


Proyecto Final

Análisis de Requerimientos

Descripción
En esta etapa se logra claridad sobre lo que desea el usuario y la forma en la cual se le va a
presentar la solución que está buscando

Actividades técnicas
1. Identificar Casos de Uso del sistema Documentos Entregables
2. Dar detalle a los casos de uso descritos Casos de Uso iniciales
3. Definir una interfaz inicial del sistema (si es aplicable) Borradores de Interfaz
4. Desarrollar el modelo Modelo inicial
5. Validar los modelos

Actividades Técnicas

1. Identificar Casos de Uso del sistema


Esta información se representa en un diagrama de casos de uso.
¿Cómo encontrar un actor?
• Identifique los usuarios del sistema

o Por qué se diseña el sistema?

o Cuáles son los actores que el sistema va a beneficiar?

o Qué actores van a interactuar directamente con el sistema? (actores primarios)

o Qué actores van a supervisar, mantener, recibir información del sistema?


(actores secundarios)

• Identifique los roles que juegan esos usuarios desde el punto de vista del sistema

• Identifique otros sistemas con los cuales exista comunicación

¿Cómo encontrar un caso de uso?


Identifique las operaciones importantes del sistema a construir
¿Cuáles son las principales tareas de un actor?
¿Qué información tiene el actor que consultar, actualizar, modificar? ¿Cómo?
¿Qué cambios del exterior debe informar el actor al sistema?
¿Qué información debe informársele al actor, con respecto a los cambios del sistema?

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 5/27


Proyecto Final

¿Cómo encontrar relaciones entre actores y casos de uso?


Identifique los casos de uso en los cuales se ve implicado un actor
Busque relaciones extends entre casos de uso
¿Qué casos de uso son similares, diferenciándose en la forma en la cual hacen
algunas operaciones?
¿Qué caso de uso redefine la forma en la cual se realiza una transacción dentro
de otro caso de uso?
Busque relaciones uses entre casos de uso
¿Qué casos de uso son usados como transacciones de otros?

2. Dar detalle a los casos de uso descritos


Describir la información de entrada y salida de cada caso de uso

Descripción detallada del caso de uso


• Descripción textual de su objetivo

• Variantes posibles para realizar este caso de uso. Diagramas de interacción de detalle
(de secuencia o colaboración)

• Errores y excepciones posibles en el caso de uso

Relacionar el caso de uso con la interfaz a usuario que lo representa

Especificar el diálogo que da solución al caso de uso (ver definición de interfaz)

3. Definir una interfaz inicial del sistema (si es aplicable)


Dibujar las pantallas de interacción para los distintos actores-usuarios
Copiar el modelo mental del usuario
Revisar los elementos del modelo interesantes para el actor-usuario (Ver Modelo )
Visualización típica de los elementos del modelo
Información relevante para el actor
Metáforas de interacción válidas

Especificar el diálogo que da solución a cada caso de uso que se soluciona con la interacción
con esta interfaz. Puede especificarse este diálogo de varias maneras, dependiendo de la
complejidad de la interfaz definida (en esta etapa se sugiere escoger el mínimo nivel de detalle
posible, para dar más libertad de diseño en las etapas posteriores):

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 6/27


Proyecto Final

1. Por medio de una descripción textual de su funcionamiento

2. Por medio de diagramas de interacción que muestren la secuencia de operaciones


entre los objetos de interfaz y los actores involucrados

3. Por medio de diagramas de estados, donde se muestre claramente los estados de la


interfaz
Por medio de un prototipo funcional, en términos de la interacción con el usuario

Definir restricciones para la comunicación con actores y sistemas


Describir en el detalle del actor o de la relación con el caso de uso particular

4. Desarrollar el modelo
Esta información se representa en un diagrama de estructura estática de clases.
Identificar Clases
• Elementos físicos y lógicos dentro del sistema a modelar

• Top-down: Comenzar por la clase del objeto más general. Encontrar sus componentes
hasta llegar a clases de tipos básicos

• Identificar los sustantivos del enunciado del problema y determinar si son clases del
modelo

• Identificar clases desde el punto de vista de la información

o Identifique los elementos del espacio del problema

o Identifique otros sistemas relacionados como objetos externos

o Identifique dispositivos relacionados

o Identifique los eventos que el sistema debe recordar y manipular

o Identifique los roles de los elementos del modelo

o Identifique sitios

o Identifique unidades organizacionales importantes en el problema

• Identificar clases desde el punto de vista funcional (casos de uso)

o Identifique los objetos que participan en un caso de uso particular

o Continúe con los mensajes de cada objeto, dejando para el final los atributos.

• Identificar clases desde el punto de vista de sus estados

o ¿En qué estados está en sistema? ¿Cuáles objetos determinan estos estados?

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 7/27


Proyecto Final

o ¿Cómo es el ciclo de vida de estos objetos?


Posibles errores:
• Una clase HACE en vez de una clase ES

• Solo se requiere un objeto de la clase

• Dificultad para encontrar atributos

• Objetos con iniciativa propia

• Es un objeto y un usuario a la vez

• Solo se encuentra un servicio

• Varias clases tienen los mismos atributos o métodos

• Solo tienen información o mensajes no relevantes para el problema

• Vista Funcional: Dividir un sistema de la manera clásica

Identificar atributos y asociaciones.


• ¿Cuáles son las características determinantes del objeto en el dominio del problema?

• ¿Con qué objetos esta relacionado?

• ¿Con qué objetos debe estar relacionado para realizar sus mensajes?

• Identificar el nombre, los roles y cardinalidad de las asociaciones

• ¿Qué asociaciones hay de tipo partes y un todo (composición)?

• ¿Qué información se requiere en una clase para realizar su comportamiento?


Posibles errores
• Identificar atributos o relaciones no relevantes a los casos de uso identificados

• Las relaciones no reflejan directamente la realidad

Identificar mensajes
• Punto de vista funcional

o ¿Qué mensajes debe tener un objeto para colaborar en un caso de uso?

• Punto de vista de comportamiento

o ¿Qué comportamiento se espera de un objeto dado en el modelo?

o ¿Qué mensajes se requieren para manipular la información que contienen?

o ¿Qué mensajes requieren para manipular las relaciones que tiene?

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 8/27


Proyecto Final

o ¿Qué mensajes hacen que el objeto cambie de un estado a otro?


Posibles errores
• Identificar métodos no relevantes a los casos de uso identificados

• Identificar métodos que no puede realizar la clase por falta de información

Identificar relaciones de herencia


• ¿Qué clases son abstracciones naturales de clases ya existentes?

• ¿Qué clases comparten atributos o métodos?

• ¿Qué clases extienden atributos o métodos de otras?


Posibles Errores
• No tener una relación Es Un entre las clases

Identificar restricciones del modelo


• Identificar valores posibles y no posibles de los atributos. Describirlos como
restricciones de las clases

• Identificar valores permitidos para las asociaciones. Describirlos como restricciones de


la asociación

• Identificar restricciones que relaciones dos o más atributos o relaciones. Describirlas


dentro de la clase correspondiente
Posibles errores
• Hay estados en el modelo imposibles en el mundo real

• Hay estados en el mundo real no considerados en el modelo

Identificar paquetes
• ¿Qué subdivisiones lógicas pueden tener las clases identificadas?

• ¿Que subconjunto de clases y casos de uso pueden ser reutilizados en otros


dominios?

• Combinar clases fuertemente relacionadas en un paquete

• Combinar clases que tienen que ver con los mismos casos de uso en un paquete

Consideraciones de reutilización
• Reutilizar modelos de dominio existentes

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 9/27


Proyecto Final

• Identificar posibles variantes en el futuro tenerlas en cuenta para diseño (patrones)

5. Validar los modelos

Validar las restricciones descritas para las clases


• Para cada clase evaluar la completitud de las restricciones

• Desarrollar objetos ejemplo que cumplan con las restricciones y que no sean válidos en
el mundo real

Validar atributos y mensajes


• La clase tiene toda la información necesaria para desarrollar la tarea?

• La clase tiene las relaciones necesarias para propagar el mensaje y cumplir con la
tarea?

• Los mensajes si son utilizados dentro del contexto del problema?

• Los mensajes obligan la conservación de las restricciones del modelo?

Desarrollar diagramas de interacción (diagramas de secuencia o de colaboración) para la


variante por defecto de cada caso de uso, usando los objetos del modelo encontrados y sus
mensajes.
• Escoger la opción por defecto de cada caso de uso

• Identificar los objetos involucrados

• Desarrollar el diagrama de secuencia o el de colaboración para la interacción

Validar los diagramas de Interacción


• Todo mensaje de un objeto a otro implica una asociación y un rol en el diagrama de
clases

• Todo mensaje está definido en su correspondiente clase

• Opcional: Completar el diagrama de clases con asociaciones de dependencia a las


clases de los argumentos de los mensajes

Validar con un experto del dominio


• Validar estructura del modelo

• Validar funcionalidad esperada del sistema

• Validar los diagramas de interacción descritos como detalle de los casos de uso

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 10/27


Proyecto Final

Validar con un usuario representativo de cada actor


• Validar la funcionalidad esperada para el actor en particular: completitud, relevancia

• Validar los diagramas de interacción descritos como detalle de los casos de uso del
actor

• Validar la interfaz diseñada y el diálogo descrito

Iterar si es necesaria más información

Documentos Entregables
Requerimientos más importantes del sistema
Casos de Uso iniciales Usuarios y sistemas externos en comunicación
Especificación de requerimientos
Presentaciones iniciales para los distintos usuarios de la forma de
Borradores de Interfaz
solucionar sus requerimientos
Modelo inicial. Versión de
Clases, relaciones entre clases y especificación
requerimientos

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 11/27


Proyecto Final

Diseño del Sistema

Descripción
En esta etapa se define una subdivisión en aplicaciones del sistema (si es lo suficientemente
grande) y la forma de
comunicación con los sistemas ya existentes con los cuales debe interactuar

Actividades técnicas Documentos Entregables


1. Identificar la arquitectura del sistema Diagramas de Ejecución, versión inicial

Actividades Técnicas

1. Identificar la arquitectura del sistema


Definir componentes del sistema, las aplicaciones y su ubicación. Representarlos por medio
de nodos, componentes y objetos activos (representando las aplicaciones) dentro de los
nodos.
Definir mecanismos de comunicación. Expresarlos por medio de asociaciones de dependencia
entre los nodos, componentes o aplicaciones y, si es conocido, agregar un estereotipo para
definir el protocolo de comunicación requerido. Agregar notas con restricciones, rendimiento
esperado y demás detalles de las conexiones.
Particularizar los casos de uso a la arquitectura planteada. Refinar los casos de uso ya
existentes de la etapa anterior para adecuarse a la arquitectura planteada.
Validar arquitectura. Comprobar la validez técnica, económica y organizacional de la
propuesta.

Documentos Entregables
Procesadores
Procesos
Diagramas de Ejecución, versión inicial
Mecanismos de comunicación
Descripción detallada

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 12/27


Proyecto Final

Diseño detallado

Descripción
En esta etapa se adecua el análisis a las características específicas del ambiente de
implementación y se completan las
distintas aplicaciones del sistema con los modelos de control, interfaz o comunicaciones, según
sea el caso.

Documentos Entregables
Actividades técnicas
Diagramas de clases y paquetes, con el detalle de la
1. Agregar detalles de implementación al
implementación
modelo
Diagramas de interacción con el detalle de las
2. Desarrollar el modelo de interfaz
operaciones más importantes del sistema
3. Desarrollar los modelos de control,
Diagramas de estados y/o actividades para las clases
persistencia y comunicaciones
concurrentes o complejas

Actividades Técnicas

1. Detalles de implementación del modelo


Completar el detalle de las clases:
Tipos de los atributos
Atributos y métodos de clase
Diseño de asociaciones
Completar los métodos
Enriquecer el modelo con el framework de base en el ambiente de implementación escogido
Incorporar patrones de diseño
Subdividir en paquetes
Definir excepciones
Completar comportamiento de las clases: Constructores, destructores, modificadores,
consultores
Adecuar el modelo a las características del lenguaje de programación
Evaluar eficiencia
Validar el sistema

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 13/27


Proyecto Final

2. Desarrollar el modelo de interfaz


Conocer el framework de base
Enlazar las clases de interfaz con las clases del modelo

3. Desarrollar los modelos de control, persistencia y comunicaciones


Conocer los frameworks de base
Enlazar las clases del framework con las demás clases del sistema

Documentos Entregables
Diagramas de clases y paquetes, con el detalle de la implementación
Diagramas de interacción con el detalle de las operaciones más importantes del sistema
Diagramas de estados y/o actividades para las clases concurrentes o complejas

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 14/27


Proyecto Final

Implementación y pruebas

Descripción

Actividades técnicas Documentos Entregables


1. Definir estándares de programación Código fuente
2. Codificación y pruebas unitarias Soporte de pruebas unitarias
3. Pruebas de módulos y de sistema Documentación del código

Actividades Técnicas

1. Definir estándares de programación


Asimilar los idiomas aplicables al lenguaje
Conocer y adecuar estándares de programación al lenguaje
Definir estructura de directorios
Diseñar Solución

2. Codificación y pruebas unitarias


Revisiones de código
Tratamiento de Trace y Log

3. Pruebas de módulos y de sistema


Casos de prueba
Procedimiento de instalación

Documentos Entregables
Código fuente

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 15/27


Proyecto Final

Soporte de pruebas unitarias


Documentación del código

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 16/27


Proyecto Final

Diagramas
Máquina de Café
Supongamos que se requiere desarrollar el control de una máquina de entrega de café
automática.
La máquina debe permitir a una persona entregar una cantidad de dinero en monedas de 100,
200 o 500, escoger uno de los productos de acuerdo a su precio (café negro, café claro, caldo),
escoger (si es pertinente) un nivel de azúcar y entregar el producto y los vueltos. El dinero que los
usuarios introducen se guarda en un recipiente aparte al disponible para vueltos, el cual se
encuentra ordenado por denominación.

Existen estados de error de la máquina, cuando detecta un mal funcionamiento, no existencia de


vueltos o no existencia de ingredientes.

El usuario puede en cualquier momento antes de escoger el azúcar cancelar la operación,


mediante un botón existente para este objetivo.

Conceptos de un diagrama de Casos de Uso


Un diagrama de Casos de Uso muestra las distintas operaciones que se esperan de una
aplicación o sistema y cómo se relaciona con su entorno (usuarios u otras aplicaciones).
Se muestra como ilustración los casos de uso de la máquina de café.

Caso de uso
Se representa en el diagrama por una elipse, denota un requerimiento solucionado por el sistema.
Cada caso de uso es una operación completa desarrollada por los actores y por el sistema en un
diálogo. El conjunto de casos de uso representa la totalidad de operaciones desarrolladas por el

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 17/27


Proyecto Final

sistema. Va acompañado de un nombre significativo. En el caso del ejemplo se tienen como casos
de uso de la cafetera RecibirDinero, PedirAzucar, PedirProducto, DarVueltas y Cancelar.

Actor
Es un usuario del sistema, que necesita o usa algunos de los casos de uso. Se representa

mediante un , acompañado de un nombre significativo, si es necesario.

Relaciones en un diagrama de casos de uso


Entre los elementos de un diagrama de Casos de uso se pueden presentar tres tipos de
relaciones, representadas por líneas dirigidas entre ellos (del elemento dependiente al
independiente)
Comunica (communicates). Relación entre un actor y un caso de uso, denota la
participación del actor en el caso de uso determinado. En el diagrama de ejemplo todas las
líneas que salen del actor denotan este tipo de relación.
Usa (uses). Relación entre dos casos de uso, denota la inclusión del comportamiento de
un escenario en otro. En el caso del ejemplo el caso de uso Cancelar incluye en su
comportamiento DarVueltas; y PedirProducto incluye también DarVueltas

Extiende (extends). Relación entre dos casos de uso, denota cuando un caso de uso es
una especialización de otro. Por ejemplo, podría tenerse un caso de uso que extienda la
forma de pedir azúcar, parta que permita escoger el tipo de azúcar (normal, dietético
moreno) y además la cantidad en las unidades adecuadas para cada caso (cucharaditas,
bolsitas o cucharaditas, respectivamente). Un posible diagrama se muestra a continuación.

Elementos básicos en un diagrama de clases (estructura estática)


Un diagrama de estructura estática muestra el conjunto de clases y objetos importantes que
hacen parte de un sistema, junto con las relaciones existentes entre estas clases y objetos.
Muestra de una manera estática la estructura de información del sistema y la visibilidad que tiene
cada una de las clases, dada por sus relaciones con las demás en el modelo.
Supongamos el modelado de una máquina de café. Un diagrama de estructura estática inicial
podría ser:

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 18/27


Proyecto Final

Clase
Representada por un rectángulo con tres divisiones internas, son los elementos fundamentales del
diagrama. Una clase describe un conjunto de objetos con características y comportamiento
idéntico. En el ejemplo se encuentran las clases Ingrediente, Producto, Maquina,
DepositoMonedas y DepositoMonedasIguales.
Los tres compartimientos estándares alojan el nombre de la clase, sus atributos y sus mensajes,
respectivamente.

Atributo
Identifican las características propias de cada clase. Generalmente son de tipos simples, ya que
los atributos de tipos compuestos se representan mediante asociaciones de composición con
otras clases. La sintaxis de un atributo es
visibility name : type-expression = initial-value { property-string }
Donde visibility es uno de los siguientes:
+ public visibility
# protected visibility
- private visibility
type-expression es el tipo del atributo con nombre name. Puede especificarse como se ve un valor
inicial y un conjunto de propiedades del atributo.

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 19/27


Proyecto Final

En el caso del ejemplo, la clase Ingrediente tiene dos atributos: uno denominado cantidad, de tipo
float y con valor inicial 0; y el atributo nombre de tipo string sin valor inicial. En este caso, la
herramienta utilizada ha cambiado la representación de la visibilidad, utilizando el símbolo para
indicar visibilidad privada, el símbolo para visibilidad protegida y el símbolo para indicar
visibilidad pública.

Operación
El conjunto de operaciones describen el comportamiento de los objetos de una clase. La sintaxis
de una operación en UML es
visibility name ( parameter-list ) : return-type-expression { property-string }
Cada uno de los parámetros en parameter-list se denota igual que un atributo. Los demás
elementos son los mismos encontrados en la notación de un atributo.

Asociación (rol, multiplicidad, cualificador)


Una asociación en general es una línea que une dos o más símbolos. Pueden tener varios tipos
de adornos, que definen su semántica y características. Los tipos de asociaciones entre clases
presentes en un diagrama estático son:
1. Asociación binaria

2. Asociación n-aria

3. Composición

4. Generalización

5. Refinamiento
Cada asociación puede presentar algunos elementos adicionales que dan detalle a la relación,
como son:
Rol: Identificado como un nombres al los finales de la línea, describe la semántica de la
relación en el sentido indicado. Por ejemplo, la asociación de composición entre Maquina e
Ingrediente recibe el nombre de existencias, como rol en ese sentido
Multiplicidad: Describe la cardinalidad de la relación. En el ejemplo anterior se utilizan 1, 1
..*, 5, *, como indicadores de multiplicidad.

Asociación binaria
Se identifica como una línea sólida que une dos clases. Representa una relación de algún tipo
entre las dos clases, no muy fuerte (es decir, no se exige dependencia existencial ni
encapsulamiento).
En posible ejemplo es la relación entre una compañía y sus empleados

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 20/27


Proyecto Final

en este caso la relación recibe el nombre genérico Trabaja Para, la compañía tiene uno o más
instancias de la clase Persona denominadas empleado y cada empleado conoce su empleador
(en este caso único).

Composición
Es una asociación fuerte, que implica tres cosas
• Dependencia existencial. El elemento dependiente desaparece al destruirse el que lo
contiene y, si es de cardinalidad 1, es creado al mismo tiempo.

• Hay una pertenencia fuerte. Se puede decir que el objeto contenido es parte constitutiva y
vital del que lo contiene

• Los objetos contenidos no son compartidos, esto es, no hacen parte del estado de otro
objeto.
Se denota dibujando un rombo relleno del lado de la clase que contiene a la otra en la relación. En
el ejemplo inicial de esta hoja se presentan varios ejemplos de relaciones de composición entre
Maquina y Producto, Maquina y DepositoMonedas y Maquina y DepositoMonedasIguales.

Agregación
Existe también una relación de composición menos fuerte (no se exige dependencia existencial,
por ejemplo) que es denotada por un rombo sin rellenar en uno de los extremos. Un ejemplo
puede encontrarse entre Producto e Ingrediente.

Generalización
La relación de generalización denota una relación de herencia entre clases. Se representa
dibujando un triángulo sin rellenar en el lado de la superclase. La subclase hereda todos los
atributos y mensajes descritos en la superclase. En el ejemplo se encuentra una generalización
entre DepositoMonedas (superclase) y DepositoMonedasIguales (subclase).

Clase paramétrica
Una clase paramétrica representa el concepto de clase genérica en los conceptos básicos OO o
de template en C++. Se dibuja como una clase acompañada de un rectángulo en la esquina
superior derecha, con los parámetros del caso.
Por ejemplo, la clase Lista que utiliza un parámetro formal Tipo se vería de la siguiente manera

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 21/27


Proyecto Final

Paquete
Un paquete es una forma de agrupar clases (u otros elementos en otro tipo de diagramas) en
modelos grandes. Pueden tener asociaciones de dependencia o de generalización entre ellos. Un
ejemplo puede ser el siguiente

En este caso existen tres paquetes (que se muestran vacíos en este caso, con su contenido
encapsulado), con dos de ellos dependiendo del Modelo.

Dependencia
Denota una relación semántica entre dos elementos (clases o paquetes, por el momento) del
modelo. Indica que cambiar el elemento independiente puede requerir cambios en los
dependientes. Se muestra como una línea punteada direccional, indicando el sentido de la
dependencia. Puede tener por medio de estereotipos una explicación del tipo de dependencia
presentada.
En el ejemplo anterior pueden verse dos relaciones de dependencia hacia el paquete Modelo.

Nota
Es un comentario dentro de un diagrama. Puede estar relacionado con uno o más elementos en el
diagrama mediante líneas punteadas. Pueden representar aclaraciones al diagrama o
restricciones sobre los elementos relacionados (cuando el texto se encuentra entre '['y ']'). Se
representa mediante un rectángulo con su borde superior derecho doblado.
En el ejemplo inicial de esta hoja se encuentran dos notas: Una relacionada con la clase máquina
y otra con el depósito de monedas iguales.

Conceptos básicos en un Diagrama de Secuencia


Un diagrama de secuencia muestra la interacción de un conjunto de objetos en una aplicación a
través del tiempo. Esta descripción es importante porque puede dar detalle a los casos de uso,
aclarándolos al nivel de mensajes de los objetos existentes, como también muestra el uso de los
mensajes de las clases diseñadas en el contexto de una operación.

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 22/27


Proyecto Final

A continuación se muestra un ejemplo de diagrama de secuencia, que da detalle al caso de uso


PedirProducto del ejemplo de la cafetera.

Línea de vida de un objeto


Un objeto se representa como una línea vertical punteada con un rectángulo de encabezado y con
rectángulos a través de la línea principal que denotan la ejecución de métodos (véase activación).
El rectángulo de encabezado contiene el nombre del objeto y el de su clase, en un formato
nombreObjeto: nombreClase. Por ejemplo, el objeto m, instancia de la clase MaquinaCafe envía
dos mensajes seguidos para dar respuesta a la operación PedirProducto: Servir al objeto p de la
clase Producto y DarVueltas a sí mismo.

Activación
Muestra el periodo de tiempo en el cual el objeto se encuentra desarrollando alguna operación,
bien sea por sí mismo o por medio de delegación a alguno de sus atributos. Se denota como un
rectángulo delgado sobre la línea de vida del objeto. En el ejemplo anterior el objeto
_ingredientes se encuentra activado mientras ejecuta el método correspondiente al mensaje
Servir; el objeto p se encuentra activo mientras se ejecuta su método Servir (que ejecuta
_ingredientes.Servir) y el objeto m se encuentra activo mientras se ejecuta p.Servir y DarVueltos.

Mensaje
El envío de mensajes entre objetos se denota mediante una línea sólida dirigida, desde el objeto
que emite el mensaje hacia el objeto que lo ejecuta. En el ejemplo anterior el objeto m envía el
mensaje Servir al objeto p y un poco más adelante en el tiempo el objeto m se envía a sí mismo el
mensaje DarVueltos.

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 23/27


Proyecto Final

Conceptos básicos en un Diagrama de Colaboración


Un diagrama de colaboración es una forma de representar interacción entre objetos, alterna al
diagrama de secuencia. A diferencia de los diagramas de secuencia, pueden mostrar el contexto
de la operación (cuáles objetos son atributos, cuáles temporales,...) y ciclos en la ejecución. Se
toma como ejemplo el caso de uso PedirProducto ya descrito como diagrama de secuencia.

Objeto
Un objeto se representa con un rectángulo, que contiene el nombre y la clase del objeto en un
formato nombreObjeto: nombreClase.

Enlaces
Un enlace es una instancia de una asociación en un diagrama de clases. Se representa como una
línea continua que une a dos objetos. Esta acompañada por un número que indica el orden dentro
de la interacción y por un estereotipo que indica que tipo de objeto recibe el mensaje. Pueden
darse varios niveles de subíndices para indicar anidamiento de operaciones. Los estereotipos
indican si el objeto que recibe el mensaje es un atributo (association y se asume por defecto), un
parámetro de un mensaje anterior, si es un objeto local o global.

Flujo de mensajes
Expresa el envío de un mensaje. Se representa mediante una flecha dirigida cercana a un enlace.

Conceptos básicos en un Diagrama de Estados


Muestra el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación,
junto con los cambios que permiten pasar de un estado a otro. Un ejemplo en el caso de la
cafetera son los estados posibles para la clase MaquinaCafe:

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 24/27


Proyecto Final

Estado
Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto esta esperando
alguna operación, tiene cierto estado característico o puede recibir cierto tipo de estímulos. Se
representa mediante un rectángulo con los bordes redondeados, que puede tener tres
compartimientos: uno para el nombre, otro para el valor característico de los atributos del objeto
en ese estado y otro para las acciones que se realizan al entrar, salir o estar en un estado (entry,
exit o do, respectivamente). En el caso del ejemplo anterior, se tienen cuatro estados
(EnFuncionamiento, SinCambio, SinIngredientes, MalFuncionamiento), en los cuales se
desarrollan ciertas acciones al entrar; por ejemplo, al entrar al estado SinIngredientes se debe
realizar la acción "Indicador SinIngredientes en On".

Se marcan también los estados iniciales y finales mediante los símbolos y ,


respectivamente.

Eventos
Es una ocurrencia que puede causar la transición de un estado a otro de un objeto. Esta
ocurrencia puede ser una de varias cosas:
• Condición que toma el valor de verdadero o falso

• Recepción de una señal de otro objeto en el modelo

• Recepción de un mensaje

• Paso de cierto período de tiempo, después de entrar al estado o de cierta hora y fecha
particular

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 25/27


Proyecto Final

El nombre de un evento tiene alcance dentro del paquete en el cual está definido, no es local a la
clase que lo nombre.
En el caso del ejemplo anterior se encuentra nombrado en varias transiciones el evento
userInput, que recibe como parámetro un Button, para indicar el botón que ha sido presionado
por el usuario de la máquina de café.

Envío de mensajes
Además de mostrar y transición de estados por medio de eventos, puede representarse el
momento en el cual se envían mensajes a otros objetos. Esto se realiza mediante una línea
punteada dirigida al diagrama de estados del objeto receptor del mensaje.

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 26/27


Proyecto Final

Fuentes y Bibliografía
http://www.cs.ualberta.ca/~pfiguero/soo/metod/uml-met.html
Pablo Figueroa Versión 1.1

Proyecto Final Análisis y Diseño Orientado a Objetos Pág. 27/27

Você também pode gostar