María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del...

17
María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la fase de análisis. Dependen de: Modelo Conceptual Diagrama de secuencia del sistema Identificación de operaciones del sistema

Transcript of María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del...

Page 1: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

ContratosContratos

Constituyen una descripción del comportamiento de un sistema.

Se elaboran durante la fase de análisis.Dependen de:

Modelo Conceptual Diagrama de secuencia del sistema Identificación de operaciones del sistema

Page 2: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

El contrato de operación del sistema describe los cambios del estado del sistema total cuando se llama una de sus operaciones.

ContratosContratos

Sistema

terminarVenta()introducirProducto()efectuarPago()

Se redactan contratos para cada operación del sistema con el fin de describir su comportamiento.

Page 3: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Secciones del contratoSecciones del contrato

Nombre: Nombre de la operación y parámetros.

Responsabilidades: Descripción informal de las responsabilidades que debe

cumplir la operación.

Tipo: Nombre del tipo (concepto, clase de software, interfaz).

Referencias Números de referencia de las cruzadas: funciones del sistema,

casos de uso, etc.

Notas: Notas de diseño, algoritmos e información afín.

Page 4: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Secciones del contratoSecciones del contrato

Excepciones: Casos excepcionales.

Salida: No salidas de la Interfaz del Usuario; por ejemplo, mensajes o registros que se envían afuera del sistema.Precondiciones: Suposiciones acerca del estado del

sistema antes de ejecutar laoperación.

Poscondiciones:

El estado del sistema después de la operación. Esto se explica a fondo en la siguiente sección.

Page 5: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Cómo preparar un Cómo preparar un contratocontrato

Para preparar un contrato en los casos de uso:

1. ldentifique las operaciones del sistema a partir de los diagramas de su secuencia.2. Elabore un contrato en cada operación del sistema.

3. Comience redactando la sección de Responsabilidades; después describa informalmente el propósito de la operación.

4. Complete luego la sección de Poscondiciones, describiendo en forma declarativa los cambios de estado de los objetos en el modelo conceptual.5. Para describir las poscondiciones utilice las siguientes categorías:

Creación y eliminación de las instancias.

Modificación de los atributos.

Asociaciones formadas y canceladas.

Page 6: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Contratos y otros artefactosContratos y otros artefactos

CASO DE USO:COMPRARPRODUCTOS

Curso normalde los eventos

1. Este caso de comienza...

Caso de uso

introducirProducto(cup,

cantidad)

terminarVenta()

efectuarPago(monto)

Diagrama de la secuenciadel sistema

Cajero Sistema

Operación:introducirProducto

Poscondiciones:1. Si se trata de unanueva venta, fue creadauna nueva Venta...

Operación:terminarVenta

Poscondiciones:1. ...

ContratosOperacionesdel sistema

Sistema

terminarVenta()introducirProducto()

efectuarPago()

Page 7: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

PoscondicionesPoscondiciones

Categorías útilies referentes a las poscondiciones del contrato:

Creación y eliminacion de las instancias.

Modificación de los atributos.

Asociaciones formadas y canceladas.

Page 8: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

PrecondicionesPrecondiciones

Las precondiciones definen las suposiciones sobre el estado del sistema al iniciarse la operación. Vale la pena mencionar las siguientes:

Cosas que son importantes probar en el software en algún momento de la ejecución de la operación.

Cosas que no serán sometidas a prueba, pero de las cuales depende el éxito de la operación.

Page 9: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Contrato para Contrato para introducirProductointroducirProductoContrato

Nombre: introducirProducto (cup: número,cantidad: entero).

Responsabilidades: Introducir (registrar) la venta de un producto y agregarlo a la venta. Desplegar la descripción del producto y su precio.

Tipo: Sistema.

Referencias Funciones del sistema: R1.1, R1.3, R1.9.cruzadas: Casos de uso: Comprar productos

Notas: Utilice el acceso superrápido a la base de datos.

Excepciones: Si el CUP no es válido, indique que se cometió un error

Salida:

Precondiciones:El sistema conoce el CUP

Page 10: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Contrato para Contrato para introducirProductointroducirProducto

Poscondiciones:

Si se trata de una nueva venta, una Venta fue creada (creación de instancia).

Si se trata de una nueva venta, la nueva Venta fue asociada a la TPDV (asociación formada o formación de asociaciones).

Se creó una instancia VentasLineadeProductO (creación de instancia).

Se asoció VentasLineadeProducto a la Venta (asociación formada).

Se estableció VentasLineadeProductO. cantidad con el valor de cantidad (modilicación de atributo).

La instancia VentasLineadeProducto fue asociada a una EspecificaciondeProductO, basado esto en la correspondencia del código universal de producto (asociación formada).

