ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS

PROCESO:
PARTIENDO DE LOS CASOS DE USO
ANÁLISIS DE CASOS DE USO
- Identificar las clases que ejecutan el flujo de sucesos de un caso de uso
- Distribuir el comportamiento del caso de uso a esas clases, utilizando realizaciones de caso de uso de análisis
- Identificar las responsabilidades, los atributos y las asociaciones de las clases
- Tener en cuenta el uso de mecanismos de arquitectura
ROLES
- DISEÑADOR
ENTRADAS
CASO DE USO
SALIDAS
- MODELO ENTIDAD - RELACIÓN
- ANÁLISIS DE CLASES
- EJECUCIÓN CASOS DE USO
- MODELO DE ANÁLISIS
PROCESO DE
ANÁLISIS
PROCESO: ANÁLISIS
1. Identificar
Objetos
Entidad
2. Identificar
Objetos
Frontera
3. Identificar
Objetos
Control
5. Modelo de interacciones
6. Identificar Asociaciones
7. Identificación
de atributos
8. Modelado de relaciones de generalización
4. Diseño de
Pruebas
Unitarias
2.1. Diseño de
Pruebas
Integración
PROCESO: ANÁLISIS
1. Identificar
Objetos
Entidad
2. Identificar
Objetos
Frontera
3. Identificar
Objetos
Control
5. Modelo de interacciones
6. Identificar Asociaciones
7. Identificación
de atributos
8. Modelado de relaciones de generalización
4. Diseño de
Pruebas
Unitarias
2.1. Diseño de
Pruebas
Integración
IDENTIFICACIÓN DE OBJETOS
Cómo identificar objetos para el proceeso de diseño?
- Cosas tangibles: (Persona, Nota, Materia, Televisor)
- Roles: (Papeles desempeñados por personas)
- Organizaciones: (Empresas, Clasificaciones, divisiones)
- Incidentes: (Sucesos, Eventos automatizados, accidentes)
- Interacciones: (Transiciones, contratos, compras, matrimonio)
- Lugares: (Salas, Edificios, Almacenes)
IDENTIFICACIÓN DE OBJETOS
Cómo clasificar los objetos?
- Objetos entidad: (Representación de la información, incluyendo las características de los objetos (Atributos))
- Objetos frontera: (Objetos que representan interfaces con el usuario u otro sistema externo)
- Objetos control: (Objetos que contienen la lógica de negocio, o lógica para gestionar los objetos entidad, Permiten relacionar los objetos frontera con las entidades)
IDENTIFICACIÓN DE OBJETOS
Cómo clasificar los objetos?
- Partimos de los casos de uso, por lo tanto se requiere que los casos de uso sean claros (Estén bien especificados)
- Análisis gramatical somero de la secuencia de pasos del caso de uso (Referencia)
-
Crea el diccionario basado en ese análisis
- Identificar las palabras
- Clarificarlas en Clases, Atributos y métodos
prestamo
libro
bibliotecario
usuario
biblioteca
Objetos
Metodos
Atributos
Registrar
Datos identificativos
(cuales son?)
fecha devolución
Registrar
devolucion
EJEMPLO DE GLOSARIO
IDENTIFICACIÓN DE OBJETOS CONTROL
- Teniendo los objetos entidad identificados
- Mirar que lógica de negocio se requiere implementar para la gestión de esos objetos
- Por cada objeto entidad, debería existir un objeto de control como mínimo
Persona
PersonaControl
Agregar persona
get - set
DAO
Persona
Lea las personas
de la base de datos
PROCESO: ANÁLISIS
1. Identificar
Objetos
Entidad
2. Identificar
Objetos
Frontera
3. Identificar
Objetos
Control
5. Modelo de interacciones
6. Identificar Asociaciones
7. Identificación
de atributos
8. Modelado de relaciones de generalización
4. Diseño de
Pruebas
Unitarias
2.1. Diseño de
Pruebas
Integración
MODELO DE
INTERACCIONES
- DIAGRAMAS DE SECUENCIAS
- DIAGRAMAS DE ACTIVIDADES
DIAGRAMA DE
SECUENCIAS
Es una herramienta de UML que se centra en las líneas de vida o los procesos y los objectos involucrados en dicho proceso.
La comunicación entre los objetos (Envío de mensajes entre objetos).
UML: UNIFIED MODEL LANGUAGE
Ejemplo: diagrama de secuencia

Diagrama de secuencia
BENEFICIOS
- Representar detalles del caso de uso (FLUJO DE SECUENCIA).
- Modelar la lógica de una operación, una función o un procedimiento complejo.
- Planificar y comprender la funcionalidad detallada de un escenario actual o futuro.
Diagrama de secuencia
ESCENARIOS DE USO DE DIAGRAMAS DE SECUENCIA
- Cuándo se necesita potenciar (Optimizar) el sistema.
- Cuándo la lógica es compleja.
- Si se considera que un servicio es un método de alto nivel empleado por muchos clientes.
Diagrama de secuencia
COMPONENTES
Símbolo de objeto/clase
Símbolo Nombre Descripción
Representa una clase u objeto en UML
Casilla de activación
Representa el tiempo necesario para que un objeto finalice una tarea.
Diagrama de secuencia
COMPONENTES
Símbolo de actor
Símbolo Nombre Descripción
Muestra entidades externas que interactuan con nuestro sistema
Símbolo de paquete
Contiene los elementos interactivos del diagrama


