Sei sulla pagina 1di 36

Ingeniera en Sistemas de

Informacin
Diseo de Sistemas
(3K1)
Contenidos de la Unidad 3
Diseo Orientado a Objetos I
3. Diseo orientado a Objeto I Craig Larman , Cap 15.
A. Casos de Uso Reales Cap. 16
A. Diagrama de Interaccin Cap. 17

a. Diagrama de Secuencia.


a. Diagramas de Comunicacin (UML 2)/
Colaboracin (UML 1.1)

A. Patrones de Diseo. Cap. 18

a. Patrones creacionales


a. Patrones Estructurales


a. Patrones de Comportamiento


a. GRAPS (Experto, Creador, Alta Cohesin, Bajo
Acoplamiento, Controlador)

DEL ANLISIS AL DISEO

CONCLUSIN DE LA FASE DE
ANLISIS
Craig Larman, Caps. 15 y 16

Ingeniera en Sistemas de Informacin
DISEO DE SISTEMAS
En la fase de anlisis se da prioridad al conocimiento de los
requerimientos, los conceptos y las operaciones relacionadas con
el sistema. Nos centramos en cuestiones concernientes al qu:
cules son los procesos, los conceptos, etc.
En UML, los artefactos que sirven para capturar los resultados
de una investigacin en la fase de Anlisis son:
Artefacto de anlisis Preguntan que se contestan
Casos de Uso Cules son los procesos del dominio?
Modelo Conceptual Cules son los conceptos, los trminos?
Diagramas de la secuencia de un sistema Cules son los eventos y las operaciones
del sistema?
Contratos Qu hacen las operaciones del sistema?

DISEO DE SISTEMAS
Transicin del Anlisis al Diseo
INICIO DE LA FASE DE DISEO

Se pasa a la fase del diseo, una vez terminados estos
documentos del anlisis. Su esencia es la elaboracin de
diagramas de interaccin, que muestran grficamente cmo los
objetos se comunicarn entre ellos a fin de cumplir con los
requerimientos.

Luego, los diagramas de interaccin nos permitirn dibujar
Diagramas de Diseo de Clases que definen las clases (e
interfaces) implementables en software.

Para preparar los Diagramas de Interaccin hay que aplicar
Principios de Asignacin de Responsabilidades (usar los
Patrones de Diseo).
DISEO DE SISTEMAS
Transicin del Anlisis al Diseo
Casos Reales de Uso
Los Casos Reales de Uso presentan un diseo concreto del Caso
de Uso. Es una de las primeras actividades en el ciclo de
desarrollo. Su creacin depende de los Casos Esenciales de Uso
generados en el Anlisis.

Un Caso Real de Uso describe el diseo concreto del caso de uso
a partir de una tecnologa particular de entrada y salida, y su
implementacin global. Por ejemplo, si hay una interfaz grfica
para el usuario, el caso de uso real incluir diagramas de las
ventanas en cuestin y una explicacin de la interaccin.
DISEO DE SISTEMAS
Transicin del Anlisis al Diseo

Ejemplo: Comprar Producto: Versin 1

Caso de uso: Comprar productos: versin 1 (ya definido en prcticos anteriores)
(efectivo exclusivamente)
Actores: Cajero (Iniciador).
Propsito: Capturar una venta y su pago en efectivo.
Resumen: Un Cliente llega a la caja con productos que desea comprar. El
Cajero registra los productos de la compra y recibe el pago en
efectivo. Al terminar la transaccin, el Cliente se marcha con los
productos comprados.
Tipo: Primario y real.
Referencias
Cruzadas: Funciones: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1.
DISEO DE SISTEMAS
Transicin del Anlisis al Diseo

A
B
C
D
E
F
G
H I J
Curso normal de los eventos.

Accin de los actores Respuesta del sistema
1) Este caso comienza cuando un
Cliente llega a la CAJA con los
objetos que desea comprar.

2) Con cada producto, el Cajero teclea
el cdigo universal de producto
(CUP) en A de la Ventana 1. Si
hay ms de un producto, es opcional
capturar la cantidad en E. Se oprime
H despus de capturar producto.
3) Agrega la informacin sobre el
producto a la actual transaccin (en
B y F).
4) Al terminar de capturar los
productos, el Cajero oprime el botn
I para indicarle a la CAJA que
termin de capturar los productos.
5) Calcula y presenta en C el total de la
venta.
6) ...

