You are on page 1of 70

Tema XIII:

Proceso Unificado: Diseo

Diana Marcela Snchez Fquene


Anlisis y Diseo Orientado a Objetos

ndice

Visin general
Artefactos

Modelo de diseo
Clases de diseo
Realizacin en diseo de los casos de uso
Subsistemas en diseo
Interfaz

Actividades
Diseo de los casos de uso
Diseo de las clases
Diseo de subsistemas

Anlisis y Diseo Orientado a Objetos

2 - www.kybele.es

Diseo
Visin general
Flujos de
trabajo

Fases
Planificacin
Anl. Riesgos
Preparacin

Construccin
Verificacin

Elaboracin

Transicin

Requisitos
Anlisis

Diseo
Implementacin

Prueba
Iteracin(es)
Inicial(es)

Iter.
#1

Iter.
#2

Iter.
#3

Iter.
#4

Iter.
#5

Iter.
#6

Iter.
#7

(Adaptado de Jacobson, 1999)


Anlisis y Diseo Orientado a Objetos

3 - www.kybele.es

Diseo
Visin general

Modelo de
anlisis

Modelo de
diseo

Modelo de
despliegue

Modelo de
casos de uso

Modelo de
implementacin

Modelo de
pruebas

Anlisis y Diseo Orientado a Objetos

4 - www.kybele.es

Diseo
Visin general

Requisitos

Anlisis

Diseo

Implementacin

Pruebas

Anlisis y Diseo Orientado a Objetos

Dependencia de traza

Modelo de
Casos de Uso

Modelo de
Anlisis

Modelo de
Diseo

Modelo de
Despliegue

Modelo de
Implementacin

Modelo de
Pruebas

5 - www.kybele.es

Diseo
Visin general

Objetivos del diseo:


Acercar el modelo de anlisis al modelo de implementacin
Los milagros ms comunes de la ingeniera del software son las
transiciones desde el anlisis hasta el diseo y desde el diseo al
cdigo. Richard Due

Identificar requisitos no funcionales y restricciones en

relacin a:
Lenguajes de programacin, reutilizacin de componentes, sistemas
operativos, tecnologas de distribucin, concurrencia, bases de
datos, interfaces de usuario, gestin de transacciones, etc.

Descomponer el modelo de anlisis en subsistemas que

puedan desarrollarse en paralelo


Definir la interfaz de cada subsistema
Derivar una representacin arquitectnica del sistema
Anlisis y Diseo Orientado a Objetos

6 - www.kybele.es

Diseo
Visin general

Diagrama de
Despliegue y
Nodos

Diagrama de
Subsistemas

Diagramas
de Clases de
Diseo

Diagramas de
Interaccin

Esquemas
de Bases de
Datos OO
Sistemas de
Seguridad y
de control

Anlisis y Diseo Orientado a Objetos

Formularios,
Reportes,
Interfaz Grfica

7 - www.kybele.es

Diseo
Visin general

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


y no funcionales

Su entrada esencial es el modelo de anlisis (una comprensin


detallada de los requisitos)

Objetivos:
Profundizar en los requisitos no funcionales y restricciones dependientes

de la plataforma.
Crear una entrada apropiada para la implementacin
Descomponer los trabajos de implementacin en partes mas manejables
y que permitan concurrencia. Utilizacin de subsistemas
Capturar las interfaces entre los subsistemas.

Es el centro de atencin final de la fase de elaboracin e iteraciones


iniciales de la fase de construccin

Anlisis y Diseo Orientado a Objetos

8 - www.kybele.es

Diseo
Visin general
Modelo de Anlisis

Modelo de Diseo

Abstraccin del sistema

Modelo fsico. Plano de implementacin

Genrico respecto al diseo (pueden


obtenerse varios diseos)

No genrico. Especfico a una


implementacin

Menos formal y menos caro de desarrollar

Ms formal y mas caro de desarrollar (5


veces mas)

Bosquejo del diseo del sistema

Manifiesto del diseo 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 anlisis

3 estereotipos conceptuales sobre las


clases: interfaz, control y entidad

Cualquier nmero de estereotipos fsicos


sobre las clases de diseo (depende del
lenguaje de programacin)

Anlisis y Diseo Orientado a Objetos

9 - www.kybele.es

Diseo
Diagramas UML

Modelo de
Casos de Uso

Modelo de

Diagramas de
Casos de Uso

Incluidos subsistemas

Diagramas de
Clases

Anlisis
Diagramas de
Objetos

Modelo de
Diseo

Modelo de
Despliegue

Diagramas de
Secuencia
Diagramas de
Colaboracin

