70
Tema XIII: Proceso Unificado: Diseño Diana Marcela Sánchez Fúquene Análisis y Diseño Orientado a Objetos

[IS-LADE_2012-13]T16 - PU - Diseño 2012

Embed Size (px)

DESCRIPTION

la descripción de como son los procesos de de diseño utilizando la metodología de rup

Citation preview

Page 1: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Tema XIII:

Proceso Unificado: Diseño

Diana Marcela Sánchez Fúquene Análisis y Diseño Orientado a Objetos

Page 2: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Índice

Visión general

Artefactos Modelo de diseño

Clases de diseño

Realización en diseño de los casos de uso

Subsistemas en diseño

Interfaz

Actividades Diseño de los casos de uso

Diseño de las clases

Diseño de subsistemas

2 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 3: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Visión general

Requisitos

Diseño

Implementación

Prueba

Análisis

Planificación Anál. Riesgos Preparación

Elaboración Construcción Verificación

Transición

Fases Flujos de trabajo

Iteración(es) Inicial(es)

Iter. #1

Iter. #2

Iter. #3

Iter. #4

Iter. #5

Iter. #6

Iter. #7

(Adaptado de Jacobson, 1999)

3 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 4: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Modelo de análisis

Modelo de diseño

Modelo de despliegue

Modelo de implementación

Modelo de pruebas

Modelo de casos de uso

Diseño Visión general

4 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 5: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Requisitos

Pruebas

Implementación

Diseño

Análisis

Modelo de Despliegue

Modelo de

Análisis

Modelo de Diseño

Modelo de Implementación

Modelo de Pruebas

Modelo de Casos de Uso

Dependencia de traza

Diseño Visión general

5 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 6: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Visión general

Objetivos del diseño: Acercar el modelo de análisis al modelo de implementación

Los milagros más comunes de la ingeniería del software son las transiciones desde el análisis hasta el diseño y desde el diseño al código. Richard Due

Identificar requisitos no funcionales y restricciones en relación a: Lenguajes de programación, reutilización de componentes, sistemas

operativos, tecnologías de distribución, concurrencia, bases de datos, interfaces de usuario, gestión de transacciones, etc.

Descomponer el modelo de análisis en subsistemas que puedan desarrollarse en paralelo

Definir la interfaz de cada subsistema

Derivar una representación arquitectónica del sistema

6 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 7: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Visión general

Diagrama de Subsistemas

Diagramas de Clases de

Diseño

Diagramas de Interacción

Esquemas de Bases de

Datos OO

Formularios, Reportes,

Interfaz Gráfica

Sistemas de Seguridad y de control

Diagrama de Despliegue y

Nodos

7 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 8: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Visión general

Se modela el sistema para que dé soporte a los requisitos funcionales y no funcionales

Su entrada esencial es el modelo de análisis (una comprensión detallada de los requisitos)

Objetivos: Profundizar en los requisitos no funcionales y restricciones dependientes

de la plataforma. Crear una entrada apropiada para la implementación Descomponer los trabajos de implementación en partes mas manejables

y que permitan concurrencia. Utilización de subsistemas Capturar las interfaces entre los subsistemas.

Es el centro de atención final de la fase de elaboración e iteraciones

iniciales de la fase de construcción

8 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 9: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Visión general

Modelo de Análisis Modelo de Diseño

Abstracción del sistema Modelo físico. Plano de implementación

Genérico respecto al diseño (pueden obtenerse varios diseños)

No genérico. Específico a una implementación

Menos formal y menos caro de desarrollar Más formal y mas caro de desarrollar (5 veces mas)

Bosquejo del diseño del sistema Manifiesto del diseño del sistema

No necesariamente tiene que estar mantenido durante todo el ciclo de vida del software

Debe ser mantenido durante todo el ciclo de vida

Entrada esencial para modelar el sistema Da forma al sistema mientras intenta preservar la estructura heredada del modelo de análisis

3 estereotipos conceptuales sobre las clases: interfaz, control y entidad

Cualquier número de estereotipos físicos sobre las clases de diseño (depende del lenguaje de programación)

9 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 10: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Diagramas UML

Modelo de Diseño

Modelo de

Pruebas

