Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

36
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)

description

UTN-FRT. Cátedra de Diseño de Sistemas. 3K1. 2011. Unidad III. Del Análisis al Diseño. Conclusión de la Fase de Análisis. Casos Reales de Uso. Diagramas de Colaboración. Notación

Transcript of Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

Page 1: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

Ingeniería en Sistemas de Información

Diseño de Sistemas(3K1)

Page 2: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

Contenidos de la Unidad 3Diseño Orientado a

Objetos I3. Diseño orientado a Objeto I Craig Larman , Cap 15.A. Casos de Uso Reales  Cap. 16A. Diagrama de Interacción  Cap. 17

a. Diagrama de Secuencia. 

a. Diagramas de Comunicación (UML 2)/ Colaboración (UML 1.1)

 

A. Patrones de Diseño. Cap. 18

a. Patrones creacionales 

a. Patrones Estructurales 

a. Patrones de Comportamiento 

a. GRAPS (Experto, Creador, Alta Cohesión, Bajo Acoplamiento, Controlador)

 

Page 3: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DEL ANÁLISIS AL DEL ANÁLISIS AL DISEÑODISEÑO

CONCLUSIÓN DE LA CONCLUSIÓN DE LA FASE DE ANÁLISISFASE DE ANÁLISIS

Craig Larman, Caps. 15 Craig Larman, Caps. 15 y 16y 16

Ingeniería en Sistemas de Información

Page 4: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

En la fase de análisis se da prioridad al conocimiento de los requerimientos, los conceptos y las operaciones relacionadas con el sistema. Nos centramos en cuestiones concernientes al qué: cuáles son los procesos, los conceptos, etc.En UML, los artefactos que sirven para capturar los resultados de una investigación en la fase de Análisis son:

Artefacto de análisis Preguntan que se contestan

Casos de Uso ¿Cuáles son los procesos del dominio?

Modelo Conceptual ¿Cuáles son los conceptos, los términos?

Diagramas de la secuencia de un sistema ¿Cuáles son los eventos y las operaciones del sistema?

Contratos ¿Qué hacen las operaciones del sistema?

Page 5: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Transición del Análisis al Transición del Análisis al DiseñoDiseño

INICIO DE LA FASE DE DISEÑOINICIO DE LA FASE DE DISEÑO

Se pasa a la fase del diseño, una vez terminados estos Se pasa a la fase del diseño, una vez terminados estos documentos del análisis. Su esencia es la elaboración de documentos del análisis. Su esencia es la elaboración de diagramas de interaccióndiagramas de interacción, que muestran gráficamente , que muestran gráficamente cómo los objetos se comunicarán entre ellos a fin de cumplir cómo los objetos se comunicarán entre ellos a fin de cumplir con los requerimientos.con los requerimientos.

Luego, los diagramas de interacción nos permitirán dibujar Luego, los diagramas de interacción nos permitirán dibujar Diagramas de Diseño de ClasesDiagramas de Diseño de Clases que definen las clases (e que definen las clases (e interfaces) implementables en software.interfaces) implementables en software.

Para preparar los Para preparar los Diagramas de InteracciónDiagramas de Interacción hay que aplicar hay que aplicar Principios de Asignación de ResponsabilidadesPrincipios de Asignación de Responsabilidades (usar los (usar los Patrones de DiseñoPatrones de Diseño)..

Page 6: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Transición del Análisis al DiseñoTransición del Análisis al Diseño

Casos Reales de Uso

Los Casos Reales de Uso presentan un diseño concreto del Caso de Uso. Es una de las primeras actividades en el ciclo de desarrollo. Su creación depende de los Casos Esenciales de Uso generados en el Análisis.

Un Caso Real de Uso describe el Un Caso Real de Uso describe el diseño concreto del caso de uso diseño concreto del caso de uso a partir de una tecnología particular de entrada y salida, y su a partir de una tecnología particular de entrada y salida, y su implementación global. Por ejemplo, si hay una interfaz gráfica implementación global. Por ejemplo, si hay una interfaz gráfica para el usuario, el caso de uso real incluirá diagramas de las para el usuario, el caso de uso real incluirá diagramas de las ventanas en cuestión y una explicación de la interacción.ventanas en cuestión y una explicación de la interacción.

Page 7: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Transición del Análisis al DiseñoTransición del Análisis al Diseño

Ejemplo: Comprar Producto: Versión 1

Caso de uso: Comprar productos: versión 1 (ya definido en prácticos anteriores) (efectivo exclusivamente)

Actores: Cajero (Iniciador). Propósito: 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 transacción, 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.

Page 8: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Transición del Análisis al DiseñoTransición del Análisis al Diseño

A

B

C

D

E

F

G

H I J

Curso normal de los eventos.

Acción 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 código universal de producto (CUP) en A de la Ventana – 1. Si hay más de un producto, es opcional capturar la cantidad en E. Se oprime H después de capturar producto.

3) Agrega la información sobre el producto a la actual transacción (en B y F).

