SlideShare una empresa de Scribd logo
1 de 75
Desarrollo de software
orientado a objetos
Unidad 5:
Modelo del Diseño
Agenda
 Del análisis al diseño
 Diagramas de Interacción
 Responsabilidades y métodos
Del análisis al diseño
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?
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.
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.
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.
Del Análisis al Diseño
Modelo de Análisis

Modelo de Diseño

Es conceptual, una
abstracción del sistema sin
características de implem.
Es genérico respecto al
diseño (válido para muchos)
Contempla tres estereotipos
de clases: : “control”,
“entity” y “boundary”
Define pocas capas

Es físico, es el anteproyecto
de la implementación
Es específico para la
implementación
Diseña clases de muchos
estereotipos dependiendo
del lenguaje
Define muchas capas
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.
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).
Diagramas de interacción
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
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
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)
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.
Enfoque Cliente-Servidor

Cliente

Servidor

Colaborador(es)
Diagrama de secuencia del sistema
 Muestra los eventos que fluyen de
los actores al sistema

Evento

Sistema

Evento: Acción de
Evento: Acción de
un actor que
un actor que
provoca que el
provoca que el
sistema cambie
sistema cambie
de estado
de estado

Comportamiento del sistema
Diagrama de Secuencia del
Sistema
Vender Productos: Versión 1
Repetir hasta que no haya mas productos

Cajero

:Sistema
IntrProd(CUP, Cantidad)
TerminarVenta ()
EfectuarPago (Monto)
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
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.

TerminarVenta Vs OprimirTeclaEnter
Denominación de los Eventos
IntroducirImporteOfrecido(Monto)

IntroducirPago(Monto)
EfectuarPago(Monto)

¡Cada vez mejor!

Importante:
Importante:
Describir el
Describir el
propósito
propósito
Diagrama de Secuencia del
Sistema
Para todos los
productos el cajero
registra el CUP y la
cantidad….

Cajero

:Sistema

IntrProd(CUP, Cantidad)
...Al terminar la captura
indica que la venta
terminó.

TerminarVenta ()
EfectuarPago (Monto)

...El cajero registra el importe recibido en
efectivo
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
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.
Diagramas de secuencia
 Introducción.
 Elementos.
 Distribución del flujo de control en
diagramas de secuencia.
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.
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.
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.
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
Diagrama de secuencia
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.
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).
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.
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.
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.
Ej. Diagrama de Secuencia con
focos de control
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.
Scripts para los Diagramas de
Secuencia
 Ejemplo
Comprobante
El objeto comprobante
obtiene de cada uno de
sus detalles el
precioxcantidad para
calcular el total

Detalle
Compobante

* Obtener Detalle(): PrecioXCantidad
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.
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.
CONTROL CENTRALIZADO
: Usuario

: IReserva : CReservas : Reserva : Cliente : Producto
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.
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.
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.
CONTROL DESCENTRALIZADO

: Usuario

: IReserva : CReservas : Reserva : Cliente : Producto
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-DepartamentoProvincia-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.
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.
Diagramas de colaboración
 Introducción.
 Elementos.
 Multiobjetos.
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.
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.
Elementos
 Contiene:
Objetos.
Actores.
Asociaciones entre objetos.
Mensajes intercambiados entre los
objetos.
 Flujos de datos entre objetos (si existen).




Diagramas de colaboración
 Ejemplo:
Objetos
 Los objetos se dibujan como
rectángulos con nombres subrayados

English
101
Sólo Objeto

English 101:
Curso
Objeto y Clase

:Curso
Sólo Clase
Actores
 Se representan normalmente para
invocar o iniciar una interacción.
 Si hay mas de uno es mejor
diagramarlos en la periferia.
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.
Horario : Formulario

Un curso : Curso
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.
Notaciones para los Vínculos
Mensaje
Puntos del cliente
al servidor
2: Selecciona cursos

Objeto
cliente
Horario : Formulario

1: Obtiene prerrequisitos
Lista de Cursos

Un Curso : Curso

Vínculo
Data de retorno

Objeto
Servidor
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
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:
retorno : mensaje(parametro : tipoParametro) : tipoRetorno
1: Creditos := obtieneCreditos(IdCurso: char):Entero
:Controladora
Matricula