Modelo de Despliegue

Modelo de

Implementación

Diagramas de

Casos de Uso

Diagramas de Clases

Diagramas de

Componentes

Diagramas de Secuencia

Diagramas de

Colaboración

Diagramas de Estados

Diagramas de Actividad

Diagramas de

Objetos

Incluidos subsistemas

Modelo de

Casos de Uso

Diagramas de

Interacción

Modelo de

Análisis

Diagramas de Despliegue

Incluidas clases activas

y componentes

10 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 11: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Análisis y Diseño Orientado a Objetos 11

Diagrama de Clases de Dominio

Diagrama de Casos de Uso

Descripción de Casos de Uso

Diagramas de Colaboración

Diagramas de Actividad

Diagramas de Transición de Estados

Diagrama de Componentes

Diagrama de Despliegue

Diagrama de Clases de Diseño

Diagramas de Interacción (Secuencia)

Diagramas de Transición de Estados de Diseño

Diagramas de Subsistemas

Modelos de Análisis Modelos de Diseño

Page 12: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Modelo de diseño Diagramas de secuencia

Es un diagrama de interacción que define cómo se lleva a cabo y se ejecuta un caso de uso en términos de objetos de diseño

Para flujos de eventos principales y caminos alternativos

Diagramas de clases de diseño Descripciones textuales de las clases Diagramas de transición de estados para el comportamiento

interno de cada clase Descomposición del modelo en subsistemas

Modelo de despliegue

Diagramas de despliegue: distribución física del sistema en nodos de computo Descripciones de los nodos y sus interrelaciones

12 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 13: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Modelo de diseño Describe la realizacion física de los casos de uso en el dominio de la

solución

Cómo soportar requisitos funcionales/no funcionales y otras restricciones en el entorno de implementación

Entrada fundamental para actividades de implementación

*

Subsistemas de diseño

Realización

en diseño

*

* * * *

Clases de diseño Interfaz

* *

Modelo de diseño

13 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 14: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Clases de diseño Una clase de diseño es una abstracción de una clase de

implementación Las operaciones, atributos, tipos, visibilidad (public, protected, private,

etc...), se pueden especifican con la sintaxis del lenguaje elegido para la implementación

Las relaciones entre clases de diseño se traducen de manera directa al lenguaje:

• Generalización herencia

• Asociaciones, agregaciones atributos

Los métodos tienen una correspondencia directa con el correspondiente método en la implementación

Se pueden postergar algunos requisitos a implementación (manera de nombrar los atributos, operaciones, etc...)

Realizan interfaces

14 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 15: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Clases de diseño: Ejemplo

Transacción

cuenta : Cuenta

cantidad: Dinero

……………

Cuenta

reintegro(cantidad : Dinero) : Boolean

ingreso(cantidad : Dinero) : Boolean

1..2 1..2

opera saldo : Dinero

limiteDiario: Dinero = 300

15 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 16: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Realización de los casos de uso en diseño: Es una colaboración que describe cómo se realiza en diseño un caso de

uso en términos de clases de diseño y sus interacciones

Modelo de análisis Modelo de diseño

Realización en análisis Realización en diseño

<<trace>>

16 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 17: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Realización de los casos de uso en diseño:

Diseño Artefactos

Transacción Cuenta Interfaz

del cajero

Dispositivo

de visualización

Teclado

Lector de

Tarjetas

Expendedor

Dinero

Recogedor

Dinero

Gestor de Cliente

Cuenta

Gestor de Cuentas

Gestor de Transacciones

MODELO DE ANÁLISIS

MODELO DE DISEÑO

…..

17 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 18: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

La realización en diseño de un caso de uso incluye: Diagramas de clases: clases participantes

Diagramas de interacción: escenarios del caso de uso

Descripción textual del flujo de eventos

Requisitos de implementación

Opcionalmente: subsistemas e interfaces

18

Subsistema de

diseño Clase de

diseño

Realización en diseño

(from Use Case View)

participante participante

18 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 19: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Diagramas de clase Una clase de diseño (y sus objetos) puede participar en varias

realizaciones de casos de uso

Algunas responsabilidades, atributos y asociaciones suelen ser específicos de un sólo caso de uso.

Dispositivo

