You are on page 1of 51

Ingeniera en Sistemas de Informacin

Diseo de Sistemas (3K1)

Contenidos de la Unidad 1 Introduccin al Diseo


f) Ingeniera del Software Asistida por Computadora. Sommerville. Seccin 4.5 Clasificacin de CASE C. Proceso de Diseo I. Fases del diseo. II. Diseo y calidad del software III. Principios y conceptos del diseo. IV. Documentacin del Diseo. V. Anlisis y Diseo Orientado a Objetos
Pressman. Cap. 13.2 Introduccin. Pressman. Seccin 13.1 Sommerville. Seccin 4.3.2 Pressman. 13.2.1 Pressman. Seccin 13.3 y 13.4 Pressman, Seccin 13.8 Sommerville, Cap.14 Larman, 2. Ed., Cap. 1.4 Pressman, Cap.21 y 22 Larman, 1. Ed.,Cap. 9/11 Larman, 2a. Ed. Cap. 9/11 Larman, 1. Ed. Caps. 13/14 Larman, 2. Ed. Cap. 14

VI. Modelos de dominio, Casos de Uso. (revisin) VII. Del Anlisis al Diseo

Ingeniera en Sistemas de Informacin

DISEO DE SISTEMAS

DIAGRAMAS DE SECUENCIA Craig Larman (Cap. 13)

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.

DISEO DE SISTEMAS Diagramas de Secuencia

COMPORTAMIENTO DEL SISTEMA


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 la descripcin es un Diagrama de la Secuencia del sistema.

DIAGRAMA DE SECUENCIA DEL SISTEMA


Los casos de uso indican cmo los actores interactan con el Sistema de Software. Durante esa interaccin un actor genera eventos dirigidos al sistema, solicitando alguna operacin a cambio.

DISEO DE SISTEMAS Diagramas de Secuencia

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.

DISEO DE SISTEMAS Diagramas de Secuencia

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.

DISEO DE SISTEMAS Diagramas de Secuencia

En el diagrama el tiempo avanza hacia abajo, y el orden de los eventos sigue el orden indicado en el caso de uso.

Los eventos del sistema pueden incluir parmetros

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

Repetir hasta que no haya ms productos.

Evento del sistema. Inicia una operacin del sistema.

DISEO DE SISTEMAS Diagramas de Secuencia

EVENTOS Y OPERACIONES DE UN SISTEMA


Evento de un Sistema => Hecho Externo de Entrada, que un actor produce en un sistema. Origina una Operacin de Repuesta. Operacin de un Sistema => Accin que ste ejecuta en repuesta a un Evento del Sistema. Por ejemplo, cuando el cajero genera el evento IntroducirProducto, causa la ejecucin de la operacin introducirProducto; el nombre del evento y de la operacin son idnticos; la distincin reside en que el evento es el estmulo nombrado y la operacin es la respuesta.

DISEO DE SISTEMAS Diagramas de Secuencia CASO DE USO: Comprar productos

Cajero introducirProducto (CUP, cant)

:Sistema

Los eventos del sistema inician las operaciones del mismo

Evento del sistema. IntroducirProducto . Inicia una operacin del Sistema del mismo nombre IntroducirProducto .

DISEO DE SISTEMAS Diagramas de Secuencia

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:

IntroducirProducto (Cod, cantidad) TerminarVenta() EfectuarPago(monto)

Cmo se registran estas operaciones en el lenguaje UML?.

DISEO DE SISTEMAS Diagramas de Secuencia TipoX Operacion1() Operacion2()

Notaciones de las operaciones en UML Las operaciones se agrupan como del tipo Sistema.

Los parmetros son opcionales: pueden inclurse o no

DISEO DE SISTEMAS Diagramas de Secuencia Sistema terminarVenta() introducirProducto() efectuarPago()

Operaciones del sistema registradas en el 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).

DISEO DE SISTEMAS Diagramas de Secuencia

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.

DISEO DE SISTEMAS Diagramas de Secuencia

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

introducirProducto (CUP, cant) terminarVenta() efectuarPago (monto)

Los diagramas de secuencia de un sistema surgen de los casos de uso

DISEO DE SISTEMAS Diagramas de Secuencia

EVENTOS Y FRONTERAS DE UN SISTEMA