:Curso
Representación de la iteración
 La iteración se indica poniendo un
asterisco (*) al número de secuencia.
1* : CM := cursoMatriculado():detalleMatricula
:Matricula

:Detalle
Matricula
Representación de la iteración
 La iteración con cláusula.
1* :[i:=1..10] CM i := ObtenerCurso():Curso
:Controladora
Cursos

:Curso
Representación de condicionales
mutuamente excluyentes
 La iteración con cláusula.
1a :[con beca] ExonerarPago(IdMatricula)
:Controladora
Pagos

:Matricula

:Cuenta
Corriente
1b :[sin beca] CrearCuenta(IdMatricula)
Representación de las
colecciones
 Un multiobjeto, colección o conjunto de
instancias se representa como:

:Detalle Matricula

 Suele implementarse como un grupo de
instancias guardadas en un contenedor u
objeto colección
Representación de los mensajes
a un multiobjeto
2:
mens2()

1: mens1()

:Venta

1.1: crear()

vl:VentaDetalle

2.2: imprimir()

1.2: adicionarDetalle(vl)

:VentaDetalle
2.1: vl := obtenerDetalle(IdVenta)
¿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).
Diagramas de interacción y
otros artefactos
Especificaciones de
casos de uso y postcondiciones, diagramas
de clases de análisis

Casos de uso y diagramas de
Secuencia del Sistema

:Sistema
Iniciar Reserva()

Caso de uso: Realizar Reserva()
Post Condiciones:
• Se creó un objeto Reserva.....
Diagramas de
interacción

: Usuario : IReserva : CReservas
Iniciar Reserva()
Ejemplo de elaboración de
diagramas de interacción
 Caso de Uso:
Registrar
Reserva
(escenario de
la reserva en
agencia).

: Usuario

SISTEMA

IniciarReserva()
BuscarCliente()
BuscarProducto()
TerminarReserva()
Ejemplo de elaboración de
diagramas de interacción
IListaReserva
CReserva

EFormaPago

IReserva

CProductos

Counter

EReserva

(from Actores)

EProducto

CCliente

ECliente
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.
Ejemplo de elaboración de
diagramas de interacción
: SUCURSAL
: Usuario

R1 : RESERVA

: IListaReservas
: CReserva

IniciarReserva()
IniciarReserva()
ObtenerSucursal(IdSucursal)
CrearReserva( )
AbrirIReserva(Ope, NombreAgencia)

: IReserva
Ejemplo de elaboración de
diagramas de interacción
1: IniciarReserva()
: Usuario

: IListaReservas
2: IniciarReserva()
3: ObtenerSucursal(IdSucursal)

:SUCURSAL

: CReserva
4: CrearReserva( )
5: AbrirIReserva(Ope, NombreAgencia)

: IReserva

R1:RESERVA
Responsabilidades y
métodos
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
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()
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
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
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.

Más contenido relacionado

La actualidad más candente

6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clasesRamiro Estigarribia Canese
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso RealesSergio Sanchez
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisisCarolina Rojas
 
Ut5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de usoUt5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de usoijmb666
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejerciciosWalter Chacon
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UMLramirezjaime
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoSergio Sanchez
 
Primeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoPrimeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoJuan Pablo Bustos Thames
 
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitosAnálisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitosGianfrancoEduardoBra
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de usoJulio Pari
 
Aplicaciones del modelo y especificaciones
Aplicaciones del modelo y especificacionesAplicaciones del modelo y especificaciones
Aplicaciones del modelo y especificacionesedsacun
 
Modelamiento de casos de uso articulo terminado
Modelamiento  de casos de uso  articulo  terminadoModelamiento  de casos de uso  articulo  terminado
Modelamiento de casos de uso articulo terminadoFrankito Quintana Huaman
 

La actualidad más candente (20)

6.modelado de los requerimientos escenarios y clases
6.modelado de los requerimientos  escenarios y clases6.modelado de los requerimientos  escenarios y clases
6.modelado de los requerimientos escenarios y clases
 
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso RealesUnidad 7 Mad Modelado DiseñO    Contratos Y Casos De Uso Reales
Unidad 7 Mad Modelado DiseñO Contratos Y Casos De Uso Reales
 