de visualización

Teclado

Lector de

Tarjetas

Expendedor

Dinero

Gestor

de Cliente

Cuenta Gestor

de Cuentas

Gestor

de Transacciones

Retiro

Cliente

19 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 20: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Diagramas de interacción

La secuencia de acciones en un caso de uso comienza cuando un actor envía un mensaje a un objeto de diseño

Utilizar mejor diagramas de secuencia que de colaboración: interesa la secuencia cronológica de las interacciones Secuencias de interacciones detalladas y ordenadas en el tiempo

Se pueden incluir subsistemas y las interfaces que proporcionan

20 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 21: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Diagrama de Secuencia Tipos de Acciones:

Llamada: Invoca una operación sobre un objeto. Un objeto puede llamarse a si mismo, lo que da lugar a una invocación local

Retorno: Devuelve un valor al invocador

Envío: Envía una señal a un objeto.

Creación: Crea un objeto

Destrucción: Destruye un objeto. Un objeto puede suicidarse al destruirse a si mismo.

El tipo mas común de mensaje es la llamada Señal: un valor que se comunica de manera asíncrona a un

objeto destinatario Después de enviar la señal, el objeto destinatario continúa con su

propia ejecución.

21 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 22: [IS-LADE_2012-13]T16 - PU - Diseño 2012

c:Cliente a : AyudaPlanificación

: AgenteBilletes

<<create>>

establecerItinerario(i)

calcularRuta()

ruta

<<destroy>>

notificar()

Diseño Artefactos

Diagrama de Secuencia creación

llamada

retorno

destrucción

llamada local

envío

Línea de vida

Barra de activación

22 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 23: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diagrama de Secuencia Fragmentos Combinados: Una o mas secuencias de procesos incluidas en

un marco

Permiten agregar lógica de procedimientos complejos

Diseño Artefactos

Nombre Descripción

Alt Alternativa: Divide la interacción mediante la condición

opt Alternativa simple: Solo si cumple la condición

loop Bucle: Se ejecuta varias veces según indica la restricción

sd Diagrama de secuencia: Representa un diagrama de secuencia completo

23 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 24: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

24 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 25: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Diagramas de interacción diagramas de secuencia

:Dispositivo

de visualización :Teclado

:Lector de

Tarjetas

:Expendedor

Dinero

:Gestor

de Cliente

:Gestor

de Transacciones :Cliente

del Banco

1: Introducir

tarjeta 2: Tarjeta introducida (ID)

3: Solicitar PIN

4: Mostrar petición

5: Especificar código PIN

6: Código PIN (PIN)

7: Solicitar Validación de PIN (PIN)

25 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 26: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Flujo de eventos Para clarificar los diagramas de secuencia: descripción textual

Debe redactarse en términos de objetos o de subsistemas No debe mencionar ni los atributos, operaciones o asociaciones entre objetos

Una descripción no tiene que ser local a un diagrama. Puede englobar a varios e indicar cómo se relacionan.

Requisitos de implementación Requisitos a gestionar en implementación

Quizás durante esta fase de diseño se obtengan algunos nuevos Se capturan en la fase de diseño, pero se gestionan en la implementación

Representarlos con restricciones {...} asignadas a las clases de diseño, operaciones, atributos, asociaciones, etc.

26 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 27: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Subsistemas de diseño Para organizar los artefactos de diseño: clases de diseño, realización de

casos de uso, interfaces y otros subsistemas

Fuertemente cohesionados y débilmente acoplados

*

Subsistemas de diseño

Realización

en diseño

* *

Clases de diseño

Interfaz

*

Proporciona 1

1.- representa la funcionalidad que exporta en términos de operaciones

27 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 28: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Recurso Diagrama de Paquetes Paquete: Abstracciones que organizan un modelo.

Los paquetes se utilizan para organizar los elementos de modelado

Visibilidad: Se puede seleccionar que elementos son visibles fuera del paquete y cuales quedan ocultos. • +: Publico; - : Privado; #: Protegido;

Se pueden emplear para mostrar una vista arquitectónica del sistema

Agrupan elementos cercanos semánticamente o que suelen cambiar juntos

Se pueden crear paquetes de servicio reutilizables