Page 11: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Recomendaciones sobre cómo redactar Recomendaciones sobre cómo redactar contratoscontratos

Una vez anotado el nombre de la operación, llene primero la sección de Responsabilidades y luego la de Poscondiciones, dejando al final la de Precondiciones.

Use la sección de Notas para explicar los detalles del diseño; por ejemplo, los algoritmos y los pasos secuenciales de alto nivel.

Use la sección de Excepciones para explicar la reacción ante situaciones raras o especiales.

Page 12: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Use las siguientes categorías de los cambios de estado en las poscondiciones:

Recomendaciones sobre cómo redactar Recomendaciones sobre cómo redactar contratoscontratos

Creación y eliminación de instancias. Modificación de atributos.

Asociaciones formadas y canceladas.

Exprese las poscondiciones en forma pasiva declarativa, en pretérito (fue registrado...) para destacar la declaración de un cambio de estado en vez del diseño de cómo iba a obtenerse.

Page 13: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Recomendaciones sobre cómo redactar Recomendaciones sobre cómo redactar contratoscontratos

Por ejemplo:Fue creada una instancia VentasLineadeProducto (bien). Se creó una instancia VentasLineadeProducto (mal).

No olvide establecer una memoria entre los objetos actuales y los de creación reciente, definiendo para ello la formación de una asociación.

Por ejemplo, no es suficiente que una nueva instancia VentasLineadeProducto se genere cuando ocurre la operación IntroducirProducto. Una vez finalizada la operación, deberá ser verdad que la instancia recién creada fue asociada a Venta; por tanto,

La instancia VentasLineadeProducto fue asociada a la Venta (asociación formada).

Page 14: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Contratos del caso de uso Contratos del caso de uso Comprar productosComprar productos

Contrato para terminarVenta

Nombre: terminarVenta ().

Responsabilidades: Registrar que es el final de la captura de los productos de la venta y desplegar el total de la venta.

Tipo: Sistema.

Referencias Funciones del sistema: R1.2. cruzadas: Casos de uso: Comprar productos.

Notas:

Excepciones: Si no está realizándose una venta, indicar que se cometió un error.

Salida:

Precondiciones: El sistema conoce el CUP

Poscondiciones:

Estableció Venta.esta Terminada en verdadero (modificación de atributo).

Page 15: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Contratos del caso de uso Contratos del caso de uso Comprar productosComprar productos Contrato para efectuarPago

Nombre: efectuarPago (monto: Número o Cantidad).

Responsabilidades: Registrar el pago, calcular el saldo e imprimir el recibo.

Tipo: Sistema.

Referencias Funciones del sistema: R2.1.cruzadas: Casos de uso: Comprar productos.

Notas:

Excepciones: Si la venta no está concluida, indicar que se cometió un error. Si el monto es menor que la venta total, indicar que se cometió un error

Salida:

Precondiciones:

Poscondiciones:

• Se creó un Pago (creación de instancia).

• Se asignó a Pago. montoOfrecido el valor de monto (modificación de atributo).

• Se asoció el Pago a la Venta (relación formada).Se asoció la Venta a la Tienda para agregarla al registro histórico de las ventas terminadas (relación formada).

Page 16: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Contratos del caso de uso Contratos del caso de uso InicioInicio Contrato para inicio

Nombre: inicio().

Responsabilidades: Inicializar el sistema.

Tipo: Sistema.

Referencias cruzadas: Notas:

Excepciones:

Salida:Precondiciones:

Poscondiciones:

• Se creó una instancia tienda, TPDV, CatalogodeProductos, y EspecificacionesdePro- ducto (creación de instancia).• Se asoció CatalogodeProductos a EspecificacionesdeProducto (asociación formada).• Se asoció Tienda a CatalogodeProductos (asociación formada).• Se asoció Tienda a TPDV (asociación formada).• Se asoció TPDV a CatalogodeProductos (asociación formada).

Page 17: María Eugenia Valencia Dpto. Ciencias de la Computación Contratos Constituyen una descripción del comportamiento de un sistema. Se elaboran durante la.

María Eugenia ValenciaDpto. Ciencias de la Computación

Cambios del modelo conceptualCambios del modelo conceptual

Hay un dato que todavía no ha figurado en el modelo conceptual: la terminación de la captura del producto en la venta. La especificación terminarVenta lo modifica, y la especificación efectuarPago lo prueba como precondición.

Una forma de representar esta información es expresarla como un atributo estaTerminada (o capturaEsta Terminada) de la venta, por medio de un valor booleano:Venta

EstaTerminada:booleanofechahora