Professional Documents
Culture Documents
VI. Modelos de dominio, Casos de Uso. (revisin) VII. Del Anlisis al Diseo
DISEO DE SISTEMAS
DISEO DE SISTEMAS
El Diagrama de Secuencia de un sistema muestra grficamente los eventos que fluyen de los actores al sistema. Su creacin forma parte de la investigacin para conocer el sistema; se incluye dentro de la etapa del anlisis. En UML los Diagrama de Secuencia muestran grficamente los eventos que pasan de los actores al sistema. Actividades y dependencias Los Diagramas de Secuencia de un sistema se preparan durante la fase del anlisis. Para su creacin, debemos formular antes los Casos de Uso.
Conviene aislar y explicar grficamente las operaciones que un actor solicita al sistema, porque ello contribuye a entender el comportamiento del sistema. En UML los Diagramas de Secuencia dan una descripcin grfica de las interacciones del actor y de las operaciones que las mismas originan. DIAGRAMA DE SECUENCIA => Representacin que muestra, en un determinado Caso de Uso, los eventos generados por actores externos, su orden y los eventos internos del sistema.
A todos los sistemas se los trata como una caja negra; los diagramas se centran en los eventos que trascienden las fronteras del sistema y que fluyen desde los actores hacia los sistemas.
El Diagrama de Secuencia debe prepararse para el curso normal de los eventos de un caso de uso y los cursos opcionales ms interesantes. Ejemplo de un Diagrama de la Secuencia de un sistema El Diagrama de la Secuencia de un sistema describe, en el curso de los eventos de un caso de uso, los actores externos que interactan directamente con el sistema (caja negra) y con los eventos del sistema generados por esos actores.
En el diagrama el tiempo avanza hacia abajo, y el orden de los eventos sigue el orden indicado en el caso de uso.
Ejemplo => curso normal de los eventos en el caso Comprar Productos. El cajero es el nico actor en el sistema de CAJA y genera los eventos del sistema introducirProducto, terminarVenta y efectuarPago.
DISEO DE SISTEMAS Diagramas de Secuencia CASO DE USO: Comprar productos Sistema como caja negra Actor Cajero introducirProducto (CUP, cant) terminarVenta() Texto que aclara el control, la lgica, la iteracin, etc Puede tomarse del caso de uso. efectuarPago (monto) :Sistema
:Sistema
Evento del sistema. IntroducirProducto . Inicia una operacin del Sistema del mismo nombre IntroducirProducto .
Registro de las operaciones de un sistema Para determinar el conjunto de las operaciones requeridas del sistema, se identifican previamente sus eventos correlativos. Si utilizamos parmetros, las operaciones son las siguientes:
Notaciones de las operaciones en UML Las operaciones se agrupan como del tipo Sistema.
La representacin del tipo Sistema es diferente a lo que se expres en el Modelo Conceptual. Los elementos del Modelo Conceptual representan Conceptos del Mundo Real; en cambio, el tipo Sistema es un Concepto Artificial. El tipo Sistema => muestra las operaciones, cosa totalmente nueva. Pues => estamos describiendo el comportamiento del sistema. El tipo Sistema => es informacin dinmica (distinto al Modelo Conceptual, que representa informacin esttica).
Como elaborar un diagrama de secuencia Para elaborar diagramas de Secuencia de un sistema que describan el curso normal de los eventos en un caso de uso Aplique los siguientes pasos: pasos 1. Trace una lnea que represente el sistema como una caja negra. 2. Identifique los actores que operan directamente sobre el sistema. Trace una lnea para cada uno de ellos. 3. 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. 4. A la izquierda del diagrama puede incluir o no el texto del caso de uso.
Ejemplo:
CASO DE USO: COMPRAR PRODUCTOS Curso normal de los eventos: 1. Este caso de uso comienza cuando un cliente llega a una CAJA con productos que desea comprar. 2. El cajero registra el cdigo universal del producto (CUP) de cada producto. Si hay mas de uno del mismo producto, tambin se puede capturar la cantidad. 3. El sistema determina el precio del producto y agrega la informacin sobre el producto a la transaccin actual de ventas. Se muestran la descripcin y el precio del producto actual. 4. Y as sucesivamente.
Comprar productos
Cajero
:Sistema
Primero debemos determinar los actores que interactan directamente con el sistema. El Cliente interacta con el Cajero, pero no directamente con el Sistema de CAJA; sto slo lo hace el Cajero. Por tanto, el Cliente no es un generador de eventos del sistema; slo el Cajero lo es.
Comprar productos
:Sistema
Los eventos (y sus operaciones asociadas) deben expresarse como propsitos y no segn el medio fsico de entrada que se utilice. Es mejor que el nombre de un evento comience con un verbo (agregar..., introducir ..., terminar ..., efectuar ...), porque recalca que los eventos estn orientados a comandos.
:Sistema
terminarVenta es preferible a introducirTeclaOprimida erminarVenta introducirTeclaOprimida porque capta mejor el propsito de la operacin: mantiene un carcter abstracto y no se pronuncia sobre las decisiones de diseo sobre cul interfaz sirve para capturar el evento del sistema. En cuanto a expresar las operaciones en el nivel de propsito, procure alcanzar el nivel ms alto o la meta final de asignar nombre a la operacin. Por ejemplo, respecto a la operacin que captura el pago: introducirImporteOfrecido introducirPago(monto) deficiente mejor
Presentacin del texto del caso de uso A veces conviene mostrar fragmentos del texto del caso de uso dentro del diagrama de secuencia para describir grficamente la estrecha relacin entre ambos artefactos.
En todos los productos, el Cajero registra el cdigo y la cantidad. Al terminar de capturar el producto, el Cajero indica a la CAJA que la venta concluy. El Cajero le indica el total al Cliente, y ste le d un pago. El Cajero registra el importe recibido.
:Sistema
DISEO DE SISTEMAS
Los Contratos contribuyen al definir el comportamiento de un Sistema: describen el efecto que sobre l tienen las operaciones. El lenguaje UML ofrece un soporte para describir estos Contratos. Actividades y dependencias Los Contratos de las Operaciones del Sistema se elaboran durante la fase de Anlisis. Su preparacin depende de contar antes con el Modelo Conceptual, de los Diagramas de Secuencia del Sistema y la identificacin de sus Operaciones.
Antes de emprender 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 que (cmo) lo hace. Los contratos son documentos muy tiles, que describen el comportamiento de un sistema a partir de cmo cambia el estado de un sistema cuando se llama una operacin suya.
CONTRATOS
El Diagrama de Secuencia de un sistema muestra los eventos generados por un actor externo, pero no profundiza en los detalles del funcionamiento de las operaciones invocadas. No contiene los detalles necesarios para entender la respuesta del sistema, o sea su comportamiento. Contrato => Documento que describe lo que una operacin propone lograr. Se redacta en estilo declarativo, enfatizando lo que suceder y no cmo se conseguir. Los contratos suelen expresarse a partir de los cambios de estado de las poscondiciones.
El Contrato describe los cambios del estado del sistema total cuando se invoca a una de sus operaciones.
DISEO DE SISTEMAS Contratos Ejemplo de Contrato para la Operacin: introducirProducto Nombre: introducirProducto (cup: nmero cant: entero) Capturar (registrar) la venta de un producto y agregarla a la venta. Desplegar la descripcin y el precio del producto. Sistema. Funciones del sistema. R1.1, R1.3,.... Casos de uso: Comprar productos. Utilizar el acceso super rpido a la Base de Datos. Si el CUP no es vlido, indicar que se cometi un error.
DISEO DE SISTEMAS
Precondiciones Postcondiciones:
El sistema conoce el CUP. 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 TPDV (asociacin formada). Se cre una instancia VentasLineasdeProductos (creacin de una instancia). Se asoci una instancia VentasLineasdeProductos a la Venta (asociacin formada). Se asign cantidad a VentasLineadeProducto.cantidad (modificacin de atributo). Se asoci una instancia VentasLineadeProducto a la instancia EspecificacindeProducto, basado esto en la correspondencia del CUP (asociacin formada).
Nombre de la Operacin y Parmetros. Descripcin informal de las responsabilidades (objetivos o propsitos) que debe cumplir la operacin.
DISEO DE SISTEMAS Contratos Tipo: Referencias Cruzadas Notas Excepciones Salida Precondiciones: Postcondiciones: Nombre del tipo (concepto, clase de software, interfaz). Nmero de referencia de las funciones del sistema, casos de uso, etc. Notas de diseo, algoritmos e informacin afn. Casos excepcionales. Mensajes o registros que se envan afuera del sistema. Suposiciones acerca del estado del sistema antes de ejecutar la operacin. El estado del sistema despus de la operacin.
Como preparar un contrato Para preparar un contrato en los casos de uso: => Aplique los siguientes pasos: 1. Identifique las operaciones del sistema a partir de los diagramas de sus secuencia. 2. Elabore un contrato en cada operacin del sistema. 3. Comience redactando la seccin de Responsabilidades; despus describa informalmente el propsito de la operacin.
4.
Complete luego la seccin 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 categoras: Creacin y eliminacin de las instancias. Modificacin de los atributos. Asociaciones formadas y canceladas.
Los casos de uso sugieren los diagramas de eventos y de secuencia del sistema.
DISEO DE SISTEMAS Cajero CASO DE USO: COMPRAR PRODUCTOS Curso normal de los eventos 1. Este caso de uso comienza ... Caso de Uso Sistema introducirProducto() terminarVenta() efectuarPago() Operaciones del Sistema Postcondiciones: 1. Si se trata de una nueva venta, fue creada una nueva Venta .... Contratos Sistema
introducirProducto(CUP,Cantidad)
terminarVenta() efectuarPago(monto)
POSTCONDICIONES
Despus de la seccin de Responsabilidades, la parte mas importante del contrato son las Postcondiciones, que estipula como cambi el sistema tras esta operacin. No son acciones que deben efectuarse durante la operacin; sino declaraciones sobre el estado del sistema que se aplican una vez concluida la operacin, es decir, una vez que el humo se ha disipado. Se aconseja expresar las Postcondiciones de esta manera en UML:
contemplarse
en
las
Creacin y eliminacin de las instancias. Modificacin de los atributos. Asociacin formadas y canceladas. Lo importante es adoptar una actitud declarativa, orientada al cambio de estado y no a la accin.
Las Postcondiciones deberan ser declaraciones sobre los estados o resultados, no una descripcin de acciones a realizar.
Las Postcondiciones se relacionan con el Modelo Conceptual Las Postcondiciones se expresan dentro del contexto del Modelo Conceptual. * Qu instancias es posible crear? La Respuesta es: las provenientes del Modelo Conceptual. * Qu asociaciones es posible formar? La Respuesta es: las que estn en el Modelo Conceptual.
Ventaja de las Postcondiciones El Contrato constituye una excelente herramienta de investigacin: permite describir los cambios necesarios para que el sistema funcione sin necesidad de describir cmo se logran. En otras palabras, podemos postponer el diseo y la solucin del software y concentrarnos analticamente en lo que debe suceder, no en la manera de conseguirlo. El espritu de las Postcondiciones: Postcondiciones: el Escenario y el Teln Las Postcondiciones deberan describir el estado de un Sistema, no las acciones a realizar.
Exprselas en tiempo pasado para enfatizar que se trata de declaraciones sobre un cambio pretrito de estado. Por ejemplo: Se cre una instancia VentasLineadeProducto (mejor) en lugar de Crear una instancia VentasLineadeProducto (peor) Reflexione sobre las Postcondiciones sirvindose de la siguiente imagen: El sistema y sus objetos se presentan en el escenario de un teatro.
1. Tome una fotografa del escenario antes de la operacin. 2. Corra el teln del escenario y aplique la operacin del sistema (ruido de fondo con sonidos metlicos, gritos, chillidos). 3. Corra el teln y tome una segunda fotografa. 4. Compare las fotografas de antes y despus, y exprese como poscondiciones los cambios del estado del escenario (Se cre la instancia VentasLineadeProducto).
Cun completas deben ser las poscondiciones? poscondiciones? En la fase de Anlisis no es probable (ni necesario) generar un grupo de Postcondiciones completas y exactas de la Operacin del sistema. Su elaboracin es la conjetura inicial ms acertada, y conviene intentarlo, durante el Anlisis, an sabiendo que los Contratos estarn incompletos. Esta creacin temprana (e incompleta) es sin duda, preferible a posponer la investigacin hasta el Diseo; cuando los creadores se concentrarn en el diseo de una solucin, ms que en averiguar lo que debe hacerse.
PRECONDICIONES
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 probar en el software en algn momento de la ejecucin de la operacin. Cosas que no sern sometidas a prueba, pero de las cuales depende el xito de la operacin.
DISEO DE SISTEMAS
EJEMPLO PRCTICO:
Para el caso del Videoclub se realizarn estas tareas: 1. Por cada Curso Normal de Eventos, se realizar el correspondiente Diagrama de Secuencia. 2. A partir de los Diagramas de Secuencia, se identificarn a las Operaciones del Sistema y se confeccionar un Contrato.
DISEO DE SISTEMAS
Caso de Uso: Alquiler de Video Actores: Propsito: Empleado (Iniciador) Dejar registrado que un socio alquil X pelcula.
Resumen: : Un socio llega a la CAJA con los videos que quiere alquilar. El Empleado ingresa los videos y cobra el importe. Al terminar la operacin, el socio se marcha con los videos y el comprobante. Tipo: Primario y Esencial.
DISEO DE SISTEMAS
DISEO DE SISTEMAS 7. El Empleado le indica al sistema que no se cargarn ms videos. 9. El Socio ofrece un pago quizs mayor que el total. 10. El empleado ingresa el monto ofrecido. 12. El Socio recibe los videos, el ticket y se retira. 11. Calcula el saldo, registra el pago y emite el ticket. 8. Calcula el total y registra el alquiler.
DISEO DE SISTEMAS
Cajero
2. El Empleado ingresa el cdigo del Socio. 3. Completa el nombre y domicilio del socio. Informa de multas pendientes. 4. El Empleado ingresa el cdigo cada video. 5. Confirma el precio del video y agrega el ttulo de ste a la transaccin. 6. Y as sucesivamente...
:Sistema
DISEO DE SISTEMAS
Capturar (registrar) el alquiler de un video y agregarlo al alquiler. Desplegar el ttulo y el precio del video. Sistema. Funciones del sistema: R1.1, R1.3,.... Casos de uso: Alquiler de Videos. Utilizar el acceso super rpido a la Base de Datos.
DISEO DE SISTEMAS
Se cre una instancia AlquilerLineadeVideo (creacin de una instancia). Se asoci una instancia AlquilerLineasdeVideo al Alquiler (asociacin formada). Se asoci una instancia AlquilerLineadeVideo a la instancia EspecificacindeVideo, basado sto en la correspondencia del cdigo (asociacin formada). Se modific el atributo Video.Estado = alquilado (modificacin de atributo)