05 modelo de diseño
-
Upload
omar-beltran-celis-mendoza -
Category
Documents
-
view
1.263 -
download
3
Transcript of 05 modelo de diseño
![Page 1: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/1.jpg)
Desarrollo de software orientado a objetos
Unidad 5:Modelo del Diseño
![Page 2: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/2.jpg)
Agenda
Del análisis al diseño Diagramas de Interacción Responsabilidades y métodos
![Page 3: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/3.jpg)
Del análisis al diseño
![Page 4: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/4.jpg)
Del Análisis al Diseño
En el análisis se pone énfasis en el conocimiento de los requerimientos desde la perspectivas del “qué”: ¿qué procesos se requieren?, ¿qué conceptos son necesarios para el sistema?
![Page 5: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/5.jpg)
Del Análisis al Diseño
En el diseño se da forma al sistema y se define su perfil (con la arquitectura incluida).
Se define “cómo” se satisfacen los requerimientos funcionales y no funcionales.
![Page 6: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/6.jpg)
Del Análisis al Diseño
Propósitos: Lograr una clara comprensión de
requerimientos no funcionales relacionados con lenguajes de programación, reuso de componentes, sistemas operativos, tecnologías de distribución, concurrencia, bases de datos, etc.
![Page 7: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/7.jpg)
Del Análisis al Diseño
……. Tener la capacidad de descomponer
el trabajo de implantación en piezas manejables que puedan ser desarrolladas por distintos grupos.
Capturar las interfaces más importantes entre los distintos subsistemas.
![Page 8: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/8.jpg)
Del Análisis al DiseñoModelo de Análisis Modelo de Diseño
Es conceptual, unaabstracción del sistema sincaracterísticas de implem.
Es físico, es el anteproyectode la implementación
Es genérico respecto aldiseño (válido para muchos)
Es específico para laimplementación
Contempla tres estereotiposde clases: : “control”,“entity” y “boundary”
Diseña clases de muchosestereotipos dependiendodel lenguaje
Define pocas capas Define muchas capas
![Page 9: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/9.jpg)
Realización de los Casos de Uso
Describe como se desarrolla un caso de uso en términos de sus clases y objetos.
Describe su diseño a partir de herramientas concretas de entrada y salida.
Se adjuntan a la especificación: La interfaz del usuario Los diagramas de interacción. Diagramas de clases orientados al diseño.
![Page 10: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/10.jpg)
Realización de los Casos de Uso
Se puede completar una especificación esencial con el diseño de las pantallas y su interacción.
Se puede hacer especificaciones reales redefiniendo el flujo de los eventos utilizando los elementos de la interfaz (orientando la especificación a un manual de usuario).
![Page 11: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/11.jpg)
Diagramas de interacción
![Page 12: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/12.jpg)
Diagramas de interacción
Conceptos base Enfoque Cliente Servidor Diagrama de Secuencia del Sistema
Diagramas de interacción. ¿Qué son? Diagramas de secuencia Diagramas de colaboración
![Page 13: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/13.jpg)
Enfoque Cliente-Servidor
Forma de solucionar un problema en la vida real.
Pregunta: ¿Qué hago si mi auto se
descompone?Solución
Voy al taller para que lo compongan
![Page 14: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/14.jpg)
Enfoque Cliente-Servidor
Pasos en la solución del problema: Buscar un servidor apropiado (taller) Hacerle la petición del servicio (pasarle el
mensaje “arreglar auto”) El servidor emplea el método apropiado
para resolver la petición (procedimiento de arreglo propio del taller)
![Page 15: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/15.jpg)
Enfoque Cliente-Servidor
Consideraciones: Al cliente no le interesa cómo el servidor
resuelve su petición. La solución está encapsulada u oculta en
el servidor. El pensamiento de un servidor es buscar
alguien más para que colabore con la solución.
![Page 16: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/16.jpg)
Enfoque Cliente-Servidor
Cliente Servidor Colaborador(es)
![Page 17: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/17.jpg)
Comportamiento del sistema
Diagrama de secuencia del sistema
Muestra los eventos que fluyen de los actores al sistema
Evento: Acción de un actor que provoca que el sistema cambie de estado
Evento: Acción de un actor que provoca que el sistema cambie de estadoEvento
Sistema
![Page 18: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/18.jpg)
Vender Productos: Versión 1
Repetir hasta que no haya mas productos
IntrProd(CUP, Cantidad)
Diagrama de Secuencia del Sistema
:SistemaCajero
TerminarVenta ()
EfectuarPago (Monto)
![Page 19: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/19.jpg)
Cómo elaborar un diagrama de secuencia del sistema Colocar el símbolo del objeto sistema
y una línea vertical Para cada actor colocar su símbolo y
una línea vertical A partir de los eventos del caso de uso
identificar los eventos externos que son generados por los actores para los casos de uso
![Page 20: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/20.jpg)
TerminarVenta Vs OprimirTeclaEnter
Cómo nombrar los eventos
Deben denominarse de tal manera que estén desprovistos del medio físico de entrada o de elementos de la interfaz.
Se debe utilizar verbos en infinitivo. Deben captar el propósito de la
operación y no definirse en función de la interfaz.
![Page 21: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/21.jpg)
IntroducirImporteOfrecido(Monto)
¡Cada vez mejor!
IntroducirPago(Monto)
EfectuarPago(Monto)
Denominación de los Eventos
Importante:Describir el propósito
Importante:Describir el propósito
![Page 22: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/22.jpg)
:SistemaCajero
IntrProd(CUP, Cantidad)
TerminarVenta ()
EfectuarPago (Monto)
Para todos los productos el cajero registra el CUP y la cantidad….
...Al terminar la captura indica que la venta terminó.
...El cajero registra el importe recibido en efectivo
Diagrama de Secuencia del Sistema
![Page 23: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/23.jpg)
Diagramas de interacción… ¿Qué son? Un diagrama de interacción es una
representación gráfica de las interacciones entre los objetos.
Existen dos versiones: Diagramas de secuencia Diagramas de colaboración
![Page 24: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/24.jpg)
Diagramas de interacción… ¿Qué son? Cada uno de estos diagramas
proporciona una vista diferente de la misma interacción. Los diagramas de secuencia están
ordenados de acuerdo al tiempo. Los diagramas de colaboración ponen
énfasis en los mensajes entre los objetos y pueden incluir flujos de datos.
![Page 25: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/25.jpg)
Diagramas de secuencia
Introducción. Elementos. Distribución del flujo de control en
diagramas de secuencia.
![Page 26: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/26.jpg)
Introducción
Los diagramas de secuencia se usan para ilustrar la realización de los casos de uso.
Una organización típica tiene un diagrama de secuencia para el flujo normal de eventos de un caso de uso y otro para cada flujo alternativo independiente.
![Page 27: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/27.jpg)
Introducción
Los diagramas de secuencia son importantes para los diseñadores porque aclaran los roles de los objetos dentro de un flujo y proporcionan un input básico en la determinación de las responsabilidades de clases e interfases.
A diferencia de un diagrama de colaboración un diagrama de secuencia incluye una secuencia cronológica, pero no relaciones entre objetos.
![Page 28: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/28.jpg)
Elementos del diagrama de secuencia El diagramas muestran:
Los objetos y actores que participan en la interacción.
La secuencia de mensajes intercambiada entre dichos objetos.
![Page 29: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/29.jpg)
Diagramas de secuencia
Contiene: Objetos con sus líneas de vida Mensajes intercambiados entre los
objetos ordenados secuencialmente Focos de Control (opcionales). Scripts adicionales que aclaran el
propósito de la interacción entre objetos
![Page 30: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/30.jpg)
Diagrama de secuencia
![Page 31: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/31.jpg)
Objetos
Los objetos se dibujan como rectángulos con nombres subrayados.
Las líneas de vida de los objetos son representadas por líneas punteadas. Representa la existencia o presencia de un objeto en un determinado tiempo.
![Page 32: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/32.jpg)
Actores
Los actores se representan normalmente al inicio de un diagrama de secuencia como el que invoca a la interacción de los objetos.
Si hay mas de un actor es preferible que se coloquen todos al inicio (extremo izquierdo) o al final (extremo derecho).
![Page 33: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/33.jpg)
Mensajes
Un mensaje es la comunicación entre objetos que conlleva información y la expectativa de obtener un resultado.
Están indicados por flechas horizontales que son direccionadas desde una línea vertical (que representa al objeto cliente) hasta la otra (que representa al objeto servidor)
Las flechas horizontales están etiquetadas con el nombre del mensaje.
![Page 34: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/34.jpg)
Mensajes
El orden de los mensajes de acuerdo al tiempo está indicado por la posición vertical, con los primeros en la parte de arriba.
La numeración es opcional y está basada en la posición de las líneas verticales.
![Page 35: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/35.jpg)
Focos de control
Los focos de control representan el tiempo relativo en el que un flujo de control está focalizado en un objeto. Representa la secuencia de tiempo en
que un objeto esta dirigiendo sus mensajes.
Deben ser mostrados en un diagrama de secuencia para establecer ciclos.
![Page 36: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/36.jpg)
Ej. Diagrama de Secuencia con focos de control
![Page 37: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/37.jpg)
Scripts
Para escenarios complejos, los diagramas de secuencia pueden enriquecerse con el uso de scripts.
Estos, se escriben a la izquierda del diagrama de secuencias con los pasos alineados con las interacciones entre objetos.
Los scripts pueden ser escritos en lenguaje natural o pseudo código.
![Page 38: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/38.jpg)
Scripts para los Diagramas de Secuencia
Ejemplo
* Obtener Detalle(): PrecioXCantidad
Detalle CompobanteComprobante
El objeto comprobante obtiene de cada uno de
sus detalles el precioxcantidad para
calcular el total
![Page 39: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/39.jpg)
Distribución del control en un diagrama de secuencia La distribución del control en un
diagrama de secuencia puede ser centralizado, descentralizado o comúnmente una combinación de ambos comportamientos.
![Page 40: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/40.jpg)
Distribución del control en un diagrama de secuencia El control centralizado significa que unos pocos
objetos gobiernan el flujo enviando y recibiendo mensajes del resto de objetos.
Estos objetos de control deciden el orden en el que otros objetos serán activados.
La interacción entre los otros objetos es mínima o no existe.
: Usuario : IReserva : CReservas
CONTROL CENTRALIZADO
: Reserva : Cliente : Producto
![Page 41: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/41.jpg)
Distribución del control en un diagrama de secuencia
La principal ventaja del control centralizado consiste en que cada objeto no necesita hacer seguimiento del comportamiento del siguiente.
Si se requiere hacer cambios en el curso de eventos se hace los cambios en le objeto de control.
![Page 42: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/42.jpg)
Distribución del Control en un Diagrama de Secuencia
El control centralizado es apropiado: Si el orden en el cual los sub-eventos se
desarrollarán son cambiantes. Si se espera adicionar sub-eventos o
nuevos escenarios. Si se quiere conservar partes de la
funcionalidad como piezas separadas reusables.
![Page 43: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/43.jpg)
Distribución del control en un diagrama de secuencia
El control descentralizado se origina cuando los objetos participantes se comunican directamente unos con otros sin la intervención del un objeto controlador.
: Usuario : IReserva : CReservas
CONTROL DESCENTRALIZADO
: Reserva : Cliente : Producto
![Page 44: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/44.jpg)
Distribución del control en un diagrama de secuencia
El control descentralizado es apropiado: Si las fases de sub-eventos están fuertemente
emparejados como en el caso de objetos: Participantes de una jerarquía: País-Departamento-
Provincia-Distrito. Que forman parte de una organización (información)
jerárquica: CEO-Gerencia de División-Gerente de Sección, etc.
Que representan una progresión cronológica fija (siempre se van a realizar en un orden determinado): Publicidad, Pedido, Facturación, Despacho y Pago.
![Page 45: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/45.jpg)
Distribución del control en un diagrama de secuencia
El control descentralizado es apropiado: Si se desea encapsular (y en
consecuencia hacer abstracciones) la funcionalidad porque se usa frecuentemente como un todo.
![Page 46: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/46.jpg)
Diagramas de colaboración
Introducción. Elementos. Multiobjetos.
![Page 47: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/47.jpg)
Introducción
Al igual que los diagramas de secuencia, los de colaboración se usan para aclarar los roles de los objetos que participan en un flujo de eventos de un caso de uso.
Son la principal fuente de información para determinar las responsabilidades de las clases e interfaces.
![Page 48: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/48.jpg)
Introducción
El diagrama muestra las interacciones entre objetos organizadas alrededor de los propios objetos y sus mutuas conexiones.
Son mejores para comprender todos los efectos de un objeto dado y para el diseño de procedimientos.
![Page 49: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/49.jpg)
Elementos
Contiene: Objetos. Actores. Asociaciones entre objetos. Mensajes intercambiados entre los
objetos. Flujos de datos entre objetos (si existen).
![Page 50: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/50.jpg)
Diagramas de colaboración
Ejemplo:
![Page 51: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/51.jpg)
English101
Sólo Objeto
:Curso
Sólo Clase
English 101:Curso
Objeto y Clase
Objetos
Los objetos se dibujan como rectángulos con nombres subrayados
![Page 52: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/52.jpg)
Actores
Se representan normalmente para invocar o iniciar una interacción.
Si hay mas de uno es mejor diagramarlos en la periferia.
![Page 53: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/53.jpg)
Horario : Formulario Un curso : Curso
Vínculos
Un vínculo de interacción está representado por una línea que conecta a los íconos de los objetos.
Indica que hay un camino de comunicación entre dos objetos conectados.
![Page 54: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/54.jpg)
Notaciones para los vínculos
Un vínculo de interacción puede estar documentado con: Una flecha que apunta desde el objeto cliente
hacia el objeto servidor. El nombre del mensaje con una lista opcional
de parámetros y/o valores de retorno. Un número secuencial opcional que muestra el
orden relativo en que los mensajes son enviados.
![Page 55: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/55.jpg)
Horario : Formulario Un Curso : Curso
1: Obtiene prerrequisitos
2: Selecciona cursos
Lista de Cursos
Objeto Servidor
MensajePuntos del cliente
al servidor
Objeto cliente
Data de retorno
Vínculo
Notaciones para los Vínculos
![Page 56: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/56.jpg)
Representación de parámetros
Los parámetros pueden anotarse dentro de un paréntesis a continuación del nombre del mensaje. Es opcional incluir el tipo.
obtieneHorarioDisp(IdCurso: char)
:Curso :Horario
![Page 57: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/57.jpg)
Representación del mensaje que devuelve valor
Puede incluirse un valor de retorno anteponiendo una variable y un operador de asignación.
La sintaxis es:
1: Creditos := obtieneCreditos(IdCurso: char):Entero
retorno : mensaje(parametro : tipoParametro) : tipoRetorno
:ControladoraMatricula :Curso
![Page 58: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/58.jpg)
Representación de la iteración
La iteración se indica poniendo un asterisco (*) al número de secuencia.
1* : CM := cursoMatriculado():detalleMatricula
:Matricula :DetalleMatricula
![Page 59: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/59.jpg)
Representación de la iteración
La iteración con cláusula.
1* :[i:=1..10] CM i := ObtenerCurso():Curso
:ControladoraCursos :Curso
![Page 60: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/60.jpg)
Representación de condicionales mutuamente excluyentes
La iteración con cláusula.
1a :[con beca] ExonerarPago(IdMatricula)
:ControladoraPagos :Matricula
:CuentaCorriente
1b :[sin beca] CrearCuenta(IdMatricula)
![Page 61: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/61.jpg)
Representación de las colecciones
Un multiobjeto, colección o conjunto de instancias se representa como:
Suele implementarse como un grupo de instancias guardadas en un contenedor u objeto colección
:Detalle Matricula
![Page 62: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/62.jpg)
Representación de los mensajes a un multiobjeto
:Venta vl:VentaDetalle
:VentaDetalle
1: mens1()2: mens2()
1.1: crear()
2.2: imprimir()
1.2: adicionarDetalle(vl)
2.1: vl := obtenerDetalle(IdVenta)
![Page 63: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/63.jpg)
¿Cómo comenzar?
Procedimiento recomendado:1 Preparar un diagrama para cada operación
del sistema (encontradas en los diagramas de secuencia del sistema para cada caso de uso), que lo incluya como mensaje inicial.
2 Dividir el diagrama si se vuelve complejo.3 Diseñar un sistema de objetos interactuantes
para que realicen las tareas (tomar en cuenta las post-condiciones de contratos o casos de uso).
![Page 64: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/64.jpg)
Diagramas de interacción y otros artefactos
:Sistema
Iniciar Reserva()
Casos de uso y diagramas de Secuencia del Sistema
Caso de uso: Realizar Reserva()
Post Condiciones: • Se creó un objeto Reserva.....
Especificaciones de casos de uso y post-
condiciones, diagramas de clases de análisis
: Usuario : IReserva : CReservasIniciar Reserva()
Diagramas de interacción
![Page 65: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/65.jpg)
Ejemplo de elaboración de diagramas de interacción
Caso de Uso: Registrar Reserva (escenario de la reserva en agencia).
: Usuario SISTEMA
BuscarCliente()
IniciarReserva()
TerminarReserva()
BuscarProducto()
![Page 66: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/66.jpg)
Ejemplo de elaboración de diagramas de interacción
Counter
(from Actores)
ECliente
EProductoCCliente
CProductos
EReserva
EFormaPagoCReservaIListaReserva
IReserva
![Page 67: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/67.jpg)
Ejemplo de elaboración de diagramas de interacción
Operación: IniciarReserva () Descripción: Permite la creación de una
nueva reserva. Pre-Condiciones:
El sistema conoce la agencia registradora. Post-Condiciones:
Se creo una instancia de la clase Reserva. Se asoció una agencia a la instancia Reserva.
![Page 68: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/68.jpg)
Ejemplo de elaboración de diagramas de interacción
: Usuario : IReserva
R1 : RESERVA: SUCURSAL
: CReserva : IListaReservas
IniciarReserva()
IniciarReserva()
ObtenerSucursal(IdSucursal)
CrearReserva( )
AbrirIReserva(Ope, NombreAgencia)
![Page 69: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/69.jpg)
Ejemplo de elaboración de diagramas de interacción
4: CrearReserva( )
: Usuario
: IReserva
R1:RESERVA
: IListaReservas
: CReserva
:SUCURSAL
1: IniciarReserva()
2: IniciarReserva()
3: ObtenerSucursal(IdSucursal)
5: AbrirIReserva(Ope, NombreAgencia)
![Page 70: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/70.jpg)
Responsabilidades y métodos
![Page 71: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/71.jpg)
Responsabilidades y Métodos Las responsabilidades no son mas que los contratos
u obligaciones que tienen las clases. Las responsabilidades se implementan como
métodos. Se descubren a partir de los diagramas de
interacción. Asignarlas correctamente es uno de los problemas
de mayor importancia en el DOO. Podemos agruparlas en dos categorías:
Hacer Conocer
![Page 72: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/72.jpg)
Responsabilidades y Métodos
Entre las responsabilidades relacionadas con hacer están: Hacer algo en uno mismo:
Imprimir Comprobante() Iniciar una acción en otros:
CalcularTotalesVenta() Controlar y coordinar actividades en otros
objetos: RegistrarVenta()
![Page 73: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/73.jpg)
Responsabilidades y Métodos
Entre las responsabilidades relacionadas con conocer están: Estar enterado de los datos privados
encapsulados: MostrarNombreCliente() Estar enterado de la existencia de objetos
conexos: MostrarDetalleVenta() Estar enterado de las cosas que se pueden
derivar o calcular CalcularImpuesto()
Se pueden inferir del Modelo Conceptual
![Page 74: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/74.jpg)
Responsabilidades y Métodos Otra forma de reconocer responsabilidades
es a partir de la naturaleza de las clases. Las interfaces son expertas en mostrar y recibir
información. La entidades son expertas en el manejo de
datos. Las controladoras son las administradoras de
los casos de uso y se encargan de resolver los pedidos complejos (que involucran a varias clases).
Los multiobjetos son expertos en manejar listas de objetos
![Page 75: 05 modelo de diseño](https://reader033.fdocuments.es/reader033/viewer/2022052911/559dcb781a28ab64368b463e/html5/thumbnails/75.jpg)
Conclusiones
Asignar responsabilidades de manera adecuada es una de las tareas mas importantes del diseño y la que ocupa mas tiempo.
Los diagramas de interacción se usan en dos fases: En la primera, ayudan a descubrir los métodos de las
clases. En la segunda deben ser actualizados de tal manera que
todos los métodos de las clases estén en algún diagrama de interacción.
Los patrones de diseño son útiles para asignar responsabilidades correctamente.
Las tarjetas CRC permiten documentar las clases y sus colaboradoras mas cercanas.