Está en la página 1de 19

Fundamentos de Ingeniera de Software

Marcello Visconti y Hernn Astudillo Departamento de Informtica Universidad Tcnica Federico Santa Mara {visconti,hernan} en inf.utfsm.cl

Sesion 06Descr.Comportamiento

Fundamentos de Ingeniera de SW

Anlisis Orientado a Objetos

Contenido
? Representacin de Comportamiento de sistemas
? Diagramas de secuencia ? Contratos
? Precondiciones ? Post-condiciones

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Descripcin de Comportamiento

Perfeccionamien to del plan

Sincronizacin de artefactos

Anlisis

Diseo

Construccin

Prueba

1. Definir casos esenciales de uso 5. Definir diagramas de secuencia

2. Perfeccionar el diagrama de casos 6. Definir los contratos de operaciones

3. Perfeccionar el modelo conceptual 7. Definir diagramas de estado

4. Perfeccionar el glosario

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Diagrama de Secuencia [1]


? Antes de iniciar el diseo lgico de cmo funcionar una aplicacin de software es necesario investigar y definir su comportamiento como una caja negra. ? El comportamiento del sistema es una descripcin de lo que hace, sin explicar la manera en que lo hace. Una parte de esa descripcin es un diagrama de secuencia del sistema. ? Los casos de uso indican cmo los actores interactan con el sistema de software que es lo que realmente queremos crear. ? Durante la interaccin un actor genera eventos dirigidos a un sistema, solicitando alguna operacin a cambio.
? Por ejemplo, cuando un cajero introduce un cdigo universal de producto de un artculo, est pidiendo al sistema TPDV registrar el cdigo.

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Diagrama de Secuencia [3]


? El diagrama de secuencia de un sistema es una representacin que muestra, en un determinado escenario, los eventos generados por actores externos, su orden y los eventos externos del sistema.
? A todos los sistemas se les trata como caja negra; los diagramas se centran en los eventos que fluyen de los actores a los sistemas. ? En el diagrama el tiempo avanza hacia abajo, y el ordenamiento d e los eventos debera seguir el orden indicado en el caso de uso. ? Los eventos del sistema pueden incluir parmetros.

Actor

Sistema como caja negra :Sistema

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Diagrama de Secuencia [4]


? Curso normal de los eventos en el caso Comprar Productos.
Actor Sistema como caja negra :Sistema : Cajero 1: introducir Producto(CUP, cantidad)

2: terminarVenta()

3: efectuarPago(monto) Evento del sistema Inicia una operacin de sistema

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Eventos y operaciones
? Un evento de un sistema es un hecho externo de entrada que un actor produce en un sistema. ? Una operacin de un sistema es una accin que ste ejecuta en respuesta a una evento del sistema.
? P.ej., cuando un cajero genera un evento introducirProducto, causa la ejecucin de la operacin introducirProducto.

? El nombre del evento y de la operacin pueden ser (y generalmente son) idnticos.


? La diferencia es que el evento de ese nombre es el est mulo y la operacin de ese nombre es la repuesta. ? Lo mismo sucede con los mensajes y los mtodos en Orientacin a Objetos y UML.

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Registro de las operaciones


? Para determinar el conjunto de las operaciones requeridas del sistema se identifican sus eventos.
? Cuando se utilizan los parmetros, las operaciones son las siguientes:
? EfectuarPago(CUP, Cantidad) ? TerminarVenta() ? EfectuarPago(monto)

? Donde deberan registrarse estas operaciones?


? En UML se puede agrupar las operaciones en el tipo Sistema. Los parmetros son opcionales.
Sistema terminarVenta( ) introducirProducto( ) efectuarPago( )

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Registro de las operaciones


? La representacin del tipo Sistema es muy diferente a lo que se expres en el modelo conceptual.
? Los elementos del modelo conceptual representan conceptos del mundo real. ? El tipo Sistema es un concepto artificial.

? La diferencia es la naturaleza de la informacin representan.


? El modelo conceptual es la informacin est tica. ? El tipo Sistema representa el comportamiento de sistema, el cual es la informacin dinmica.

Fundamentos de Ingenier a de SW

Anlisis Orientado a Objetos

Diagramas de Secuencia [1]


