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