28 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 29: [IS-LADE_2012-13]T16 - PU - Diseño 2012

«subsystem»

Cliente

+Formulario de Pedido

-Seguimiento

«subsystem»

Políticas

+Reglas de Pedidos

-GUI::Ventana«subsystem»

GUI

+Formulario

+Ventana

#GestorEventos

«import»

«import»

Sensores::Vision

Diseño Artefactos

Diagrama de Paquetes Nombre simple estereotipado

Nombre calificado

Paquete contenedor

Nombre del paquete

Exportaciones

Importaciones

29 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 30: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Interfaces

Los interfaces se utilizan para especificar las operaciones de las clases y los subsistemas de diseño

Las clases de diseño soportan las operaciones de su interfaz mediante métodos.

Los subsistemas de diseño soportan las operaciones de su interfaz mediante las clases de diseño (o subsistemas) que contiene.

Subsistemas de diseño

* Clases de diseño

Interfaz *

realiza

realiza

30 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 31: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Interfaces Definen una línea entre la especificación de lo que una

abstracción hace y la implementación de cómo lo hace.

Colección de operaciones que sirven para especificar un servicio de una clase o un componente

Para mostrar la relación entre una clase y sus interfaces existe una notación especial. Interfaz proporcionada: Representa servicios prestados por la

clase

Interfaz requerida: Representa servicios que una clase espera de otra

Una interfaz especifica un contrato para una clase o un componente sin dictar su implementación

31 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 32: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Rastreador de Objetivo

Observador

Objetivo

«interface»

Observador

Observador

Rastreador de Objetivo Objetivo«uses»

Diseño Artefactos

Representación de Interfaces

Interfaz proporcionada

Interfaz requerida

Realización (dependencia proporcionada)

Uso (dependencia requerida)

Definición de Interfaz

32 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 33: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Modelo de Despliegue

Modelo de objetos que describen la distribución física del sistema de acuerdo a la funcionalidad entre los nodos de computo

Nodo: Recurso de cómputo. Por ejemplo: procesador o dispositivo hardware

Los nodos poseen relaciones que representan medios de comunicación. Por ejemplo: Internet, intranet, bus

Describe diferentes configuraciones de red

La funcionalidad de cada nodo se define por sus componentes

Correspondencia entre la arquitectura software y la arquitectura del sistema (hardware)

*

Modelo de

despliegue

Nodo

33 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 34: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Diagramas de despliegue :

Se utilizan para modelar los aspectos físicos de los sistemas orientados a objetos

Muestra la configuración de nodos que participan en la ejecución y de los componentes que residen en ellos

Contienen:

Nodos

Relaciones de dependencia y asociación

Notas y restricciones

Componentes que residen en algún nodo

Diagrama de despliegue de un sistema cliente/servidor

Multiplicidades explícitas

Nodos

estereotipados

servidores clientes

34 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 35: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Artefactos

Ejemplo de Diagrama de Despliegue

35 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 36: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Ejemplo

Para ilustrar las actividades, utilizaremos el ejemplo del cajero automático

Sacar dinero

Ingresar dinero

Transferencia

Cliente

del banco

Validar usuario

<<include>>

<<include>>

<<include>>

36 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 37: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de la arquitectura Arquitecto Identificar nodos y configuración Identificar subsistemas y clases

Diseñar un caso de uso Ingeniero de CU

Identificar clases de diseño y subsistemas Distribuir comportamiento del caso de uso Capturar requisitos de implementación

Diseñar una clase Ingeniero de Componentes

Identificar responsabilidades y atributos Capturar requisitos especiales sobre la realización del CU

Diseñar un subsistema Ingeniero de Componentes

37 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 38: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de la arquitectura: Identificar nodos y configuraciones de Red Configuraciones físicas influyen sobre la Arquitectura del Software.

Determina: Clases activas que se necesitan Distribución de la funcionalidad entre los nodos de red.

Patrones Arquitectónicos Modelo de Capas Modelo de Niveles Modelos Orientados a Servicios

Preguntas a resolver: ¿Todos los actores del caso de uso interactuarán con el sistema en el mismo sitio