Modelo de requerimientos
Modelo de requerimientosModelo de requerimientos
Modelo de requerimientos
 
Modelado del AnáLisis
Modelado del AnáLisisModelado del AnáLisis
Modelado del AnáLisis
 
Estructura de casos de uso
Estructura de casos de usoEstructura de casos de uso
Estructura de casos de uso
 
Ut5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de usoUt5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de uso
 
7.flujo, comportamiento, patrones y web apps
7.flujo, comportamiento, patrones y web apps7.flujo, comportamiento, patrones y web apps
7.flujo, comportamiento, patrones y web apps
 
Tms 03 modelo_negocio
Tms 03 modelo_negocioTms 03 modelo_negocio
Tms 03 modelo_negocio
 
Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejercicios
 
Uml clase 02_uml_casos_de_uso
Uml clase 02_uml_casos_de_usoUml clase 02_uml_casos_de_uso
Uml clase 02_uml_casos_de_uso
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UML
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
 
Primeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoPrimeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de uso
 
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitosAnálisis y diseño de sistemas   sesion 06 - fundamentos y capturas de requisitos
Análisis y diseño de sistemas sesion 06 - fundamentos y capturas de requisitos
 
Tm03 modelo de casos de uso
Tm03 modelo de casos de usoTm03 modelo de casos de uso
Tm03 modelo de casos de uso
 
Aplicaciones del modelo y especificaciones
Aplicaciones del modelo y especificacionesAplicaciones del modelo y especificaciones
Aplicaciones del modelo y especificaciones
 
Modelo Requistos
Modelo RequistosModelo Requistos
Modelo Requistos
 
UML: CASOS DE USO
UML: CASOS DE USOUML: CASOS DE USO
UML: CASOS DE USO
 
Modelamiento de casos de uso articulo terminado
Modelamiento  de casos de uso  articulo  terminadoModelamiento  de casos de uso  articulo  terminado
Modelamiento de casos de uso articulo terminado
 

Destacado

Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...
Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...
Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...Espedito Passarello
 
PASSARELLO ESPEDITO Centros integrados informacion_nota
PASSARELLO ESPEDITO Centros integrados informacion_notaPASSARELLO ESPEDITO Centros integrados informacion_nota
PASSARELLO ESPEDITO Centros integrados informacion_notaEspedito Passarello
 
Administración del desarrollo de sistemas
Administración del desarrollo de sistemasAdministración del desarrollo de sistemas
Administración del desarrollo de sistemasPedro Aguilera
 
Casos de uso del negocio
Casos de uso del negocioCasos de uso del negocio
Casos de uso del negocioRobert Caraguay
 
PASSARELLO ESPEDITO Redes telematicas
PASSARELLO ESPEDITO Redes telematicas PASSARELLO ESPEDITO Redes telematicas
PASSARELLO ESPEDITO Redes telematicas Espedito Passarello
 
66229709 seleccion-de-metodologias-de-desarrollo
66229709 seleccion-de-metodologias-de-desarrollo66229709 seleccion-de-metodologias-de-desarrollo
66229709 seleccion-de-metodologias-de-desarrolloJulio Pari
 
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8netmind
 
Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...
Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...
Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...Espedito Passarello
 
PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_
PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_
PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_Espedito Passarello
 
Fases del desarrollo de software
Fases del desarrollo de softwareFases del desarrollo de software
Fases del desarrollo de softwarenicocristdaro
 
Metodologia para el desarrollo de software
Metodologia para el desarrollo de softwareMetodologia para el desarrollo de software
Metodologia para el desarrollo de softwareCarlos Zambrano
 
Metodologias de desarrollo del software
Metodologias de desarrollo del softwareMetodologias de desarrollo del software
Metodologias de desarrollo del softwaregeurquizo
 
Lista de controles ISO/IEC 27001:2005
Lista de controles ISO/IEC 27001:2005Lista de controles ISO/IEC 27001:2005
Lista de controles ISO/IEC 27001:2005Ramiro Cid
 