Diagramas de
Interaccin

Diagramas de
Estados
Modelo de
Implementacin

Diagramas de
Actividad

Modelo de

Diagramas de
Componentes

Pruebas

Anlisis y Diseo Orientado a Objetos

Diagramas de
Despliegue

Incluidas clases activas


y componentes

10 - www.kybele.es

Diseo
Artefactos
Modelos de Anlisis

Modelos de Diseo

Diagrama de Clases
de Dominio

Diagrama de
Componentes

Diagrama de
Casos de Uso

Diagrama de
Despliegue

Descripcin de
Casos de Uso

Diagrama de Clases
de Diseo

Diagramas de
Colaboracin

Diagramas de Interaccin
(Secuencia)

Diagramas de
Actividad

Diagramas de Transicin de
Estados de Diseo

Diagramas de Transicin
de Estados

Diagramas de
Subsistemas

Anlisis y Diseo Orientado a Objetos

11

Diseo
Artefactos

Modelo de diseo
Diagramas de secuencia
Es un diagrama de interaccin que define cmo se lleva a cabo y se
ejecuta un caso de uso en trminos de objetos de diseo
Para flujos de eventos principales y caminos alternativos
Diagramas de clases de diseo
Descripciones textuales de las clases
Diagramas de transicin de estados para el comportamiento

interno de cada clase


Descomposicin del modelo en subsistemas

Modelo de despliegue
Diagramas de despliegue: distribucin fsica del sistema en nodos

de computo

Descripciones de los nodos y sus interrelaciones


Anlisis y Diseo Orientado a Objetos

12 - www.kybele.es

Diseo
Artefactos

Modelo de diseo
Describe la realizacion fsica de los casos de uso en el dominio de la

solucin
Cmo soportar requisitos funcionales/no funcionales y otras restricciones
en el entorno de implementacin
Entrada fundamental para actividades de implementacin
*
Modelo de diseo

Subsistemas de diseo

Interfaz
Clases de diseo
Anlisis y Diseo Orientado a Objetos

*
*

Realizacin
en diseo
13 - www.kybele.es

Diseo
Artefactos

Clases de diseo
Una clase de diseo es una abstraccin de una clase de

implementacin
Las operaciones, atributos, tipos, visibilidad (public, protected, private,
etc...), se pueden especifican con la sintaxis del lenguaje elegido para la
implementacin
Las relaciones entre clases de diseo se traducen de manera directa al
lenguaje:
Generalizacin herencia
Asociaciones, agregaciones atributos

Los mtodos tienen una correspondencia directa con el correspondiente


mtodo en la implementacin
Se pueden postergar algunos requisitos a implementacin (manera de
nombrar los atributos, operaciones, etc...)
Realizan interfaces

Anlisis y Diseo Orientado a Objetos

14 - www.kybele.es

Diseo
Artefactos

Clases de diseo: Ejemplo

Cuenta

opera
Transaccin
cuenta : Cuenta
cantidad: Dinero

Anlisis y Diseo Orientado a Objetos

saldo : Dinero
limiteDiario: Dinero = 300

1..2
reintegro(cantidad : Dinero) : Boolean
ingreso(cantidad : Dinero) : Boolean

15 - www.kybele.es

Diseo
Artefactos

Realizacin de los casos de uso en diseo:


Es una colaboracin que describe cmo se realiza en diseo un caso de

uso en trminos de clases de diseo y sus interacciones

Modelo de anlisis

Modelo de diseo
<<trace>>

Realizacin en anlisis

Anlisis y Diseo Orientado a Objetos

Realizacin en diseo

16 - www.kybele.es

Diseo
Artefactos

Realizacin de los casos de uso en diseo:


MODELO DE ANLISIS

Transaccin

Interfaz
del cajero

Dispositivo
de visualizacin

Expendedor
Dinero

MODELO DE DISEO
Anlisis y Diseo Orientado a Objetos

Cuenta
Recogedor
Dinero

Teclado
..

Cuenta

Lector de
Tarjetas
Gestor
de Cliente

Gestor
de Transacciones

Gestor
de Cuentas

17 - www.kybele.es

Diseo
Artefactos

La realizacin en diseo de un caso de uso incluye:


Diagramas de clases: clases participantes
Diagramas de interaccin: escenarios del caso de uso
Descripcin textual del flujo de eventos
Requisitos de implementacin
Opcionalmente: subsistemas e interfaces

Realizacin en diseo
(from Use Case View)

participante
Clase de
diseo

Anlisis y Diseo Orientado a Objetos