DISEO DE SISTEMAS
Diagramas de Colaboracin
DIAGRAMAS DE COLABORACIN

Diagramas de Interaccin => explican grficamente cmo los
objetos interactan a travs de mensajes para realizar las tareas.
Diagramas de Interaccin
Los diagramas de interaccin se realizan en la fase de diseo. Antes deben generarse
los siguientes artefactos:
Modelo Conceptual: con ellos se podrn definir las clases de software
correspondientes a los conceptos.
Contratos de la operacin del sistema: => identifican las responsabilidades y las
poscondiciones que deben prever los diagramas de interaccin.
Casos de uso reales (o esenciales): => brindan informacin sobre las tareas que
realizan los diagramas de interaccin y lo estipulado en los contratos.

Un Diagrama de Interaccin explica grficamente las
interacciones existentes entre las instancias. Su punto de partida es
el cumplimiento de las postcondiciones de los contratos de una
operacin.

Hay dos tipos de estos diagramas: ambos sirven para expresar
interacciones semejantes:

1. - Diagramas de Colaboracin.

2. - Diagramas de Secuencia.
DISEO DE SISTEMAS
Diagramas de Colaboracin




DISEO DE SISTEMAS
Diagramas de Colaboracin
Diagramas de Colaboracin => describen las interacciones entre los
objetos en un formato de grafo o red:





Diagrama de Colaboracin
:ClaseAInstancia :ClaseBInstancia
mensaje1()
1: mensaje2()
2: mensaje3()

DISEO DE SISTEMAS
Diagramas de Colaboracin
Diagramas de Secuencia => describen las interacciones en una
especie de formato de cerca o muro:
:ClaseAInstancia :ClaseBInstancia
mensaje1()
mensaje2()

mensaje3()
DISEO DE SISTEMAS
Diagramas de Colaboracin
Preferimos los Diagramas de Colaboracin => Son ms
expresivos, comunican ms informacin en menos espacio.
Ejemplo de un diagrama de colaboracin: efectuarPago.
instancia
parmetro
:CAJA :Venta
efectuarPago(efectivoOfrecido)
1: efectuarPago(efectivoOfrecido)

:Pago
1.1: crear(efectivoOfrecido)

primer mensaje lnea de enlace
direccin del mensaje
primer mensaje interno
DISEO DE SISTEMAS
Diagramas de Colaboracin
Este Diagrama de Colaboracin se lee as:

1) El mensaje efectuarPago se enva a una instancia de CAJ A.
La instancia corresponde al mensaje efectuarPago de la
operacin del sistema.

2) El objeto CAJ A enva el mensaje efectuarPago a la instancia
Venta.

3) El objeto Venta crea una instancia de un Pago.
DISEO DE SISTEMAS
Diagramas de Colaboracin
Los diagramas de interaccin son un artefacto de gran utilidad
Constituyen un artefacto muy importante para la
estructuracin de las etapas posteriores.

El tiempo y el esfuerzo dedicados a su preparacin deberan
absorber un porcentaje considerable del proyecto.

Para mejorar la calidad de su diseo, es posible aplicar
patrones, principios y expresiones codificados.
Los principios de diseo necesarios para construir eficazmente los
diagramas de interaccin pueden codificarse, explicarse y aplicarse
metdicamente.
DISEO DE SISTEMAS
Diagramas de Colaboracin
Ahora, veamos la notacin de UML para los diagramas de
colaboracin. Luego veremos los principios y directrices para
elaborarlos correctamente.
Cmo preparar diagramas de colaboracin
1) Elabore el diagrama por cada operacin del sistema.

2) Para cada mensaje del sistema, dibuje un diagrama
incluyndolo como mensaje inicial.

3) Si el diagrama se torna complejo (por ejemplo, si no cabe en
una hoja), divdalo en diagramas mas pequeos.

4) Disee un sistema de objetos interactivos que realicen las
tareas, usando como punto de partida las responsabilidades
obtenidas de los contratos.
DISEO DE SISTEMAS
Diagramas de Colaboracin
Los diagramas de colaboracin y otros artefactos
efectuarPago(monto)
Cajero Sistemaa
IntroducirPro
ducto
(cup, cantidad)
terminarVenta()
Diagrama de la
Secuencia del Sistema
Operacin: introducirProducto