Presentación calendario (2) MS PROJECT
Presentación calendario (2) MS PROJECTPresentación calendario (2) MS PROJECT
Presentación calendario (2) MS PROJECTMnoz Patricio
 
Procesos de desarrollo de Software
Procesos de desarrollo de SoftwareProcesos de desarrollo de Software
Procesos de desarrollo de Softwareolea_saavedra
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de softwareAbner Garcia
 

Destacado (20)

Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...
Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...
Passarello gobierno electronico__sociedad_de_la_informacion_consejo_profesion...
 
Archivos
ArchivosArchivos
Archivos
 
PASSARELLO ESPEDITO Centros integrados informacion_nota
PASSARELLO ESPEDITO Centros integrados informacion_notaPASSARELLO ESPEDITO Centros integrados informacion_nota
PASSARELLO ESPEDITO Centros integrados informacion_nota
 
Administración del desarrollo de sistemas
Administración del desarrollo de sistemasAdministración del desarrollo de sistemas
Administración del desarrollo de sistemas
 
Casos de uso del negocio
Casos de uso del negocioCasos de uso del negocio
Casos de uso del negocio
 
PASSARELLO ESPEDITO Redes telematicas
PASSARELLO ESPEDITO Redes telematicas PASSARELLO ESPEDITO Redes telematicas
PASSARELLO ESPEDITO Redes telematicas
 
66229709 seleccion-de-metodologias-de-desarrollo
66229709 seleccion-de-metodologias-de-desarrollo66229709 seleccion-de-metodologias-de-desarrollo
66229709 seleccion-de-metodologias-de-desarrollo
 
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
 
Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...
Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...
Prof espedito passarello_tercerizacion_outsourcing_y_garantia_de_la_calidad_e...
 
PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_
PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_
PASSARELLO ESPEDITO Gerenciamiento de la_salud_tecnologia_medica_
 
Fases del desarrollo de software
Fases del desarrollo de softwareFases del desarrollo de software
Fases del desarrollo de software
 
Metodologia para el desarrollo de software
Metodologia para el desarrollo de softwareMetodologia para el desarrollo de software
Metodologia para el desarrollo de software
 
Ing de software
Ing de softwareIng de software
Ing de software
 
Metodologias de desarrollo del software
Metodologias de desarrollo del softwareMetodologias de desarrollo del software
Metodologias de desarrollo del software
 
Lista de controles ISO/IEC 27001:2005
Lista de controles ISO/IEC 27001:2005Lista de controles ISO/IEC 27001:2005
Lista de controles ISO/IEC 27001:2005
 
Requisitos metrica
Requisitos metricaRequisitos metrica
Requisitos metrica
 
Presentación calendario (2) MS PROJECT
Presentación calendario (2) MS PROJECTPresentación calendario (2) MS PROJECT
Presentación calendario (2) MS PROJECT
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Procesos de desarrollo de Software
Procesos de desarrollo de SoftwareProcesos de desarrollo de Software
Procesos de desarrollo de Software
 
Metodologías para desarrollo de software
Metodologías para desarrollo de softwareMetodologías para desarrollo de software
Metodologías para desarrollo de software
 

Similar a 05 modelo de diseño

UML - Vista de interaccion.pptx
UML - Vista de interaccion.pptxUML - Vista de interaccion.pptx
UML - Vista de interaccion.pptxMichelGarcia69
 
Glosario terminologia java
Glosario terminologia javaGlosario terminologia java
Glosario terminologia javaorus004
 
diagramas de interaccion
diagramas de interacciondiagramas de interaccion
diagramas de interaccionjent46
 
9. introducción a uml
9. introducción a uml9. introducción a uml
9. introducción a umlHectorMamani
 
Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...
Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...
Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...Juan Pablo Bustos Thames
 
Diagrama de secuencia 2
Diagrama de secuencia 2Diagrama de secuencia 2
Diagrama de secuencia 2evelyn alvarez
 
Diagrama de secuencia 2
Diagrama de secuencia 2Diagrama de secuencia 2
Diagrama de secuencia 2evelyn alvarez
 
Clase diagramas desecuencia
Clase diagramas desecuenciaClase diagramas desecuencia
Clase diagramas desecuenciaESTEVAN GOMEZ
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujolordXDie
 
DiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.pptDiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.pptJoseChaaparroo1
 
Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo Byron Quisquinay
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)josue salas
 
Diseño de sistemas - UML - compendio
Diseño de sistemas  -  UML - compendioDiseño de sistemas  -  UML - compendio
Diseño de sistemas - UML - compendioJose Diaz Silva
 

Similar a 05 modelo de diseño (20)

Uml
UmlUml
Uml
 
Mis diapositivas uml
Mis diapositivas umlMis diapositivas uml
Mis diapositivas uml
 
UML - Vista de interaccion.pptx
UML - Vista de interaccion.pptxUML - Vista de interaccion.pptx
UML - Vista de interaccion.pptx
 
Glosario terminologia java
Glosario terminologia javaGlosario terminologia java
Glosario terminologia java
 
Glosario java
Glosario javaGlosario java
Glosario java
 
Diccionario
DiccionarioDiccionario
Diccionario
 
diagramas de interaccion
diagramas de interacciondiagramas de interaccion
diagramas de interaccion
 
9. introducción a uml
9. introducción a uml9. introducción a uml
9. introducción a uml
 
Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...
Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...
Del análisis al diseño. conclusión de la fase del análisis. diagramas de cola...
 
Diagrama de secuencia 2
Diagrama de secuencia 2Diagrama de secuencia 2
Diagrama de secuencia 2
 
Diagrama de secuencia 2
Diagrama de secuencia 2Diagrama de secuencia 2
Diagrama de secuencia 2
 
Clase diagramas desecuencia
Clase diagramas desecuenciaClase diagramas desecuencia
Clase diagramas desecuencia
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
DiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.pptDiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
 
Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo Comprendiendo UML para el área de desarrollo
Comprendiendo UML para el área de desarrollo
 
Diagramas uml de un caso de uso
Diagramas uml de un caso de usoDiagramas uml de un caso de uso
Diagramas uml de un caso de uso
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Diagramas uml de un caso de uso
Diagramas uml de un caso de usoDiagramas uml de un caso de uso
Diagramas uml de un caso de uso
 
Diagramadeflujo 140115215731-phpapp02
Diagramadeflujo 140115215731-phpapp02Diagramadeflujo 140115215731-phpapp02
Diagramadeflujo 140115215731-phpapp02
 
Diseño de sistemas - UML - compendio
Diseño de sistemas  -  UML - compendioDiseño de sistemas  -  UML - compendio
Diseño de sistemas - UML - compendio
 

Más de Omar Beltran Celis Mendoza (6)

Artículo modelamiento de negocios
Artículo  modelamiento de negociosArtículo  modelamiento de negocios
Artículo modelamiento de negocios
 
Artículo modelamiento de negocios
Artículo  modelamiento de negociosArtículo  modelamiento de negocios
Artículo modelamiento de negocios
 
03 requerimientos
03 requerimientos03 requerimientos
03 requerimientos
 
03 casos deuso
03 casos deuso03 casos deuso
03 casos deuso
 
02 modelo delnegocio
02 modelo delnegocio02 modelo delnegocio
02 modelo delnegocio
 
Leccion 03 iv_2013
Leccion 03 iv_2013Leccion 03 iv_2013
Leccion 03 iv_2013
 