participante
Subsistema de
diseo

18

18 - www.kybele.es

Diseo
Artefactos

Diagramas de clase
Una clase de diseo (y sus objetos) puede participar en varias

realizaciones de casos de uso


Algunas responsabilidades, atributos y asociaciones suelen ser especficos
de un slo caso de uso.
Retiro
Lector de
Tarjetas
Dispositivo
de visualizacin

Cliente

Gestor
de Transacciones

Gestor
de Cliente

Teclado
Expendedor
Dinero

Anlisis y Diseo Orientado a Objetos

Gestor
de Cuentas

Cuenta

19 - www.kybele.es

Diseo
Artefactos

Diagramas de interaccin
La secuencia de acciones en un caso de uso comienza cuando

un actor enva un mensaje a un objeto de diseo


Utilizar mejor diagramas de secuencia que de colaboracin:
interesa la secuencia cronolgica de las interacciones
Secuencias de interacciones detalladas y ordenadas en el tiempo

Se pueden incluir subsistemas y las interfaces que

proporcionan

Anlisis y Diseo Orientado a Objetos

20 - www.kybele.es

Diseo
Artefactos

Diagrama de Secuencia
Tipos de Acciones:
Llamada: Invoca una operacin sobre un objeto. Un objeto puede
llamarse a si mismo, lo que da lugar a una invocacin local
Retorno: Devuelve un valor al invocador
Envo: Enva una seal a un objeto.
Creacin: Crea un objeto
Destruccin: Destruye un objeto. Un objeto puede suicidarse al
destruirse a si mismo.

El tipo mas comn de mensaje es la llamada


Seal: un valor que se comunica de manera asncrona a un

objeto destinatario
Despus de enviar la seal, el objeto destinatario contina con su
propia ejecucin.
Anlisis y Diseo Orientado a Objetos

21 - www.kybele.es

Diseo
Artefactos

Diagrama de Secuencia
creacin

c:Cliente

a : AyudaPlanificacin

<<create>>
: AgenteBilletes

llamada

llamada
local

establecerItinerario(i)

retorno

Lnea
de vida

calcularRuta()
ruta

Barra de
activacin

<<destroy>>

destruccin
notificar()

Anlisis y Diseo Orientado a Objetos

envo
22 - www.kybele.es

Diseo
Artefactos

Diagrama de Secuencia

Fragmentos Combinados: Una o mas secuencias de procesos incluidas en


un marco

Nombre

Descripcin

Alt

Alternativa: Divide la interaccin mediante la condicin

opt

Alternativa simple: Solo si cumple la condicin

loop

Bucle: Se ejecuta varias veces segn indica la restriccin

sd

Diagrama de secuencia: Representa un diagrama de secuencia completo

Permiten agregar lgica de procedimientos complejos

Anlisis y Diseo Orientado a Objetos

23 - www.kybele.es

Diseo
Artefactos

Anlisis y Diseo Orientado a Objetos

24 - www.kybele.es

Diseo
Artefactos

Diagramas de interaccin diagramas de secuencia

:Cliente
del Banco

:Lector de
Tarjetas

:Dispositivo
de visualizacin

:Teclado

:Gestor
de Cliente

:Expendedor
Dinero

:Gestor
de Transacciones

1: Introducir
tarjeta
2: Tarjeta introducida (ID)
3: Solicitar PIN
4: Mostrar peticin
5: Especificar cdigo PIN
6: Cdigo PIN (PIN)
7: Solicitar Validacin de PIN (PIN)

Anlisis y Diseo Orientado a Objetos

25 - www.kybele.es

Diseo
Artefactos

Flujo de eventos
Para clarificar los diagramas de secuencia: descripcin textual
Debe redactarse en trminos de objetos o de subsistemas
No debe mencionar ni los atributos, operaciones o asociaciones entre objetos

Una descripcin no tiene que ser local a un diagrama. Puede englobar a

varios e indicar cmo se relacionan.

Requisitos de implementacin
Requisitos a gestionar en implementacin
Quizs durante esta fase de diseo se obtengan algunos nuevos
Se capturan en la fase de diseo, pero se gestionan en la implementacin

Representarlos con restricciones {...} asignadas a las clases de diseo,

operaciones, atributos, asociaciones, etc.

Anlisis y Diseo Orientado a Objetos

26 - www.kybele.es

Diseo
Artefactos

Subsistemas de diseo
Para organizar los artefactos de diseo: clases de diseo, realizacin de

casos de uso, interfaces y otros subsistemas


Fuertemente cohesionados y dbilmente acoplados

Proporciona 1