4) Al terminar de capturar los productos, el Cajero oprime el botón I para indicarle a la CAJA que terminó de capturar los productos.

5) Calcula y presenta en C el total de la venta.

6) ...

Page 9: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

DIAGRAMAS DE COLABORACIÓNDIAGRAMAS DE COLABORACIÓN

Diagramas de Interacción => explican gráficamente cómo los objetos interactúan a través de mensajes para realizar las tareas.

Diagramas de Interacción Los diagramas de interacción se realizan en la fase de diseño. Antes deben generarse los siguientes artefactos:

• Modelo Conceptual: con ellos se podrán definir las clases de software correspondientes a los conceptos.

• Contratos de la operación del sistema: => identifican las responsabilidades y las poscondiciones que deben prever los diagramas de interacción.

• Casos de uso reales (o esenciales): => brindan información sobre las tareas que realizan los diagramas de interacción y lo estipulado en los contratos.

Page 10: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

Un Diagrama de Interacción explica gráficamente las interacciones existentes entre las instancias. Su punto de partida es el cumplimiento de las postcondiciones de los contratos de una operación.

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

1. - Diagramas de Colaboración.

2. - Diagramas de Secuencia.

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

 

Page 11: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de Diagramas de ColaboraciónColaboración

Diagramas de Colaboración => describen las interacciones entre los objetos en un formato de grafo o red:

Diagrama de Colaboración

:ClaseAInstancia :ClaseBInstancia mensaje1() 1: mensaje2() 2: mensaje3()

Page 12: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

Diagramas de Secuencia => describen las interacciones en una especie de formato de cerca o muro:

:ClaseAInstancia :ClaseBInstancia

mensaje1()

mensaje2()

mensaje3()

Page 13: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

Preferimos los Diagramas de Colaboración => Son más expresivos, comunican más información en menos espacio.

Ejemplo de un diagrama de colaboración: efectuarPago.

instanciaparámetro

:CAJA :VentaefectuarPago(efectivoOfrecido) 1: efectuarPago(efectivoOfrecido)

:Pago

1.1: crear(efectivoOfrecido) primer mensaje línea de enlace

dirección del mensajeprimer mensaje interno

Page 14: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de Diagramas de ColaboraciónColaboración

Este Diagrama de Colaboración se lee así:

1) El mensaje efectuarPago se envía a una instancia de CAJA. La instancia corresponde al mensaje efectuarPago de la operación del sistema.

2) El objeto CAJA envía el mensaje efectuarPago a la instancia Venta.

3) El objeto Venta crea una instancia de un Pago.

Page 15: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de Diagramas de ColaboraciónColaboración

Los diagramas de interacción son un artefacto de gran utilidad

Constituyen un artefacto muy importante para la estructuración de las etapas posteriores.

El tiempo y el esfuerzo dedicados a su preparación deberían absorber un porcentaje considerable del proyecto.

Para mejorar la calidad de su diseño, es posible aplicar patrones, principios y expresiones codificados.

Los principios de diseño necesarios para construir eficazmente los diagramas de interacción pueden codificarse, explicarse y aplicarse metódicamente.

Page 16: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de Diagramas de ColaboraciónColaboraciónAhora, veamos la notación de UML para los diagramas de

colaboración. Luego veremos los principios y directrices para elaborarlos correctamente.

Cómo preparar diagramas de colaboración1) Elabore el diagrama por cada operación del sistema.

2) Para cada mensaje del sistema, dibuje un diagrama incluyéndolo como mensaje inicial.

3) Si el diagrama se torna complejo (por ejemplo, si no cabe en una hoja), divídalo en diagramas mas pequeños.

4) Diseñe un sistema de objetos interactivos que realicen las tareas, usando como punto de partida las responsabilidades obtenidas de los contratos.

Page 17: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de Diagramas de ColaboraciónColaboración

Los diagramas de colaboración y otros artefactos

efectuarPago(monto)