físico? ¿Qué requerimientos de computación necesito en cada nodo? ¿Qué tipo de conexiones o red existe entre los nodos? ¿Qué protocolos manejan? ¿Cuáles son sus características? ¿Tengo requisitos del tipo Copias Redundantes para caso de fallos? ¿Copia de seguridad de BBDD?

38 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 39: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Ejemplo: Patrón de 3 capas

IU

Lógica de Negocio

Acceso a Datos

IU IU …

BD

IU

Servidor Web

IU

Servidor Ventas

Servidor Compras

intranet intranet

Internet

39 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 40: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de los casos de uso

Identificar las clases de diseño y/o subsistemas necesarios para la realización del CU

Distribuir el comportamiento del CU entre las objetos y/o subsistemas de diseño

Definir los requisitos sobre las operaciones de las clases de diseño y/o sobre los subsistemas y sus interfaces

Capturar los requisitos de implementación del CU

40 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 41: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de los casos de uso Identificar las clases de diseño

Derivar las clases de diseño de las correspondientes clases de análisis que participan en el CU

Estudiar los requisitos especiales del CU: realizarlos con los mecanismos genéricos de diseño o con clases de diseño

• Persistencia

• Distribución

• Seguridad

• Transacciones

Asignar responsabilidades a las clases identificadas

Realizar un diagrama de clases que muestre las clases de diseño que intervienen en la realización del CU y las relaciones entre ellas

41 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 42: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Identificar las clases de diseño Derivar clases de diseño de las correspondientes clases de análisis que participan

en el caso de uso.

Identificar Clases Activas: se deben considerar los requerimientos de concurrencia en el sistema como por ejemplo:

Requerimientos de disponibilidad y performance que los distintos actores tienen al interactuar con el Sistema.

La distribución del Sistema sobre nodos. Los objetos activos deben distribuirse en distintos nodos, los cuales podrían requerir al menos un objeto activo por cada nodo y un objeto activo separado para manejar la comunicación entre los mismos. y

Realizar un diagrama de clases que muestre las clases de diseño que intervienen en la realización del caso de uso y las relaciones entre ellas

42 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 43: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Identificar clases

De interfaz: depende tecnología

De entidad: persistencia, bases de datos

De control: distribución, rendimiento, transacción

Requisitos Especiales

Persistencia, Remotos. Ej Cajero: Cuenta es persistente

43 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 44: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Persistencia

Consiste en preservar de forma permanente los objetos.

Almacenamiento en BD

BD Relacional

BD Objetos

Almacenamiento en Ficheros

Binario

XML

Otros

44 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 45: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de los casos de uso

Identificar las clases de diseño

Validar usuario Realización en diseño

LectorDeTarjetas

Pantalla

Teclado

GestorDeCliente UsuariosDelBanco

Transacción

45 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 46: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de los casos de uso

Describir interacciones entre objetos de diseño

Utilizar diagramas de secuencia • objetos, instancias de actores, enlaces (trasmisiones de mensajes)

Comenzar estudiando la realización en análisis del caso de uso

Sobre los diagramas de secuencia: • el caso de uso comienza cuando una instancia de un actor envía un

mensaje a un objeto interfaz

• cada clase de diseño identificada debería tener al menos un objeto participando en el diagrama de secuencia

En esta fase gestionar excepciones y errores (entradas incorrectas, situaciones anormales, etc.) 46 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 47: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño del c.u. “Validar usuario”: secuencia correcta

: Cliente del banco :LectorDeTarjetas : Pantalla : Teclado

1: introducirTarjeta 2: datosTarjeta (datos)

3: visualizar (Introducir PIN)

4: OK

5: introducirPIN (PIN) 6: datosPIN (PIN)

7: autentica (datos, PIN)

8: valida (datos, PIN)

9: OK

11: presenta (opciones)

10: almacenaDatos (datos)

12: visualizar (opciones)

: Transacción : GestorDeCliente : UsuariosDelBanco

13: visualizar (opciones)

47 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 48: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño del c.u. “Validar usuario”: código incorrecto

: Cliente del banco :LectorDeTarjetas : Pantalla : Teclado

1: introducirTarjeta 2: datosTarjeta (datos)

3: visualizar (Introducir PIN)

4: OK