? Para elaborar un diagrama de secuencia del sistema que describa el curso normal de los eventos en un caso de uso:
? Trace una lnea que represente el sistema como una caja negra. ? Identifique los actores que operan directamente sobre el sistema. Trace una lnea para cada uno de ellos. ? A partir del curso normal de los eventos del caso de uso identifique los eventos (externos) del sistema que son generados por los actores. Mustrelos grficamente en el diagrama. ? A la izquierda del diagrama puede incluir o no el texto del caso de uso.

Fundamentos de Ingenier a de SW

10

Anlisis Orientado a Objetos

Diagramas de Secuencia [2]


? Consideramos ahora el caso de uso Comprar Productos a fin de identificar los eventos del sistema.
? Primero debemos determinar los actores que interact an directamente con el sistema de software. ? El cliente interact a con el cajero, pero no directamente con el sistema TPDV; esto slo lo hace el cajero. ? Por tanto, el cliente no es un generador de eventos del sistema, slo el cajero lo es.

Fundamentos de Ingenier a de SW

11

Anlisis Orientado a Objetos

Diagramas de Secuencia [3]


? Los eventos de un sistema (y sus operaciones asociadas) deben expresarse en el nivel de propsito y no en el nivel del medio de entrada o de elementos de la interfaz.
? Es ms claro si el nombre de un evento del sistema comienza con un verbo (p.ej. agregar, introducir, terminar, efectuar), ya que recalca que los eventos estn orientados a comandos. ? P.ej. terminarVenta es preferible a IntroducirTeclaOprimida porque capta mejor el propsito de la operacin:
? mantiene un carcter abstracto y no se pronuncia respecto a las decisiones de diseo sobre cul interfaz sirve para capturar el evento del sistema.

? Procure usar el nivel ms alto u objetivo al dar nombre a operaciones.


? P.ej., respecto a la operacin que captura el pago:
? IntroducirImporteOfrecido(monto) deficiente ? IntroducirPago(monto) mejor ? EfectuarPago quiz mejor an
Fundamentos de Ingenier a de SW 12

Anlisis Orientado a Objetos

Modelo de Anlisis
? Los diagramas de secuencia son parte del modelo de comportamiento del sistema. ? El modelo de anlisis se compone de:
? Modelo de casos de uso de anlisis (dinmico)
? Casos de uso de alto nivel o esenciales ? Diagramas de casos de uso

? Modelo conceptual (est tico)


? Diagramas de estructura esttica para los conceptos de dominio

? Modelo de comportamiento (dinmico)


? Diagramas de secuencia del sistema ? Contratos para las operaciones de sistema

? Modelo de estado del anlisis (dinmico)


? Diagramas de estado para conceptos y casos de uso

Fundamentos de Ingenier a de SW

13

Anlisis Orientado a Objetos

Modelo de Anlisis
? (Hacer modelo UML de descripcin previa)

Fundamentos de Ingenier a de SW

14

Anlisis Orientado a Objetos

Comportamiento de Sistemas: Contratos


? Los contratos contribuyen a definir el comportamiento de un sistema; describen el efecto de las operaciones sobre el sistema.
? UML ofrece soporte para definir las precondiciones y las poscondiciones de las operaciones.

? Los contratos de operacin de sistema se elaboran durante la fase de anlisis en un ciclo de desarrollo. ? Su desarrollo depende del desarrollo previo del modelo conceptual, de los diagramas de secuencia de sistema y la identificacin de sus operaciones.

Fundamentos de Ingenier a de SW

15

Anlisis Orientado a Objetos

Comportamiento de Sistemas: Contratos


Descrita-por Contiene

EspecificaciondeProducto 1 1..* 1
Describe

* VentasLineaDeProducto cantidad 1..*

1 CatalogoDeProductos descripcion precio CUP 1


Usado-por

* Producto

*
Contenidas-en Capturas-Terminada

1 Venta fecha hora 1

Tienda direcci 1 on 1
Aloja

Capturadas-en

1 1

Pagado-por

1..* TPDV

Pago

Fundamentos de Ingenier a de SW

16

Anlisis Orientado a Objetos

Comportamiento de Sistemas: Contratos


? En trminos generales, un contrato es un documento que describe lo que una operacin se propone lograr.
? Suele redactarse en un estilo declarativo, enfatizando lo que suceder y no cmo se conseguir. ? Los contratos suelen expresarse a partir de los cambios de estado de las precondiciones y de las poscondiciones. ? Puede elaborarse un contrato tanto para un mtodo de una clase, como para una operacin ms global del sistema, aunque por ahora nos concentramos en su uso para las operaciones globales del sistema.