05 modelo de diseño

  • 1. Desarrollo de software orientado a objetos Unidad 5: Modelo del Diseño
  • 2. Agenda  Del análisis al diseño  Diagramas de Interacción  Responsabilidades y métodos
  • 4. 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?
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. Del Análisis al Diseño Modelo de Análisis Modelo de Diseño Es conceptual, una abstracción del sistema sin características de implem. Es genérico respecto al diseño (válido para muchos) Contempla tres estereotipos de clases: : “control”, “entity” y “boundary” Define pocas capas Es físico, es el anteproyecto de la implementación Es específico para la implementación Diseña clases de muchos estereotipos dependiendo del lenguaje Define muchas capas
  • 9. 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.
  • 10. 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).
  • 12. 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
  • 13. 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
  • 14. 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)
  • 15. 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.
  • 17. Diagrama de secuencia del sistema  Muestra los eventos que fluyen de los actores al sistema Evento Sistema Evento: Acción de Evento: Acción de un actor que un actor que provoca que el provoca que el sistema cambie sistema cambie de estado de estado Comportamiento del sistema
  • 18. Diagrama de Secuencia del Sistema Vender Productos: Versión 1 Repetir hasta que no haya mas productos Cajero :Sistema IntrProd(CUP, Cantidad) TerminarVenta () EfectuarPago (Monto)
  • 19. 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
  • 20. 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. TerminarVenta Vs OprimirTeclaEnter
  • 21. Denominación de los Eventos IntroducirImporteOfrecido(Monto) IntroducirPago(Monto) EfectuarPago(Monto) ¡Cada vez mejor! Importante: Importante: Describir el Describir el propósito propósito
  • 22. Diagrama de Secuencia del Sistema Para todos los productos el cajero registra el CUP y la cantidad…. Cajero :Sistema IntrProd(CUP, Cantidad) ...Al terminar la captura indica que la venta terminó. TerminarVenta () EfectuarPago (Monto) ...El cajero registra el importe recibido en efectivo
  • 23. 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
  • 24. 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.
  • 25. Diagramas de secuencia  Introducción.  Elementos.  Distribución del flujo de control en diagramas de secuencia.
  • 26. 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.
  • 27. 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.
  • 28. 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.
  • 29. 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
  • 31. 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.
  • 32. 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).
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. Ej. Diagrama de Secuencia con focos de control
  • 37. 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.
  • 38. Scripts para los Diagramas de Secuencia  Ejemplo Comprobante El objeto comprobante obtiene de cada uno de sus detalles el precioxcantidad para calcular el total Detalle Compobante * Obtener Detalle(): PrecioXCantidad
  • 39. 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.
  • 40. 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. CONTROL CENTRALIZADO : Usuario : IReserva : CReservas : Reserva : Cliente : Producto
  • 41. 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.
  • 42. 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.
  • 43. 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. CONTROL DESCENTRALIZADO : Usuario : IReserva : CReservas : Reserva : Cliente : Producto
  • 44. 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-DepartamentoProvincia-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.
  • 45. 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.
  • 46. Diagramas de colaboración  Introducción.  Elementos.  Multiobjetos.
  • 47. 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.
  • 48. 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.
  • 49. Elementos  Contiene: Objetos. Actores. Asociaciones entre objetos. Mensajes intercambiados entre los objetos.  Flujos de datos entre objetos (si existen).    
  • 51. Objetos  Los objetos se dibujan como rectángulos con nombres subrayados English 101 Sólo Objeto English 101: Curso Objeto y Clase :Curso Sólo Clase
  • 52. Actores  Se representan normalmente para invocar o iniciar una interacción.  Si hay mas de uno es mejor diagramarlos en la periferia.
  • 53. 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. Horario : Formulario Un curso : Curso
  • 54. 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.
  • 55. Notaciones para los Vínculos Mensaje Puntos del cliente al servidor 2: Selecciona cursos Objeto cliente Horario : Formulario 1: Obtiene prerrequisitos Lista de Cursos Un Curso : Curso Vínculo Data de retorno Objeto Servidor
  • 56. 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
  • 57. 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: retorno : mensaje(parametro : tipoParametro) : tipoRetorno 1: Creditos := obtieneCreditos(IdCurso: char):Entero :Controladora Matricula :Curso
  • 58. Representación de la iteración  La iteración se indica poniendo un asterisco (*) al número de secuencia. 1* : CM := cursoMatriculado():detalleMatricula :Matricula :Detalle Matricula
  • 59. Representación de la iteración  La iteración con cláusula. 1* :[i:=1..10] CM i := ObtenerCurso():Curso :Controladora Cursos :Curso
  • 60. Representación de condicionales mutuamente excluyentes  La iteración con cláusula. 1a :[con beca] ExonerarPago(IdMatricula) :Controladora Pagos :Matricula :Cuenta Corriente 1b :[sin beca] CrearCuenta(IdMatricula)
  • 61. Representación de las colecciones  Un multiobjeto, colección o conjunto de instancias se representa como: :Detalle Matricula  Suele implementarse como un grupo de instancias guardadas en un contenedor u objeto colección
  • 62. Representación de los mensajes a un multiobjeto 2: mens2() 1: mens1() :Venta 1.1: crear() vl:VentaDetalle 2.2: imprimir() 1.2: adicionarDetalle(vl) :VentaDetalle 2.1: vl := obtenerDetalle(IdVenta)
  • 63. ¿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).
  • 64. Diagramas de interacción y otros artefactos Especificaciones de casos de uso y postcondiciones, diagramas de clases de análisis Casos de uso y diagramas de Secuencia del Sistema :Sistema Iniciar Reserva() Caso de uso: Realizar Reserva() Post Condiciones: • Se creó un objeto Reserva..... Diagramas de interacción : Usuario : IReserva : CReservas Iniciar Reserva()
  • 65. Ejemplo de elaboración de diagramas de interacción  Caso de Uso: Registrar Reserva (escenario de la reserva en agencia). : Usuario SISTEMA IniciarReserva() BuscarCliente() BuscarProducto() TerminarReserva()
  • 66. Ejemplo de elaboración de diagramas de interacción IListaReserva CReserva EFormaPago IReserva CProductos Counter EReserva (from Actores) EProducto CCliente ECliente
  • 67. 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.
  • 68. Ejemplo de elaboración de diagramas de interacción : SUCURSAL : Usuario R1 : RESERVA : IListaReservas : CReserva IniciarReserva() IniciarReserva() ObtenerSucursal(IdSucursal) CrearReserva( ) AbrirIReserva(Ope, NombreAgencia) : IReserva
  • 69. Ejemplo de elaboración de diagramas de interacción 1: IniciarReserva() : Usuario : IListaReservas 2: IniciarReserva() 3: ObtenerSucursal(IdSucursal) :SUCURSAL : CReserva 4: CrearReserva( ) 5: AbrirIReserva(Ope, NombreAgencia) : IReserva R1:RESERVA
  • 71. 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
  • 72. 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()
  • 73. 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
  • 74. 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
  • 75. 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.

