UML. SISTEMA DE COMERCIALIZACIÓN UNIFIED MODELING LANGUAGE Modelando un Sistema de Comercialización Ing. PERCY TITO R
Views 244 Downloads 7 File size 1MB
UML. SISTEMA DE COMERCIALIZACIÓN
UNIFIED MODELING LANGUAGE
Modelando un Sistema de Comercialización
Ing. PERCY TITO RIVERA [email protected]
ING. PERCY
TITO
RIVERA
SESION
– Página 1
UML. SISTEMA DE COMERCIALIZACIÓN
La crisis del Software
Algo más ... W. Gibbs, "Software's Chronic Crisis", cientifico americano, Sept. 1994, pp. 86-95: "[...] a pesar de 50 años de progreso, la industria del software permanece años - tal vez décadas - atrasada con respecto a las disciplinas de ingeniería necesarias para cumplir las demandas de una sociedad en la edad de la información.” http://www.standishgroup.com/chaos.html : “Las invstigaciones del grupo Standish muestran que 31.1% de los proyectos se cancelarán antes de que se completen. Otros resultados indican que 52.7% de los proyectos costarán 189% de la estimación original. El costo de estas fallas y excesos son sólo la punta del iceberg. Los costos de oportunidades perdidas son inconmensurables, pero podrían llegar a los trillones de dólares. Basta mirar a la ciudad de Denver para darse cuenta del alcance de este problema. El fracaso en la producción de software confiable para manejar equpaje en el nuevo aeropuerto le está costando a la ciudad US$1.1 millones al día. Basado en esta investigación, The Standish Group estiman que en 1995 compañías y agencias de gobierno de EE.UU. gastarán US$81 billones en proyectos de software cancelados. Y otros US$59 billones en proyectos de software completados, pero que excederán las estimaciones iniciales” En nuestro medio,,, El grupo GLORIA cuando adquirió un pool de empresas eléctricas en el año 1999 hizo estimaciones de concluir su Software en Setiembre de 1999, con miras al año 2000, pasó el nuevo siglo y no se terminó...."
Qué opinan algunos gerentes de corporaciones nacionales “... Pensamos que cada vez que entregamos dinero a nuestras áreas
de Informática no obtenemos ningún beneficio, la información que deseamos de los sistemas es muy escasa, y sin embargo seguimos aprobando presupuesto para que las otras áreas no se detengan en sus operaciones.... Gerentes Nacionales” Extractos curso de Modelamiento de Datos. Maestría Ingeniería de Sistemas 2002.
ING. PERCY
TITO
RIVERA
SESION
– Página 2
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
01
INTRODUCCIÓN AL UML
ING. PERCY
TITO
RIVERA
SESION
– Página 3
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 01: INTRODUCCIÓN AL UML Debido a la creciente demanda de la incorporación del UML como lenguaje estandar de modelado en los procesos de construcción de los sistema, surge la necesidad de conocer, dominar y saber aplicar los distintos diagramas que los conforman. A continuación revisaremos algunos conceptos sobre el éxito en un proyecto, sus componentes, RUP y los diagramas que conforman UML
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes: Triángulo del Éxito Rational Unified Process Unified Modeling Language Breve Descripción de los diagramas Conocer un Modelo de Negocio
El Triangulo del Éxito de un Proyecto
ING. PERCY
TITO
RIVERA
SESION
– Página 4
UML. SISTEMA DE COMERCIALIZACIÓN
Rational Unified Process (RUP) RUP es un proceso de Ingeniería de Software. Proporciona una disciplina asignando tareas y responsabilidades en conjunto con el desarrrollo de la organización. Su meta es asegurarnos un software de alta calidad que desarrolle las necesidades de los usuarios finales. RUP es desarrollado y mantenido por Rational Software (m) y es una parte de una suite de herramientas de desarrollo. Está disponible desde Rational Software en un CD-ROM o a través de Internet. RUP ha capturado mucha de las mejores practicas modernas de desarrollo de software de una forma que puede ser usada en distintos proyectos y organizaciones, en particular cubre las 6 prácticas sgts:
Las Mejores Prácticas de Ingeniería de Software
Unified Modeling Language (UML) Qué es UML ? UML es un lenguaje para visualizar, especificar, construir y documentar los artefactos de un sistema que involucra una gran cantidad de software, desde una perspectiva Orientada a Objetos.
Por qué Modelar ? El modelo es una simplificación de la realidad El modelo es la parte central que conducen a la producción de Software de Calidad Construimos modelos para comprender mejor el sistema que estamos modelando
ING. PERCY
TITO
RIVERA
SESION
– Página 5
UML. SISTEMA DE COMERCIALIZACIÓN Utilidades del modelo: o Visualizar cómo es que queremos que sea el sistema o Especificar la estructura y comportamiento del sistema o Proporcionan plantillas que guían la construcción del sistema o Documentar decisiones o Facilita la comunicación entre el equipo al existir un lenguaje común
Utilidad de UML Permite especificar todas las decisiones de análisis, diseño e implementación, construyéndose modelos precisos, no ambiguos y completos. UML puede conectarse a lenguajes de programación:Ingeniería directa e inversa Permite documentar todos los artefactos de un proceso de desarrollo (requisitos, arquitectura, pruebas, versiones,..)
Entradas a UML
Evolución de UML
ING. PERCY
TITO
RIVERA
SESION
– Página 6
UML. SISTEMA DE COMERCIALIZACIÓN
Diagramas de UML • • • • •
Diagramas de Casos de Uso Diagramas de Actividad Diagramas de Clases Diagramas de Objetos Diagramas de Interacción –Diagrama Secuencia –Diagrama Colaboración * Diagramas de Estados • Diagramas de Componentes • Diagramas de Despliegue
Diagramas de Casos de Uso del Negocio Son usados para representar la funcionalidad de la organización como una unidad. Responde a las preguntas: Qué hace la organización ? Por qué construir el Sistema ? Son usados durante las actividades del modelamiento del negocio como contexto del sistema y formar un fundamento para la creación de los casos de uso y son graficados desde la perpectiva de la organización, no diferencian entre procesos manuales y automatizados 1 (a diferencia de los casos de uso que se focalizan en los procesos automatizados). ¿ Cuándo necesitamos realizar un Modelamiento del Negocio ? Cuando el grupo de trabajo es nuevo en la organización. Se han aplicado recientemente proceso de re-ingenieria. La organización está planeando aplicar re-ingeniería. 1
UML with Rational Rose 2002 – Wendy Boggs
ING. PERCY
TITO
RIVERA
2002
SESION
– Página 7
UML. SISTEMA DE COMERCIALIZACIÓN Está construyendo un software que será usado en una parte significativa de la organización. Existen flujos complejos y no existe una buena documentación.
Diagramas de Casos de Uso Un caso de uso representa la funcionalidad del sistema, los requerimientos del sistema a partir de la perspectiva del usuario. Muestra las iteraciones entre casos de uso y actores . Los diagramas de casos de usan centran su atención en los procesos automatizados,.}
Diagramas de Actividad Los diagramas de actividad ilustran el flujo de la funcionalidad en un sistema. Ellos podrían ser usados en el modelamiento del negocio para visualizar un flujo de trabajo del negocio, así como ser usados al obtener los requerimientos que ilustran el flujo de eventos de un caso de uso. Estos diagramas se caracterizan por definir el inicio, las actividades, el orden en que ocurren y el final de los flujos de trabajo. Se recomienda incluir este tipo de diagramas especialmente cuando se tengan flujos largos y complejos.
Diagramas de Secuencia Corresponde a la categoría de diagramas de Iteración y muestra el flujo funcional dentro de un caso de uso. Estos flujos se encuentran ordenados en el tiempo. Permite conocer los objetos y clases involucrados en un determinado escenario y la secuencia de mensajes intercambiados entre los objetos necesarios para conocer su funcionalidad. Por ejemplo, el caso de uso Registrar Liquidaciones tiene una serie de posible secuencias para el escenario de crear una Hoja de Liquidación
Diagramas de Colaboración Un diagrama de colaboración es otra alternativa para mostrar un escenario. A diferencia del Diagrama de Secuencias, este tipo de diagrama de secuencia muestra las iteraciones organizadas a través de los objetos y sus asociaciones con otros.
Diagramas de Estados Los casos de uso y escenarios proporcionan un modo de describir el comportamiento del sistema, como es, las interacciones entre los objetos del sistema. Alguna vez es necesario mirar el comportamiento interno de un objeto. Un diagrama de estados muestra los estados de un objeto los eventos y mensajes que causan la transición desde un estado a otro y las acciones como resultado de los cambios de estado.
Diagramas de Clases Muestra interaciones entre las clases en un sistema. Identifica los roles comunes y las responsabilidades de las entidades que proporcionan el comportamiento del sistema.
ING. PERCY
TITO
RIVERA
SESION
– Página 8
UML. SISTEMA DE COMERCIALIZACIÓN
Diagrama de Objetos Muestra un conjunto de objetos y sus relaciones. Representa instancias de las cosas halladas en un diagrama de clases. Estos diagramas direccionan la vista estática del sistema y son importantes porque muestran la organización y modelamiento del comportamiento del sistema.
Diagramas de Componentes Un diagrama de componentes muestra una vista física del modelo, muestra los componentes del software en el sistema y las relaciones entre ellos.
Diagramas de Despliegue Los diagramas de despliegue muestran el entorno físico de una red y donde residirán los distintos componentes del sistema.
A continuación veremos en detalle cada uno de los diagramas aplicado a un Sistema de Comercialización
ING. PERCY
TITO
RIVERA
SESION
– Página 9
UML. SISTEMA DE COMERCIALIZACIÓN
ING. PERCY
TITO
RIVERA
SESION
– Página 10
UML. SISTEMA DE COMERCIALIZACIÓN
El Modelo del Negocio Si no se tiene una idea cabal de la organización en general a implementar, es necesario modelar el negocio. El modelo de Negocio implica como es que la organización ve la que realiza, no importa si los procesos son manuales o automatizados. Veamos algunas características: El modelo de negocios es estudiar la organización. Consiste en examinar la estcutura de la organización y mirar los roles que desmepeña y como ellos se relacionan. Se examinan los flujos de trabajos, los procesos principales que desarrolla. Se debe tratar de comprender el negocio dentro y fuera del mismo
Por qué modelar el Negocio? Comprender la visión de la organización o Comprender que hace la organización o Modelar los procesos de negocios Posible aplicación de Re-ingeniería de ciertos procesos o En tanto que muestra los flujos de trabajo de un proceso de negocios es posible determinar la conveniencia o no de este flujo. o Permite delinear nuevos flujos como parte de nuevas propuestas Muestra un contexto para una solución del Software o Puede ser un documento de inicio para comprender el contexto del sistema Sirve como documento para que nuevos involucradas tengan una idea general del negocio.
Casos en que se necesita preparar un Modelo de Negocios Ud y su equipo de trabajo son nuevos en la organización. Se han producido recientes proceso de re-ingeniería La organización está planeando realizar proceso de re-ingeniería Está construyendo software que será usado por una parte significativa de la organización. Existen flujos complejos dentro de la organización y no han sido documentados adecuadamente.
Componentes de un Modelo de Negocios Business Actors (agentes empresariales) o o
ING. PERCY
Es externo a la organización Ejemplo: cliente, proveedor, banco, SUNAT
TITO
RIVERA
SESION
– Página 11
UML. SISTEMA DE COMERCIALIZACIÓN Business Workers (trabajadores de negocios) o o
Es un rol que desempeña la organización. Por ejemplo: Agente de Ventas,
Business Use Cases (casos de uso del negocio) o o o
Es un flujo de trabajo dentro de la organización que proporciona valor a los actores del negocio Dicen qué hace la organización Por ejemplo: preparar pedidos, elaborar ordenes de compra, generar cotizaciones.
Business Use Case diagrams (el uso de diagramas de casos de negocio)
Business entities (entidades de negocios)
Pedidos
ING. PERCY
TITO
RIVERA
SESION
– Página 12
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 01: Introducción Objetivos
Conocer los modos de autenticación que administra SQL Server Implementar Roles de Servidor Implementar Roles de Base de Datos Administrar Permisos
Ejercicio 01 Conociendo Rational Rose 1. 2.
Cargar Rational Enterprise Editon Seleccione Rational UnifiedProcess
3.
Veamos una descripción de la interfaz principal de Rational Rose
ING. PERCY
TITO
RIVERA
SESION
– Página 13
UML. SISTEMA DE COMERCIALIZACIÓN
Ejercicio 02. Representación de las Vistas en Rational Rose
ING. PERCY
TITO
RIVERA
SESION
– Página 14
UML. SISTEMA DE COMERCIALIZACIÓN
Ejercicio 03. Preparando el Modelo de Negocios Creando Actores del Negocio 1.
Desde el Browser ubicarse en la vista de casos de uso (Use Case View), Ver Fig. 1 2. Hacer cbd (clic botón derecho) New – Actor 3. En el Browser se incorporará un nuevo actor: digitar el nombre del actor. a. AgenteVentas b. AsistenteComercializacion c. Contabilidad d. SUNAT e. ClienteEmpresa
Especificando Estereotipo de Actores Añadir una breve descripción para cada actor en el modelo. La descripción debe identificar el rol que al actor juega cuando interactúa con el sistema. Para realizar la descripción de cada actor proceda de la siguiente manera:
ESPEFICANDO STEREOTIPO DE LOS ACTORES 1. En el Browser, seleccionar el actor respectivo y haga doble clic 2. En StereoType elija: a. AgenteVentas : Business Worker b. AsistenteComercialización: Business Worker c. Contabilidad : Business Worker d. SUNAT : Business Actor e. ClienteEmpresa: Business Actor
ING. PERCY
TITO
RIVERA
SESION
– Página 15
UML. SISTEMA DE COMERCIALIZACIÓN
Creando Casos de Uso del Negocio en Rational A continuación mostramos una lista de casos de uso a incorporar en el modelo CREANDO CASOS DE USO EN RATIONAL ROSE 1. Desde el Browser ubicarse en la vista de casos de uso (Use Case View), Ver Fig. 1 2. Hacer cbd (clic botón derecho) New – Use Case 3. En el Browser se incorporará un nuevo Caso de Uso: digitar el nombre de los casos de Uso detallados a continuación a. CapturarPedidos b. RegistrarPedidosClientes c. GenerarDocumentosVenta 4. Especificar para los casos de uso definidos el Estereotipo: Business Use Case
Preparando el Diagrama de Casos de Uso CREANDO EL DIAGRAMA DE CASOS DE USO DE NEGOCIO PARA PEDIDOS 1. Ubicarse en la vista de casos de uso 2. Haga cbd elija : New – Use Case Diagram 3. Digite: Modelo de Negocio de Pedidos 4. Incluya los casos de uso sgtes: a. CaptarPedidosCampo b. RegistrarPedidosCliente c. GenerarDocumentosVenta 5.
Incluya los BusinessWorkers y Actores del Negocio a. AgenteVentas : Business Worker b. AsistenteComercialización: Business Worker c. Contabilidad : Business Worker d. SUNAT : Business Actor e. ClienteEmpresa: Business Actor
Para incluir las asociaciones lo haremos con el ícono Asociación Unidireccional, que lo podemos ver a continuación,
ING. PERCY
TITO
RIVERA
SESION
– Página 16
UML. SISTEMA DE COMERCIALIZACIÓN
Creando Asociaciones CREANDO ASOCIACIONES 1. Ubicarse en el Diagrama de Casos de Uso:Modelo de Negocios de Pedidos. 2. Haga clic en el ícono de Asociación Unidireccional 3. Haga clic en al Actor del Negocio Cliente y arrastre hasta el caso de uso CaptarPedidoCampo 4. Realice las sgts asociaciones repitiendo el paso 2 y el paso 3 para las siguientes actores y casos de uso ACTOR Agente Ventas AgenteVentas AsistenteComercializacion AsistenteComercializacion Contabilidad SUNAT ClienteEmpresa
CASO DE USO CaptarPedidoCampo RegistrarPedidoCliente RegistrarPedidoCliente GenerarDocumentosVentas GenerarDocumentosVentas GenerarDocumentosVentas CaptarPedidoCampo
Esquema final del Modelo de Negocio de Pedidos
ING. PERCY
TITO
RIVERA
SESION
– Página 17
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
02
COMPORTAMIENTO DEL SISTEMA
ING. PERCY
TITO
RIVERA
SESION
– Página 18
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 02: COMPORTAMIENTO DEL SISTEMA Uno de las primeras etapas en la construcción del Software constituye en determinar el comportamiento del sistema, e identificar los requerimientos funcionales del sistema a desarrollar. Para ello utilizaremos los diagramas de casos de uso y diagramas de actividad
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes: Comportamiento del Sistema Casos de Uso Diagramas de Casos de Uso
Comportamiento del Sistema El comportamiento de un Sistema es cómo actúa y reacciona. Constituye la funcionalidad del sistema. El comportamiento del sistema es capturado mediante los casos de uso. Un caso de Uso describe: El Sistema (funciones que debe cumplir ) El Ambiente (actores) La relación entre el sistema y su ambiente (diagrama de casos de uso)
Conceptos Importantes al Modelar el Caso de Uso
ING. PERCY
TITO
RIVERA
SESION
– Página 19
UML. SISTEMA DE COMERCIALIZACIÓN
Actor: representan cualquier cosa que interactúa con el sistema.
secuencia de acciones que un sistema realiza y que produce un resultado observable de valor.
Caso de Uso:
¿ Qué es un modelo de casos de Uso ? Un modelo de caso de uso es un modelo de las funciones previstas del sistema (casos de uso) y su entorno (actores) El mismo modelo de caso de uso es usado en análisis de requisitos, diseño y prueba. Especifica una secuencia de acciones, incluyendo variantes, que el sistema puede incluir, y que produce un resultado observable de valor para un actor.
El propósito principal del modelo de caso de uso es comunicar las funciones y el comportamiento del sistema al cliente o al usuario final
Beneficios del Modelo de Casos de Uso Es usado para comunicarse con el usuario final y el experto del dominio Proporciona credibilidad en una etapa inicial del desarrollo del sistema Asegura una comprensión mutua de los requisitos Es usado para identificar Quién interactuará con el sistema y qué deberá hacer el sistema Qué interfaz deberá tener el sistema Es usado para verificar que: Se capturan todos los requisitos Que los desarrolladores hayan entendido los requisitos
ING. PERCY
TITO
RIVERA
SESION
– Página 20
UML. SISTEMA DE COMERCIALIZACIÓN
Actor
Los actores no son parte del sistema, ellos representan roles que un usuario del sistema puede desempeñar Un actor puede intercambiar activamente la información con el sistema Un actor puede ser un recipiente pasivo de la información Un actor puede representar a un humano, una máquina u otro sistema
Encontrando Actores ¿ Qué constituye un buen Actor ? Esta identificación debe realizarse de una manera iterativa. Proponer una lista inicial, en base a las siguientes preguntas ¿Quién está interesado en cierto requisito? El Supervisor de Comercialización deseaba obtener un conocimiento de los niveles de morosidad de los clientes por zona y por vendedor El Asistente Comercial quería tener un control de los Pedidos que los cliente hacían y que el sistema le permita generar los documentos de venta (facturas, boletas de venta, notas de crédito, etc) ¿Dónde en la organización se utilizará el sistema? El Gerente de la Empresa desea ingresar al sistema para conocer estadísticas de Ventas y Compras y definir las políticas de cambios de precios. ¿Quién proveerá, utilizará y eliminará esta información del sistema? Los clientes definen los productos que desean a comprar a los vendedores, quiénes diariamente los visitan, Los vendedores envían la información de los pedidos y las cobranzas realizadas al Departamento comercial para el control respectivo. ¿Quién utilizará esta función? Quién realizará la función de cobranzas a los clientes? ->Vendedor Quién registrará en el sistema la información de pedidos? -> Asistente Comercial Quiénes preparan la mercaderías en función a los pedidos efectuados por los clientes? > Almacenero ¿Quién le dará soporte y Mantenimiento al sistema? Quiénes harán las instalaciones del producto. Quiénes harán el afinamiento a la BD Quiénes administrarán la Seguridad ¿Usa el sistema un recurso externo? Se necesita conocer ciertos datos de las empresas, por lo que habrá necesidad de recurrir a la SUNAT ¿Qué actores necesita el caso de uso? ¿Un actor desempeña varios roles? Los trabajadores pueden adquirir productos, en ese caso se consideran clientes especiales (Rol Trabajador, Cliente)
Un usuario puede actuar como varios Actores (Roles)
ING. PERCY
TITO
RIVERA
SESION
– Página 21
UML. SISTEMA DE COMERCIALIZACIÓN
Algunos Actores encontrados para el Sistema Comercial Agentes Comerciales Clientes realizan Supervisor Comercial Proveedores SUNAT Asistente Comercial Gerencia General Comerciales Almacenero Contabilidad sistema.
: : : : : : :
informan sobre los pedidos y liquidaciones de los clientes pedidos, realizan gestión para créditos necesita información de morosidad proveen de productos a empresa brinda información tributaria del cliente controla y registra pedidos, emite documentos de pago actualiza políticas de precios, comisiones a los Agentes
: prepara mercadería a fin de ser distribuída. : necesita información de Registro de Ventas y Compras del
Caso de Uso Un caso de uso modela un diálogo entre los actores y el sistema Un caso de uso puede ser iniciado por un actor para invocar una cierta funcionalidad en el sistema Un caso de uso es un flujo de eventos completos y significativos Tomados al mismo tiempo, todos los casos de uso constituyen todas las formas posibles de utilizar el sistema Debe generar un valor para el actor
ING. PERCY
TITO
RIVERA
SESION
– Página 22
UML. SISTEMA DE COMERCIALIZACIÓN Por ejemplo el Caso de Uso Registrar Pedidos Permitirá conocer al Almacenero los pedidos que la empresa debe entregar a sus clientes. Así mismo a los Agentes Comerciales conocer que cobranzas realizar en caso de que los pedidos hallan sido ejecutados al crédito. Al Asistente Comercial controlar adecuadamente los estados de cuenta de los clientes y las operaciones de los Agentes Comerciales.
Encontrando Casos de Uso
¿Cuáles son las tareas de este actor? ¿El actor, creará, guardará, cambiará, eliminará o leerá la información en el sistema? ¿Cuál caso de uso creará, guardará, cambiará, eliminará o leerá esta información? ¿Necesitará el actor informar al sistema sobre cambios externos e imprevistos? ¿Es necesario que el actor esté informado sobre ciertas ocurrencias en el sistema? ¿Le proporciona una correcta secuencia el sistema a las tareas? ¿Cuáles casos de uso le darán soporte y mantenimiento al sistema? ¿Pueden todos los requerimientos funcionales ser realizados por los casos de uso?
Fuentes de Información para los Casos de Uso
Especificaciones del sistema / Manifestación del problema - entrevistas Literatura relevante del dominio Entrevistas con expertos del dominio Conocimiento personal del dominio Sistema heredados Manual de funciones Documentación de entrada y salida
Algunos Casos de Uso encontrados para el Sistema Comercial Preparar Pedido Registrar Pedido ConsultarDocumentos Verificar Datos del Cliente Actualizar Datos del Producto Generar Documentos de Venta Reportar Pedidos Actualizar Precios de Productos Actualizar tipos de clientes Actualizar datos de proveedores Actualizar comisiones por línea de producto
Flujo de Eventos para un Caso de Uso Constituye una descripción de los eventos necesarios para cumplir el comportamiento requerido del caso de uso. Este flujo de eventos es escrito en términos de qué debe hacer el sistema (lenguaje del dominio) y no de cómo lo va ha hacer(términos de implementación. El flujo incluye: Cuándo y cómo empieza y termina el caso de uso. Qué interacción tiene el caso de uso con los actores. Qué datos son necesarios en el caso de uso
ING. PERCY
TITO
RIVERA
SESION
– Página 23
UML. SISTEMA DE COMERCIALIZACIÓN La secuencia normal de eventos La descripción de cualquier flujo alternativo o de excepción El flujo de excepción es añadido e indica, qué hacer si... A continuación proponemos un esquema del flujo de eventos: X Flujo de eventos del Caso Uso X.1 Precondiciones X.2 Flujo principal X.3 Sub-Flujos (opcionales) X.4 Flujos Alternativos X.5 Postcondiciones
Diagrama de Casos de Uso Definición Un diagrama de Casos de Uso muestra un conjunto de casos de uso, actores y sus relaciones. Constituye uno de los diagramas que forman parte de UML y permiten conocer los aspectos dinámicos del sistema (Además de los diagramas de actividad, diagramas de estado, diagramas de secuencia y diagramas de colaboración)2
Contiene:
Casos de uso. Actores. Relaciones de dependencia, generalización y asociación.
Veamos un diagrama de Casos de uso
2
[Booch, Rambaugh, Jacobson 94]
ING. PERCY
TITO
The Unified Modeling Language User Guide
RIVERA
SESION
– Página 24
UML. SISTEMA DE COMERCIALIZACIÓN
Usos Comunes
Modelar el Contexto del Sistema: Identificar los actores del ambiente del sistema Organizar actores que son similares a otros usando generalización. Proporcionar, de ser necesario, esterotipos3 para cada actor. Modelar los requerimientos del sistema
Relaciones entre los Casos de Uso La relación normal entre un Actor y un caso de uso está definida por una asociación del esterotipo el cual se acostumbra a no incluirlo, ya que constituye una relación natural, veamos el gráfico sgte < >
Equivalente Regis trarPedido
As is tenteCom ercia
Regis trarPedido
As is tenteCom ercial
Cómo debe ser el sentido de las flechas Una asociación puede navegar en 2 direcciones (actor hacia caso de uso y caso de uso hacia actor) o podría navegar en una sola dirección (actor hacia caso de uso o caso de uso hacia actor). La dirección de una asociación representa quien inicia la comunicación 4.
RELACIONES Hay 2 tipos de relaciones que podrían existir entre casos de uso: include y extend. Muchos casos de uso podrían combinar la funcionalidad de otros casos de uso Una relación Include entre casos de uso significa que el caso de uso base incorpora explícitamente el comportamiento de otro caso de uso en una instancia específica. Una relación include es dibujado como una dependencia desde el caso de uso base hacia el caso de uso usado. Esta relación implica obligatoriedad. Por ejemplo: imaginemos el caso de uso Registrar Pedido (caso de uso base) incorpora el comportamiento del caso de uso Generar Documento.
3
EstereoTipo: extienden el vocabulario de UML, representa la subclasificación de un elemento del modelo. Pueden crearse otros. Se denotan con 4 Visual Modeling with Rational Rose 2000 and UML. Terry Quatrani- 2001
ING. PERCY
TITO
RIVERA
SESION
– Página 25
UML. SISTEMA DE COMERCIALIZACIÓN
Cada vez que registra un Pedido en el sistema este deberá de generar documentos sobre los cuales se manejarán las factura o boletas de pago, a partir de los mismos se harán seguimiento de los pagos. Este caso de uso implica una relación ya que Registrar Pedido adquiere todo el comportamiento de GenerarDocumentos. Una relación Extend entre casos de uso significa que el caso de uso base incorpora el implícitamente el comportamiento de otro caso de uso en una instancia específica. Es usada para mostrar: Comportamiento opcional Comportamiento que es ejecutado bajo ciertas condiciones como un disparador o alarma Diferentes flujos que pueden ejecutarse bajo una elección del actor.
Presentamos un resumen de las relaciones en los casos de uso
Generalización Se pueden elegir una clase genérica de actores como Cliente y especializarlas como: ClienteFijo y ClienteTemporal. Esto se denomina Generalización. Para el caso ha desarrollar los clientesFijos son aquellos que están sujetos de crédito y tienen precios preferenciales. Un cliente normalmente cuando compra por primera vez es un Cliente Temporal, luego bajo ciertas requisitos el SupervisorComercial puede cambiarle de tipo.
ING. PERCY
TITO
RIVERA
SESION
– Página 26
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 02: Creando Diagramas de Casos de Uso. Objetivos
Conocer los modos de autenticación que administra SQL Server Implementar Roles de Servidor Implementar Roles de Base de Datos Administrar Permisos
Ejercicio 01. Identificando Posibles Actores De acuerdo al caso planteado se pueden distinguir los siguientes actores: 1. AgentComercial 2. Asistente Comercial 3. SupervisorComercial 4. Almacenero 5. AuxiliarContable 6. Clientes 7. Gerente
Ejercicio 02. Identificando Posibles Casos de Uso 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
RegistrarPedido AdministrarCliente AdministrarCreditos ConsultarDocumentos GenerarDocumentos AdministrarDatosProducto ReportarKardexProducto RealizarTomaInventario ActualizarPrecios RegistrarCobranzas EmitirEstadoCuentaCliente GenerarDevolucionesNC GenerarRegistroCompraVenta ImprimirDocumento
ING. PERCY
TITO
RIVERA
SESION
– Página 27
UML. SISTEMA DE COMERCIALIZACIÓN
Ejercicio 03. Creando Actores en Rational Cargar el archivo SistemaComercial.mdl de la práctica anterior. 2. Desde el Browser ubicarse en la vista de casos de uso (Use Case View), Ver Fig. 1 3. Hacer cbd (clic botón derecho) New – Actor 4. En el Browser se incorporará un nuevo actor: digitar el nombre del actor. 1.
Documentación de los Actores
Añadir una breve descripción para cada actor en el modelo. La descripción debe identificar el rol que al actor juega cuando interactúa con el sistema. Para realizar la descripción de cada actor proceda de la siguiente manera:
DOCUMENTANDO ACTORES EN RATIONAL ROSE 1. En el Browser, seleccionar el actor respectivo 2. Ubicarse en la ventana de documentación, ver Fig. 2. Si esta ventana no aparece activa ubicar en el menú View , activar Documentation
ING. PERCY
TITO
RIVERA
SESION
– Página 28
UML. SISTEMA DE COMERCIALIZACIÓN
Ejercicio 04. Creando Casos de Uso en Rational A continuación mostramos una lista de casos de uso a incorporar en el modelo CREANDO CASOS DE USO EN RATIONAL ROSE 1. En el archivo SistemaComercial.mdl. 2. Desde el Browser ubicarse en la vista de casos de uso (Use Case View), Ver Fig. 1 3. Hacer cbd (clic botón derecho) New – Use Case 4. En el Browser se incorporará un nuevo Caso de Uso: digitar el nombre de los casos de Uso definidos en la lista.
Breve descripción de un caso de uso Es recomendable que cada caso de uso se documente al momento de su creación. Una breve descripción que explique brevemente lo que realiza el caso de uso puede servir como documentación. Por ejemplo para el caso de uso RegistrarPedidos El caso de uso es iniciado por el Asistente Comercial cuando desea realizar transacciones con los pedidos históricos o desea registrar los pedidos efectuados por los Agentes Comerciales a los Clientes. Le proporciona la capacidad de crear, modificar, eliminar y consultar pedidos Para realizar la documentación proceda de la sgte. Manera: DOCUMENTANDO CASOS DE USO RATIONAL ROSE 1. En el Browser, seleccionar el caso de uso respectivo 2. Ubicarse en la ventana de documentación, ver Fig. 2. Si esta ventana no aparece activa ubicar en el menú View , activar Documentation
ING. PERCY
TITO
RIVERA
SESION
– Página 29
UML. SISTEMA DE COMERCIALIZACIÓN
Una muestra quedaría de esta manera:
Ejercicio 05. Estableciendo Flujo de Eventos para el caso de uso Registrar Pedidos Cargar el Word y documentar el Flujo de Eventos de acuerdo al formato del archivo : [Modelo para documentar un Caso de Uso.doc] El texto es el sgte. Una vez concluido grabarlo con el nombre: [Caso de Uso Registrar Pedidos.doc]
Ejercicio 06. Ligando el documento de Flujo de Eventos al Rational LIGANDO EL DOCUMENTO DE FLUJO DE EVENTOS AL RATIONAL ROSE 1. Ubicarse en el caso de Uso RegistarPedido 2. cbd: New - File 3. Ubique el archivo deseado. Clic Open ING. PERCY
TITO
RIVERA
SESION
– Página 30
UML. SISTEMA DE COMERCIALIZACIÓN
Ejercicio 07 Preparando el Diagrama de Casos de Uso a. Administración de Pedidos CREANDO EL DIAGRAMA DE CASOS DE USO PARA REGISTRO DE PEDIDOS 1. Ubicarse en la vista de casos de uso 2. Haga cbd elija : New – Use Case Diagram 3. Digite: Administrar Pedidos 4. Incluya los casos de uso sgtes: a. AdministrarCliente b. ConsultarPedidos c. ReportarPedidos d. GenerarDocumentos e. RegistrarPedidos f. AdministrarDatosProducto 5. Incluya los Actores a. AgenteComercial b. AsistenteComercial c.Almacenero d. SupervisorComercial
Para incluir las asociaciones lo haremos con el ícono Asociación Unidireccional, que lo podemos ver a continuación,
ING. PERCY
TITO
RIVERA
SESION
– Página 31
UML. SISTEMA DE COMERCIALIZACIÓN
CREANDO ASOCIACIONES 1. Ubicarse en el Diagrama de Casos de Uso Administrar Pedidos. 2. Haga clic en el ícono de Asociación Unidireccional 3. Haga clic en al Actor Cliente y arrastre hasta el caso de uso Preparar Pedido 4. Realice las sgts asociaciones repitiendo el paso 2 y el paso 3 para las siguientes actores y casos de uso ACTOR Agente Comercial SupervisorComercial AsistenteComercial AsistenteComercial Almacenero
CASO DE USO RegistrarPedido ConsultarPedidos ConsultarPedidos GenerarDocumentos AdministrarProductos
CREANDO RELACIONES 1. Ubicarse en el Diagrama de Casos de Uso Administrar Pedidos. 2. Haga clic en el ícono de Asociación Unidireccional 3. Haga clic en el caso de uso RegistrarPedidos y arrastre hacia el caso de uso GenerarDocumentos 4. Haga doble clic sobre la línea de asociación unidireccional creada, con lo que aparecerá la sgte interfaz
5. En StereoType elija : 6. Clic ok
include
CREANDO RELACIONES 1. Ubicarse en el Diagrama de Casos de Uso Administrar Pedidos. 2. Haga clic en el ícono de Asociación Unidireccional 3. Haga clic en el caso de uso RegistrarPedidos y arrastre hacia el caso de uso ConsultarDocumento 4. Haga doble clic sobre la línea de asociación unidireccional creada, 5. En StereoType elija : extend 5. Clic ok 6. Realice un entre RegistrarPedido y AdministrarProducto
ING. PERCY
TITO
RIVERA
SESION
– Página 32
UML. SISTEMA DE COMERCIALIZACIÓN
b. Continúe con el resto de los diagramas de caso propuestos. Diagrama: Administrar Productos
Diagrama: Administrar Liquidaciones
ING. PERCY
TITO
RIVERA
SESION
– Página 33
UML. SISTEMA DE COMERCIALIZACIÓN
Diagrama: Administrar Documentos
ING. PERCY
TITO
RIVERA
SESION
– Página 34
UML. SISTEMA DE COMERCIALIZACIÓN
Diag. Administrar Clientes
ING. PERCY
TITO
RIVERA
SESION
– Página 35
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
03
DIAGRAMAS DE ACTIVIDAD
ING. PERCY
TITO
RIVERA
SESION
– Página 36
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 03: DIAGRAMAS DE ACTIVIDAD Cada que se necesite modelar el flujo de trabajo de las actividades de una determinada función podemos recurrir a los diagramas de actividad. Estos permite visualizar el flujo de uno o más casos de uso.
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes: Diagramas de Actividad Contenido de un Diagrama de Actividad Ejemplos de un diagrama de actividad
Diagrama de Actividad Definición Un diagrama de actividad permite modelar la parte dinámica del sistema. Son flujos que representan el flujo de trabajo del sistema, esto es: ellos muestran el flujo de control desde una actividad a otra actividad en el sistema, qué actividades pueden ser hechas en paralelo, y cualquier ruta alternativa a través del flujo. Así como el flujo de un objeto que se mueve de un estado a otro entre los diferentes puntos del flujo de control. Puede utilizarse para representar el flujo a través los diferentes casos de uso o de un caso de uso en particular. Veamos los símbolos utilizados en UML:
Contiene:
Estados Actividad y Estados Acción Transiciones Objetos
ING. PERCY
TITO
RIVERA
SESION
– Página 37
UML. SISTEMA DE COMERCIALIZACIÓN Swimlines
Estados Actividad y Estados Acción Un Estado de Actividad permite la representación de una o varias operaciones que originan un cambio en el sistema. Se dice que no son atómicas por lo que pueden ser descompuestas y normalmente pueden demandar un tiempo para ser completadas.
Un Estado Acción constituye una actividad que no puede descomponerse más. Se dice que son atómicas y por lo que trabajo de un estado acción no puede ser interrumpido. Transiciones Son usados para pasar al flujo de control al siguiente estado o actividad una vez completados Las transiciones muestran la ruta desde una acción o actividad a la siguiente acción o actividad
Efectuar Pedido
Transición
Re gis trar Pedido
Decisiones Representan rutas alternativas basadas en una condición o expresión Booleana. Se recomienda incluir la palabra else para determinar la ruta en caso de que la condición a evaluar sea falsa. Veamos el sgte ejemplo que muestra la decisión de poder atender un pedido dependiendo de:
Reúne condiciones para venta ?
Así si un cliente solicita comprar al crédito y tuviera capacidad de crédito con la empresa, se procede a: Anotar Pedido, Sino (else) el pedido finaliza o se replantea las items pedidos en Efectuar Pedido Of receProducto
Ef ectuar Pe di do
Ev aluar Condiciones Reune c ond icion es pa ra ve nta ?
Anotar Pedido
ING. PERCY
TITO
RIVERA
SESION
– Página 38
UML. SISTEMA DE COMERCIALIZACIÓN
Barras Sincronizadas En un flujo de trabajo normalmente existen algunas actividades que pueden ejecutarse paralelamente. Las barras de sincronización le permiten especificar que actividades pueden hacerse concurrentemente. Las barras de sincronización son usadas también para mostrar uniones entere flujo de trabajos, esto es, que actividades deben completarse antes de realizar procesos siguientes. Observe el ejemplo: una vez que se Anota Pedido se procede a : Entregar Copia de Pedido al Cliente El asistenteComercial recepciona el Pedido
Anotar Pedido
Recepcionar Pedido
ING. PERCY
TITO
Entregar Copia de Pedido
RIVERA
SESION
– Página 39
UML. SISTEMA DE COMERCIALIZACIÓN
Swimlines Son usados para particionar un diagrama de actividades. Normalmente se usan para mostrar qué persona o unidad organizativa es responsable de las actividades contenidas en el Swimline. Veamos el sgte ejemplo de un Diagrama de Actividades para Capturar Pedidos, donde se dividen las actividades en 3 swimlines
ING. PERCY
TITO
RIVERA
SESION
– Página 40
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 03: Creando Diagramas de Actividad Objetivos
Conocer los modos de autenticación que administra SQL Server Implementar Roles de Servidor Implementar Roles de Base de Datos Administrar Permisos
Ejercicio 01. a. Reconociendo la Barra de Herramienta para Crear Un Diag Actividad
ING. PERCY
TITO
RIVERA
SESION
– Página 41
UML. SISTEMA DE COMERCIALIZACIÓN
b. Creando el Diagrama de Actividad CREANDO EL DIAGRAMA DE ACTIVIDAD PARA REGISTRO DE PEDIDOS 1. Ubicarse en la vista de casos de uso del Browser 2. Haga cbd elija : New – Activity Diagram 3. Digite: Atender Pedidos
CREANDO SWIMLINES 1. En el Diagrama RegistrarPedido 2. Haga clic en SwimLine, clic en el Diagrama 3. Haga clic en SwimLine, clic en el Diagrama 4. Haga clic en SwimLine, clic en el Diagrama 5. Haga clic en SwimLine, clic en el Diagrama
y y y y
escriba: escriba: escriba: escriba:
AreaComercial AgenteComercial Almacen-Reparto Cliente
CREANDO ACTIVIDADES 1. Haga clic en Activity de la Barra de Herramientas, luego de AreaComercial, digite Recepcionar Docum Pedido 2. Repita paso 1, e incluya las sgts actividades a. Digitar Condiciones Venta b. Digiter Items c. Grabar Pedido d. Generar Docum Venta e. Imprimir Docum Venta 3. Haga clic en Activity de la Barra de Herramientas, luego de AgenteComercial digite: Dar Conformidad Pedido 4. Repita paso 3, e incluya las sgts actividades a. Rechazar Pedido 5. Haga clic en Activity de la Barra de Herramientas, luego de Almacén-Reparto, digite: ActualizarStock 6. Repita paso 5, e incluya las sgts actividades a. Preparar Items Pedido b. Transportar Pedido y Docum 7. Haga clic en Activity de la Barra de Herramientas, luego de Cliente, digite: Recepcionar Pedido-Docum
clic dentro
clic dentro
clic dentro
clic dentro
CREANDO TRANSICIONES 1. De la barra de herramientas seleccione: State Transiction 2. Clic en la actividad origen, luego arrastre hacia la actividad deseada 3. Trate de llegar al sgte diagrama ING. RICARD O MENDOZA RIVERA SESION – Página 42
UML. SISTEMA DE COMERCIALIZACIÓN
ING. PERCY
TITO
RIVERA
SESION
– Página 43
UML. SISTEMA DE COMERCIALIZACIÓN
CREANDO PUNTOS DE DECISION 1. De la barra de herramientas seleccione: Decision 2. Clic en el swimline deseado y digite el texto respectivo 3. Trate de llegar al sgte diagrama: 4. Para la palabra [No] inclúyalo con un TextBox desde la barra de herramientas
ING. PERCY
TITO
RIVERA
SESION
– Página 44
UML. SISTEMA DE COMERCIALIZACIÓN
CREANDO BARRAS DE SINCRONIZACION 1. De la barra de herramientas seleccione: Horizontal Sincronization 2. Clic en el swimline deseado 3. Trate de llegar al sgte diagrama incluyendo las transiciones respectivas 4. Para lograr una barra más amplia ubicarse sobre la barra y arrastre hasta el tamaño deseado.
ING. PERCY
TITO
RIVERA
SESION
– Página 45
UML. SISTEMA DE COMERCIALIZACIÓN
CREANDO ACTIVIDADES DE INICIO Y FIN 1. De la barra de herramientas seleccione: Start State o EndState, según necesite 2. Clic en el swimline deseado 3. Trate de llegar al sgte diagrama incluyendo las transiciones respectivas
ING. PERCY
TITO
RIVERA
SESION
– Página 46
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
04
OBJETOS Y CLASES
ING. PERCY
TITO
RIVERA
SESION
– Página 47
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 04: OBJETOS Y CLASES Una de las etapas más importantes y posiblemente más trabajosas es determinar las clases que soportarán el comportamiento del sistema. Para ello existen una serie de formas de poder identificar las clases, como veremos más adelante. En esta sesión conoceremos los estereotipos más comunes de las clases que permitirán ser usados en los diagrama de iteración y de clases respectivos
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes: Definición de objeto y clase Abstracción y ejemplos de clase Nombrando a una clase Clases en UML Stereotipos de clases.
OBJETOS Y CLASES Qué es un Objeto Un objeto es una representación de una entidad del mundo real o conceptual. Un objeto puede representar algo concreto como: El carro de Jorge Una comptadora Un concepto como un proceso químico Una transacción bancaria Una orden de pedido Una tasa de interés Una cuenta corriente de una determinado cliente
Estado, Comportamiento e Identidad
ING. PERCY
TITO
RIVERA
SESION
– Página 48
UML. SISTEMA DE COMERCIALIZACIÓN
Estado de un Objeto El Estado de un objeto es uno de las posibles condiciones en que el objeto puede existir El estado normalmente cambia en el transcurso del tiempo El estado es implementado por un conjunto de propiedades, llamadas atributos -que normalmente son estáticos-, con los valores de las propiedades –que normalmente son dinámicos- , además de las conexiones que deben tener con otros objetos Por ejemplo el objeto cliente puede manejar 2 estados: Activo o Inactivo. Cuando deseamos realizar una transacción de venta sólo lo podremos hacer con los clientes que tienen estado activo.
ING. PERCY
TITO
RIVERA
SESION
– Página 49
UML. SISTEMA DE COMERCIALIZACIÓN Comportamiento de un Objeto El comportamiento de un objeto determina cómo éste actúa y reacciona frente a las peticiones de otros objetos El comportamiento de un objeto es modelado por un conjunto de mensajes a los que puede responder (las operaciones que el objeto puede realizar) El comportamiento es implementado por una serie de operaciones para un objeto. Cuando se desea registrar un pedido, este puede tener un comportamiento para crearlo, modificarlo o eliminarlo
Identidad de un Objeto Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro objeto Por ejemplo el pedido 000900 corresponde al AgenteComercial J.Clark, el pedido 000901 al AgenteComercial J.Clark y el pedido 000999 al AgenteComercial J.Clark En UML, los objetos son representados por rectángulos y el nombre del objeto es subrayado, como se muestra a continuación.
Qué es una Clase ?
ING. PERCY
TITO
RIVERA
SESION
– Página 50
UML. SISTEMA DE COMERCIALIZACIÓN
Una clase es una descripción de un grupo de objetos con propiedades comunes (atributos), comportamiento común (operaciones), relaciones comunes con otros objetos (asociaciones y agregados) y semántica común 5. Una clase es un molde para crear objetos. Se dice que un objeto es una instancia de una clase. Una clase es una abstracción en donde: Se enfatizan las características relevantes. Se suprimen las que no nos sirven. La abstracción nos ayuda a trabajar con cosas complejas La abstracción está en función de la perspectiva del usuario y de lo que se desea modelar fundamentalmente. Veamos el sgte. Gráfico:
5
[Booch, Rambaugh, Jacobson 94] The Unified Modeling Language User Guide
ING. PERCY
TITO
RIVERA
SESION
– Página 51
UML. SISTEMA DE COMERCIALIZACIÓN
Ejemplos de Clase El Agente Comercial J.Clark ha efectuado el pedido 000900 , y el Agente Comercial J.Clarck ha efectuado el pedido 000901. Cada objeto debe tener un valor para los atributos y acceder a las operaciones especificadas por la clase Pedidos.
Una buena clase captura una y sólo una abstracción. Por ejemplo, una clase debe tener la capacidad de mantener información acerca del Agente Comercial (tal como su nombre, dirección, ING. PERCY
TITO
RIVERA
SESION
– Página 52
UML. SISTEMA DE COMERCIALIZACIÓN teléfono, etc. y no debe incluir la información del pedido (NroPedido, Fecha del Pedido, etc). Esta clase debe ser dividida en 2 relacionadas: AgenteComercial y Pedidos. Relación entre Clases y Objetos De acuerdo a la definición dada, y desde la perspectiva de vida o no, se pueden identificar dos clases: animales y artefactos, según el diagrama siguiente. Puede identificar otras clases?
Una clase es una definición abstracta de un objeto Define la estructura y el comportamiento compartidos por los objetos. Sirve como modelo para crear objetos Los objetos pueden ser agrupados en clases Un objeto no es una clase 6
Objetos
Cliente: López
Cliente:Roca
Cliente: Rojas
6
[Booch 94] Análisis y Diseño Orientado a Objetos
ING. PERCY
TITO
RIVERA
SESION
– Página 53
UML. SISTEMA DE COMERCIALIZACIÓN
Nombrando Una Clase Una clase debe ser nombrada como un sustantivo que mejora caracterice a la abstracción. Pueden ser usados acrónimos que tengan el mismo significado para todos los involucrados. Si al nombrar una clase encontramos un problema es señal de que la abstracción realizada no ha sido la adecuada. Ejemplos: Cliente, FormaPago, Zona, Pedido, Proveedor Representando Clases
Nombre Clase
Atributos
Operaciones
Compartimientos de una clase Una clase está formada por 3 compartimientos La primera sección contiene el nombre de la clase La segunda sección muestra la estructura (atributos) La tercera sección muestra el comportamiento (operaciones) Formas de representar una clase
ING. PERCY
TITO
RIVERA
SESION
– Página 54
UML. SISTEMA DE COMERCIALIZACIÓN
Estereotipos y Clases Recordemos que un Estereotipo proporciona la capacidad de crear una nueva clase de elementos a modelar. Un estereotipo es un nuevo tipo de elemento de modelado que extiende la semántica del metamodelo Los estereotipos son mostrados en el compartimiento del nombre de la clase encerrados entre > Algunos estereotipos comunes para una clase son: Entidad (entity) Frontera (boundary) Control (control) Utilidad (utility) Excepción (exception) Veamos algunos estereotipos manejados por Rational Rose
Cada clase debe tener por lo menos un estereotipo. Clase Entidad Modela información y asocia comportamientos que generalmente son de larga duración (persistentes) o Puede reflejar un fenómeno de la vida real o También puede ser necesitada por la tarea interna del sistema o Los valores de estos atributos normalmente son entregados por un actor o El comportamiento es independiente del entorno Las clases entidades en el caso de uso “Registrar Pedidos”: o Cliente o Producto o Pedido o Forma de Pago Clase Frontera Modela la comunicación entre el entorno del sistema y su funcionamiento interno. Ejemplo típicos: Interfaces de usuario (windows) Protocolos de comunicación (interfaces con otros sistemas) Para nuestro caso sería un Formulario de Pedido, otro para Registrar Liquidaciones, etc.
ING. PERCY
TITO
RIVERA
SESION
– Página 55
UML. SISTEMA DE COMERCIALIZACIÓN Clase Control Una clase control modela el comportamiento especifico de uno o más casos de usos La clase control o Normalmente controla las operaciones que pueden darse en las clases tipo entidad. o Constituye el cumplimiento de las reglas de negocio o políticas que una empresa pueda incluir a sus procesos. o Crea, inicializa y borra objetos controlados o Controla la secuencia o coordina la ejecución de los objetos controlados o Controla asuntos concurrentes para las clases controladas o Es usualmente la implementación de un objeto intangible En el escenario del “Registrar Pedidos”, la clase AdministradorDePedido controla los procesos de registro.
ING. PERCY
TITO
RIVERA
SESION
– Página 56
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
05
INTERACCIÓN ENTRE OBJETOS
ING. PERCY
TITO
RIVERA
SESION
– Página 57
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 05: INTERACCIÓN ENTRE OBJETOS En esta sesión veremos como se produce la interacción entre objetos en el sistema. Mostraremos paso a paso los flujos de un escenario a través de un caso de uso: qué objetos son necesarios para el flujo , qué mensajes los objetos se mandan entre ellos , qué actor inicia el flujo. Para ello UML proporciona los Diagramas de Iteración: los diagramas de secuencia y los diagramas de colaboración , como paso previo a la elaboración de los diagramas de clase.
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes:
Escenarios de un caso de uso Diagramas de Interacción Diagramas de Secuencia Diagramas de Colaboración Mensajes entre Objetos
INTERACCIÓN ENTRE OBJETOS Escenarios de un Caso de Uso Qué es un Escenario ? Un escenario es una instancia de un caso de uso, es una representación de un caso de uso de acuerdo a ciertas condiciones que puedan presentarse a través del caso de uso cuando el actor interactúa con los objetos que pueden identificarse en él. Cada caso de uso tendrá una red de escenarios, es decir diferentes posibilidades que van desde flujos Primarios : que significa la forma normal que debe sigue un caso de uso Secundarios: que muestra las excepciones posibles en los casos de uso primarios
Ejemplo de un Caso de USo
ING. PERCY
TITO
RIVERA
SESION
– Página 58
UML. SISTEMA DE COMERCIALIZACIÓN
Un Escenario para el Caso de Uso “Registrar Pedidos. Crear Pedido” César al elegir la opción de creación de pedidos, e ingresa el Nro de Pedido 040001, el sistema valida el nro, a continuación el sistema le presenta la lista de Agentes Comerciales, César selecciona a Panchito López. El sistema le permite ingresar el código del cliente CL200 , el mismo que se valida. El sistema le ofrece la posibilidad de buscarlo también por su razón social Los Cocos, en caso de que el código ingresado sea erróneo. A continuación el sistema le indica que registre la fecha del pedido que corresponde al 09/09/2002. César debe elegir la forma de pago al crédito de la lista que le ofrece el sistema con lo cual el sistema valida la selección. A continuación el sistema le da la posibilidad a César de ingresar los 2 items del pedido 040001, para ello elige el botón Agregar a continuación ingresa el código del producto 050100 el cual es validado en el sistema, si el código no existe le ofrece seleccionarlo de una lista. En cualquier caso le muestra el nombre del producto Ace de 1kg, la unidad de medida Bolsa y el precio unitario 30.12 así mismo el sistema le indica que registre la cantidad, César ingresa 20 la misma que es validada en el sistema. Luego César procede a registrar el siguiente item......
OOAD usando UML. [email protected] Interacción entre objetos, hoja 4
Algunos Escenarios Secundarios a considerar Si el sujeto no está sujeto de crédito y César eligió forma de pago al crédito? El código del cliente ingresado no existe No hay stock suficiente de la cantidad seleccionada para ese producto El monto de crédito es superior a la capacidad de crédito del cliente
Algunos Escenarios Secundarios a considerar ? Respuesta simple: tantos como sea necesario para entender el funcionamiento del sistema. Regla del pulgar: o Escenarios primarios Elabore aproximadamente el 80% de estos escenarios o Escenarios secundarios Elabore unos pocos de los escenarios secundarios interesantes y de alto riesgo.
Diagramas de Interacción El flujo de escenarios que es capturado en texto son capturados mediante diagramas llamados diagramas de interacción, los mismos que pretenden mostrar paso a paso los flujos de un
ING. PERCY
TITO
RIVERA
SESION
– Página 59
UML. SISTEMA DE COMERCIALIZACIÓN
escenario a través de un caso de uso: qué objetos son necesarios para el flujo, qué mensajes los objetos se mandan entre ellos , qué actor inicia el flujo. Un diagrama de interacción es una representación gráfica de interacciones entre objetos Existen dos tipos de diagramas de interacción o Diagramas de secuencia o Diagramas de colaboración Cada uno entrega un punto de vista distinto de la misma interacción o Los diagramas de secuencia son ordenados en el tiempo o Los diagramas de colaboración pueden incluir flujo de datos Un diagrama de interacción contiene: Objetos : Un diagrama de interacción puede usar nombres de objetos, nombres de clases o ámbos Mensajes : A través de un mensaje un objeto puede requerir alguna función de otro objeto.
Diagramas de Secuencia Un diagrama de secuencia muestra las interacciones de objetos ordenadas en una secuencia de tiempo El diagrama muestra o Los objetos participando en la interacción o La secuencia de mensajes intercambiados Un diagrama de secuencia contiene: o Objetos con sus “líneas de vida” o Mensajes intercambiados entre objetos en una secuencia ordenada o Linea de Vida Activa (opcional)
Nombrando Objetos en un Diagrama de Secuecias Los objetos son dibujados como rectángulos con nombres subrayados Las “líneas de vida” de los objetos están representadas por líneas rayadas en descenso
Ejemplo de un caso de uso
ING. PERCY
TITO
RIVERA
SESION
– Página 60
UML. SISTEMA DE COMERCIALIZACIÓN
Mostrando la Interacción entre objetos La interacción de objetos está indicada por flechas horizontales las cuales son dirigidas desde la línea vertical representada por el objeto cliente a la línea representada por el objeto proveedor Las flechas horizontales están etiquetadas con mensajes El orden de los mensajes con respecto al tiempo, está indicado por la posición vertical. Enumerar las flechas horizontales es opcional ya que el orden está basado en la posición vertical
ING. PERCY
TITO
RIVERA
SESION
– Página 61
UML. SISTEMA DE COMERCIALIZACIÓN
Diagramas de Colaboración Un diagrama de colaboración es una manera alternativa de representar mensajes intercambiados por un conjunto de objetos El diagrama muestra interacciones organizadas alrededor de los objetos y las conexiones entre ellos Un diagrama de colaboración contiene: o Objetos o Conexiones entre objetos o Mensajes intercambiados entre objetos o Datos fluyendo entre objetos, si los hubiera Ejemplo de un Diagrama de Colaboración
Representación de Objetos Es similar como en los diagramas de secuencia.
ING. PERCY
TITO
RIVERA
SESION
– Página 62
UML. SISTEMA DE COMERCIALIZACIÓN
SE PUEDE OBTENER UN DIAGRAMA DE COLABORACIÓN PRESIONANDO F5
Representando Conexiones
Una conexión en un diagrama de colaboración se representa como una línea que une íconos de objetos Una conexión indica que existe un camino para establecer una comunicación entre los objetos conectados
Mensajes entre Objetos Una de conexión en un diagrama de colaboración puede mostrar los mensajes enviados entre los objetos. o Un mensaje se representa con una flecha apuntando desde el objeto cliente a el objeto proveedor o El nombre del mensaje con una lista opcional de parámetros y/o un valor de retorno o Un número de secuencia opcional que muestra el orden relativo en el cual los mensajes son enviados
Mensajes
ING. PERCY
TITO
RIVERA
SESION
– Página 63
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 05: Elaborando Diagramas de Interacción Objetivos
Conocer la forma en que son ingresadas las clases Identificar los esteretipos de las clases para un determinada caso de uso. Iniciar el trabajo en la vista lógica.
Ejercicio 01 a. Preparando el Diagrama de Secuencia para Actualización de Precios
ING. PERCY
TITO
RIVERA
SESION
– Página 64
UML. SISTEMA DE COMERCIALIZACIÓN
b. Preparando el Diagrama de Secuencia Ubicarse en el diagrama de Secuecia respectivo y Pulse F5
ING. PERCY
TITO
RIVERA
SESION
– Página 65
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
06
ENCONTRANDO CLASES
ING. PERCY
TITO
RIVERA
SESION
– Página 66
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 06: ENCONTRANDO CLASES Luego de haber visto una serie de conceptos asociados a las clases y los diagramas que nos servirán para modelar las interacciones entre ellas vamos a tratar de encontrar clases analizando los casos de uso. Así mismo una vez identificadas las clases podremos incluirlas dentro de paquetes de datos, de control y de interfaz.
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes:
Análisis de casos de uso Encontrando Objetos entidad Encontrando clases entidad Encontrando clases frontera Encontrando clases entidad Diseño de prototipos
OBJETOS Y CLASES ¿ Qué es el Análisis de Casos de Uso ? El análisis de casos de uso es el proceso de examinar los casos de uso para descubrir objetos y clases, para el sistema que está siendo desarrollado Los escenarios son detallados y mostrados gráficamente en diagramas de interacción o Se crean las entidades, las interfaces y las clases de control o Las clases son agrupadas en paquetes Son creados los diagramas de clases
Los objetos “entidad” son identificados examinando los nombres y las frases del escenario analizado Los nombres encontrados pueden ser: o Objetos o Descripciones del estado de un objeto o Entidades externas y/o actores o Nada de lo anterior
Filtrando Nombres Cuando esté identificando nombres, tenga cuidado que: o Varios términos pueden referirse al mismo objeto o Un término puede referirse a más de un objeto ING. PERCY
TITO
RIVERA
SESION
– Página 67
UML. SISTEMA DE COMERCIALIZACIÓN o El lenguaje natural es bastante ambiguo Este acercamiento puede identificar varios objetos sin importancia o La lista de nombres debe ser filtrada Una palabra de atención o Cada nombre puede ser tratado como verbo; cada verbo puede ser tratado como nombre El resultado depende fuertemente de la habilidad para escribir de los autores
Un Escenario para el Caso de Uso “Registrar Pedidos. Crear Pedido” César al elegir la opción crear pedido, e ingresa el Nro de Pedido 040001, el sistema valida el número, a continuación el sistema le presenta la lista de Agentes Comerciales, César selecciona a Panchito López. El sistema le permite ingresar el código del cliente CL200 , el mismo que se valida. El sistema le ofrece la posibilidad de buscarlo también por su razón social Los Cocos, en caso de que el código ingresado sea erróneo. A continuación el sistema le indica que registre la fecha del pedido que corresponde al 09/09/2002. César debe elegir la forma de pago al crédito de la lista que le ofrece el sistema con lo cual el sistema valida la selección. A continuación el sistema le da la posibilidad a César de ingresar los 2 items del pedido 040001, para ello elige el botón Agregar producto a continuación ingresa el código del producto 050100 el cual es validado en el sistema, si el código no existe le ofrece seleccionarlo de una lista de productos. En cualquier caso le muestra el nombre del producto Ace de 1kg, la unidad de medida Bolsa y el precio unitario 30.12 así mismo el sistema le indica que registre la cantidad, César ingresa 20 la misma que es validada en el sistema. Luego César procede a registrar el siguiente item con código de producto 060200......
Identificando Nombres César al elegir la opción de crear pedido, e ingresa el Nro de Pedido 040001, el sistema valida el número, a continuación el sistema le presenta la lista de Agentes Comerciales, César selecciona a Panchito López. El sistema le permite ingresar el código del cliente CL200 , el mismo que se valida. El sistema le ofrece la posibilidad de buscarlo también por su razón social Los Cocos, en caso de que el código ingresado sea erróneo. A continuación el sistema le indica que registre la fecha del pedido que corresponde al 09/09/2002. César debe elegir la forma de pago al crédito de la lista que le ofrece el sistema con lo cual el sistema valida la selección. A continuación el sistema le da la posibilidad a César de ingresar los 2 items del pedido 040001, para ello elige el botón Agregar producto a continuación ingresa el código del producto 050100 el cual es validado en el sistema, si el código no existe le ofrece seleccionarlo de una lista de productos. En cualquier caso le muestra el nombre del producto Ace de 1kg, la unidad de medida Bolsa y el precio unitario 30.12 así mismo el sistema le indica que registre la cantidad, César ingresa 20 la misma que es validada en el sistema. Luego César procede a registrar el siguiente item con código de producto 060200......
ING. PERCY
TITO
RIVERA
SESION
– Página 68
UML. SISTEMA DE COMERCIALIZACIÓN
¿Qué nombres deben ser filtrados? César Código producto 060200 Sistema Lista de productos Pedido Ace de 1kg Número de pedido 040001 Unidad de medida Bolsa Lista de Agentes Comerciales Precio Unitario 30.12 Panchito López Cantidad 20 Código del cliente CL200 Razón Social LOS COCOS Código ingresado Fecha de pedido 09-09-2002 Forma de Pago al crédito Dos items del pedido Código producto 050100
Decisiones de Filtrado César -- filtrado (actor) Pedido – candidato a objeto Número de pedido 040001 -- filtrado (propiedad de un pedido) Sistema -- filtrado (lo que está siendo construido) Agente Comercial – candidato a objeto-- filtrado Panchito López -- filtrado (lo mismo que agente comercial) Cliente -- candidato a objeto Código del cliente CL200l -- filtrado (propiedad del cliente) Razón social LOS COCOS -- filtrado (propiedad del cliente) Fecha del pedido -- filtrado (propiedad del pedido) FormaPago -- candidato a objeto Forma de pago al crédito-- filtrado (propiedad de la forma de pago) Código del produto 050100 -- candidato a objeto Código del produto 060200 -- candidato a objeto Ace de 1 kg – filtrado (propiedad del producto) Bolsa – filtrado (propiedad del producto) Precio Unitario -- – filtrado (propiedad del producto) Cantidad 20 -- – filtrado (propiedad del pedido)
Candidatos a Objeto en el Escenario ING. PERCY
TITO
RIVERA
SESION
– Página 69
UML. SISTEMA DE COMERCIALIZACIÓN
Pedido – lista de los cursos de un alumno en un semestre Lista de Agentes Comerciales – lista de todos los cursos impartidos en un semestre Cliente – una oferta para el semestre Forma de Pago -- una oferta para el semestre Código del Producto 050100 -- una oferta del producto Código del Producto 060200 -- una oferta del producto
Creando Clases Los objetos encontrados son agrupados en clases o Basados en estructuras y/o comportamientos similares Este es un intento inicial o Las clases pueden cambiar mientras más escenarios son examinados
Candidatos a Clase en el Escenario CreandoPedido Pedido –lista de las condiciones del pedido Items de Pedido – detalle de los productos requeridos AgenteComercial – lista de los agentes que realizan las ventas Cliente -- lista de clientes FormaPago – lista de las formas de pago ofrecidas por la empresa Producto – lista de los productos ofrecidos
Encontrando Clases Frontera Examine cada par actor/escenario y cree clases de frontera obvias o Durante el diseño, la clase será definida basada en los mecanismos de la interfaz de usuario elegida Ejemplo: o El estudiante se presenta con diferentes opciones en el caso “Registrar Pedidos” Una clase de frontera llamada “FormularioPedido” se crea para permitir al Asistente Comercial administrar pedidos Prototipo de la clase frontera: FormularioPedido
ING. PERCY
TITO
RIVERA
SESION
– Página 70
UML. SISTEMA DE COMERCIALIZACIÓN
Encontrando Clases Control Las clases de control típicamente contienen información de secuencia o Atención: las clases de control NO deben asumir las responsabilidades que típicamente corresponden a las clases de interfaz o de entidad
ING. PERCY
TITO
RIVERA
SESION
– Página 71
UML. SISTEMA DE COMERCIALIZACIÓN A este nivel de análisis, una clase de control es típicamente creada para cada caso de uso o Responsable por el flujo de los eventos en el caso de uso Esto es solo el primer corte o Mientras más casos y escenarios son desarrollados, las clases de control pueden ser eliminadas, divididas o combinadas
Ejemplo
Una clase de control llamada “AdministradorRegistro” es creada o Recibe información de la clase frontera “FormularioPedido” o Para cada uno de los pedidos registrados o Pregunta la forma de pago Revisa objeto “cliente” si está sujeto de crédito en caso de que el Asistente Comercial haya elegido forma pago crédito Muestra la lista de productos activos Pregunta la cantidad ingresada Verifica si existe stock suficiente Al grabar o Verifica el objeto “Cliente” y determina línea de crédito disponible si a elegido el objeto “formapago” al crédito o Crea el objeto ”DocumentoVenta”
Qué es un Paquete ? Un paquete es un mecanismo de propósito general utilizado para organizar elementos en grupos El número de clases crece a medida que más casos de uso y escenarios son analizados o Las clases pueden ser agrupadas en paquetes Proveen la habilidad de organizar el modelo en desarrollo Un paquete es representado como una carpeta
Paquetes en RegistrarPedidos Las clases del Sistema de Registros pueden ser agrupadas en tres paquetes o Artefactos del Pedido, Reglas de negocios e Interfaces Artefactos del Pedido
ING. PERCY
TITO
RIVERA
SESION
– Página 72
UML. SISTEMA DE COMERCIALIZACIÓN o Producto, Pedido, FormaPago, ItemsPedido, Cliente, AgenteComercial Reglas de negocio o AdministradorRegistro Interfaces o FormularioPedido, FormularioConsulta
Qué son los Diagramas de Clases? La vista lógica esta conformada de muchos paquetes y clases Un diagrama de clases es la vista de unos pocos (o todos) los paquetes y clases de la vista lógica o Generalmente hay varios diagramas de clases El diagrama de clases principal es típicamente una vista de los paquetes de alto nivel de la vista lógica Típicamente cada paquete tiene su propio diagrama de clases principal Se agregan diagramas de clases adicionales si son necesarios o La vista de las clases participantes de un escenario o La vista de las clases privadas de un paquete o La vista de una clase y sus atributos y operaciones o La vista de la jerarquía de herencia
ING. PERCY
TITO
RIVERA
SESION
– Página 73
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 06: Encontrando Clases Objetivos
Identificar clases a partir del análisis de un caso de uso Preparar los paquetes respectivos Entidades. Control. Interfaces.
Parte A: Encontrando Clases del Caso de Uso Registrar Pedidos
Ejercicio 01. Preparando los Paquetes respectivos En el archivo: comercial.mdl del laboratorio 03, proceda de la sgte manera: Ubicarse sobre la vista Lógica Clic botón derecho, New – Package Ingrese el nombre de : Interfaz Proceda de la misma manera para crear los paquetes: Control Entidades
Ejercicio 02 . Incoporando clases: Clases Interfaz (asegurarse del estereotipo respectivo) o FormularioPedidos o FormularioConsulta Clases Interfaz (asegurarse del estereotipo respectivo) o AdministradorPedidos Clases Entidad (asegurarse del estereotipo respectivo) o Pedido o DetaPedido o Producto o FormaPago o Cliente
ING. PERCY
TITO
RIVERA
SESION
– Página 74
UML. SISTEMA DE COMERCIALIZACIÓN
o
AgenteComercial
Ejercicio 03. Proceda a la elaboración de los Diagramas de Interacción de: Secuencia Colaboración
Parte B: Encontrando Clases del Caso de Uso Realizar Liquidaciones
Lea la descripción del Caso de Uso Registrar Liquidaciones, que se presenta al final del ejercicio.
Elija un caso de uso desarrollado en la lección anterior
Diagrame al menos un escenario en un diagrama de interacción + Cree todas las clases de entidad, interfaz y/o control necesarias + Cree una definición para cada clase
Cree paquetes para el modelo
Acomode las clases descubiertas en paquetes
Cree el diagrama de clases inicial
DESCRIPCIÓN DEL CASO DE USO REGISTRAR LIQUIDACIONES
ING. PERCY
TITO
RIVERA
SESION
– Página 75
UML. SISTEMA DE COMERCIALIZACIÓN
1.
CASO DE USO: Registrar Liquidaciones
1.1
Descripción Breve El caso de uso es iniciado por el Asistente Comercial cuando desea registra los pagos que los cliente realizan en el sistema ha medida que van cancelando sus documentos. Le proporciona la capacidad de crear, modificar, grabar, revertir y consultar pedidos; además de finalizar.
2.
Flujo de Eventos
2.1
Pre-condiciones El Asistente Comercial debe haber generado en el sistema los documentos de pago respectivo Se debe tener la información de los Agentes Comerciales.
2.2
Flujo Básico 1. 2. 3. 4. 5. 6. 7. 8.
9.
El sistema muestra las actividades que se pueden seleccionar: Agregar, Modificar, Grabar, Revertir, Consultar, Eliminar, Imprimir, Grabar y Salir. El Asistente Comercial selecciona la actividad que desea realizar. Si la actividad seleccionada es registrar, el flujo alternativo A-1: “Crear Liquidación” es ejecutado. Si la actividad seleccionada es modificar, el flujo alternativo A-2: “Modificar Liquidación” es ejecutado. Si la actividad seleccionada es grabar, el flujo alternativo A-4: “Grabar Liquidación” es ejecutado. Si la actividad seleccionada es revertir, el flujo alternativo A-5: “Revertir Liquidación” es ejecutado. Si la actividad seleccionada es consultar, el flujo alternativo A-6: “Consultar Liquidación” es ejecutado. Si la actividad seleccionada es imprimir, el flujo alternativo A-7: “Imprimir Liquidación” es ejecutado. Si la actividad seleccionada es Salir, el caso de uso finaliza.
2.3
Sub- Flujos
A-1
Crear Liquidación 1. 2. 3. 4.
El sistema permite ingresar el Nro de Liquidación El sistema verifica si existe el numero de Liquidación (E-1) El usuario selecciona el vendedor respectivo El usuario confirma o cambia la fecha del pedido y selecciona la forma de pago que el sistema valida. 5. Por cada documento el usuario ingresa a. Tipo de Documento b. Numero de Documento con (E-4) c. El sistema muestra la razón social del cliente y el saldo del documento d. El usuario ingresa el monto respectivo ha amortizar para el documento (E-5)
ING. PERCY
TITO
RIVERA
SESION
– Página 76
UML. SISTEMA DE COMERCIALIZACIÓN e. 6. 7. 8. 9.
A-2
El usuario ingresa Tipo de Pago (Cheque, Efectivo, Letra) respectivo (E-6).
El sistema le da la posibilidad de Eliminar alguna línea en el detalle. El sistema muestra total de la liquidación de todo el documento ingresado. Terminado el ingreso, si el Asistente Comercial elige a. La actividad “Grabar” se ejecuta el flujo alternativo A-4: Grabar pedido b. La actividad “Revertir” se ejecuta el flujo alternativo A-5: Revertir pedido El caso de uso comienza nuevamente.
Modificar Liquidación 1. 2. 3. 4.
5. 6. 7. 8. 9.
Puede modificar el documento editado o el Asistente Comercial selecciona el pedido a modificar a partir del caso de uso: Consultar Documento El sistema muestra el contenido de la liquidación seleccionado. El usuario elige la opción de modificar. Por cada documento el usuario ingresa a. Tipo de Documento b. Numero de Documento con (E-4) c. El sistema muestra la razón social del cliente y el saldo del documento d. El usuario ingresa el monto respectivo ha amortizar para el documento (E-5) e. El usuario ingresa Tipo de Pago (Cheque, Efectivo, Letra) respectivo (E-6). El sistema le da la posibilidad de Eliminar alguna línea en el detalle. El sistema muestra total de la liquidación de todo el documento ingresado. Terminado el ingreso, si el Asistente Comercial elige a. La actividad “Grabar” se ejecuta el flujo alternativo A-4: Grabar pedido La actividad “Revertir” se ejecuta el flujo alternativo A-5: Revertir pedido El caso de uso comienza nuevamente.
A-.4
Grabar Liquidación 1. El sistema guarda la información ingresada (E-6).
A-.5
Revertir Liquidación 1. El sistema deshecha los cambios efectuados 2. El caso de uso comienza nuevamente.
A-6
Consultar Liquidación 1.
El Asistente Comercial selecciona el pedido a modificar a partir del caso de uso: Consultar Liquidación. 2. Mostrar datos de la Liquidación Seleccionado E-7
Imprimir Liquidación 1. Puede imprimir el documento editado o el Asistente Comercial selecciona el pedido a imprimir a partir del caso de uso: Consultar Liquidación. 2. El sistema muestra contenido de la Liquidación. 3. El usuario elige imprimir la Liquidación 4. El sistema muestra la interfaz de impresión de Windows . 5. El caso de uso comienza nuevamente.
2.4
Flujos Alternativos o de Excepción
ING. PERCY
TITO
RIVERA
SESION
– Página 77
UML. SISTEMA DE COMERCIALIZACIÓN E-1 : Verifica la existencia de la liquidacioón, si existe un mensaje es mostrado y se permite el reingreso del nro del liquidación E-4 : Se verifica si el documento ingresado existe en el sistema, caso contrario emite mensaje y no deja avanzar hasta que se ingrese el Documento correcto. E-5 : Al momento de grabar se procede a la actualización de los saldos de cliente respectivo. .
2.5 Post-condiciones Actualizar saldos de cliente.
3.
Puntos de Extensión
3.1
Consultar Liquidación Si el Asistente Comercial desea buscar un pedido previamente ingresado, puede elegir la opción Buscar, que le permite buscar la Liquidación por su nro o por fechas.
4.
Prototipo de Interfaz de usuario
ING. PERCY
TITO
RIVERA
SESION
– Página 78
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
07
RELACIONES
ING. PERCY
TITO
RIVERA
SESION
– Página 79
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 07.RELACIONES Una vez establecidas las clases nos damos cuentan de que ellas intercambian mensajes entre si, para que estos mensajes puedan ser intercambiados es necesario de que existan relaciones entre las clases. La relación permitirá conocer a una clase conocer acerca de los atributos, operaciones y relaciones de otra clase. Existen 2 tipos de relaciones como veremos a continuación.
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes: Necesidad de las Relaciones Tipos de Relaciones Nombrando Relaciones Roles Relaciones Reflexivas Hallando Relaciones Relaciones entre paquetes
La necesidad de las Relaciones Dado a que los sistemas abarcan muchas clases y objetos debe existir una colaboración entre ellos mismos para contribuir en el comportamiento del sistema. Existen 2 tipos de relaciones: Asociaciones Agregaciones
Relaciones de Asociación Una asociación es una relación semántica bidireccional entre clases. Esto implica que existe una conexión entre objetos en las clases asociadas Por ejemplo una asociación entre la clase Cliente y la clase Pedido, significará que objetos en la clase Cliente están conectados a objetos en la clase Pedido. El número de objetos conectados depende de la multiplicidad de una asociación, como veremos más adelante Los datos pueden fluir en una o más direcciones a lo largo de la asociación
Navegación
ING. PERCY
TITO
RIVERA
SESION
– Página 80
UML. SISTEMA DE COMERCIALIZACIÓN
Una asociación es una relación bi-direccional Dada la instancia de “AdministradorPedido” existe asociado un objeto “Pedido” Dada la instancia de “Pedido” existe asociado un objeto “AdministradorPedido”
Nombrando Relaciones Una asociación podría ser nombrada, Normalmente el nombre es un verbo que comunica el significado de la relación. El nombre se representa como una etiqueta ubicada a lo largo de la línea de asociación en medio de las clases que se están relacionando.
Definiendo Roles Un rol denota el propósito por el que se asocia una clase con otra Los roles son típicamente sustantivos Se ubica cercano a la clase que modifica
Multiplicidad para Asociaciones Multiplicidad es el número de instancias de una clase que se relacionan con una instancia de otra clase o Para cada asociación, hay dos decisiones de multiplicidad por hacer: una para cada final de la asociación Por ejemplo, en la conexión que existe entre las instancias que cumplen el rol de cliente y pedido o Para cada instancia de cliente, muchos (ej. cero o mas) pedidos serán realizados o Para cada instancia de pedido, exactamente una persona es el cliente Los indicadores de multiplicidad se indican a continuación
ING. PERCY
TITO
RIVERA
SESION
– Página 81
UML. SISTEMA DE COMERCIALIZACIÓN
Las decisiones de multiplicidad exponen muchas suposiciones ocultas acerca del problema que esta siendo modelado o ¿Puede ser posible que un cliente no tenga ningún pedido? o ¿Puede un pedido tener dos clientes?
Significado de la Multiplicidad La multiplicidad responde a dos preguntas o ¿La asociación es obligatoria u opcional? o ¿Cuál es el número máximo o mínimo de instancias que pueden ser ligadas a una instancia?
¿Qué le dice el diagrama anterior?
Multiplicidad para Asociaciones La agregación es una forma especial de asociación donde un todo se relaciona con sus partes o También se conoce como “una parte de” o una relación de contención. Una agregación está representada como una asociación con un diamante al lado de su clase denotando el agregado. La multiplicidad se representa de la misma manera que en las otras asociaciones.
ING. PERCY
TITO
RIVERA
SESION
– Página 82
UML. SISTEMA DE COMERCIALIZACIÓN
Algunas formas de comprobar la Agregación ¿Es la frase “una parte de” usada para describir la relación? o Una puerta es “una parte de” un Automóvil. ¿Son algunas operaciones sobre el todo, automáticamente aplicables a todas sus partes? o Mover el Automóvil, Mover la Puerta ¿Son algunos de los atributos de los valores propagadas del todo hacia todas sus partes o solo a algunas en particular? o El Automóvil es azul, la Puerta es Azul ¿Existe una simetría intrínseca en la relación donde una clase es subordinada de otra? o Una puerta ES parte de un Automóvil, pero un Automóvil NO ES parte de una Puerta
Asociación o Agregación ? Si dos objetos están unidos firmemente por una relación todo-parte o La relación es una agregación Si dos objetos son usualmente considerados como independientes, aun cuando comúnmente están unidos o La relación es una asociación
Asociación Reflexiva En una asociación reflexiva, los objetos de una misma clase están relacionados Indica que múltiples objetos en la misma clase colaboran en conjunto del mismo modo
Agregación Reflexiva Las agregaciones también pueden ser reflexivas Esto indica una asociación recursiva
ING. PERCY
TITO
RIVERA
SESION
– Página 83
UML. SISTEMA DE COMERCIALIZACIÓN
Clase Asociación Deseamos llevar un historial de las zonas que administra cada trabajador en el tiempo La relación entre “Trabajador” y “zona” es una relación de muchos a muchos ¿Donde situamos los atributos de las fechas asignadas?
El atributo de fecha de asignación no puede ser situado en la clase “Zona” porque existen (potencialmente) muchas relaciones a muchos objetos de Trabajador Por lo tanto, el atributo pertenece realmente a la relación individual Zona-Trabajador Una clase asociación es usada para almacenar información sobre la relación
Denotando una Clase Asociación Una clase asociación se representa usando el icono de clase La clase asociación se conecta con la asociación usando la línea entrecortada La clase de asociación puede incluir múltiples propiedades de dicha asociación Solamente una clase de asociación está permitida por cada asociación
Encontrando Asociaciones y Agregaciones Los escenarios pueden ser examinados para determinar si una relación debe existir entre dos clases o Dos objetos se pueden comunicar si y solo si se “conocen” entre si Asociaciones y/o agregaciones proveen un vía de comunicación
ING. PERCY
TITO
RIVERA
SESION
– Página 84
UML. SISTEMA DE COMERCIALIZACIÓN
Relaciones entre Paquetes Los paquetes se relacionan entre si usando una relación de dependencia Si una clase en un paquete se “comunica” con otra clase contenida en otro paquete entonces su relación de dependencia es adicionada a nivel de paquetes Los diagramas de escenario y diagramas de clase son evaluados para determinar las relaciones entre paquetes
Interfaces Business Rules
University Artifacts
Relaciones durante Análisis y Diseño Durante el análisis se deben establecer las conexiones (asociaciones y agregaciones) entre las clases o Dichas conexiones existen por la misma naturaleza de las clases, no por una implementación específica o Hacer una estimación inicial de multiplicidad de manera de exponer suposiciones ocultas Los diagramas de clase son actualizados para mostrar sus relaciones agregadas Durante el diseño: o Las estimaciones de multiplicidad son refinadas y actualizadas o Asociaciones y agregaciones son evaluadas y refinadas o Las relaciones de paquetes son evaluadas y refinadas o Los diagramas de clases maduran
ING. PERCY
TITO
RIVERA
SESION
– Página 85
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 07: Relaciones Objetivos
Conocer los tipos de relaciones existentes Relacionar los objetos encontrados en el análisis de casos de uso Aplicar multiplicidad.
Ejercicio 01 a. Conociendo la Barra de Herramientas del Diagrama de Clases
b. Incorporando Nuevas Clases: Incorpore las sgts clases al Paquete de Entidades, si no se encuentran presentes: Liquidacion Detaliquidacion
ING. PERCY
TITO
RIVERA
SESION
– Página 86
UML. SISTEMA DE COMERCIALIZACIÓN Marca Linea Documento Detadoc Zona
c. Creando un Nuevo Diagrama de Clases En la vista lógica ubicarse y proceder a crear un nuevo diagrama de clases, llamado: DiagramaComercialEntidades
d. Incorporando las Clases Respectivas Incluya todas las clases del Paquete de Entidades
e. Creando Asociaciones CREANDO RELACIONES DE ASOCIACIÓN : Cliente - Pedido 3. Ubicarse en el paquete Artefactos (entidades) 4. Doble clic en el diagrama creado 5. Elija el icono de Asociación Bidireccional 6. Clic en la clase deseada: Cliente 7. Arrastre hacia la clase deseada: Pedido
Proceda de la misma manera y cree las siguientes Asociaciones entre FormaPago y Cliente AgenteComercial y Pedido Pedido y Documento AgenteComercial y Liquidación
f.
Nombrando Relaciones NOMBRANDO RELACIONES: Cliente - Pedido 8. Seleccione la línea de relación 9. Doble clic 10. Ingrese el nombre de la relación: Requiere
ING. PERCY
TITO
RIVERA
SESION
– Página 87
UML. SISTEMA DE COMERCIALIZACIÓN
g. Roles ROLES 1. 2.
Doble Clic sobre relació: Cliente-Pedido Al activarse la pantalla indique los roles respectivos, tal como se muestra a continuación
Defina algunos roles para las relaciones establecidas
ING. PERCY
TITO
RIVERA
SESION
– Página 88
UML. SISTEMA DE COMERCIALIZACIÓN
h. Agregación AGREGACION 1. Seleccione de la barra de herramientas el ícono de Agregación 2. Haga clic sobre Pedido y arrastre hacia DetaPedido 3. Proceda igual con Liquidación y DetaLiquidacion
i.
Clase Asociación CLASE ASOCIACION 1. Seleccione de la barra de herramientas el icono Clase Asociación 2. Haga clic en Detadoc y arrastre hacia la relación entre Documento y producto.
j. Multiplicidad MULTIPLIDAD 1. Entre Cliente-Pedido 2. Ubicarse en la relación en la parte más cercana a cliente y haga clic botón derecho. 3. Elija Multiplicity - 1 4. Ubicarse en la relación en la parte más cercana a pedido y haga clic botón derecho. 5. Elija Multiplicity – Zero - n Continúe realizando la multiplicidad de acuerdo al diagrama mostrado a continuación.
ING. PERCY
TITO
RIVERA
SESION
– Página 89
UML. SISTEMA DE COMERCIALIZACIÓN
Ejercicio: Prepare el sgte diagrama
ING. PERCY
TITO
RIVERA
SESION
– Página 90
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
08
OPERACIONES Y ATRIBUTOS
ING. PERCY
TITO
RIVERA
SESION
– Página 91
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 08. OPERACIONES Y ATRIBUTOS Una clase contiene una serie de responsabilidades que definen el comportamiento de los objetos en una clase. Las responsabilidades son definidas por las operaciones. Por ejemplo la clase pedido será capaz de ingresar un Nuevo Pedido o de Anularlo. La estructura de un objeto está definida por los atributos que la conforma. Cada atributos es una definición del dato que la conforma. En esta sesión revisaremos el comportamiento y estructura de una clase.
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes: Definir operaciones para clases Definir atributos para clases Definir encapsulamiento y establecer sus beneficios Representar atributos y operaciones en diagramas de clases
Qué es una Operación ? Una clase contiene un conjunto de responsabilidades que definen el comportamiento de los objetos que pertenecen a la clase. Las responsabilidades de una clase son llevadas a cabo por sus operaciones o Esto no es necesariamente mapeado uno a uno Responsabilidad de la clase “producto”: mantener el precio de proveedor Operaciones para esta responsabilidad Buscar la información en la base de datos Actualizar el precio Una operación es un servicio que puede ser solicitado desde un objeto para solicitar un determinado comportamiento
Las operaciones son dependientes del dominio Listar todas las operaciones relevantes al dominio o Las operaciones de la clase “producto” serán distintas dependiendo de la perspectiva solicitada
Nombrando las operaciones Las operaciones deberían ser nombradas indicando el nombre de su resultado o salida, no los pasos dentro de la operación. Ejemplos: o calcularDeuda()
ING. PERCY
TITO
RIVERA
SESION
– Página 92
UML. SISTEMA DE COMERCIALIZACIÓN
o
Pobremente nombrada Indica que el balance debe ser calculado - esto es una decisión implementación/optimización ObtenerEstadoDeuda() Bien nombrada Indica solamente la salida
Las operaciones debería ser nombradas desde la perspectiva del proveedor, no del cliente En una estación de gas, el gas es recibido desde la bomba: o Una operación para la bomba que tiene esta responsabilidad - como debería ser llamada? o Nombres buenos: entregarGas(),dispensar() o Nombre malo : recibirGas() La bomba da el gas, no lo recibe
Operaciones Primitivas Una operación primitiva es una operación que puede ser implementada solamente usando las cualidades internas de la clase o Todas las operaciones de una clase son típicamente primitivas Ejemplo: o Agregar un ítem al conjunto - operación primitiva o Agregar cuatro ítems al conjunto - no primitiva Puede ser implementada con múltiples llamadas a la operación anterior de agregar un ítem al conjunto
Visualizando Operaciones Las operaciones son mostradas en el tercer compartimiento
Descubriendo Operaciones desde los Diagramas de Interación Los mensajes visualizados en los diagramas de secuencia y/o colaboración son usualmente operaciones de las clases receptoras o Los mensajes son traducidos a operaciones y agregados al diagrama de clases
ING. PERCY
TITO
RIVERA
SESION
– Página 93
UML. SISTEMA DE COMERCIALIZACIÓN
Descubriendo Clases y Relaciones Adicionales
Los argumentos de las operaciones y las clases de retorno denotan una relación entre la clase y los argumentos y/o la clase de retorno Ejemplo o La clase “ObtenerEstadoDeuda” tiene una operación agregarPedido(John: InformaciónEstudiante) o Esto implica que existe una relación entre “Documento” y “Pedido” Las relaciones descubiertas son agregadas al modelo o Estas son mostradas en los diagramas de clases
Qué es un atributo ? Un atributo es una definición de datos mantenido por instancias de una clase Los atributos no tienen comportamiento -- no son objetos Los nombres de los atributos son sustantivos simples o frases simples o Los nombres deben ser únicos dentro de una clase Cada atributo debe tener una definición clara y concisa Buenos atributos para la clase Cliente o RazonSocial – nombre de la empresa o Zona – zona a la que pertenece Un atributo malo para la clase Cliente -- obtenerZonas o Esta es una operación, no un atributo
Valores de un Atributo Un valor de atributo es el valor de un atributo para un objeto en particular Cada objeto tiene un valor para cada atributo definido para su clase Por ejemplo, para un objeto de la clase “AgenteComercial”:
ING. PERCY
TITO
RIVERA
SESION
– Página 94
UML. SISTEMA DE COMERCIALIZACIÓN
Atributos dependientes del Dominio Lista de todos los atributos relevantes al dominio del problema o Los atributos de la clase Cliente serán distintos dependiendo de “a quien le preguntemos”
Visualizando Atributos Se incluyen en el segundo compartimiento
Atributos Derivados Un atributo derivado es un atributo cuyo valor puede ser calculado en base a el valor de otros atributos o Utilizado cuando no existe suficiente tiempo para recalcular el valor cada vez que sea necesario
ING. PERCY
TITO
RIVERA
SESION
– Página 95
UML. SISTEMA DE COMERCIALIZACIÓN
Compensa desempeño en tiempo de ejecución vs. memoria requerida
Tipos de Datos y Valores Iniciales Cada atributo posee: o Tipo de Dato o Valor inicial opcional Durante el análisis NO ES OBLIGATORIO completar la definición del atributo o Esta información puede ser retrasada hasta el diseño
Cómo son descubiertos los Atributos? Muchos atributos se descubren en el flujo de eventos de los casos de uso o Observe los sustantivos que no fueron considerados buenos candidatos para ser clases Otros son descubiertos cuando se crea la definición de la clase La experiencia en el dominio puede también proveer buenos atributos
Sólo modele los atributos que sean relevantes para el dominio del problema Interesa almacenar información de la entidad NOMBRE ENTIDAD
Ejemplos “Cada producto tendrá una descripción y una marca” o Un atributo llamado “descripcion” es agregado a la clase Producto o Un atributo llamado “marca” es agregado a la clase Producto
ING. PERCY
TITO
RIVERA
SESION
– Página 96
UML. SISTEMA DE COMERCIALIZACIÓN
Mostrando Atributos y Operaciones Atributos y/u operaciones pueden ser mostradas dentro de la clase Diagramas de clases adicionales pueden ser creados para mostrar atributos y operaciones Las relaciones no son mostradas, típicamente,en esos diagramas de clases
Encapsulamiento Una forma para ver una clase es que consiste de dos partes: la interfaz y la implementación o La interfaz puede ser vista y usada por otros objetos o La implementación es oculta para los clientes Ocultar los detalles de implementación de un objeto se llama encapsulamiento u ocultamiento de la información El encapsulamiento ofrece dos tipos de protección. Protege: o El estado interno de un objeto, de ser corrompido por sus clientes o El código del cliente, de cambios en la implementación del objeto
Ejemplo
Los valores de los atributos pueden ser cambiados sólo por las operaciones que provee el objeto Las operaciones son provistas para mostrar los valores de los atributos necesarios para los clientes El estado del objeto no puede ser modificado por los clientes directamente
Beneficios del Encapsulamiento El código cliente puede usar la interfaz a una operación El código cliente no puede tomar ventaja de la implementación de la operación La implementación puede cambiar, por ejemplo, para: o Corregir errores (Bugs) o Mejorar el Desempeño o Reflejar cambios en las políticas El código del cliente no debe ser afectado por cambios en la implementación, esto reduce el efecto “arrastre” en el cual una corrección para una operación fuerza la correspondiente corrección en una operación del cliente la cual causa el cambio en un cliente del cliente…. La manutención es fácil y menos cara.
ING. PERCY
TITO
RIVERA
SESION
– Página 97
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 08: Operaciones y Atributos Objetivos
Identificar atributos y operaciones en un Proceso de Negocios Incorporar atributos y operaciones en una clase
Ejercicio 01 c. Incorporando Atributos en el Paquete Entidades(Artefactos) CREANDO ATRIBUTOS: Cliente 1. Ubicarse en el paquete Artefactos (entidades) 2. Haga doble clic sobre el Diagrama de Clases creado 3. Seleccione la clase cliente y haga doble clic 4. Elija la ficha: Attibutes 5. Haga clic botón derecho y digite: Cliente 6. Haga doble clic y en Type elija String 7. Proceda a crear los sgts atributos: a. RazonSocial (String) b. Dirección (String) c. Telefono (String) d. E_mail (String) e. SujetoCredito (boolean) f. TipoCliente (String) g. TopeCredito (long) h. Saldo (long)
Proceda con el resto de clases, de acuerdo al formato dado: FormaPago Descripcion (string) NroDias (Integer) Pedido Fecha (datetime) Observacion (String) DetaPedido Cantidad (integer) PrecUnit (long) AgenteComercial Nombre (String)
ING. PERCY
TITO
RIVERA
SESION
– Página 98
UML. SISTEMA DE COMERCIALIZACIÓN Direccion (String) Telefono (String) Estado (boolean) Producto Descripcion (String) StockAc (integer) StockMax (integer) StockMin (integer) PrecVenta (long) PrecCompra (long) Linea Descripcion (String) Especificaciones (String) Documento Fecha (datetime) Estado (string) Detadoc Cantidad (integer) Igv (long) PrecUnit (long)
b. Incorporando Operaciones en el Paquete Entidades(Artefactos) CREANDO OPERACIONES: Cliente 1. Ubicarse en el paquete Artefactos (entidades) 2. Haga doble clic sobre el Diagrama de Clases creado 3. Seleccione la clase cliente y haga doble clic 4. Elija la ficha: Operations 5. Haga clic botón derecho y digite: CrearCliente 6. Haga doble clic y en Type elija String 7. Proceda a crear las sgts operaciones a. ModificarCliente b. AnularCliente c. ConsultarCliente d. ListarCliente
Proceda con el resto de clases, de acuerdo al formato dado: FormaPago CrearFormaPago ModicarFormaPago ListarFormaPago Pedido Crear
ING. PERCY
TITO
RIVERA
SESION
– Página 99
UML. SISTEMA DE COMERCIALIZACIÓN Modicar Listar Anular ListarAnulados DetaPedido Crear Modicar Listar Anular ListarAnulados AgenteComercial Crear Modicar Listar Anular ListarAnulados Producto Crear Modicar Listar Anular ActualizarPrecios Linea Crear Modicar Listar ListarAnulados Documento Crear Modicar Listar Anular ListarAnulados Detadoc Crear Modicar Listar Anular
ING. PERCY
TITO
RIVERA
SESION
– Página 100
UML. SISTEMA DE COMERCIALIZACIÓN
SESION
09
COMPORTAMIENTO DE UN OBJETO
ING. PERCY
TITO
RIVERA
SESION
– Página 101
UML. SISTEMA DE COMERCIALIZACIÓN
SESION 09: COMPORTAMIENTO DE UN OBJETO Luego de haber visto una serie de conceptos asociados a las clases y los diagramas que nos servirán para modelar las interacciones entre ellas vamos a tratar de encontrar clases analizando los casos de uso. Así mismo una vez identificadas las clases podremos incluirlas dentro de paquetes de datos, de control y de interfaz.
PLANIFICACIÓN DE LA CLASE Veremos los tópicos siguientes: Explicar la necesidad de Diagramas de Transición de Estados (DTE) Entender como encontrar estados Desarrollar una muestra simple de un DTE o Estados y Transiciones o Eventos o Condiciones de guarda o Acciones y Actividades Entender el concepto de estados anidados Explicar las relaciones entre diagramas de transición de de interacción entre objetos y diagramas de clases.
estados,
diagramas
OBJETOS Y CLASES ¿ Qué es un Diagrama de Transición de Estados ? Un diagrama de transición de estados sirve para mostrar la historia de la vida de una determinada clase, los eventos que causan la transición desde un estado a otro, y las acciones que resultan debido a un cambio de estado. El espacio de estados de una determinada clase es la enumeración de todos los posibles estados de un objeto. El estado de un objeto es una de las posibles condiciones en que un objeto puede existir o Este reúne todas las propiedades del objeto Usualmente estático o Además de los valores de cada una de estas propiedades Usualmente dinámico
ING. PERCY
TITO
RIVERA
SESION
– Página 102
UML. SISTEMA DE COMERCIALIZACIÓN
Dibujando Estados Un estado es representado como un rectángulo redondeado, en un diagrama de transición de estado.
Estados y Atributos Los estados pueden ser distinguidos por los valores de ciertos atributos
Pensemos en que un documento se manteniene Abierto hasta que no se haya pagado en su totalidad.
Estados y Conexiones Los estados pueden también ser distinguidos por la existencia de ciertas conexiones Las instancias de la clase “Cliente” pueden tener dos estados: o Sujeto Credito, cuando puede pedir al crédito o En estado Sin Crédito, cuando no puede pedir crédito
Estados Especiales El estado inicial es el estado del objeto cuando es creado o Un estado inicial es obligatorio
ING. PERCY
TITO
RIVERA
SESION
– Página 103
UML. SISTEMA DE COMERCIALIZACIÓN o Sólo un estado inicial es permitido o El estado inicial es representado como un círculo relleno El estado final indica el fin de la vida para el objeto o Un estado final es opcional o Puede existir más de un estado final o El estado final es indicado por un ojo de toro
Eventos Un evento es algo que ocurre en un punto en el tiempo y permite la transición del objeto a un estado o El estado de un objeto determina la respuesta a diferentes eventos Ejemplo: o Añadir un alumno a un curso o Crear un nuevo curso
Transición Una transición es un cambio desde un estado primitivo a un estado sucesor como resultado de ciertos estímulos o El estado sucesor puede resultar ser el mismo estado primitivo Una transición puede ocurrir como respuesta a un evento Las transiciones pueden ser relacionadas con los eventos
Condiciones de Guarda Una condición de guarda es una expresión booleana que permiten una transición sólo si la condición es verdadera
ING. PERCY
TITO
RIVERA
SESION
– Página 104
UML. SISTEMA DE COMERCIALIZACIÓN
Acciones Una acción es una operación que está asociada con una transición o Para ser terminada requiere de una cantidad de tiempo insignificante o Se considera no-interrumpible Los nombres de las acciones son mostrados en la flecha de transición
Enviando Eventos Un evento puede desencadenar el envío de otro evento o Mostrado como: Clase.evento
Estados Especiales Existen 2 tipos especiales o Iniciar: cada diagrama sólo debe tener un estado. o Finalizar: puede tener múltiples estados.
ING. PERCY
TITO
RIVERA
SESION
– Página 105
UML. SISTEMA DE COMERCIALIZACIÓN
Esquema de un DTE de los estados de un documento
Actividades Una actividad es una operación que requiere tiempo para ser completada Las actividades son asociadas con un estado Una actividad o Comienza cuando se ingresa al estado o Puede ser ejecutada hasta ser completada o puede ser interrumpida por una transición que este ocurriendo
ING. PERCY
TITO
RIVERA
SESION
– Página 106
UML. SISTEMA DE COMERCIALIZACIÓN
Esquema Final del Estado de Documento
ING. PERCY
TITO
RIVERA
SESION
– Página 107
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 9: Objetos
Comportamiento
de
los
Objetivos
Conocer como objeto puede comportarse. Preparar un Diagrama de Transición de Estados (DTE)
Ejercicio 01 g. Conociendo la Barra de Herramientas del DTE
h. Creando un DTE CREANDO UN DIAGRAMA TRANSICIÓN DE ESTADOS 1. En el Browser seleccione la clase Documento (sino existe crearla) 2. Clic botón derecho: New – StateChart Diagram, con lo que se incorporará un DTD 3. Ponerle el nombre de: EstadosdelDocumento, presione 4. Haga doble clic sobre el Diagrama incorporado.
i. Creando Estados CREANDO ESTADOS: Cliente - Pedido 11. De la barra de herramientas seleccione el ícono: Estado 12. Haga clic dentro del diagrama y digite: Creación 13. Proceda de la misma manera e incorpore los sgts estados: a. PendientePago b. ING. RICARDO MENDOZA RIVERA SESION – Página 108 Cancelado
c. ado
Anul
UML. SISTEMA DE COMERCIALIZACIÓN
d. Creando Transiciones CREANDO TRANSICIONES DE ESTADO 3. Seleccione el ícono: StateTansition 4. Haga clic en el estado: Creado y arrastre hacia Abierto 5. Digite agregarPago Proceda a crear los sgtes estados: Abierto a Cancelado:
DocumentoCancelado
Abierto a Anulado : DocumentoAnulado Creado a Anulado : DocumentoAnulado Abierto a Abierto : Seleccione ícono AutoTransición: AgregarPago
j. Incorpore los Estados Inicial y Final Trate de llega al esquema sgte:
k. Incorporando Condiciones CREANDO CONDICIONES 1. Seleccione la transición entre: abierto y cancelado y haga doble clic 2. Ubicarse en la ficha: Detail 3. Y escriba la sgte expresión. Observe el sgte gráfico
ING. PERCY
TITO
RIVERA
SESION
– Página 109
UML. SISTEMA DE COMERCIALIZACIÓN
Efecto final del DTE: estados de un documento de venta
ING. PERCY
TITO
RIVERA
SESION
– Página 110
UML. SISTEMA DE COMERCIALIZACIÓN
l. Creando Actividades CREANDO ACTIVIDADES; ENTRY ACTIONS, EVENT 1. Seleccione el Estado Abierto, haga doble clic 2. Elija la ficha Actions 3. Haga clic botó derecho, elija Insert 4. Haga doble clic sobre: Entry 5. En Type: asegurarse de eligir: Action 6. En name digite: Detaliquidacion.AgregarPago 7. Pulse Ok 8. Nuevamente clic botón derecho: Insert 9. Haga doble clic sobre: Entry 10. En When elija: On Event 11. Event digite: ValidarCancelación 12. En Type: asegurarse de eligir: Action 13. Pulse OK Incluya las actividades y trate de llegar al sgte esquema:
ING. PERCY
TITO
RIVERA
SESION
– Página 111
UML. SISTEMA DE COMERCIALIZACIÓN
Lab 10: Preparando el Diagrama de Componentes Objetivos
Identificar componentes de un sistema Preparar un Diagrama de Componentes
Ejercicio 01. Preparando los Paquetes respectivos Ubicarse sobre la vista de Componentes Clic botón derecho, New – Package Ingrese el nombre de : Interfaz Proceda de la misma manera para crear los paquetes: Control Entidades
Ejercicio 02 . Incoporando componentes: Paquete Interfaz o Clic botón derecho. o Clic botón derecho. o Clic botón derecho. o Clic botón derecho.
New New New New
Component: cPrincipal Component: cInterfazPedidos Component: cInterfazVentas Diagram Component: Principal
Paquete Control o Clic botón derecho. New Component: cControlPedidos o Clic botón derecho. New Component: cControlAlmacen o Clic botón derecho. New Diagram Component: Principal Paquete Entidad o Clic botón derecho. New Component: cDatos o Clic botón derecho. New Diagram Component: Principal
Ejercicio 03. Definiendo StereoTipos: Interfaz (EXE) Control (DLL) Entidades (Base de Datos)
ING. PERCY
TITO
RIVERA
SESION
– Página 112
UML. SISTEMA DE COMERCIALIZACIÓN
Ejercicio 04. Prepare el Diagrama Principal de Componentes En la vista de Componentes Clic botón derecho: New Component: Vista de Componentes e incorpore los paquetes creados
Ejercicio 05. Prepare el Diagrama Componentes del Sistema Clic botón derecho: New Component: ComponentesSistema Incorpore todos los componentes del sistema, tal como se muestra a continuación
ING. PERCY
TITO
RIVERA
SESION
– Página 113
UML. SISTEMA DE COMERCIALIZACIÓN
Bibliografía Booch, Jacobson, Rumbaugh, “The Rational Unified Process”, ADDISON-WESLEY, 2000 Booch, Jacobson, Rumbaugh, “El proceso de desarrollo unificado”, ADDISON-WESLEY, 2000 Rational – HistaPerú. Curso de RUP
UML – Enero 2001
Steve McConnel, "Desarrollo y Gestión de Proyectos Informáticos", Mc Graw Hill, 1997
España
Terry Quatrani , “Visual Modeling with Rational Rose 2000 and UML” , ADDISON-WESLEY, 2001 Wendy Boogs, Michael Boggs, “Mastering UML with Rational Rose 2002 “, SYBEX - 2002
ING. PERCY
TITO
RIVERA
SESION
– Página 114