*
Subsistemas de diseo

Interfaz
Clases de diseo

Realizacin
en diseo

1.- representa la funcionalidad que exporta en trminos de operaciones


Anlisis y Diseo Orientado a Objetos

27 - www.kybele.es

Diseo
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 arquitectnica del


sistema
Agrupan elementos cercanos semnticamente o que suelen cambiar
juntos
Se pueden crear paquetes de servicio reutilizables
Anlisis y Diseo Orientado a Objetos

28 - www.kybele.es

Diseo
Artefactos

Diagrama de Paquetes
Nombre simple estereotipado

subsystem
Cliente

Paquete
contenedor

+Formulario de Pedido
-Seguimiento

import

Importaciones
subsystem
Polticas

Nombre del
paquete

import
+Reglas de Pedidos
-GUI::Ventana
subsystem
GUI
+Formulario
+Ventana
#GestorEventos

Sensores::Vision

Exportaciones
Nombre calificado
Anlisis y Diseo Orientado a Objetos

29 - www.kybele.es

Diseo
Artefactos

Interfaces
Los interfaces se utilizan para especificar las operaciones de las clases y los

subsistemas de diseo
Las clases de diseo soportan las operaciones de su interfaz mediante mtodos.
Los subsistemas de diseo soportan las operaciones de su interfaz mediante las
clases de diseo (o subsistemas) que contiene.
realiza
*
Interfaz

Clases de diseo
*

realiza
Subsistemas de diseo

Anlisis y Diseo Orientado a Objetos

30 - www.kybele.es

Diseo
Artefactos

Interfaces
Definen una lnea entre la especificacin de lo que una

abstraccin hace y la implementacin de cmo lo hace.


Coleccin de operaciones que sirven para especificar un
servicio de una clase o un componente
Para mostrar la relacin entre una clase y sus interfaces
existe una notacin 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 implementacin


Anlisis y Diseo Orientado a Objetos

31 - www.kybele.es

Diseo
Artefactos

Representacin de Interfaces
Interfaz proporcionada

Rastreador de Objetivo

Observador

Interfaz requerida
Objetivo
Observador

Definicin de Interfaz
Rastreador de Objetivo

Realizacin
(dependencia proporcionada)
Anlisis y Diseo Orientado a Objetos

interface
Observador

uses

Objetivo

Uso
(dependencia requerida)
32 - www.kybele.es

Diseo
Artefactos

Modelo de Despliegue
Modelo de objetos que describen la distribucin fsica del sistema de acuerdo a la

funcionalidad entre los nodos de computo


Nodo: Recurso de cmputo. Por ejemplo: procesador o dispositivo hardware
Los nodos poseen relaciones que representan medios de comunicacin. 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
Anlisis y Diseo Orientado a Objetos

Nodo

33 - www.kybele.es

Diseo
Artefactos

Diagramas de despliegue :
Se utilizan para modelar los aspectos fsicos de los sistemas orientados a objetos
Muestra la configuracin de nodos que participan en la ejecucin y de los componentes que

residen en ellos
Contienen:

Nodos
Relaciones de dependencia y asociacin
Notas y restricciones
Componentes que residen en algn nodo
Multiplicidades explcitas
clientes

Nodos
estereotipados
Anlisis y Diseo Orientado a Objetos

servidores

Diagrama de despliegue de un sistema cliente/servidor


34 - www.kybele.es

Diseo
Artefactos

Ejemplo de Diagrama de Despliegue

Anlisis y Diseo Orientado a Objetos

35 - www.kybele.es

Diseo
Ejemplo

Para ilustrar las actividades, utilizaremos el ejemplo del cajero automtico

Sacar dinero
<<include>>

Cliente
del banco

Ingresar dinero

<<include>>

Validar usuario
<<include>>

Transferencia

Anlisis y Diseo Orientado a Objetos

36 - www.kybele.es

Diseo
Actividades

Diseo de la arquitectura Arquitecto


Identificar nodos y configuracin
Identificar subsistemas y clases

Disear un caso de uso Ingeniero de CU


Identificar clases de diseo y subsistemas
Distribuir comportamiento del caso de uso
Capturar requisitos de implementacin

Disear una clase Ingeniero de Componentes


Identificar responsabilidades y atributos
Capturar requisitos especiales sobre la realizacin del CU

Disear un subsistema Ingeniero de Componentes

Anlisis y Diseo Orientado a Objetos

37 - www.kybele.es

Diseo
Actividades

Diseo de la arquitectura: Identificar nodos y configuraciones de Red


Configuraciones fsicas influyen sobre la Arquitectura del Software.