Cajero Sistemaa

IntroducirProducto

(cup, cantidad)

terminarVenta()

Diagrama de la Secuencia del Sistema

Operación: introducirProducto

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

Operación: efectuarPagoPoscondiciones:1. ...

Contratos

:CAJA

:CAJA

introducirProducto (cup, cantidad)

efectuarPago(monto)

Diagrama de Colaboración

Page 18: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

Relación entre los artefactos

Como se observa en la figura, la relación entre los artefactos incluye lo siguiente:

Los casos de uso indican los eventos del sistema que se muestran explícitamente 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 gráficamente cómo los objetos interactúan para llevar a cabo las funciones requeridas (Diagramas de Colaboración).

Page 19: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

Notación básica de los diagramas de colaboraciónNotación básica de los diagramas de colaboración

1. Representación gráfica 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 inequívoco.

Page 20: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

2.Representación gráfica de los vínculos

El vínculo (o enlace) es una trayectoria de conexión entre dos instancias; indica alguna forma de navegación y visibilidad que es posible entre las instancias. Un vínculo es una instancia de una asociación.

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

línea de vínculo

Page 21: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

3. Representación gráfica de los mensajes3. Representación gráfica de los mensajesLos mensajes entre objetos pueden representarse por medio de una Los mensajes entre objetos pueden representarse por medio de una flecha con un nombre y situada sobre una línea de vínculo. Por un flecha con un nombre y situada sobre una línea de vínculo. Por un vínculo puede fluir un número indefinido de mensajes. Se agrega un vínculo puede fluir un número indefinido de mensajes. Se agrega un número de secuencia que indique el orden consecutivo de los mensajes.número de secuencia que indique el orden consecutivo de los mensajes.

: CAJA :Ventamensaje1()

1: mensaje1 ()2: mensaje2 ()3: mensaje3 ()

Todos los mensajes fluyen sobre un mismo vínculo

Page 22: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

4.Representación gráfica de los parámetrosLos parámetros de un mensaje van dentro de un paréntesis después del nombre del mensaje. Es opcional incluir el tipo de parámetro.

: CAJA :Venta1: agregarPago (monto: Dinero)

parámetros

mensaje1()

Page 23: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de Diagramas de ColaboraciónColaboración

5.Representación gráfica del mensaje de devolver valor.

Puede incluirse un valor de retorno anteponiendo al mensaje un nombre de variable de esa instrucción y un operador de asignación (“:=”). Es opcional mostrar el tipo del valor de retorno. 

: CAJA :Venta1: tot := total () : Entero

tipo del valor de retorno

nombre del valor de retorno

mensaje1()

Page 24: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

6. Sintaxis de los mensajes:

El lenguaje UML cuenta con una sintaxis estándar para los mensajes:Retorno : mensaje (parametro : tipoparametro) : tiporetornoPueden usarse sintaxis de Java o Smalltalk.

7. Representación gráfica de los mensajes al “emisor”:

Puede enviarse un mensaje de un objeto a sí mismo.

1: limpiar()

: CAJA

mensaje1()

Page 25: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

8. Representación gráfica de la iteración:

La iteración se indica posponiendo un asterisco (*) al número de secuencia.Ese símbolo significa que, dentro de un ciclo, el mensaje va a ser enviado repetidamente al receptor.

: CAJA :Venta1*: li := siguienteLineadeProducto ():VentasLineadeProducto

Iteración omitiendo los valores de recurrencia

mensaje1()

Page 26: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

También se puede incluir una cláusula de iteración con los valores de recurrencia:

: CAJA :Venta

cláusula de iteración

1*:[i:=1..10] li := siguientelineadeproducto ():VentasLineadeProducto mensaje1()

Si más de un mensaje ocurre dentro de la misma cláusula de iteración (por ejemplo, varios mensajes en un ciclo for), se repetirá la cláusula con cada mensaje:

Page 27: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

:A miB :B

miC :C

mensaje1()

1 * :[i:=1..10] mensaje2()

2 * :[i:=1..10] mensaje3()

Las cláusulas de iteración (i) son iguales

msg1(){ for i:=1 to 10 {

miB.mensaje2()

miC.mensaje3()

}}

Page 28: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración9.Representación gráfica de la creación de instancias:9.Representación gráfica de la creación de instancias:

El mensaje de creación es “El mensaje de creación es “crear”crear”, que se muestra en el momento , que se muestra en el momento de ser enviado a la instancia que vamos a generar.de ser enviado a la instancia que vamos a generar.Es opcional que la nueva instancia contenga un símbolo Es opcional que la nueva instancia contenga un símbolo «nuevo»«nuevo»..El mensaje El mensaje crearcrear puede contener parámetros, que indica la puede contener parámetros, que indica la transferencia de valores iniciales.transferencia de valores iniciales.

1 : crear (cajero)

«new»:Venta

crear mensaje, con parámetros opcionales de iniacialización

nueva instancia creada

“nuevo” o “new” se permite opcionalmente para dar énfasis

mensaje1() : CAJA :Venta

Page 29: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

10.Representación gráfica de la secuencia de número de los 10.Representación gráfica de la secuencia de número de los mensajes:mensajes:

El orden de los mensajes se indica con un El orden de los mensajes se indica con un número de secuencianúmero de secuencia. . Reglas:Reglas:

El primer mensaje no se numera.El primer mensaje no se numera.El orden y el anidamiento de los mensajes siguientes se indican con El orden y el anidamiento de los mensajes siguientes se indican con

un un esquema legal de numeraciónesquema legal de numeración..

Page 30: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

:ClaseA :ClaseB

:ClaseC

:ClaseD

mensaje1() 1: mensaje2()

1.1: mensaje3()

2.1: mensaje5()

2: mensaje4()

2.2: mensaje6()

primera segunda

tercera

cuarta

quinta

sexta

Page 31: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

11. Representación gráfica de los mensajes condicionales:

Un mensaje condicional se indica posponiendo al número de la secuencia una cláusula condicional entre corchetes (parecido a como se hace con una cláusula de iteración). El mensaje se envía sólo si la cláusula se evalúa como verdadera.

:CAJA :ClaseB

:VentaslineadeProducto

1: [nueva venta] crear()

1.1: crear()

mensaje condicional, con prueba

mensaje1()

Page 32: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

12. Representación gráfica de trayectorias condicionales mutuamente 12. Representación gráfica de trayectorias condicionales mutuamente excluyentes:excluyentes:Trayectorias que se excluyen mutuamenteTrayectorias que se excluyen mutuamente

:ClaseA :ClaseBmensaje1() 1a : [prueb1] mens2()

1a.1: mens3()

:ClaseC:ClaseD

2: mens6()

1b.1 : mens5()

1b: [no prueb1] mens4()

:ClaseEincondicional tras mens2 o mens4

1a y 1b son trayectorias condicionales mutuamente excluyentes

Page 33: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

En este caso es necesario agregar una letra en la trayectoria condicional. Por convención, la primera letra en usarse es a. Tanto 1a como 1b podrían ejecutarse después de mens1(). Ambas tienen el número de secuencia 1 porque pueden ser el primer mensaje interno.

Observe los subsecuentes mensajes anidados. 1b.1 es un mensaje anidado dentro de 1b.

Page 34: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

13. Representación gráfica de las colecciones:13. Representación gráfica de las colecciones:Un Un multiobjetomultiobjeto, o conjunto de instancias, se dibuja como un icono de , o conjunto de instancias, se dibuja como un icono de pila.pila.

Ventas: Venta

Un multiobjeto se implementa como un grupo de instancias guardadas Un multiobjeto se implementa como un grupo de instancias guardadas en un contenedor u objeto colección. Representa tan sólo un conjunto en un contenedor u objeto colección. Representa tan sólo un conjunto lógico de instancias.lógico de instancias.

Page 35: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

14.Representación gráfica de mensajes dirigidos a multiobjetos:Un mensaje dirigido a un icono de multiobjetos indica que se envía al objeto colección. No a todos sus elementos.

:Venta :VentasLinea deProducto

mensaje1()

1: s := tamaño():ent

mensaje enviado al objeto colección

Page 36: Del análisis al diseño. conclusión de la fase del análisis. diagramas de colaboración

DISEÑO DE SISTEMASDISEÑO DE SISTEMAS

Diagramas de ColaboraciónDiagramas de Colaboración

15. Representación gráfica de los mensajes dirigidos a un objeto 15. Representación gráfica de los mensajes dirigidos a un objeto «Clase»:«Clase»:Los mensajes pueden también ser dirigidos a una clase y no únicamente Los mensajes pueden también ser dirigidos a una clase y no únicamente a una instancia:a una instancia:

:Venta Fecha

mensaje1()

1: d1 := hoy():Fecha

mensaje a clase