? El contrato de operacin del sistema describe cambios del estado del sistema total cuando se llama una de sus operaciones.

Fundamentos de Ingenier a de SW

17

Anlisis Orientado a Objetos

Comportamiento de Sistemas: Contratos


? Este ejemplo describe un contrato de la operacin introducirProducto del sistema:
Contrato IntroducirProducto (cup:numero, cantidad:entero) Capturar (registrar) la venta de un producto y agregarla a la venta. Desplegar la descripcin y el precio del producto. Tipo: Sistema Referencias cruzadas: Funciones del sistema: R1.1, R1.3, R1.6 Casos de uso: Comprar productos Notas: Utilizar el acceso superrpido a la base de datos. Excepciones: Si el CUP no es vlido, indicar que se cometi. Salida: Precondiciones: El sistema conoce el CUP. Nombre: Responsabilidades:

Fundamentos de Ingenier a de SW

18

Anlisis Orientado a Objetos

Comportamiento de Sistemas: Contratos


Poscondiciones: Si se trata de una nueva venta, se cre una Venta (creacin de instancia ). Si se trata de una nueva venta, la nueva Venta fue asociada a un TPDV ( asociacin formada). Se cre una instancia VentasLineadeProducto (creacin de instancia ). Se asoci una instancia de VentasLineadeProducto a la Venta ( asociacin formada ). Se asign una cantidad a VentasLineadeProducto.cantidad (modificacin de atributo ). Se asoci una instancia VentasLineadeProducto a la instancia EspecificaciondeProducto , basado en la correspondencia del CUP ( asociacin formada ).

? No todas las secciones del contrato son necesarias; se recomienda llenar Responsabilidades y Poscondiciones.

Fundamentos de Ingenier a de SW

19

Anlisis Orientado a Objetos

Comportamiento de Sistemas: Contratos


Contrato Nombre de la operacin y sus parmetros. Descripcin informal de las responsabilidades que debe cumplir la operacin. Nombre del tipo (concepto, clase de software, interfaz). Nmeros de referencia de las funciones del sistema, casos de uso, etc. Declaraciones del diseo referentes a la operacin. Por ejemplo, si se sabe que se prefiere un algoritmo particular para manejar la operacin, esa seccin es el sitio indicado. Casos excepcionales. Slo dentro del sistema, no incorpore salidas de interfaz de usuario, mensajes o registros que se envan fuera del sistema. Suposiciones acerca del estado del sistema antes de ejecutar la operacin. El estado del sistema despus de la operacin.

Nombre: Responsabilidades: Tipo: Referencias cruzadas: Notas:

Excepciones: Salida: Precondiciones: Poscondiciones:

Fundamentos de Ingenier a de SW

20

10

Anlisis Orientado a Objetos

Comportamiento de Sistemas: Contratos


? Aplique la siguiente sugerencia para elaborar contratos.
? Identifique las operaciones del sistema a partir de los diagramas de secuencia. ? Elabore un contrato en cada operacin del sistema. ? Comience redactando la seccin Responsabilidades; despus describa informalmente el propsito de la operacin. ? Complete la seccin Post -condiciones, describiendo en forma declarativa los cambios de estado de los objetos en el modelo conceptual. ? Para describir las post-condiciones use las siguientes categoras:
? Creacin y eliminacin de instancias. ? Modificacin de atributos. ? Asociaciones formadas y canceladas.

Fundamentos de Ingenier a de SW

21

Anlisis Orientado a Objetos

Post-condiciones [1]
? Despus de la seccin de Responsabilidades, la parte ms importante del contrato son las post-condiciones, que estipulan cmo cambi el sistema tras la operacin. ? Las post-condiciones se expresan dentro del modelo conceptual.
? Qu instancias es posible crear? La repuesta es: las provenientes d el modelo conceptual. ? Qu asociaciones es posible formar? La repuesta es: las que est n en el modelo conceptual.

Fundamentos de Ingenier a de SW

22

11

Anlisis Orientado a Objetos

Post-condiciones [2]
? Cuando se formula contratos, en general se agregar al modelo conceptual nuevos conceptos, atributos y asociaciones.
? Mejore el modelo conforme a los nuevos descubrimientos, mientras reflexiona sobre los contratos de las operaciones.

? Las poscondiciones deben expresar el estado del sistema, no acciones a realizar.