5: introducirPIN (PIN) 6: datosPIN (PIN)

7: autentica (datos, PIN)

8: valida (datos, PIN)

9: error

11: presenta (error PIN) 12: visualizar (error PIN)

: Transacción : GestorDeCliente : UsuariosDelBanco

13: visualizar (error PIN)

48 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 49: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño del caso de uso “Sacar dinero” Suponemos que el usuario ya ha sido identificado (se ha ejecutado el

caso de uso anterior)

Ahora selecciona la opción “sacar dinero”

Sacar dinero Realización en diseño

Pantalla Teclado

Expendedor

Dinero

GestorDeCliente

Transacción

Cuentas

Cuenta

49 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 50: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño del c.u. “Sacar dinero” Añadimos la clase Cuentas que asocia número de cuenta con una

instancia de la clase Cuenta.

La clase Transacción ya no actuará directamente sobre Cuenta.

: Transacción : Cuentas

1: ingreso (numeroDeCuenta, importe)

: Cuenta

2: ingreso (importe)

Vista parcial del diagrama

(modelo de análisis)

50 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 51: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Refinando el caso de uso “Sacar dinero”

Cliente del banco Interfaz de cajero

Cuenta

UsuariosDelBanco

Transacción

1

autentica

Cuentas

1..n

1..n

1..n

1..n

posee

1..2

opera

1..2

1

51 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 52: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Refinando el c. u. “Sacar dinero”: secuencia correcta

¿Qué pasa con la impresora?

: Cliente del banco : Teclado : Pantalla : ExpDinero : GestorDeCliente : Transacción : Cuentas : Cuenta : Impresora

1: opcion (sacar dinero) 2: sacarDinero

3: visualizar (Teclee importe)

4: IntroducirImporte 5: importe

6: retirarDinero (importe)

7: reintegro (cuenta, importe)

8: reintegro (importe)

9: OK 10: OK

11: OK

12: visualizar (Retire su tarjeta)

14: expulsa (importe)

15: visualizar (Retire su dinero)

13: visualizar (Retire su tarjeta)

16: visualizar (Retire su dinero)

52 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 53: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Refinando el c. u. “Sacar dinero”: no hay fondos

Falta:

- se ha superado el límite diario

- en el cajero no hay dinero

: Cliente del banco : Teclado : Pantalla : Impresora

1: opcion (sacar dinero)

4: IntroducirImporte

2: sacarDinero

3: visualizar (Teclee importe)

5: importe

6: retirarDinero (importe)

7: reintegro (cuenta, importe)

8: reintegro (importe)

9: no hay saldo 10: no hay saldo

11: no hay saldo

: GestorDeCliente : Transacción : Cuentas : Cuenta

12: visualizar (No hay saldo)

14: visualizar (Retire su dinero)

13: visualizar

(No dispone de saldo suficiente)

15: visualizar (Retire su dinero)

: ExpDinero

53 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 54: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Modelo de clases de diseño

Impresora

LectorDeTarjetas

Pantalla

Teclado

Cliente del banco

GestorDeCliente

Cuenta

UsuariosDelBanco

Transacción

Cuentas

Recogedor Dinero

ExpDinero

54 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 55: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de las clases Identificar las responsabilidades de las clases de diseño (papeles en los

casos de uso)

Identificar: operaciones

atributos

relaciones en las que participa

estados (diagramas de estados)

métodos que soportan sus operaciones

requisitos nuevos…

55 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 56: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de las clases: Identificar operaciones

En el lenguaje de implementación

Mirar responsabilidades que tiene en los casos de uso

Identificar atributos Describirlos en el lenguaje de programación

Considerar los atributos de las clases de análisis de las que se derivan

Identificar asociaciones y agregaciones Las interacciones en los diagramas de secuencia precisan de asociaciones entre las

clases que interactúan

Minimizar el número de relaciones entre clases (disminuir el acoplamiento)

Refinar multiplicidad, papeles, etc.

Refinar la navegabilidad (dirección) de las asociaciones en base a los diagramas de secuencia

Identificar generalizaciones-especializaciones

56 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 57: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de las clases: Describir métodos

Algoritmos para implementar alguna operación (lenguaje natural)

Esqueletos de métodos generado por la herramienta