Determina:

Clases activas que se necesitan


Distribucin de la funcionalidad entre los nodos de red.

Patrones Arquitectnicos
Modelo de Capas
Modelo de Niveles
Modelos Orientados a Servicios

Preguntas a resolver:
Todos los actores del caso de uso interactuarn con el sistema en el mismo sitio
fsico?
Qu requerimientos de computacin necesito en cada nodo?
Qu tipo de conexiones o red existe entre los nodos?
Qu protocolos manejan?
Cules son sus caractersticas?
Tengo requisitos del tipo Copias Redundantes para caso de fallos?
Copia de seguridad de BBDD?
Anlisis y Diseo Orientado a Objetos

38 - www.kybele.es

Diseo
Actividades

Ejemplo: Patrn de 3 capas


IU

IU

IU

Lgica de Negocio
Acceso a Datos

IU
BD
Internet
IU
Servidor Web

intranet

intranet
Servidor
Ventas

Anlisis y Diseo Orientado a Objetos

Servidor
Compras
39 - www.kybele.es

Diseo
Actividades

Diseo de los casos de uso


Identificar las clases de diseo y/o subsistemas

necesarios para la realizacin del CU


Distribuir el comportamiento del CU entre las
objetos y/o subsistemas de diseo
Definir los requisitos sobre las operaciones de las
clases de diseo y/o sobre los subsistemas y sus
interfaces
Capturar los requisitos de implementacin del CU

Anlisis y Diseo Orientado a Objetos

40 - www.kybele.es

Diseo
Actividades

Diseo de los casos de uso


Identificar las clases de diseo
Derivar las clases de diseo de las correspondientes clases de
anlisis que participan en el CU
Estudiar los requisitos especiales del CU: realizarlos con los
mecanismos genricos de diseo o con clases de diseo

Persistencia
Distribucin
Seguridad
Transacciones

Asignar responsabilidades a las clases identificadas


Realizar un diagrama de clases que muestre las clases de
diseo que intervienen en la realizacin del CU y las relaciones
entre ellas

Anlisis y Diseo Orientado a Objetos

41 - www.kybele.es

Diseo
Actividades

Identificar las clases de diseo


Derivar clases de diseo de las correspondientes clases de anlisis 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 distribucin del Sistema sobre nodos. Los objetos activos deben
distribuirse en distintos nodos, los cuales podran requerir al menos un
objeto activo por cada nodo y un objeto activo separado para manejar la
comunicacin entre los mismos. y

Realizar un diagrama de clases que muestre las clases de diseo

que intervienen en la realizacin del caso de uso y las relaciones


entre ellas

Anlisis y Diseo Orientado a Objetos

42 - www.kybele.es

Diseo
Actividades

Identificar

clases

De interfaz: depende tecnologa

De entidad: persistencia, bases de datos


De control: distribucin, rendimiento, transaccin
Requisitos

Especiales

Persistencia, Remotos. Ej Cajero: Cuenta es

persistente

Anlisis y Diseo Orientado a Objetos

43 - www.kybele.es

Diseo
Actividades

Persistencia
Consiste en preservar de forma permanente los

objetos.
Almacenamiento en BD
BD Relacional
BD Objetos

Almacenamiento en Ficheros
Binario
XML
Otros
Anlisis y Diseo Orientado a Objetos

44 - www.kybele.es

Diseo
Actividades

Diseo de los casos de uso


Identificar las clases de diseo

Validar usuario

Realizacin en diseo

LectorDeTarjetas

GestorDeCliente

UsuariosDelBanco

Pantalla

Teclado
Transaccin

Anlisis y Diseo Orientado a Objetos

45 - www.kybele.es

Diseo
Actividades

Diseo de los casos de uso


Describir interacciones entre objetos de diseo
Utilizar diagramas de secuencia
objetos, instancias de actores, enlaces (trasmisiones de mensajes)

Comenzar estudiando la realizacin en anlisis del caso


de uso
Sobre los diagramas de secuencia:
el caso de uso comienza cuando una instancia de un actor enva un
mensaje a un objeto interfaz
cada clase de diseo identificada debera tener al menos un objeto
participando en el diagrama de secuencia

En esta fase gestionar excepciones y errores (entradas


incorrectas, situaciones anormales, etc.)
Anlisis y Diseo Orientado a Objetos

46 - www.kybele.es

Diseo
Actividades

Diseo del c.u. Validar usuario: secuencia correcta

: Cliente del banco :LectorDeTarjetas

: Pantalla

1: introducirTarjeta

: Teclado

: GestorDeCliente