Diagrama de secuencia
COMPONENTES
Símbolo línea de vida
Símbolo Nombre Descripción
Representa el paso de tiempo a medida que se extiende hacia abajo.
Símbolo de bucle de opción
Se utiliza para representar el escenario "Si ... Entonces ..."
:User

Diagrama de secuencia
COMPONENTES
Símbolo de mensaje sincrónico
Símbolo Nombre Descripción
Se utiliza cuando el remitente debe esperar una respuesta a un mensaje antes de seguir, el diagrama debe mostrar el mensaje y la respuesta.
Diagrama de secuencia
COMPONENTES
Símbolo de mensaje asincrónico
Símbolo Nombre Descripción
Se utiliza cuando el remitente no necesita una respuesta para seguir adelante.
Sólo se incluye la llamada en el diagrama.
Diagrama de secuencia
COMPONENTES
Símbolo de mensaje asincrónico
Símbolo Nombre Descripción
Si se quiere representar la respuesta asíncrona de un método.
Diagrama de secuencia
COMPONENTES
Símbolo de mensaje sincrónico
Símbolo Nombre Descripción
Son las respuestas a las llamadas síncronas.
<<create>>
Símbolo de crear mensaje asincrónico
Se utiliza para crear nuevos objetos
FRONTERA
CONTROL
ENTIDAD
ACTOR

PROCESO: ANÁLISIS
1. Identificar
Objetos
Entidad
2. Identificar
Objetos
Frontera
3. Identificar
Objetos
Control
5. Modelo de interacciones
6. Identificar Asociaciones
7. Identificación
de atributos
8. Modelado de relaciones de generalización
4. Diseño de
Pruebas
Unitarias
2.1. Diseño de
Pruebas
Integración
Vínculos entre objetos
Cuando definimos los objetos entidad, frontera y control, obtenemos objetos aislados, pero en la realidad los objetos colaboran entre si (Intercambian información entre ellos, o se relacionan de alguna manera)
MANTIENEN DISTINTOS TIPOS DE VÍNCULOS ENTRE ELLOS
Relaciones
- Los vínculos entre objetos se modelan como relaciones entre la clases
- Los objetos contribuyen en el comportamiento de un sistema, colaborando y comunicándose entre si

Relaciones
- Los vínculos entre objetos se modelan como relaciones entre la clases
- Los objetos contribuyen en el comportamiento de un sistema, colaborando y comunicándose entre si

Trabaja en: Es el nombre de la relación y se pone para evitar ambiguedades
Elementos de una relación
- Rol: Un rol es la representación de un extremo de la relación para cada clase, es decir que rol desempeña una clase en determinada relación

Elementos de una relación
- Multiplicidad: Representa el número de objetos que pueden conectarse a través de una relación.
- Exactamente uno (1)
- Cero o uno (0..1)
- Muchos (0..*)
- Uno o más (1..*)
- Valor exacto (Por ejemplo 3)

Elementos de una relación
- Navegabilidad: Indica la visibilidad de la asociación, es decir que clase referencia a la otra

EJERCICIO: CASO DE USO
RESERVAR PASAJE
- DIAGRAMA DE CLASES
(CLASES FRONTERA, CLASES CONTROL Y CLASES ENTIDAD)
- RELACIONES
PROCESO: ANÁLISIS
1. Identificar
Objetos
Entidad
2. Identificar
Objetos
Frontera
3. Identificar
Objetos
Control
5. Modelo de interacciones
6. Identificar Asociaciones
7. Identificación
de atributos
8. Modelado de relaciones de generalización
4. Diseño de
Pruebas
Unitarias
2.1. Diseño de
Pruebas
Integración
Identificación de atributos
- Son propiedades de los objetos
- Almacenan valores
Atributos clase Vehículo
- Placa: String
- Modelo: String
- Color: String
- Cilindraje: Integer
- Capacidad: Integer
- Marca: String
Atributos clase Vehículo
Estrategias de gestión de atributos
- Encapsulamiento
- Seguridad: Cada atributo es privado ( + para publico, - para privado)
- Solamente se pueden modificar los atributos mediante Métodos get y set
Cada atributo tiene su tipo de datos (Primitivo o Abstracto)
- Fluent API
- Se crean métodos With para modificar los datos
- Se crea un método Build (Opcional) que hace alguna operación sobre el objeto
Modificadores de acceso (Java / C#)
- Public
- Private
- Protected
Modificadores de acceso (Java / C#)
| Modificador | Clase | Paquete | Resto del proyecto |
|---|---|---|---|
| public | Si | Si | Si |
| protected | Si | Si | No |
| private | Si | No | No |
| no especificado | Si | Si | No |
ANALISIS Y DISEÑO ORIENTADO
By Ricardo Bermúdez
ANALISIS Y DISEÑO ORIENTADO
- 399