Poscondiciones:
1. Si se trata de una nueva venta, se creo
una nueva Venta...

Operacin: efectuarPago
Poscondiciones:
1. ...

Contratos
:CAJA
:CAJA
introducirProducto (cup,
cantidad)

efectuarPago(monto)
Diagrama de
Colaboracin
DISEO DE SISTEMAS
Diagramas de Colaboracin
Relacin entre los artefactos

Como se observa en la figura, la relacin entre los artefactos
incluye lo siguiente:

Los casos de uso indican los eventos del sistema que se
muestran explcitamente en los diagramas de secuencia.

En los contratos se describen las operaciones del sistema.

Las operaciones del sistema representan mensajes y stos
originan diagramas que explican grficamente cmo los objetos
interactan para llevar a cabo las funciones requeridas
(Diagramas de Colaboracin).
DISEO DE SISTEMAS
Diagramas de Colaboracin
Notacin bsica de los diagramas de colaboracin
1. Representacin grfica de las clases y de las instancias







Venta : Venta s1: Venta
clase instancia instancia con
nombre
Un nombre de una instancia sirve para identificarla de modo inequvoco.
DISEO DE SISTEMAS
Diagramas de Colaboracin
2.Representacin grfica de los vnculos

El vnculo (o enlace) es una trayectoria de conexin entre dos instancias; indica
alguna forma de navegacin y visibilidad que es posible entre las instancias. Un
vnculo es una instancia de una asociacin.






: TPDV :Venta
mensaje1()
1: agregarPago(efectivoOfrecido)

lnea de vnculo
DISEO DE SISTEMAS
Diagramas de Colaboracin
3. Representacin grfica de los mensajes
Los mensajes entre objetos pueden representarse por medio de una
flecha con un nombre y situada sobre una lnea de vnculo. Por un
vnculo puede fluir un nmero indefinido de mensajes. Se agrega un
nmero de secuencia que indique el orden consecutivo de los mensajes.
: CAJA :Venta
mensaje1()
1: mensaje1 ()
2: mensaje2 ()
3: mensaje3 ()


Todos los mensajes fluyen
sobre un mismo vnculo
DISEO DE SISTEMAS
Diagramas de Colaboracin
4.Representacin grfica de los parmetros
Los parmetros de un mensaje van dentro de un parntesis despus
del nombre del mensaje. Es opcional incluir el tipo de parmetro.
: CAJA :Venta 1: agregarPago (monto: Dinero)


parmetros
mensaje1()
DISEO DE SISTEMAS
Diagramas de Colaboracin
5.Representacin grfica del mensaje de devolver valor.

Puede incluirse un valor de retorno anteponiendo al mensaje un
nombre de variable de esa instruccin y un operador de asignacin
(:=). Es opcional mostrar el tipo del valor de retorno.
: CAJA :Venta
1: tot := total () : Entero


tipo del valor de
retorno
nombre del valor de
retorno
mensaje1()
DISEO DE SISTEMAS
Diagramas de Colaboracin
6. Sintaxis de los mensajes:

El lenguaje UML cuenta con una sintaxis estndar para los mensajes:
Retorno : mensaje (parametro : tipoparametro) : tiporetorno
Pueden usarse sintaxis de Java o Smalltalk.
7. Representacin grfica de los mensajes al emisor:

Puede enviarse un mensaje de un objeto a s mismo.
1: limpiar()
: CAJA
mensaje1()
DISEO DE SISTEMAS
Diagramas de Colaboracin
8. Representacin grfica de la iteracin:

La iteracin se indica posponiendo un asterisco (*) al nmero de
secuencia.
Ese smbolo significa que, dentro de un ciclo, el mensaje va a ser
enviado repetidamente al receptor.
: CAJA :Venta
1*: li := siguienteLineadeProducto ():VentasLineadeProducto

Iteracin omitiendo
los valores de
recurrencia
mensaje1()
DISEO DE SISTEMAS
Diagramas de Colaboracin
Tambin se puede incluir una clusula de iteracin con los
valores de recurrencia:
: CAJA :Venta
clusula de iteracin
1*:[i:=1..10] li := siguientelineadeproducto ():VentasLineadeProducto
mensaje1()
Si ms de un mensaje ocurre dentro de la misma clusula de
iteracin (por ejemplo, varios mensajes en un ciclo for), se
repetir la clusula con cada mensaje:
DISEO DE SISTEMAS
Diagramas de Colaboracin
:A
miB :B
miC :C
mensaje1()
1 * :[i:=1..10] mensaje2()
2 * :[i:=1..10] mensaje3()
Las clusulas de iteracin (i)
son iguales
msg1()
{
for i:=1 to 10
{
miB.mensaje2()

miC.mensaje3()

}
}