Notas del editor

  1. {"71":"The main reasons for doing interaction diagrams are to discover exactly what functions our classes need to perform (mapped to operations later) and to aid in specifying the behavior of the system under development.\n","33":"The client object is the object sending the message.\nThe supplier object is the object receiving the message.\n","72":"The main reasons for doing interaction diagrams are to discover exactly what functions our classes need to perform (mapped to operations later) and to aid in specifying the behavior of the system under development.\n","34":"The client object is the object sending the message.\nThe supplier object is the object receiving the message.\n","23":"The main reasons for doing interaction diagrams are to discover exactly what functions our classes need to perform (mapped to operations later) and to aid in specifying the behavior of the system under development.\n","12":"Notice that the names of the diagrams have changed. These are the names used in Rose 4.0 and in the unified method documentation (0.91)\nSequence Diagram -- event trace diagram in the OMT 91 book\n interaction diagram in Booch\nCollaboration Diagram -- object interaction diagram in Jim’s OMT2 paper\n scenario diagram in Booch\nBoth generically referred to as Interaction diagrams.\n","73":"The main reasons for doing interaction diagrams are to discover exactly what functions our classes need to perform (mapped to operations later) and to aid in specifying the behavior of the system under development.\n","24":"The main reasons for doing interaction diagrams are to discover exactly what functions our classes need to perform (mapped to operations later) and to aid in specifying the behavior of the system under development.\n","74":"The main reasons for doing interaction diagrams are to discover exactly what functions our classes need to perform (mapped to operations later) and to aid in specifying the behavior of the system under development.\n","53":"Point out that a link may be between two different objects or it can demonstrate that the object “talks” to itself.\n","31":"If only the class name is used this is referred to as an anonymous object.\nInitially, only object names may be used in interaction diagrams (sequence and/or collaboration). By the time operations are assigned to messages, the objects must be associated with a class. \n","54":"The client is the object sending the message.\nThe supplier is the object receiving the message.\nIn the real world, numbering is typically used.\n","32":"If only the class name is used this is referred to as an anonymous object.\nInitially, only object names may be used in interaction diagrams (sequence and/or collaboration). By the time operations are assigned to messages, the objects must be associated with a class. \n"}