Está en la página 1de 39

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 Diseño
  Se enfoca en comprender el   Se enfoca en comprender
problema. la solución.
  Diseño idealizado.
  Operaciones y atributos
  Comportamiento.
  Rendimiento.
  Estructura del Sistema.
  Cercano al código real.
  Requerimientos Funcionales.
  Ciclos de vida de los
  Un pequeño modelo.
objetos.
  Requerimientos no
funcionales.
  Un modelo grande.
Bottom Up ó Top Down
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.

Código
Implementación
Diseño
Arquitectura
El Modelo de “4+1 Vistas”
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 interacción
 Diagramas de Secuencia
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.
Ejemplo de Diagrama de Secuencia
Escenario Principal de Éxito
(pago en efectivo solamente):

1. El Cliente llega a la caja con los artículos y


servicios a pagar :Sistema
:Cajero
2. El Cajero inicia una nueva venta iniciarVenta()
3. El Cajero introduce el código del producto
4. El sistema registra el producto y presenta introducirProducto(cod,cantidad)
la descripción del producto, precio y subtotal
El cajero repite los pasos 3-4 hasta procesar
descripción, subtotal
todos los artículos y servicios
5. El Sistema muestra el total con el *[otros productos]
impuesto calculado
6. El Cajero indica al Cliente el total y terminarVenta()
pregunta la forma de pago
7. El Cliente paga y el Sistema maneja el pago total con impuestos
8. El sistema registra la venta
9. El Sistema emite la factura pagar(monto)
10. El Cliente se marcha con lo adquirido y
la factura vuelto y factura
Ejemplo de Diagramas de Secuencia
Límite del Sistema
Sistema como
“caja negra”
Actor :Sistema
externo al :Cajero
sistema iniciarVenta()

Caja que puede introducirProducto(cod,cantidad)


encerrar un área
de iteración descripción, subtotal
*[...] es un *[otros productos]
marcador de
iteración terminarVenta()
Mensajes
total con impuestos
Valor (es)
retornado (s) pagar(monto)
asociado(s) con el
mensaje previo vuelto y factura
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 ()

Valor (es) retorno


retornado (s)
asociado(s) con el
mensaje previo Mensajes
mensaje 2 (p1,p2)
Notación Básica: objetos, mensajes y
valores retornados

: C1 : C2

mensaje 0 ()
mensaje 1 ()

retorno

mensaje 2 (p1,p2)
Notación Básica: Cajas de Activación

: C1 : C2

mensaje 0 ()
mensaje 1 ()

retorno
Caja de activación

mensaje 2 (p1,p2)
Notación Básica: Cajas de Activación

: C1 : C2

mensaje 0 ()
mensaje 1 ()

retorno

mensaje 2 ()

mensaje 3 (p1,p2)
Notación Básica: Cajas de Activación

: C1 : C2

mensaje 0 ()
mensaje 1 ()

retorno

mensaje 2 ()

mensaje 3 (p1,p2)
Notación Básica: Recursión

: C1
Recursión
mensaje 0 ()
Mensaje a si mismo
(“self” , “this”)

mensaje 1()

Caja de activación
Notación Básica: Recursión

Ejemplo:
:Calculadora

factorial (n)

factorial (n-1)
Notación Básica creación de objetos

Creación de objetos
: C1

Mensaje 0 ()

crear()
:C2

mensaje 1()
Notación Básica creación de objetos

Ejemplo:
: Venta

agregarProducto (cod,cant)

crear()
:Línea de
Producto
modificar (cod,cant)
Notación Básica destrucción de objetos

: C1

Mensaje 0 ( )

crear()
:C2

destruir

Destrucción del objeto


Notación Básica:
Mensajes Condicionales

: C1 : C2

mensaje 0 ()
[condición] mensaje 1 ()

Mensaje condicional
Notación Básica:
Mensajes Condicionales

Ejemplo:
: Ciudadano : Calculador

declaraciónImpuesto () [sueldo>Límite] impuesto (sueldo)


Notación Básica: Mensajes
Condicionales Excluyentes

: C1 : C2 : C3

mensaje 0 ()
[condición 1] mensaje 1 ()

[condición 2] mensaje 2 ()

Mensajes condicionales
mútuamente excluyentes
Notación Básica: Mensajes
Condicionales Excluyentes
Ejemplo:
: Taller : Especialista en : Especialista en
Sistemas de Sistemas de
repararCarro () Dirección Inyección
[fallaDirección] reparar()

[fallaInyección] reparar()
Notación Básica: Iteración de un
mensaje

: C1 : C2

mensaje 0 ()
[i:=1..N]: vi:=mensaje ()

Iteración de un mensaje
Notación Básica:
Iteración de un mensaje

Ejemplo:
: Simulador :Random

simular()
[i:=1..N]: numi:=proximo()
Notación Básica:
Iteración de varios mensajes

: C1 : C2 : C3

mensaje 0 ()

mensaje 1 ()

mensaje 2 ()
Caja que puede
encerrar un área
de iteración
*[...] es un *[...]
marcador de
iteración

FDS
Notación Básica:
Iteración de varios mensajes
Ejemplo:
:Simulador : Random : Programador

simular()

horas:=próximoEntero()

trabajar (horas)

*[i:=1..N]
comer ()

FDS
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: Nombre de la operación y parámetros.
  Referencias Casos de uso, funciones del sistema,…
cruzadas:
  Precondiciones: Suposiciones antes de la ejecución.
 A validar: Que deben ser verificadas
 Supuestas: Que no se validarán
  Postcondiciones: Efecto de la operación sobre el estado
del sistema
Contratos: Ejemplo
Nombre:
  Introducir producto(cup:entero, cantidad:entero)
Referencias cruzadas:
  Casos de uso:comprar productos
Precondiciones:
 

  Supuestas: Se supone que el sistema conoce el CUP


Postcondiciones:
  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:
  Introducir producto(cup:entero, cantidad:entero)
Referencias cruzadas:
  Casos de uso:comprar productos
Precondiciones:
 

  Supuestas: Se supone que el sistema conoce el CUP


Postcondiciones:
 

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.

También podría gustarte