? Exprselas en tiempo pasado para enfatizar que se trata de declaraciones sobre un cambio pretrito de estado.
? P.ej.: Se cre una instancia VentasLineadeProducto en vez de Crear una instancia VentasLineadeProducto .

Fundamentos de Ingenier a de SW

23

Anlisis Orientado a Objetos

Post-condiciones [3]
? Entonces, mire el contrato desde la perspectiva de un escenario y un teln.
? Tome una fotografa de escenario antes de la operacin. ? Corra el teln y aplique la operacin del sistema (ruido de fondo con sonidos). ? Corra el teln y tome una segunda fotografa. ? Compare las fotografas de antes y despus, y exprese como poscondiciones los cambios del estado del escenario (se cre la instancia de VentasLineadeProducto).

Fundamentos de Ingenier a de SW

24

12

Anlisis Orientado a Objetos

Ej.TPDV: Post-condiciones
? Post-condiciones:
? Si es una nueva venta, se cre una Venta ( creacin de instancia). ? Si es una nueva venta, la nueva Venta fue asociada a un TPDV ( asociacin formada). ? Se cre una instancia VentasLineadeProducto ( creacin de instancia). ? Se asoci una instancia de VentasLineadeProducto a la Venta ( asociacin formada). ? Se asign una cantidad a VentasLineadeProducto.cantidad ( modificacin de atributo). ? Se asoci una instancia de VentasLineadeProducto a la instancia de EspecificaciondeProducto, basado en la correspondencia del CUP ( asociacin formada).

Fundamentos de Ingenier a de SW

25

Anlisis Orientado a Objetos

Ej.TPDV: Post-condiciones
? Una vez que el cajero captur el CUP y la cantidad del producto, Qu ha de crearse?. ? Si es una nueva venta, habra que crear una instancia para una nueva Venta. Una instancia de VentasLineadeProducto debera ser creada de modo incondicional.
? Si es una nueva venta, se cre una Venta ( creacin de instancia). ? Se cre una instancia VentasLineadeProducto ( creacin de instancia).

Fundamentos de Ingenier a de SW

26

13

Anlisis Orientado a Objetos

Ej.TPDV: Post-condiciones
? Una vez que el cajero captur el CUP y la cantidad del producto, qu atributos de los objetos nuevos o actuales deberan ser modificados?. Habra que establecer la cantidad de VentasLineadeProducto.
? Se asign una cantidad a VentasLineadeProducto.cantidad ( modificacin de atributo).

Fundamentos de Ingenier a de SW

27

Anlisis Orientado a Objetos

Ej.TPDV: Post-condiciones
? Una vez que el cajero captur el CUP y la cantidad del producto, qu asociaciones entre los objetos nuevos y actuales debieron haber sido formadas o canceladas? ? Habra que relacionar la nueva instancia de VentasLineadeProducto con sus Ventas y con su Producto. Si se trataba de una nueva Venta debi haber sido relacionada con la TPDV dentro del cual es registrada.
? Se asoci una instancia de VentasLineadeProducto a la Venta ( asociacin formada). ? Si es una nueva venta, la nueva Venta fue asociada a un TPDV ( asociacin formada). ? Se asoci una instancia de VentasLineadeProducto a la instancia de EspecificaciondeProducto, basado en la correspondencia del CUP ( asociacin formada).

Fundamentos de Ingenier a de SW

28

14

Anlisis Orientado a Objetos

Pre-condiciones
? Las precondiciones definen las suposiciones sobre el estado del sistema al iniciarse la operacin. ? Hay muchas precondiciones que pueden declararse en una operacin, pero la experiencia revela que vale la pena mencionar las siguientes:
? Cosas que son importantes de probar en el software en algn momento de la ejecucin de la operacin. ? Cosas que sern sometidas a prueba, pero de las cuales depende el xito para subrayar la importancia y para hacer notarlas a los otros lectores.

Fundamentos de Ingenier a de SW

29

Anlisis Orientado a Objetos

Contratos
? El problema ms comn consiste en olvidar incluir la formacin de asociaciones. Sobre todo cuando se crean nuevas instancias, muy probablemente ser necesario haber establecido las asociaciones a varios objetos.

Fundamentos de Ingenier a de SW

30

15

Anlisis Orientado a Objetos

Ej.TPDV: Contrato de introducirProducto