Para identificar los eventos de un sistema debemos tener una idea clara de su frontera. La frontera de un sistema se selecciona en funcin del sistema de software (y tambin del hardware). Un evento del sistema es un hecho externo que estimula directamente el software.

En el caso de uso ComprarProductos identificamos los eventos del sistema:

DISEO DE SISTEMAS Diagramas de Secuencia

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.

DISEO DE SISTEMAS Diagramas de Secuencia

Comprar productos

Cajero introducirProducto (CUP, cant) terminarVenta() efectuarPago (monto)

:Sistema

Frontera del Sistema

DISEO DE SISTEMAS Diagramas de Secuencia

Asignacin de nombre a los eventos y a las operaciones de un 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.

DISEO DE SISTEMAS Diagramas de Secuencia

Cajero Nombre ms idneo


Nombre menos idneo

:Sistema

introducirProducto (CUP, cant)


introducirTeclaOprimida(CUP, cant)

Escoja los nombres de los eventos y de las operaciones en un nivel abstracto

DISEO DE SISTEMAS Diagramas de Secuencia

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

DISEO DE SISTEMAS Diagramas de Secuencia

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.

Cajero introducirProducto (CUP, cant) terminarVenta() efectuarPago (monto)

:Sistema

Ingeniera en Sistemas de Informacin

DISEO DE SISTEMAS

CONTRATOS Craig Larman (Cap. 14)

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

COMPORTAMIENTO DEL SISTEMA

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.

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

El Contrato describe los cambios del estado del sistema total cuando se invoca a una de sus operaciones.

Sistema introducirProducto() terminarVenta() efectuarPago ()


Se redactan contratos para cada operacin del sistema, con el fin de describir su comportamiento.

Las operaciones del sistema requieren las descripciones del contrato

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.

Responsabilidades: Tipo: Referencias Cruzadas Notas Excepciones Salida

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).

DISEO DE SISTEMAS Contratos

Secciones del Contrato

No todas las secciones son necesarias; se recomiendan las de Responsabilidades y Poscondiciones.


Nombre: Responsabilidades:

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.

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

Contratos y otros artefactos

Los casos de uso sugieren los diagramas de eventos y de secuencia del sistema.

Despus se identifican las operaciones del sistema.

El efecto de las operaciones del sistema se describe en los contratos.

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)

Diagrama de Secuencia Operacin IntroducirProducto

DISEO DE SISTEMAS Contratos

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:

DISEO DE SISTEMAS Contratos

Categoras tiles que deben Postcondiciones del Contrato:

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.

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

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).

DISEO DE SISTEMAS Contratos

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.

DISEO DE SISTEMAS Contratos

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.

Referencias Cruzadas: Funciones: R1.1., R1.2., R1.3., R1.6., R1.7.

DISEO DE SISTEMAS

Curso normal de los eventos:


Accin del actor 1. Este caso de uso comienza cuando un Socio llega a la caja con videos para alquilar. 2. El Empleado introduce el cdigo del Socio. 4. El Empleado captura el cdigo de video de cada video. 6. El Socio confirma que no quiere mas videos. 3. Completa el nombre y domicilio del socio. Informa de multas pendientes. 5. Confirma el precio del video y agrega el ttulo de ste a la transaccin. Respuesta del sistema

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.

Curso alterno de los eventos:


Lnea 2: El Cliente no es socio. Error. Ver Caso de Uso: Alta de Socio. Lnea 3: El Socio tiene una multa no pagada. Ver Caso de Uso: Multas. Lnea 4: Cdigo de video inexistente. Indicar Error. Lnea 8: El Cliente no tiene el dinero necesario para pagar. Se cancela la operacin.

DISEO DE SISTEMAS

1) Diagrama de la secuencia para el caso de uso Alquiler de Video.


Caso de Uso: Alquiler de Video Curso Normal de los eventos 1. Este caso de uso comienza cuando un Socio llega a la caja con videos para alquilar.

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

introducirSocio (codigo) introducirVideo (codigo) terminarTransaccin() efectuarPago (monto)

DISEO DE SISTEMAS

2) Contrato para introducirVideo


Nombre: Resposabilidades: Tipo: Referencias Cruzadas Notas introducirVideo (codigo: nmero)

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

Excepciones Salida Precondiciones Postcondiciones:

Si el cdigo no es vlido, indicar que se cometi un error.

El sistema conoce el cdigo de video.

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)

You might also like