En general, esto se suele hacer en implementación

Describir estados Algunos objetos reaccionan en función de su estado actual

Utilizar diagramas de transición de estados

57 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 58: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Modelo de clases de diseño:

RecogedorDinero

crearCajon() : CajonDinero

abrirCajon()

cerrarCajon()

contarCantidad() : Dinero

LectorDeTarjetas

crearLector() : LectorDeTarjetas

leerTarjeta() : datosTarjeta

Pantalla

visualizar(mensaje : String)

crearPantalla() : Pantalla

Teclado

crearTeclado() : Teclado

leerPIN() : unPIN

leerOpcion() : unaOpcion

leerCantidad() : Dinero

leerNumCuenta() : unIDCuenta

ExpendedorDinero

crear() : ExpendedorDinero

expulsar(importe : Dinero)

GestorDeCliente

crear() : GestorDeCliente

iniciarSesion()

Impresora

crearImpresora() : Impresora

imprimir(mensaje : String)

58 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 59: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Modelo de clases de diseño:

GestorDeCliente miTransaccion : Transacción

crear() : GestorDeCliente iniciarSesion() visualizar(resultados : String)

Transacción miCliente : GestorDeCliente datosTarjeta : DatosTarjeta numIntentosFallidos : 1..3 = 0 cuentas : Cuentas usuarios : UsuariosDelBanco

almacenarDatos(datos : DatosTarjeta) validar(importe : Dinero, cantidad : Dinero) autenticar(datos : DatosTarjeta, PIN : UnPIN) : Boolean retirarDinero(importe : Dinero) : Boolean ingresarDinero(importe : Dinero) : Boolean trasnsferencia(cuentaOrigen : Cuenta, cuentaDestino : Cuenta, importe : Dinero) : Boolean

UsuariosDelBanco usuarios : Dictionary

validar(datos : DatosTarjeta, PIN : UnPIN) : Boolean

Cuentas cuentas : Dictionary

reintegro(cuenta : Cuenta, importe : Dinero) : Boolean ingreso(cuenta : Cuenta, importe : Dinero) : Boolean

Cuenta datos : DatosCuenta limiteDiario : Dinero = 300

reintegro(importe : Dinero) : Boolean ingreso(importe : Dinero) : Boolean

59 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 60: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de una clase:

La única clase que tiene un comportamiento parecido a una máquina de estados es GestorDeCliente

Realizar el diagrama de transición de estados del sistema Cajero Automático

60 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 61: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de una clase: Esperando

tarjeta

Leyendo tarjeta

tarjeta introducida

Esperando PIN

Validando PIN

PIN introducido( PIN )

Recogiendo tarjeta

Esperando opción

[ incorrecto ] [ > 3 intentos ]

[ correcto ]

Ingresando

ingreso( importe )

Reintegrando

reintegro (importe )

Transferencia

transferencia( cuenta, importe )

Expulsando dinero

[ OK ]

Expulsar tarjeta

dinero retirado

[ Not OK ]

61 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 62: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Diseño de los subsistemas:

Intentar que los subsistemas de diseño estén débilmente acoplados

Intentar que las clases dentro de los subsistemas tengan una alta cohesión

Describir las dependencias entre los subsistemas

Determinar qué clases de unos subsistemas interactúan con qué otras clases de otros subsistemas

Asegurarse que el subsistema soporta sus interfaces

Objetivos: Subsistemas independientes

Garantizar corrección de interfaces

Garantizar la realización de dichas interfaces

62 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 63: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Identificación de Subsistemas Funciones específicas de aplicación

Funcionalidades compartidas

MIddlewares

Protocolos

Sistemas operativos, SGBD, Sw de comunicaciones, kits GUI, gestión transacciones

63 - www.kybele.es Análisis y Diseño Orientado a Objetos

Gestión de

facturas del

comprador

TCP/IP

Gestión de

Planificación

de Pagos

Gestión de

cuentas

Java.applet Java.awt

Máquina

virtual de

JavaNavegador

de Internet

Capa específica de aplicación

Capa general de aplicación

Capa Intermedia

Capa de software del sistema

Java.rmi

Page 64: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Actividades

Cajero Automático

Diagrama de Subsistemas