: Transaccin

: UsuariosDelBanco

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
10: almacenaDatos (datos)
12: visualizar (opciones)

11: presenta (opciones)

13: visualizar (opciones)

Anlisis y Diseo Orientado a Objetos

47 - www.kybele.es

Diseo
Actividades

Diseo del c.u. Validar usuario: cdigo incorrecto

: Cliente del banco

:LectorDeTarjetas

: Pantalla

1: introducirTarjeta

: Teclado

: GestorDeCliente

: Transaccin

: UsuariosDelBanco

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

12: visualizar (error PIN)

11: presenta (error PIN)

13: visualizar (error PIN)

Anlisis y Diseo Orientado a Objetos

48 - www.kybele.es

Diseo
Actividades

Diseo 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 opcin sacar dinero

Sacar dinero

Pantalla

Realizacin en diseo

Cuenta

Teclado
Expendedor
Dinero

Transaccin

Cuentas

GestorDeCliente

Anlisis y Diseo Orientado a Objetos

49 - www.kybele.es

Diseo
Actividades

Diseo del c.u. Sacar dinero


Aadimos la clase Cuentas que asocia nmero de cuenta con una

instancia de la clase Cuenta.


La clase Transaccin ya no actuar directamente sobre Cuenta.
1: ingreso (numeroDeCuenta, importe)

: Transaccin

: Cuentas

2: ingreso (importe)

Vista parcial del diagrama


(modelo de anlisis)

: Cuenta

Anlisis y Diseo Orientado a Objetos

50 - www.kybele.es

Diseo
Actividades

Refinando el caso de uso Sacar dinero


1

UsuariosDelBanco
1..n
posee

autentica

1..n

opera
1..2
Cliente del banco

Interfaz de cajero

Transaccin

Cuentas

Cuenta
Anlisis y Diseo Orientado a Objetos

51 - www.kybele.es

Diseo
Actividades

Refinando el c. u. Sacar dinero: secuencia correcta

: Cliente del banco

: Teclado

: Pantalla

1: opcion (sacar dinero)

: ExpDinero

: Impresora

: GestorDeCliente : Transaccin : Cuentas

: Cuenta

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

13: visualizar (Retire su tarjeta)

12: visualizar (Retire su tarjeta)


14: expulsa (importe)

16: visualizar (Retire su dinero)

15: visualizar (Retire su dinero)

Qu pasa con la impresora?


Anlisis y Diseo Orientado a Objetos

52 - www.kybele.es

Diseo
Actividades

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

: Cliente del banco

: Teclado

: Pantalla

1: opcion (sacar dinero)

: ExpDinero

: Impresora

: GestorDeCliente : Transaccin : Cuentas

: Cuenta

2: sacarDinero
3: visualizar (Teclee importe)

4: IntroducirImporte

5: importe
6: retirarDinero (importe)
7: reintegro (cuenta, importe)
8: reintegro (importe)
9: no hay saldo
10: no hay saldo
11: no hay saldo

13: visualizar
(No dispone de saldo suficiente)
15: visualizar (Retire su dinero)

12: visualizar (No hay saldo)

14: visualizar (Retire su dinero)

Falta:
- se ha superado el lmite diario
- en el cajero no hay dinero
Anlisis y Diseo Orientado a Objetos

53 - www.kybele.es

Diseo
Actividades

Modelo de clases de diseo


Recogedor Dinero

UsuariosDelBanco
Impresora

Cliente del banco

LectorDeTarjetas
GestorDeCliente

Transaccin

Pantalla
Cuentas

Teclado

ExpDinero
Cuenta

Anlisis y Diseo Orientado a Objetos

54 - www.kybele.es

Diseo
Actividades

Diseo de las clases


Identificar las responsabilidades de las clases de diseo (papeles en los

casos de uso)
Identificar:

operaciones
atributos
relaciones en las que participa
estados (diagramas de estados)
mtodos que soportan sus operaciones
requisitos nuevos

Anlisis y Diseo Orientado a Objetos

55 - www.kybele.es

Diseo
Actividades

Diseo de las clases:


Identificar operaciones
En el lenguaje de implementacin
Mirar responsabilidades que tiene en los casos de uso

Identificar atributos
Describirlos en el lenguaje de programacin
Considerar los atributos de las clases de anlisis de las que se derivan

Identificar asociaciones y agregaciones


Las interacciones en los diagramas de secuencia precisan de asociaciones entre las
clases que interactan
Minimizar el nmero de relaciones entre clases (disminuir el acoplamiento)
Refinar multiplicidad, papeles, etc.
Refinar la navegabilidad (direccin) de las asociaciones en base a los diagramas de
secuencia
Identificar generalizaciones-especializaciones