DISEO DE SISTEMAS
Diagramas de Colaboracin
9.Representacin grfica de la creacin de instancias:

El mensaje de creacin es crear, que se muestra en el momento
de ser enviado a la instancia que vamos a generar.
Es opcional que la nueva instancia contenga un smbolo nuevo.
El mensaje crear puede contener parmetros, que indica la
transferencia de valores iniciales.
1 : crear (cajero)

new
:Venta
crear mensaje, con parmetros
opcionales de iniacializacin
nueva instancia creada
nuevo o new se permite
opcionalmente para dar nfasis
mensaje1()
: CAJA :Venta
DISEO DE SISTEMAS
Diagramas de Colaboracin
10.Representacin grfica de la secuencia de nmero de los
mensajes:

El orden de los mensajes se indica con un nmero de secuencia.
Reglas:
El primer mensaje no se numera.
El orden y el anidamiento de los mensajes siguientes se indican con
un esquema legal de numeracin.
DISEO DE SISTEMAS
Diagramas de Colaboracin
:ClaseA :ClaseB
:ClaseC
:ClaseD
mensaje1() 1: mensaje2()
1.1: mensaje3()
2.1: mensaje5()
2: mensaje4()
2.2: mensaje6()
primera segunda
tercera
cuarta
quinta
sexta
DISEO DE SISTEMAS
Diagramas de Colaboracin
11. Representacin grfica de los mensajes condicionales:

Un mensaje condicional se indica posponiendo al nmero de la
secuencia una clusula condicional entre corchetes (parecido a como
se hace con una clusula de iteracin). El mensaje se enva slo si la
clusula se evala como verdadera.
:CAJA :ClaseB
:VentaslineadeProducto
1: [nueva venta] crear()
1.1: crear()
mensaje condicional, con prueba
mensaje1()
DISEO DE SISTEMAS
Diagramas de Colaboracin
12. Representacin grfica de trayectorias condicionales mutuamente
excluyentes:
Trayectorias que se excluyen mutuamente
:ClaseA :ClaseB
mensaje1()
1a : [prueb1] mens2()
1a.1: mens3()
:ClaseC :ClaseD
2: mens6()
1b.1 : mens5()
1b: [no prueb1] mens4()
:ClaseE
incondicional tras
mens2 o mens4
1a y 1b son trayectorias
condicionales mutuamente
excluyentes
DISEO DE SISTEMAS
Diagramas de Colaboracin
En este caso es necesario agregar una letra en la trayectoria
condicional. Por convencin, la primera letra en usarse es a.
Tanto 1a como 1b podran ejecutarse despus de mens1(). Ambas
tienen el nmero de secuencia 1 porque pueden ser el primer
mensaje interno.

Observe los subsecuentes mensajes anidados. 1b.1 es un mensaje
anidado dentro de 1b.
DISEO DE SISTEMAS
Diagramas de Colaboracin
13. Representacin grfica de las colecciones:
Un multiobjeto, o conjunto de instancias, se dibuja como un icono de
pila.
Ventas: Venta
Un multiobjeto se implementa como un grupo de instancias guardadas
en un contenedor u objeto coleccin. Representa tan slo un conjunto
lgico de instancias.
DISEO DE SISTEMAS
Diagramas de Colaboracin
14.Representacin grfica de mensajes dirigidos a multiobjetos:
Un mensaje dirigido a un icono de multiobjetos indica que se enva
al objeto coleccin. No a todos sus elementos.
:Venta
:VentasLinea
deProducto
mensaje1()
1: s := tamao():ent
mensaje enviado al objeto
coleccin
DISEO DE SISTEMAS
Diagramas de Colaboracin
15. Representacin grfica de los mensajes dirigidos a un objeto
Clase:
Los mensajes pueden tambin ser dirigidos a una clase y no nicamente
a una instancia:
:Venta
Fecha
mensaje1()
1: d1 := hoy():Fecha
mensaje a clase

Potrebbero piacerti anche