Correspondencia con Diagrama de Despliegue

64 - www.kybele.es Análisis y Diseño Orientado a Objetos

Cajero Automático

Servidor Central

Intranet

Interfaz de

Usuario

Controlador

de

Peticiones

Bases de

Datos

Paquete superior::Cliente

Page 65: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Ejemplo

Refinando el c. u. “Ingresar dinero”:

Ingresar dinero Realización en diseño

Pantalla Teclado

RecogedorDinero

GestorDeCliente

Transacción

Cuentas

Cuenta

65 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 66: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Ejemplo

Refinando el c. u. “Ingresar dinero”: secuencia correcta

: Cliente del banco

: Teclado : Pantalla : Recogedor

Dinero

1: opcion (ingresar dinero)

4: IntroducirImporte

2: ingresarDinero

3: visualizar (Teclee importe)

5: importe

17: visualizar (Dinero ingresado)

19: visualizar (Retire su tarjeta)

11: ingresarDinero (importe)

12: ingreso (cuenta, importe)

13: ingreso (importe)

14: OK 15: OK

16: OK

6: visualizar (introducir dinero)

7: abrirCajon

8: IntroduceDinero 9: ContarDinero (cantidad)

10: validar (importe, cantidad)

: GestorDeCliente : Transacción : Cuenta : Cuentas

18: visualizar (Dinero ingresado)

20: visualizar (Retire su tarjeta)

66 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 67: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Ejemplo

Refinando el c. u. “Ingresar dinero”: cantidad incorrecta

: Cliente del banco : Teclado : Pantalla

1: opcion (ingresar dinero)

4: IntroducirImporte

2: ingresarDinero

3: visualizar (Teclee importe)

5: importe

11: visualizar (Cantidad errónea)

17: visualizar (Retire su tarjeta)

6: visualizar (introducir dinero)

10: validar (importe, cantidad)

7: abrirCajon

8: recogerDinero 9: dinero (cantidad)

12: visualizar (Retire su dinero)

13: abrirCajon 14: dineroRecogido

15: recogido

16: cerrarCajon

:GestorDeCliente : Recogedor

Dinero

67 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 68: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Ejemplo

Refinando el c. u. “Transferencia”:

Cuenta

Transferencia Realización en diseño,

transferencia

Teclado

Pantalla

GestorDeCliente

Transacción

Cuentas

68 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 69: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Ejemplo

Refinando el c. u. “Transferencia”: secuencia correcta

: Cliente del banco : Teclado : Pantalla : GestorDeCliente : Transacción : Cuentas : Cuenta

1: opcion (transferencia)

4: IntroducirImporte

2: transferencia

3: visualizar (Teclee importe)

5: importe

19: visualizar (Transferencia realizada)

20: visualizar (Retire su tarjeta)

6: visualizar (Teclee cuenta destino)

9: transferencia (cuentaOrigen, cuentaDestino,importe)

10: reintegro (cuentaOrigen, importe)

11: reintegro (importe)

12: OK 13: OK

18: OK

7: cuentaDestino (cuenta)

8: cuentaDestino (cuenta)

14: ingreso (cuentaDestino, importe)

15: ingreso (importe)

16: OK 17: OK

69 - www.kybele.es Análisis y Diseño Orientado a Objetos

Page 70: [IS-LADE_2012-13]T16 - PU - Diseño 2012

Diseño Ejemplo

Refinando el c. u. “Transferencia”: no hay fondos

: Pantalla

: Cliente del banco

1: opcion (transferencia)

4: IntroducirImporte

7: cuentaDestino (cuenta)

2: transferencia

3: visualizar (Teclee importe)

5: importe

15: visualizar (No hay fondos)

16: visualizar (Retire su tarjeta)

6: visualizar (Teclee cuenta destino)

8: cuentaDestino (cuenta)

9: transferencia (cuentaOrigen, cuentaDestino,importe)

14: no hay fondos

10: reintegro (cuentaOrigen, importe)

13: no hay saldo

11: reintegro (importe)

12: no hay saldo

: Teclado : GestorDeCliente : Transacción : Cuentas : Cuenta

70 - www.kybele.es Análisis y Diseño Orientado a Objetos