Contrato IntroducirProducto (cup:numero, cantidad:entero) Capturar (registrar) la venta de un producto y agregarla a la venta. Desplegar la descripcin y el precio del producto. Tipo: Sistema Referencias cruzadas: Funciones del sistema: R1.1, R1.3, R1.6 Casos de uso: Comprar productos Notas: Utilizar el acceso superrpido a la base de datos. Excepciones: Si el CUP no es vlido, indicar que se cometi un error. Salida: Precondiciones: El sistema conoce el CUP. Poscondiciones: ? Si se trata de una nueva venta, fue creada unaVenta . ? Si se trata de una nueva venta, la nuevaVenta fue asociada a un TPDV. ? Se cre una instancia VentasLineadeProducto. ? Se asoci una instancia de VentasLineadeProducto a la Venta. ? Se asign una cantidad a VentasLineadeProducto.cantidad . ? Se asoci una instancia VentasLineadeProducto a la instancia EspecificaciondeProducto, basado en la correspondencia del CUP. Nombre: Responsabilidades:
Fundamentos de Ingenier a de SW 31

Anlisis Orientado a Objetos

Ej.TPDV: Contrato para terminarVenta


Contrato terminarVenta () Registrar que es el final de la captura de los productos de la venta y desplegar el total de la venta. Tipo: Sistema Referencias cruzadas: Funciones del sistema: R1.2 Casos de uso: Comprar productos Notas: Excepciones: Si no esta realizndose una venta, indicar que se cometi un error. Salida: Precondiciones: Poscondiciones: Estableci Venta.estaTerminada en verdadero . Nombre: Responsabilidades:

Fundamentos de Ingenier a de SW

32

16

Anlisis Orientado a Objetos

Ej.TPDV: Contrato para efectuarPago


Nombre: Responsabilidades: Tipo: Referencias cruzadas: Contrato efectuarPago(monto: nmero) Registrar el pago, calcular el saldo e imprimir el recibo. Sistema. Funciones del sistema: R2.1 Casos de uso: Comprar productos

Notas: Excepciones: Si la venta no est concluida, indicar que se cometi un error. Salida: Precondiciones: La venta esta terminada. Poscondiciones: Se cre una instancia Pago. Se asoci el Pago a una Venta. Se asign el valor del monto a Pago.MontoOfrecido . Se asoci la Venta a la Tienda para agregarla al registro histrico de las ventas terminadas.

Fundamentos de Ingenier a de SW

33

Anlisis Orientado a Objetos

Ej.TPDV: Contrato para inicio


Contrato Nombre: Inicio() Responsabilidades: Inicializar el sistema Tipo: Sistema. Referencias cruzadas: Notas: Excepciones: Salida: Precondiciones: Poscondiciones: Se cre una instanciaTienda, TPDV, CatalogodeProductosy EspecificacionesdeProducto . Se asoci CatalogodeProductosa EspecificacionesdeProducto . Se asoci Tienda a CatalogodeProductos. Se asoci Tienda a TPDV. Se asoci TPDV a CatalogodeProductos.

Fundamentos de Ingenier a de SW

34

17

Anlisis Orientado a Objetos

Cambios en el Modelo Conceptual


? Estos contratos sugieren la existencia de un dato que todava no ha figurado en el modelo conceptual: la terminacin de la captura de los productos en la venta. Lo modifica la operacin terminarVenta y la especificacin efectuarPago lo toma como precondicin. ? Una forma de representar esta informacin es a travs de un atributo estaTerminada de la Venta, por medio de un valor booleano.

Venta estaTerminada: boolean fecha hora

Fundamentos de Ingenier a de SW

35

Anlisis Orientado a Objetos

Resumen
? Comportamiento de los sistemas ? Diagrama de secuencia del sistema ? Contratos
? Precondiciones ? Postcondiciones

Fundamentos de Ingenier a de SW

36

18

Anlisis Orientado a Objetos

Quiz
? Qu es el comportamiento de un sistema? ? ? ? ? ? ? Qu representa el diagrama de secuencia del sistema? Cul es la diferencia entre evento y operacin? Porqu se crea el concepto sistema? Cul es el nombre correcto para una operacin? Cul es la diferencia entre lo esttico y lo dinmico? Porqu son necesarios los contratos y cuantos son para un caso de uso?

? Cuales son los condiciones para elaborar un contrato? ? Cuales son las partes ms importantes del contrato?

Fundamentos de Ingenier a de SW

37

19

También podría gustarte