Anlisis y Diseo Orientado a Objetos

56 - www.kybele.es

Diseo
Actividades

Diseo de las clases:


Describir mtodos
Algoritmos para implementar alguna operacin (lenguaje natural)
Esqueletos de mtodos generado por la herramienta
En general, esto se suele hacer en implementacin

Describir estados
Algunos objetos reaccionan en funcin de su estado actual
Utilizar diagramas de transicin de estados

Anlisis y Diseo Orientado a Objetos

57 - www.kybele.es

Diseo
Actividades

Modelo de clases de diseo:


Pantalla
visualizar(mensaje : String)
crearPantalla() : Pantalla

LectorDeTarjetas
crearLector() : LectorDeTarjetas
leerTarjeta() : datosTarjeta

Teclado
crearTeclado() : Teclado
leerPIN() : unPIN
leerOpcion() : unaOpcion
leerCantidad() : Dinero
leerNumCuenta() : unIDCuenta

GestorDeCliente
crear() : GestorDeCliente
iniciarSesion()

Impresora
crearImpresora() : Impresora
imprimir(mensaje : String)
ExpendedorDinero
crear() : ExpendedorDinero
expulsar(importe : Dinero)

Anlisis y Diseo Orientado a Objetos

RecogedorDinero
crearCajon() : CajonDinero
abrirCajon()
cerrarCajon()
contarCantidad() : Dinero

58 - www.kybele.es

Diseo
Actividades

Modelo de clases de diseo:


Transaccin
miCliente : GestorDeCliente
datosTarjeta : DatosTarjeta
numIntentosFallidos : 1..3 = 0
cuentas : Cuentas
usuarios : UsuariosDelBanco

GestorDeCliente
miTransaccion : Transaccin

crear() : GestorDeCliente
iniciarSesion()
almacenarDatos(datos : DatosTarjeta)
visualizar(resultados : String)
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

Cuentas
cuentas : Dictionary

UsuariosDelBanco
usuarios : Dictionary

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


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

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

Cuenta
datos : DatosCuenta
limiteDiario : Dinero = 300
reintegro(importe : Dinero) : Boolean
ingreso(importe : Dinero) : Boolean

Anlisis y Diseo Orientado a Objetos

59 - www.kybele.es

Diseo
Actividades

Diseo de una clase:


La nica clase que tiene un comportamiento parecido a una

mquina de estados es GestorDeCliente


Realizar el diagrama de transicin de estados del sistema

Cajero Automtico

Anlisis y Diseo Orientado a Objetos

60 - www.kybele.es

Diseo
Actividades

Diseo de una clase:


Esperando
tarjeta
tarjeta introducida
Leyendo
tarjeta
Esperando
PIN
PIN introducido( PIN )
Recogiendo
tarjeta

[ > 3 intentos ]

Validando
PIN

[ incorrecto ]

[ correcto ]

ingreso( importe )

Esperando
opcin
transferencia( cuenta, importe )

reintegro (importe )
Ingresando

Transferencia
Reintegrando
[ Not OK ]

[ OK ]
Expulsando
dinero
dinero retirado
Expulsar
tarjeta

Anlisis y Diseo Orientado a Objetos

61 - www.kybele.es

Diseo
Actividades

Diseo de los subsistemas:


Intentar que los subsistemas de diseo estn dbilmente

acoplados
Intentar que las clases dentro de los subsistemas tengan una
alta cohesin
Describir las dependencias entre los subsistemas
Determinar qu clases de unos subsistemas interactan con
qu otras clases de otros subsistemas
Asegurarse que el subsistema soporta sus interfaces
Objetivos:
Subsistemas independientes
Garantizar correccin de interfaces
Garantizar la realizacin de dichas interfaces
Anlisis y Diseo Orientado a Objetos

62 - www.kybele.es

Diseo
Actividades

Identificacin de Subsistemas
Capa especfica de aplicacin
Gestin de
facturas del
comprador

Capa general de aplicacin


Gestin de
Planificacin
de Pagos

Gestin de
cuentas

Capa Intermedia
Java.applet

Funciones especficas
de aplicacin
Funcionalidades
compartidas
MIddlewares

Java.awt
Java.rmi

Mquina
virtual de
Java

Navegador
de Internet

Sistemas operativos,
SGBD, Sw de
comunicaciones, kits GUI,
gestin transacciones

Capa de software del sistema


TCP/IP

Anlisis y Diseo Orientado a Objetos

