clase 7: arquitectura: del anÁlisis al diseÑo diagramas de...
Post on 19-Sep-2018
218 Views
Preview:
TRANSCRIPT
CLASE 7:
ARQUITECTURA: DEL ANÁLISIS AL DISEÑO
DIAGRAMAS DE SECUENCIA Y CONTRATOS
Universidad Simón Bolívar. Ing. de Software. Prof. Ivette Carolina Martínez
Arquitectura: Del Análisis al Diseño
OBJETIVOS: Identificar las diferencias básicas entre Análisis y
Diseño. Definir la arquitectura de un sistema. Identificar las vistas de la arquitectura de un
sistema. Aprender la elaboración del modelo conceptual de
un sistema (listo?)
Análisis vs. Diseño
Análisis
Se enfoca en comprender el problema.
Diseño idealizado.
Comportamiento.
Estructura del Sistema.
Requerimientos Funcionales.
Un pequeño modelo.
Diseño Se enfoca en comprender
la solución. Operaciones y atributos Rendimiento. Cercano al código real. Ciclos de vida de los
objetos. Requerimientos no
funcionales. Un modelo grande.
Qué es Arquitectura?
Arquitectura de software se refiere al conjunto de decisiones significativas respecto a la organización de un sistema de software. Selección de Elementos Estructurales y sus interfaces. Especificación del Comportamiento, logrado como
colaboración entre estos elementos. Composición de estos elementos estructurales y de
comportamiento en Subsistemas más grandes. Estilo Arquitectónico que guía esta organización.
La arquitectura restrige el diseño y la implementación
La Arquitectura se refiere a un conjunto de decisiones estratégicas, reglas o patrones que restringen el diseño y la construcción.
Diseño Implementación
Código
Arquitectura
Diagramas de Secuencia
OBJETIVO:
Ser capaz de describir el comportamiento de un sistema, subsistema u operación particular mediante un Diagrama de Secuencia utilizando para ello el concepto y representación de interacción, objeto, mensaje, activación.
Modelos y Diagramas
Diagramas de Casos de Uso
Diagramas de Clases
Diagramas de Objetos
Diagramas de Secuencia Diagramas de interacción
Un Diagrama de Secuencia describe la interación
entre los objetos ordenada en el tiempo
Objetivos: Diagramas de Secuencia
Ser capaz de representar: Objetos, diferentes tipos de interacciones y
mensajes con el objeto de describir el comportamiento de un sistema, subsistema, operación.
Escenario Principal de Éxito (pago en efectivo solamente):
1. El Cliente llega a la caja con los artículos y servicios a pagar 2. El Cajero inicia una nueva venta 3. El Cajero introduce el código del producto 4. El sistema registra el producto y presenta la descripción del producto, precio y subtotal El cajero repite los pasos 3-4 hasta procesar todos los artículos y servicios 5. El Sistema muestra el total con el impuesto calculado 6. El Cajero indica al Cliente el total y pregunta la forma de pago 7. El Cliente paga y el Sistema maneja el pago 8. El sistema registra la venta 9. El Sistema emite la factura 10. El Cliente se marcha con lo adquirido y la factura
:Cajero :Sistema iniciarVenta()
introducirProducto(cod,cantidad)
descripción, subtotal
*[otros productos]
total con impuestos
terminarVenta()
pagar(monto)
vuelto y factura
Ejemplo de Diagrama de Secuencia
iniciarVenta()
introducirProducto(cod,cantidad)
descripción, subtotal
:Cajero Actor externo al sistema
:Sistema
Sistema como “caja negra”
pagar(monto)
vuelto y factura
*[otros productos]
Caja que puede encerrar un área de iteración
*[...] es un marcador de iteración
total con impuestos
terminarVenta()
Valor (es) retornado (s) asociado(s) con el mensaje previo
Ejemplo de Diagramas de Secuencia
Límite del Sistema
Mensajes
Diagrama de Secuencia
Muestra: los objetos que participan en una interacción el intercambio de mensajes entre los objetos el ordenamiento en el tiempo de los
mensajes
Captura el comportamiento dinámico
Notación Básica: objetos, mensajes y valores retornados
: C1 : C2
mensaje 1 ()
mensaje 2 (p1,p2) Mensajes
retorno Valor (es) retornado (s) asociado(s) con el mensaje previo
: C1 : C2
mensaje 1 ()
mensaje 2 (p1,p2)
retorno
mensaje 0 ()
Notación Básica: objetos, mensajes y valores retornados
: C1 : C2
mensaje 1 ()
mensaje 2 (p1,p2)
retorno
mensaje 0 ()
Caja de activación
Notación Básica: Cajas de Activación
: C1 : C2
mensaje 1 ()
retorno
mensaje 0 ()
mensaje 3 (p1,p2)
mensaje 2 ()
Notación Básica: Cajas de Activación
: C1 : C2
mensaje 1 ()
retorno
mensaje 0 ()
mensaje 3 (p1,p2)
mensaje 2 ()
Notación Básica: Cajas de Activación
mensaje 1()
Recursión
Mensaje a si mismo (“self” , “this”)
: C1
mensaje 0 ()
Caja de activación
mensaje 1()
Notación Básica: Recursión
: Venta
agregarProducto (cod,cant)
crear()
Notación Básica creación de objetos
modificar (cod,cant)
Ejemplo:
:Línea de Producto
: C1
Mensaje 0 ( )
crear() :C2
destruir
Destrucción del objeto
Notación Básica destrucción de objetos
: C1 : C2
mensaje 0 ()
Mensaje condicional
[condición] mensaje 1 ()
Notación Básica: Mensajes Condicionales
: Ciudadano : Calculador
declaraciónImpuesto () [sueldo>Límite] impuesto (sueldo)
Notación Básica: Mensajes Condicionales
Ejemplo:
: C1 : C2
mensaje 0 () [condición 1] mensaje 1 ()
Notación Básica: Mensajes Condicionales Excluyentes
: C3
[condición 2] mensaje 2 ()
Mensajes condicionales
mútuamente excluyentes
: Taller
repararCarro ()
Notación Básica: Mensajes Condicionales Excluyentes
Ejemplo: : Especialista en
Sistemas de Dirección
: Especialista en Sistemas de
Inyección
[fallaDirección] reparar()
[fallaInyección] reparar()
: C1 : C2
mensaje 0 ()
Iteración de un mensaje
[i:=1..N]: vi:=mensaje ()
Notación Básica: Iteración de un mensaje
: Simulador :Random
simular() [i:=1..N]: numi:=proximo()
Notación Básica: Iteración de un mensaje
Ejemplo:
: C2 : C1
mensaje 0 ()
mensaje 1 ()
Notación Básica: Iteración de varios mensajes
: C3
mensaje 2 () Caja que puede encerrar un área de iteración
*[...] es un marcador de iteración
*[...]
FDS
: Random :Simulador
simular()
horas:=próximoEntero()
Notación Básica: Iteración de varios mensajes
: Programador
trabajar (horas)
FDS
Ejemplo:
*[i:=1..N] comer ()
Resumen: Diagramas de Secuencia
Un Diagrama de Secuencia describe comportamiento de sistemas, subsistemas y operaciones, representando los objetos que intervienen, así como los mensajes que intercambian, ordenados en el tiempo a través de la línea de vida de cada uno de los objetos y sus cajas de activación
Contratos
Documentos que indican como cambia el estado de un sistema cuando se efectúa una de sus operaciones.
Se redactan contratos para cada operación del sistema con el fin de describir su comportamiento
Contratos
Estilo declarativo (Generalmente) Describen lo que sucederá y no como se
conseguirá Elementos fundamentales: Precondiciones
y postcondiciones
Contratos: Formato
Nombre: Referencias
cruzadas: Precondiciones:
A validar: Supuestas:
Postcondiciones:
Nombre de la operación y parámetros. Casos de uso, funciones del sistema,…
Suposiciones antes de la ejecución. Que deben ser verificadas Que no se validarán Efecto de la operación sobre el estado
del sistema
Contratos: Ejemplo
Nombre:
Referencias cruzadas:
Precondiciones:
Supuestas:
Postcondiciones:
Introducir producto(cup:entero, cantidad:entero) Casos de uso:comprar productos
Se supone que el sistema conoce el CUP
Si fue una nueva venta:
Fue creada una Venta (instancia)
Fue creada una asociación entre la instancia de venta y el TDPV (asociación)
Fue creada una instancia de VentasLíneaDeProducto
Fue creada la asociación entre la instancia creada VentasLíneaDeProducto y Venta
Fue creada la asociación entre la instancia creada VentasLíneaDeProducto y EspecificaciónProducto, basado en la correspondencia del CUP
Contratos: Ejemplo
Nombre:
Referencias cruzadas:
Precondiciones:
Supuestas:
Postcondiciones:
Introducir producto(cup:entero, cantidad:entero) Casos de uso:comprar productos
Se supone que el sistema conoce el CUP
Si fue una nueva venta:
Fue creada una Venta (instancia)
Fue creada una asociación entre la instancia de venta y el TDPV (asociación)
Fue creada una instancia de VentasLíneaDeProducto
Fue creada la asociación entre la instancia creada VentasLíneaDeProducto y Venta
Fue creada la asociación entre la instancia creada VentasLíneaDeProducto y EspecificaciónProducto, basado en la correspondencia del CUP
Contratos: Postcondiciones
Son declaraciones sobre el estado del sistema una vez concluida la operación
Ventaja: permiten describir los efectos de una operación (cambios necesarios para el funcionamiento del sistema).
Deben ser expresados en pasado. ¿Qué expresar?
Creación y eliminación de instancias Modificación de atributos Formación y cancelación de asociaciones
Contratos: Recomendaciones
1. Identificar las operaciones del sistema a partir de los Diagramas de Secuencia
2. Crear un Contrato para toda operación compleja, sutil en sus resultados o que no queda completamente clara en los casos de uso.
3. Para crear las Postcondiciones, usar las categorías y describirlas en pasado.
top related