Protocolos
63 - www.kybele.es

Diseo
Actividades

Cajero Automtico
Diagrama de Subsistemas

Correspondencia con Diagrama de Despliegue

Servidor Central
Cajero Automtico
Intranet
Interfaz de
Usuario

Controlador
de
Peticiones

Bases de
Datos

Paquete superior::Cliente

Anlisis y Diseo Orientado a Objetos

64 - www.kybele.es

Diseo
Ejemplo

Refinando el c. u. Ingresar dinero:

Ingresar dinero

Realizacin en diseo

Pantalla
Teclado

Cuenta

RecogedorDinero
Transaccin

Cuentas

GestorDeCliente

Anlisis y Diseo Orientado a Objetos

65 - www.kybele.es

Diseo
Ejemplo

Refinando el c. u. Ingresar dinero: secuencia correcta


: Teclado

: Pantalla

: Recogedor
Dinero

: Cliente del banco


1: opcion (ingresar dinero)

: GestorDeCliente

: Transaccin

: Cuentas

: Cuenta

2: ingresarDinero
3: visualizar (Teclee importe)

4: IntroducirImporte

5: importe
6: visualizar (introducir dinero)
7: abrirCajon
8: IntroduceDinero

9: ContarDinero (cantidad)
10: validar (importe, cantidad)

11: ingresarDinero (importe)


12: ingreso (cuenta, importe)
13: ingreso (importe)
14: OK
16: OK

18: visualizar (Dinero ingresado)


20: visualizar (Retire su tarjeta)

Anlisis y Diseo Orientado a Objetos

15: OK

17: visualizar (Dinero ingresado)


19: visualizar (Retire su tarjeta)

66 - www.kybele.es

Diseo
Ejemplo

Refinando el c. u. Ingresar dinero: cantidad incorrecta


: Cliente del banco

: Teclado

: Recogedor
Dinero

: Pantalla

1: opcion (ingresar dinero)

:GestorDeCliente

2: ingresarDinero
3: visualizar (Teclee importe)

4: IntroducirImporte

5: importe

6: visualizar (introducir dinero)


7: abrirCajon
8: recogerDinero

9: dinero (cantidad)
10: validar (importe, cantidad)
11: visualizar (Cantidad errnea)
12: visualizar (Retire su dinero)
13: abrirCajon

14: dineroRecogido

15: recogido

16: cerrarCajon
17: visualizar (Retire su tarjeta)

Anlisis y Diseo Orientado a Objetos

67 - www.kybele.es

Diseo
Ejemplo

Refinando el c. u. Transferencia:

Transferencia

Realizacin en diseo,
transferencia

Teclado
Cuenta
Transaccin

Pantalla

Cuentas
GestorDeCliente

Anlisis y Diseo Orientado a Objetos

68 - www.kybele.es

Diseo
Ejemplo

Refinando el c. u. Transferencia: secuencia correcta

: Cliente del banco

: Teclado

1: opcion (transferencia)

: Pantalla

: GestorDeCliente

: Transaccin

: Cuentas

: Cuenta

2: transferencia
3: visualizar (Teclee importe)

4: IntroducirImporte

5: importe
6: visualizar (Teclee cuenta destino)

7: cuentaDestino (cuenta)
8: cuentaDestino (cuenta)
9: transferencia (cuentaOrigen, cuentaDestino,importe)
10: reintegro (cuentaOrigen, importe)
11: reintegro (importe)
12: OK
13: OK
14: ingreso (cuentaDestino, importe)
15: ingreso (importe)
17: OK

16: OK

18: OK
19: visualizar (Transferencia realizada)

20: visualizar (Retire su tarjeta)

Anlisis y Diseo Orientado a Objetos

69 - www.kybele.es

Diseo
Ejemplo

Refinando el c. u. Transferencia: no hay fondos

: Cliente del banco

: Teclado

1: opcion (transferencia)

: Pantalla

: GestorDeCliente

: Transaccin

: Cuentas

: Cuenta

2: transferencia
3: visualizar (Teclee importe)

4: IntroducirImporte

5: importe
6: visualizar (Teclee cuenta destino)

7: cuentaDestino (cuenta)
8: cuentaDestino (cuenta)
9: transferencia (cuentaOrigen, cuentaDestino,importe)

10: reintegro (cuentaOrigen, importe)


11: reintegro (importe)
12: no hay saldo
13: no hay saldo
14: no hay fondos
15: visualizar (No hay fondos)
16: visualizar (Retire su tarjeta)

Anlisis y Diseo Orientado a Objetos

70 - www.kybele.es

You might also like