UML Guía Visual
Transcripción
UML Guía Visual
UML Guía Visual Cómo crear formas de vida organizativa © Vi l a l t a C o n s u l t o r e s 2 0 0 1 [email protected] R e v. 0 . 1 7 Josep Vilalta Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta UML Guía Visual Cómo crear formas de vida organizativa Presentación Esta guía describe como definir, organizar y visualizar lo que denominamos formas de vida organizativa (VIO) con la notación Unified Modelling Language (UML). Una VIO representa un ciclo de actividad realizado por uno o varios agentes con un propósito vi co .o rg concreto, en base a una práctica consensuada para utilizar los recursos disponibles y para tomar las decisiones que caracterizan el comportamiento de una organización. A diferencia de los sistemas biológicos, las VIO nacen y se desarrollan a partir de una voluntad compartida, de una idea y de un liderazgo. Pero de la misma manera que la selección natural actúa en los sistemas biológicos, la continuidad de una VIO está condicionada a la implementación eficiente de sus procesos esenciales. Conocer estos procesos, saber como aplicar los recursos y como tomar las decisiones para satisacer la cadena de valor de todos los agentes son los factores que toda organización ha de tener en cuenta para evolucionar y asegurar su viabilidad. La notación UML (no hay que confundir con las metodologías que utilizan dicha notación), se ha convertido desde finales de los 90 en un estándar para modelar con tecnología orientada a objetos todos aquellos elementos que configuran la arquitectura de un sistema de información y, por extensión, de los procesos de negocio de una organización. De la misma manera que los planos de un arquitecto disponen el esquema director a partir del cual levantamos un edificio, los diagramas UML suministran un modelo de referencia para formalizar los procesos, reglas de negocio, objetos y componentes de una organización. La interacción de todos estos elementos es una representación de nuestra realidad. Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 1 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta Nuestros límites para entender esta realidad están en nuestro lenguaje. El mundo es la suma total de lo que podemos definir, organizar y visualizar. Cabe preguntarse ¿de qué manera un modelo en UML representa nuestra experiencia?. Enseñar a utilizar un lenguaje formal siempre es problemático. Es necesario mostrar como este lenguaje puede ser aplicado a la realidad tal como la conocemos y tal como la compartimos con los demás. Con esta guía visual mostramos de manera precisa las técnicas básicas para usar UML en diferentes contextos. La clave está en discriminar cuales son aquellos procedimientos esenciales que nos permiten evitar costosas confusiones conceptuales. No es mediante el descubrimiento de nuevos objetos y de sus múltiples conexiones que avanzamos en las respuestas a nuestros interrogantes cuando modelamos un dominio, vi co .o rg sino mediante la disolución de las contradicciones que existen entre los términos (conceptos) ya conocidos y, en último caso, mediante la reducción de su número despejando aquellos conceptos que no añaden valor a la comprensión de dicho dominio. Reconsiderar lo obvio, desenmascarar presunciones, desambigüar conceptos conocidos, todo en busca de la simplicidad y la usabilidad. La tecnología orientada a objetos persigue el antiguo principio del divide y vencerás. Su objetivo es descomponer la complejidad en partes más manejables y comprensibles. No parece que esto sea algo novedoso con respecto a la tradicional descomposición funcional de los métodos estructurados. Sin embargo, la gran diferencia reside en aplicar la dualidad estructura-función en pequeñas unidades capaces de comunicarse y reaccionar en base a la aparición de una serie de eventos. El esquema dominante de la separación de estructuras de datos y funciones (bases de datos y programas) está amenazado pero aún se resiste a desaparecer. Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 2 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta Mucha gente cree que la principal utilidad de la orientación a objetos es la reutilización del código para conseguir un desarrollo más rápido de las aplicaciones (Rapid Application Development). No comparto esta opinion. Si hay algo que caracteriza un entorno de desarrollo actual es la constante del cambio. Todo proyecto que sobrepase los tres meses está amenazado por la aparición de nuevas plataformas más exigentes, la extinción de herramientas sin previo aviso y, de manera sistemática, por la rotación del personal crítico encargado del proyecto. También está sometido, como no, a los cambios de requerimientos del cliente que a su vez están plenamente justificados por la readaptación de sus procesos de negocio a un mercado inestable. vi co .o rg Ante este cuadro de incertidumbre, el mayor desafio de una metodología de desarrollo es su adaptación para el cambio. Esto significa crear modelos que faciliten la comunicación entre todos los agentes involucrados en el sistema en construcción; que hagan visible la trazabilidad entre la concepción de los componentes, su especificación, implementación e instalación; significa el diseño de arquitecturas que faciliten la gestión de las dependencias entre estos componentes, que sean en fin, facilmente reemplazables por otros más optimizados o bien por componentes que aporten una mayor funcionalidad y/o facilidad de uso. La dinámica de cambio no se desarrolla en la ingeniería del software con la misma velocidad vertiginosa con que nos tiene acostumbrados la tecnología del hardware. La clave reside en que a diferencia de la electrónica, en los dominios del desarrollo de software no existe un vocabulario unificado. Desde la fase de concepción de un sistema a la instalación de sus componentes hay que mapear entre sí una gran diversidad de lenguajes orientados al análisis, diseño, código ejecutable, esquemas de bases de datos, componentes de páginas web, entre otros. Esta distancia entre la concepción y la usabilidad de un producto o de un proceso de negocio, exige cada vez más la capacidad de cooperación y comunicación de un equipo interdisciplinar muy especializado. Esta guía visual de UML está pensada para facilitar este proceso cooperativo y para ayudar a establecer una buena práctica fundamentada en un lenguaje común. Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 3 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta ¿A quién va dirigida esta guía visual? Esta guía ha sido escrita y diseñada para los profesionales involucrados en todos los ciclos de actividad del desarrollo de sistemas de información (concepción, análisis y diseño, implementación, instalación de aplicaciones, gestión y certificación de proyectos); también para los que tengan responsabilidades en la especificación de procesos de negocio con el propósito de evaluar posibles reingenierías de procesos y/o diseño de bases de conocimiento; y finalmente, para aquellos equipos que estén inmersos en la preparación e implementación de certificaciones de calidad. vi co .o rg La claridad conceptual y los recursos didácticos utilizados en la exposición de los distintos procedimientos serán de utilidad para los estudiantes que sigan programas de autoaprendizaje y usen esta guía como complemento para sus lecturas de libros sobre UML. También los centros académicos y profesores dispondrán con esta guía de material interesante para completar sus diseños curriculares y proporcionar ejemplos prácticos a sus alumnos. ¿Cómo sacar un mayor provecho a su lectura? La guía está organizada en unidades didácticas que describen la notación de los diagramas y las fuentes de información necesarias para definir los elementos de cada modelo. Puede usarse como consulta puntual de la notación de un diagrama, o bien, para revisar como establecer el hilo conductor entre los Casos de Uso (mapa funcional), las Clases de dominio (mapa conceptual), las Clases de Especifiación (types e interfaces) y las Clases de Implementación (código). Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 4 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta Un plan de estudio para realizar una progresiva asimilación de los conceptos podría empezar con los Casos de Uso (CU) y continuar con el análisis de los flujos de trabajo de un grupo de CU mediante los diagramas de Actividad; a continuación, separar los escenarios que agrupan una serie de actividades y hacer aflorar, a través de los diagramas de Interacción, los objetos que intercambian una serie de mensajes. A partir de este punto, disponemos del bagaje suficiente como para introducirnos en la abstracción de los objetos y comprender la importancia de separar las tres perspectivas básicas en nuestra representación de las clases: concepción, especificación e implementación. El siguiente paso es identificar alguna clase con un comportamiento complejo que la haga candidata a revisar todos sus posibles estados y averiguar que vi co .o rg eventos son capaces de provocar un cambio de estado. El diagrama de EstadosTransición será el adecuado para representar esta dinámica de estados. Finalmente, abordaremos la configuración de componentes y su despliegue en una arquitectura. Otra lectura de la guía puede estar mas centrada en el seguimiento de la metodología de desarrollo y la gestión de un proyecto. En este caso, las primeras secciones describen los niveles de concepción y formalización de un proyecto con la metodología TRAD (Taller de Requerimientos, Análisis y Diseño basado en el Proceso Unificado de Rational), y se van introduciendo progresivamente los diagramas y actividades que configuran la unidad mínima de documentación sostenible para un proyecto concreto. El estudiante más avanzado podrá sacar también provecho con la consulta puntual de los diagramas en que esté más interesado y la revisión de sus extensiones. Las materias expuestas en las distintas secciones están actualizadas constantemente y pueden descargarse nuevas ediciones desde: http://www.vico.org/UMLguiavisual/ Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 5 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta ¿De dónde provienen las ideas expuestas? El contenido de esta guía ha sido elaborado a partir del trabajo de una serie de profesionales que el autor ha tenido la oportunidad de estudiar y aplicar en distintos proyectos. Desde principios de los 90, los artículos publicados en el Journal of Object Oriented Programming (JOOP) por James Odell, James Rumbaugh, Grady Booch, Desmond d’Souza, Bertrand Meyer, Steve Cook, John Daniels, Sally Shlaer y Stephen J. Mellor entre otros, han sido una constante fuente de conocimiento. Publicaciones pioneras como el Object Oriented Technology, A Manager’s Guide de David A. Taylor, en su primera edición de 1990 y en la segunda ampliada de 1998, han tenido una gran influencia en como abordar la presentación didáctica. También los vi co .o rg libros de Peter Coad et al, Object Oriented Analysis, Design and Programming, Object Models y Java Modeling Color with UML, han sido de una ayuda extraordinaria. La obra enciclopédica The Unified Modeling Language: Reference Manual de Rumbaugh & Jacobson & Booch, es un punto de referencia constante. Sin duda, uno de los autores más influyentes ha sido Martin Fowler. Su primer libro Analysis Patterns continua siendo una referencia clave. Posteriormente, la primera edición de UML Distilled en 1997 y su última edición ampliada en 2000, se ha convertido en el libro de cabecera de UML. Otro clásico por la excelencia de su trabajo es Applying UML and Patterns de Craig Larman que en su segunda edición aparecida en verano de 2001 se ha superado a si mismo. También recientes y con muy buen material que ha sido incorporado a la guía, tenemos los libros de Wendy & Michael Boggs, Mastering UML with Rational Rose, de Alistair Cockburn, Writing Effective Use Cases; de Scott W. Ambler, The Object Primer segunda edición; y de John Chessman & John Daniels, UML Components, una de las novedades más interesantes de 2001. En la bibliografía sobre UML publicada en http://www.vico.org hay una relación completa de los libros consultados que se actualiza periódicamente con las últimas novedades. Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 6 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta Competencia y actuación En los últimos veinte años de mi carrera profesional en el desarrollo de sistemas de información he participado en una gran diversidad de proyectos con distintos grados de responsabilidad e involucración, pero siempre con un compromiso firme en la calidad y usabilidad del producto final. Entorno industrial o CIM para la extrusión de polietileno y fabricación de mallas agrícolas y de embalaje. o CIM para el fraccionamiento de hemoderivados vi co .o rg o Plan Funcional para la implementación SAP-Logística Entorno sanitario o Gestión de Bancos de Sangre y Hemoterapia o Planificación y gestión de campañas de captación de donantes o Gestión mutual de prestaciones asistenciales o Tarjeta Sanitaria para certificar transacciones asistenciales o Automatización de autoanalizadores de laboratorios de análisis o Integración de peticiones analíticas multicentricas y publicación de resultados o Gestión de laboratorios farmacéuticos o Historia Clínica Orientada por Problemas Automatizada o Libreta de Salud para programación de citas y exploraciones o Gestión integrada de servicios de Atención Primaria o Plan Funcional para la implementación SAP-Gestión Clínica y Asistencial Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 7 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta Entorno de ingeniería del software o Framework de clases de análisis para definir mapas conceptuales o Framework de servicios comunes para la publicación dinámica de páginas HTML o Framework de certificación de entregables Entorno administrativo y de gestión o Plan Funcional para la implementación SAP-Contabilidad o Cuadro de control de indicadores de actividad y calidad vi co .o rg o Sistema de información Ejecutivo Entorno comercial o Merchandising de productos farmacéuticos o Subastas y liquidación de lotes o Gestión de redes de puntos de venta con videoconferencia Entorno de servicios o Auditorías Informáticas o Plan de Sistemas de Información o Integración de sistemas de información de contabilidad administrativa y general Entorno académico o Programa de acceso a la universidad para mayores de 25 años o Gestión de títulos universitarios o Estudios de tercer cliclo: diseño curricular, publicación y gestión académica Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 8 de 9 Proyecto: Documento: Historial: Situación: Proceso: Autor: Presentación del borrador: UML Guía Visual UML Guía Visual 03/09/01 9:03 Borrador en curso de revisión Evaluación de contenidos ref.- contacto: [email protected] Josep Vilalta Entorno docente o Tutorías de proyectos de fin de carrera con UML o Cursos de Análisis, Diseño y Patrones o Talleres de introducción a UML o Talleres avanzados de UML con Rose y Visio o Talleres monográficos (Casos de Uso, Métrica, Metodología) Entorno de I+D o Bases de conocimiento con vocabularios controlados o Procesador de lenguaje natural dentro del dominio médico vi co .o rg o Reconocimiento automático de conceptos clínicos a partir de textos no estructurados Agradecimientos En primer lugar a los clientes que con su confianza han permitido que pueda desarrollar mi carrera profesional. También a los autores antes mencionados por su valioso trabajo en el avance de la disciplina de la ingeniería del software y en la consolidación de UML como lingua franca. Josep Vilalta Badalona, Barcelona (España) [email protected] http://www.vico.org Dir.: C:\Mis documentos\TRAD CD Borrador\UML Guía Visual Presentación.doc Equipo: www.vico.org Fecha actualización: 04/09/01 11:16 Revisión: 18 Página: 9 de 9 1 Niveles de concepción y formalización de un proyecto Nivel 1 Nivel 3 Nivel 5 ø Use Case Una ventana de introducción de pedidos Use Case [email protected] M G << Extends >> << Extends >> Una línea de pedido Un pedido Una ventana de introducción de pedidos Un item de stock Una línea de pedido Un pedido [tieneStock] nuevo Cliente Pedido Un item de stock tieneStock:= comprobar ( ) * hacer / comprobación item Cliente * nuevo [tieneStock] nuevo 1 hacer / comprobación item << Communicates >> tieneStock:( ) Cliente Personal Cliente Corporativo nuevo << Communicates >> Cliente Personal Cliente Corporativo [tieneStock] : Pedido hacer / comprobación 1 hacer / comprobación item 1 [tieneStock] Actor hacer / comprobación 1 Pedido hacer / comprobación item * 0..1 xxx línea : Línea de pedido: Pedido xxx stock : item de stock << Uses >> * Comercial * Línea de Pedido xxx línea : Línea de pedido : Item de Expedición : Item de Pedido de reposición xxx stock : item de stock : Item de Expedición Diagramas de Casos de Uso Interacción de objetos Clases Análisis Diseño Implementación Dinámica Eventos - Estados Entrar Reposición Entrar Entrar Pedido ionar primer item Asignar Items * [para cada pedido seleccionado] [Todos los items comprobados && Sirviendo todos los items disponibles] hacer / rimer item hacer / comprobación item rimer item rimer item Esperando rimer item Activar Pedido Activar Pedido Regularizar StockRegularizar Stock inicio de entregasSirviendo Verificando hacer / inicio de entregas s] Pago [Todos los items comprobados && todos los items disponibles] hacer / comprobación item rimer item le Validar ionar primer item rimer item Verificando n ib *Seleccionar [para cada pedido seleccionado] Pedidos Reposición Entregado Esperando s] Riesgo Entrar po Validar Seleccionar Pedidos Pendientes d is Reposición Asignar Items Cronograma Plan Director Iteraciones Producto le CU CU Flujos de Trabajo Comercial n ib Especificación Casos de Uso 1 * po P Escenarios Producto hacer / comprobación Entregado d is PDI P Procesos Principales Funcionalidad 0..1 * 1 * Línea de Pedido I te m od R o s e c ib lo id s it e o m s “Code like hell” Glosario de Conceptos hacer / comprobación [T Matrícula del Proyecto : Item de Pedido de reposición I te m od R o s e c ib lo id s it e o m s << Uses >> Actor Entregado [T © Vilalta Consultores 2001 - TRAD UMD_esp - Rev. 5.2 - Nivel 4 C ó d i g o Nivel Nivel 2 Entregado Tiempo Iteraciones Procesos PDP Fases 2 E s f u e r z o d e d e s a r ro l l o Producto Actividades Entregables Concepción Formalización Construcción Transición © Vilalta Consultores 2000 - TRAD PDP iteraciones_esp - Rev. 4.2 - [email protected] Misión Modelo Prototipo Componentes Certificación Iteraciones preliminares Iter #1 Iter #2 Iter #n Iter #n+1 Iteraciones Iter #n+2 Iter #n Iter #n+1 3 PDP Concepción Formalización Construcción Transición Misión P l a n D i re c t o r d e P ro y e c t o Modelo Prototipo Componentes Certificación Iteraciones preliminares Iter #1 Iter #2 Concepción © Vilalta Consultores 2001 - TRAD PDP misión_esp2 - Rev. 5.2 - [email protected] M P Pedido * hacer / comprobación item 1 Pedido Matrícula del proyecto Procesos principales <<Incluye>> Cliente * hacer / comprobación 1 Cliente Corporativo Misión Cliente Personal hacer / comprobación item * 0..1 * Comercial * Línea de Pedido 0..1 * 1 * Línea de Pedido hacer / comprobación Producto * 1 Use Case << Extends >> <<Extiende >> Use Case Cliente Personal Cliente Corporativo hacer / comprobación item P Use Case Use Case Cliente hacer / comprobación item 1 hacer / comprobación P hacer / comprobación 1 Iter #n Comercial Actor 1 << Communicates >> <<Generalización>> Actor 2 Use Case << Uses >> <<Incluye>> Use Case Producto Patrones de Análisis PDI P G Glosario de Conceptos Iter #n+1 Iteraciones Cronograma Plan Director Iteraciones Anteproyecto Patrones de Funcionalidad Iter #n+2 Iter #n Iter #n+1 4 PDP Concepción Formalización Construcción Transición Misión P l a n D i re c t o r d e P ro y e c t o Modelo Prototipo Componentes Certificación Iteraciones preliminares Iter #1 Iter #2 Iter #n Iter #n+1 Iteraciones Fo r m a l i z a c i ó n Una ventana de introducción de pedidos Use Case Use Case Una línea de pedido Un pedido << Extends >> Un item de stock Cliente Pedido Una ventana de introducción de pedidos Una línea de pedido Un pedido [tieneStock] nuevo Un item de stock 1 << Extends >> * hacer / comprobación item tieneStock:= comprobar ( ) hacer / comprobación 1 Cliente Pedido * [tieneStock] nuevo [tieneStock] nuevo 1 hacer / comprobación item tieneStock:( ) << Communicates >> hacer / comprobación item * 0..1 xxx stock : item de stock * << Uses >> Cliente Personal Cliente Corporativo nuevo xxx línea : Línea de pedido: Pedido Cliente Personal Cliente Corporativo [tieneStock] : Pedido Actor << Communicates >> hacer / comprobación 1 hacer / comprobación item Comercial * Línea de Pedido xxx línea : Línea de pedido : Item de Expedición Actor P Use Case Use Case <<Incluye>> Use Case : Item de Pedido de reposición xxx stock : item de stock : Item de Expedición hacer / comprobación 0..1 * 1 * Línea de Pedido hacer / comprobación : Item de Pedido de reposición Producto * Comercial 1 Producto Funcionalidad Escenarios Clases Diagramas de Casos de Uso Interacción de objetos Análisis y Diseño P Pedido <<Extiende >> 1 Use Case Modelo <<Incluye>> Use Case Patrones de Funcionalidad * hacer / comprobación Pedido ionar primer item [Todos los items comprobados && Sirviendo todos los items disponibles] hacer / hacer / comprobación rimer item rimer item rimer item Esperando rimer item Activar Pedido Activar Pedido Especificación Casos de Uso Regularizar StockRegularizar inicio de entregasSirviendo s] hacer / inicio de entregas n ib le hacer / comprobación item po Asignar Items item rimer item Verificando Entregado Esperando s] * [para cada pedido seleccionado] le Pago Asignar Items d is Validar [Todos los items comprobados && todos los items disponibles] ionar primer item rimer item Verificando Pedidos n ib Reposición po *Seleccionar [para cada pedido seleccionado] Entregado d is CU Comercial * 0..1 * 1 * Línea de Pedido hacer / comprobación Entrar Riesgo Cliente Personal Línea de Pedido Entrar Validar Cliente Corporativo hacer / comprobación item Producto * 1 Comercial Producto Patrones de Análisis Seleccionar Pedidos Pendientes Entrar Cliente Personal Cliente Corporativo 0..1 Reposición Entrar Reposición hacer / comprobación 1 hacer / comprobación item * I te m od R o s e c ib lo id s it e o m s Actor 2 << Uses >> [T <<Generalización>> Cliente * hacer / comprobación item Use Case Cliente hacer / comprobación 1 Pedido 1 << Communicates >> I te m od R o s e c ib lo id s it e o m s Actor 1 * hacer / comprobación item << Extends >> Entregado [T © Vilalta Consultores 2001 - TRAD PDP modelo_esp2 - Rev. 5.3 - [email protected] << Uses >> Entregado Stock Flujos de Trabajo Dinámica Eventos Estados Iter #n+2 Iter #n Iter #n+1 5 PDP Concepción Formalización Construcción Transición Misión P l a n D i re c t o r d e P ro y e c t o Modelo Prototipo Componentes Certificación Iteraciones preliminares Iter #1 Iter #2 Iter #n Iter #n+1 Iter #n+2 Iteraciones Construcción Cliente Pedido * hacer / comprobación item 1 *Acta *Acta Versión Fecha Destino Año Académico Versión Fecha Destino ** Tribunal Alumnos Cliente * 1 ** Tribunal [email protected] Alumno P. Global P. Esp. Resultado P. Global P. Esp. Resultado Ver Cliente Corporativo Cliente Personal hacer / comprobación item 0..1 * Comercial * Línea de Pedido ✔ hacer / comprobación ✔ Cliente Pedido ✔ * hacer / comprobación 1 ✔ 0..1 * 1 * Línea de Pedido hacer / comprobación hacer / comprobación item Producto * 1 Comercial Producto 1 Cliente Corporativo Cliente Personal hacer / comprobación item * 0..1 * Comercial Línea de Pedido hacer / comprobación © Vilalta Consultores 2001 - TRAD PDP construcción_esp2 - Rev. 5.3 - Alumno Ver Cliente Personal Cliente Corporativo hacer / comprobación item * Selección Selección hacer / comprobación 1 hacer / comprobación item Año Académico Alumnos hacer / comprobación 1 Pedido * 1 Interface Gráfico de Usuario Producto Clases Diseño Implementación Cliente Pedido * hacer / comprobación item 1 Cliente * hacer / comprobación 1 hacer / comprobación item 1 Componentes hacer / comprobación 1 Pedido P Cliente Personal Cliente Corporativo hacer / comprobación item * Cliente Corporativo Cliente Personal hacer / comprobación item 0..1 * Comercial Línea de Pedido hacer / comprobación * 0..1 * 1 * Línea de Pedido hacer / comprobación Producto * 1 Comercial Producto Patrones de Diseño Framework de Aplicaciones Base de Datos Arquitectura Esquema de Persistencia Componentes Iter #n Iter #n+1 6 PDP Concepción Formalización Construcción Transición Misión Modelo P l a n D i re c t o r d e P ro y e c t o Prototipo Componentes Certificación Iteraciones preliminares Iter #1 Iter #2 Iter #n+2 Iter #n+1 Iter #n Iter #n Iter #n+1 Iteraciones Concepción Fo r m a l i z a c i ó n Use Case M Una ventana de introducción de pedidos Use Case P Una línea de pedido Un pedido Un item de stock Una línea de pedido Un pedido [tieneStock] nuevo Un item de stock tieneStock:= comprobar ( ) << Extends >> * hacer / comprobación item 1 Pedido hacer / comprobación 1 * hacer / comprobación 1 hacer / comprobación item 1 [tieneStock] hacer / comprobación item << Communicates >> << Uses >> Selección xxx línea : Línea de pedido : Item de Expedición Procesos principales : Item de Expedición hacer / comprobación Comercial P. Esp. Resultado Ver * : Item de Pedido de reposición Cliente Corporativo Producto 0..1 Comercial hacer / comprobación ✔ 1 * Línea de Pedido Comercial 0..1 * 1 * Línea de Pedido hacer / comprobación * Cliente Personal hacer / comprobación item ✔ hacer / comprobación Producto Funcionalidad Escenarios Clases Diagramas de Casos de Uso Interacción de objetos Análisis y Diseño Misión P. Global Cliente Personal Cliente Corporativo hacer / comprobación item 0..1 * 1 * Línea de Pedido Interface Gráfico de Usuario Modelo Producto * 1 Comercial Producto Clases Diseño Implementación Componentes Entrar Reposición ionar primer item rimer item rimer item rimer item Esperando rimer item Glosario de Conceptos Cronograma Plan Director Iteraciones Anteproyecto Activar Pedido Activar Pedido Especificación Casos de Uso Regularizar StockRegularizar inicio de entregasSirviendo s] hacer / inicio de entregas n ib le hacer / comprobación item po Asignar Items [Todos los items comprobados && Sirviendo todos los items disponibles] hacer / Verificando Entregado d is * [para cada pedido seleccionado] Esperando s] Asignar Items le Pago hacer / comprobación item rimer item n ib Validar [Todos los items comprobados && todos los items disponibles] ionar primer item rimer item Verificando po Reposición Entregado d is *Seleccionar [para cada pedido seleccionado] Pedidos I te m od R o s e c ib lo id s it e o m s CU Pedido Riesgo Entrar [T G Entrar Validar Seleccionar Pedidos Pendientes I te m od R o s e c ib lo id s it e o m s PDI P Entrar Reposición Entregado [T [email protected] © Vilalta Consultores 2001 - TRAD PDP_esp2 - Rev. 6.2 - Matrícula del proyecto : Item de Pedido de reposición xxx stock : item de stock 1 ** Tribunal * Línea de Pedido << Uses >> Alumno hacer / comprobación 1 hacer / comprobación item Año Académico Alumnos 0..1 xxx stock : item de stock * Actor Fecha Cliente * * hacer / comprobación item * xxx línea : Línea de pedido: Pedido Versión Destino hacer / comprobación 1 Pedido Cliente Personal Cliente Corporativo nuevo tieneStock:( ) *Acta Cliente Personal Cliente Corporativo 1 [tieneStock] * hacer / comprobación item Cliente Pedido nuevo [tieneStock] nuevo : Pedido Actor << Communicates >> Cliente Cliente Pedido Una ventana de introducción de pedidos << Extends >> Construcción Entregado Stock Flujos de Trabajo Dinámica Eventos Estados Base de Datos Arquitectura Esquema de Persistencia Componentes 1 ¿ Cómo identificar Actores ? Interacción de un Actor con el Sistema Us ar Caje ro Automátic o S u b sistema d e cu en tas clien te << Incluye >> C lien te Relación que indica la especialización a partir de una función genérica <<Generaliza>> - Role de us ua rio - - Ro le d e su b sistema - R e a l i z a r una t ra nsa c c i ón Interacción del Sistema con un Actor <<Generaliza>> <<Generaliza>> [email protected] © Vilalta Consultores 2001 - TRAD Actores_esp - Rev. 5.1 - Activar Ta r j e t a Retirar Efectivo Consultar Movimientos S is te ma e n proc e s o de mode la do Actores S u b sitema d e certificació n d e med io s d e p ag o - Ro le d e su b sistema - • Representan a un agente que interactúa con el sistema • No son parte del sistema que se desarrolla • Entran información al sistema • Reciben información del sistema • Entran y reciben información Use Case A la búsqueda de Actores.1. ¿ Quien está interesado en un requerimiento concreto ? 2. ¿ En qué dominios de la organización se usará el sistema ? 3. ¿ Quien será beneficiario de la nueva funcionalidad ? 4. ¿ Quien proveerá, usará y/o retirará, información ? 5. ¿ Quien dará soporte y administrará el sistema ? 6. ¿ Usará el sistema un recurso externo ? 7. ¿ Un usuario actuará con diferentes roles ? 8. ¿ Diferentes usuarios actuarán con un mismo rol ? 9. ¿ Interaccionará el nuevo sistema con un sistema antiguo ? << Extends >> Actor << Communicates >> << Uses >> Actor Funcionalidad Diagramas de Casos de Uso 2 ¿ Cómo identificar Casos de Uso ? Hacer un Ini ci o de Dí a << Extiende >> Abr ir Arque o Relación que describe una variación posible del comportamiento normal de un Use Case Interacción de un Actor con el Sistema << Incluye >> Piezas de funcionalidad del sistema que suministran valor a un Actor y son reutilizables en diferentes procesos C ajero - Rol de us ua rio - C e r r ar Arque o << Extiende >> Ha c e r un Fi n de Dí a [email protected] © Vilalta Consultores 2001 - TRAD UCs_esp - Rev. 5.1 - - Ro l d e u su ario - Relación que permite descomponer un Use Case con un determinado nivel de granularidad << Incluye >> << Incluye >> Relación que indica el uso de una funcionalidad compartida por otros Casos de Uso S u p erv iso r Importar nueva configuración Im pri m i r doc um e nt o E xport ar m ovi m i ent os Co n tab ilid ad S is te ma e n proc e s o de mode la do - S istema ex tern o Interacción del Sistema con un Actor A la búsqueda de Casos de Uso.- Use Case << Extends >> Actor << Communicates >> 1. ¿ Cuales son las tareas y responsabilidades de cada actor ? 2. ¿ Algún actor creará, almacenará, cambiará, borrará o leerá información del sistema ? 3. ¿ Qué Casos de Uso crearán, almacenarán, cambiarán, borrarán o leerán esta información ? 4. ¿ Es necesario que un Actor informe al sistema sobre cambios externos ? 5. ¿ Es necesario que un Actor sea informado sobre ciertas incidencias del sistema ? 6. ¿ Qué Casos de Uso darán soporte y mantendrán el sistema ? 7. ¿ Pueden ser realizados por los Casos de Uso todos los requerimientos funcionales documentados ? << Uses >> Actor Funcionalidad Diagramas de Casos de Uso 3 Use Case << Extends >> Especificación de un Caso de Uso Actor << Communicates >> << Uses >> Actor Funcionalidad Diagramas de Casos de Uso Caso de Uso principal << Extiende >> © Vilalta Consultores 2001 - TRAD LIMIT UCs_esp - Rev. 5.1 - [email protected] C e r r ar A rque o Ha c e r un Fin de Día << Incluye >> Casos de Uso secundarios Imprimir doc ume nto Imprimir tira de a rque o <<Generaliza>> Caso de Uso genérico Caso de Uso especializado L I M I T Límites: Cuando empieza y cómo termina el Caso de Uso. Interacciones: Comportamiento de Actores y Sistema. Acción-Reacción dentro del Caso de Uso. Masa: Conjunto de Objetos e Interfaces que requiere el Caso de Uso. Índice de escenarios: Flujo principal de eventos y secuencia de variaciones posibles dentro de un Caso de Uso. Tribulaciones: Contingencias probables que pueden afectar al flujo de los eventos y son excepciones del Caso de Uso. Propósito Precondiciones - Regla de Negocio - Cerrar un periodo de movimientos de caja para obtener una situación real de dinero en efectivo y en documentos. • • • • Arqueo abierto Actor habilitado TPV abierto TPV habilitado Activación • A discreción de un Actor habilitado Flujo Principal Variaciones 1. Sistema requiere confirmación de cierre de arqueo. a. Si Actor decide aparcar el cierre de arqueo, sistema activa UC Aparca_arqueo y termina el UC. 2. Sistema comprueba la configuración de TPV para identificar tipo de cierre. a. Cierre de arqueo de tipo abierto: • Actor decide el momento de imprimir el documento “Tira de Arqueo”. b. Cierre de arqueo de tipo ciego: • Sistema no muestra los totales teóricos para cada forma de cobro. 3. Sistema calcula los totales teóricos para cada forma de cobro. 4. Actor introduce totales reales para cada forma de cobro. 5. Sistema registra el cierre: importes reales para cada forma de cobro y descuadres. 6. Sistema imprime el documento “Tira de Arqueo”. Excepciones a. Si el servidor está off-line, sistema informa al usuario, termina el UC manteniendo el arqueo abierto. a. Si impresora está off-line, sistema informa al usuario y le pide confirmación para continuar. 4 Ventajas del modelo Use Case 1. Lenguaje de comunicación entre usuarios y desarrolladores. 2. Comprensión detallada de la funcionalidad del sistema. A brir A rque o << Extiende >> H ac e r un Ini c i o de Dí a << Incluye >> Hac e r un Fin de Día © Vilalta Consultores 2001 - TRAD modelo UC_esp - Rev. 5.1 - [email protected] << Extiende >> Importar nueva configuración << Incluye >> Export a r movimient os C e rra r A rque o 4. Gestión de riesgo más eficiente para gobernar la complejidad. 5. Estimación más exacta para determinar tiempo, recursos y prioridades en la dosificación de esfuerzo de desarrollo. 6. Fiel trazabilidad para verificar la traducción de requerimientos en código ejecutable. 7. Mayor control para mantener las sucesivas revisiones de los programas. << Incluye >> Imprimir doc ume nto 3. Acotación precisa de las habilitaciones de los usuarios. <<Generaliza>> Imprim i r tira de arque o 8. Certificación contractual ClienteDesarrollador. 9. Documentación orientada al usuario: Helps - Manual de Procedimientos - Reglas de Negocio. Use Case << Extends >> Actor << Communicates >> << Uses >> Actor Funcionalidad Diagramas de Casos de Uso Piezas de funcionalidad reutilizables en diferentes procesos de negocio 10. Documentación orientada al administrador del sistema: Soporte de Mantenimiento. 5 Requerimientos y Casos de Uso Los Casos de Uso son requerimientos funcionales que describen de una manera detallada el comportamiento del sistema con los distintos Actores que interactúan con él. Funcionalidad, Análisis y Diseño Implementación de código y Refactoring Reglas de Negocio y protocolos de intercambio de información Mapa conceptual: Clases de análisis Caso de Uso Plan Director de Iteraciones: Cronograma y prioridades Dinámica de Clases complejas Mapa funcional: Flujos de trabajo principales y variaciones ó de Pr oye cto A rq ur Use Case a Métrica: Escenarios de Escandallo de interacción recursos de objetos: y actividades Clases de diseño sti n s delo Cer tif ic ac ión Funcionales, no funcionales e interfaces de usuario Ge © Vilalta Consultores 2001 - TRAD Req y CUs_esp - Rev. 1.1 - erimiento Mo [email protected] qu Re No definen todos los requerimientos (por ej. los tipos de datos, interfaces externas, niveles de rendimiento esperado, etc.), pero representan el hilo conductor que vincula a todos los requerimientos posibles (actuales y futuros) de una aplicación. e ui t ct << Extends >> Actor << Communicates >> << Uses >> Actor Funcionalidad Diagramas de Casos de Uso Recepción de un Pedido Evento que desencadena la secuencia de actividades Identificar Cliente Actividad CU Realizar pedido Flujo Principal Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. Diagrama de Actividad Notación UML 1.3 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. Análisis textual del Caso de Uso b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. 4. Sistema comprueba la situación del pedido . Concurrencia dinámica de actividades Barra de sincronización * [para cada línea de pedido] a. SI se ha realizado el pago y SI todos los items del pedido han sido asignados, sistema informa que procede a servir el pedido activando el CU Servir pedido. b. SI se ha realizado el pago y NO existen suficientes items del artículo en stock, sistema aparca el pedido del cliente activando el CU Aparcar pedido. [email protected] © Vilalta Consultores 2001 - TRAD Actividad 1_esp - Rev. 7.1 - Entrar líneas pedido [NO vigente] Punto de decisión Descripción de un Flujo de Trabajo Un flujo de trabajo muestra la secuencia de actividades que se desarrollan dentro de uno o varios Casos de Uso, como una pieza de funcionalidad concreta que satisface los requerimientos de un Actor. Seleccionar Artículo alternativo [SI vigente] c. SI no se ha realizado el pago según el plazo convenido, sistema cancela el pedido. 1 Comprobar Artículo Comprobar Pago [NO] Cancelar Pedido Asignar Items [SI] [NO Stock] o [SI umbral reposición] Barra de fusión Generar reposición Condición lógica: verdadera o falsa, que permite la transición a otra actividad Comprobar situación Pedido Entrar Pedido Validar Riesgo Seleccionar Pedidos [Todos los items asignados] [Faltan items por asignar] Validar Pago * [para cada pedido seleccionado] Asignar Items Servir Pedido Aparcar Pedido Activar Pedido Regularizar Stock Flujos de Trabajo CU Actualizar reposición Descripción de un Flujo de Trabajo Flujo Principal 1. Usuario recepciona albaranes de reposición que ha enviado un proveedor. 2. Sistema localiza los pedidos de clientes aparcados que pueden cumplimentarse con la nueva entrada de items. Recepción de una Reposición Análisis textual del Caso de Uso Una diagrama de actividad describe una secuencia de actividades que pueden exhibir un comportamiento en paralelo o estar sujetas a condiciones lógicas. 3. Usuario selecciona los pedidos de clientes aparcados que decide cumplimentar. 4. Sistema asigna los items pendientes a los pedidos de cliente seleccionados. 2 Los procesos de negocio no muestran siempre una secuencia fija en su desarrollo, es una ventaja así poder modelar bloques de actividades sin restricciones de concurrencia. Entrar Reposición 5. Sistema informa que procede a servir el pedido activando el CU Servir pedido.. Buscar Pedidos aparcados 6. Sistema regulariza la situación de items en stock y revisa los umbrales de reposición automática. © Vilalta Consultores 2001 - TRAD Actividad 2_esp - Rev. 5.2 - [email protected] Diagrama de Actividad Notación UML 1.3 Seleccionar Pedido * [para cada pedido seleccionado] Transición de una actividad a otra sujeta a una condición lógica. Asignar Items Sincronización de actividades que pueden ocurrir en paralelo. [Todos los items asignados] [Todos las reposiciones entradas] Entrar Pedido Validar Riesgo Seleccionar Pedidos Servir Pedido Validar Regularizar Stock Pago * [para cada pedido seleccionado] Asignar Items Activar Pedido Fin de la secuencia de actividades Regularizar Stock Flujos de Trabajo Descripción de un Flujo de Trabajo Recepción de un Pedido Identificar Cliente Un diagrama de actividad puede mostrar la secuencia de actividades que se desarrolla en un paquete de Casos de Uso que define un proceso de negocio y sus áreas de responsabilidad. Entrar líneas pedido Diagrama de Actividad 3 Notación UML 1.3 * [para cada línea de pedido] [Recepción de Reposición] Comprobar Artículo Seleccionar Artículo alternativo [NO vigente] [SI vigente] Comprobar Pago Seleccionar Pedido [email protected] © Vilalta Consultores 2001 - TRAD Actividad 3_esp - Rev. 6.1 - Entrar Reposición Buscar Pedidos aparcados Líneas para acotar áreas de responsabilidad (swim-lines) * [para cada pedido seleccionado] Asignar Items [NO éxito] Cancelar Pedido [SI éxito] Generar reposición [NO Stock] o [SI umbral reposición] Comprobar situación Pedido Contabilidad Comercial Regularizar Stock Almacén Entrar Pedido Validar Riesgo Seleccionar Pedidos Validar Pago [Todos las reposiciones entradas] [Todos los items asignados] Servir Pedido [Faltan items por asignar] Aparcar Pedido * [para cada pedido seleccionado] Asignar Items Activar Pedido Regularizar Stock Flujos de Trabajo Descripción de un Flujo de Trabajo Descomposición de la actividad Comprobar Pago Su objetivo no es relacionar actividad con objetos, sólo comprender qué actividades son necesarias y cuales son sus relaciones de dependencia. Diagrama de Actividad Notación UML 1.3 Pueden procesarse distintas modalidades de pago de manera simultanea 4 El diagrama de actividad nos permite definir en qué orden se van a realizar distintas tareas. Los diagramas de flujo (flowchart) sólo nos permiten modelar procesos secuenciales, mientras que los diagramas de actividad nos permiten establecer procesos en paralelo. Comprobar Pago [Tarjeta de Crédito] © Vilalta Consultores 2001 - TRAD Actividad 4_esp - Rev. 5.2 - [email protected] [Factura] Comprobar Cheque Autorización [Cheque] Comprobar Cliente habitual Importe > 150.000 NO éxito [SI] [NO] [Efectivo] [NO éxito] [NO éxito] [SI] Comprobar historial pagos [SI éxito] [SI éxito] [NO éxito] Pre-Pago requerido [NO recibido] [NO] Comprobar Crédito [NO éxito] NO éxito [SI éxito] Entrar Pedido Validar [SI éxito] Riesgo Seleccionar Pedidos Validar Pago Abrir Cuenta Cliente SI éxito * [para cada pedido seleccionado] Asignar Items Activar Pedido Regularizar Stock Flujos de Trabajo CU Realizar pedido Flujo Principal Descripción de un Escenario Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. Análisis textual del Use Case Un escenario muestra de que manera interactúan los distintos objetos dentro del flujo principal de eventos de un Caso de Uso con alguna variación o extensión concreta del mismo. a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. Utilizamos dos diagramas de interacción: a/. Secuencia b/. Colaboración Su finalidad es describir los mensajes que intercambian los distintos objetos para cumplir con las responsabilidades definidas en un escenario concreto de un Caso de Uso. b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. Objetos que interactúan 1 © Vilalta Consultores 2001 - TRAD Secuencia_esp - Rev. 6.1 - [email protected] • Diagrama de Secuencia.- Representa las : C o m erci al :Una Ventana de introducción de Pedidos :Un Pedido :Una Línea de Pedido :Una Cartera de Items en Stock interacciones de objetos ordenadas en una serie temporal que muestra su ciclo de vida. (1) Mensajes enviados entre los objetos descritos en el flujo de eventos de un Caso de Uso. 1:indentificarCliente ( ) 2:generarPedido ( ) Estos mensajes muestran el nivel de colaboración entre los distintos objetos existentes e indican cuando se requiere generar nuevos objetos para cumplir con las responsabilidades asignadas. 3:entrarLíneaPedido ( ) 4:generarLíneaPedido ( ) 5:comprobarStock ( ) Auto-mensaje 6:asignarItems ( ) (1) Mensaje 7:realizarReposición ( ) Línea de vida de un objeto durante la interacción 8:generarReposición ( ) Creación de un nuevo objeto :Un Pedido de Reposición Una ventana de introducción de pedidos Un pedido Una línea de pedido Un item de stock [tieneStock] nuevo [tieneStock] nuevo tieneStock:( ) : Pedido xxx línea : Línea de pedido xxx stock : item de stock Diagrama de Secuencia Notación UML 1.3 : Item de Expedición : Item de Pedido de reposición Escenarios CU Realizar pedido Flujo Principal Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. Análisis textual del Use Case 2 Con un escenario representamos el conjunto de eventos que configura el comportamiento de un Caso de Uso. 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. Descripción de un Escenario a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. Un escenario describe una instancia del flujo de eventos de un Caso de Uso, con sus variaciones o extensiones posibles y las excepciones probables. Utilizamos dos diagramas de interacción: a/. Secuencia b/. Colaboración Su finalidad es describir los mensajes que intercambian los distintos objetos para cumplir con las responsabilidades definidas en un escenario concreto de un Caso de Uso. Objeto © Vilalta Consultores 2001 - TRAD Colaboración_esp - Rev. 6.1 - [email protected] (Instancia de una Clase) • Diagrama de colaboración.- Representa una : Comercial Número de secuencia posible interacción de los objetos ordenados a partir de la topología que muestra el envio de sus mensajes. 1: identificarCliente ( ) (1) Mensajes enviados entre los objetos descritos en el flujo de eventos de un Caso de Uso. 3: entrarLíneaPedido ( ) 4: generarLíneaPedido ( ) : Una Ventana de introducción de Pedidos Enlace entre dos objetos Mensaje (1) 2: generarPedido ( ) : Una Línea de Pedido Estos mensajes muestran el nivel de colaboración entre los distintos objetos existentes e indican cuando se requiere generar nuevos objetos para cumplir con las responsabilidades asignadas. 5: comprobarStock ( ) 6: asignarItems ( ) Auto-mensaje : Un Pedido 7: realizarReposición ( ) Dirección del mensaje :Una Cartera de Items en Stock Una ventana de introducción de pedidos Un pedido Una línea de pedido Un item de stock [tieneStock] nuevo [tieneStock] nuevo 8: generarReposición ( ) tieneStock:( ) : Pedido xxx línea : Línea de pedido xxx stock : item de stock Diagrama de Colaboración Notación UML 1.3 : Item de Expedición : Un Pedido de Reposición : Item de Pedido de reposición Escenarios Clases Desde una perspectiva conceptual, una Clase representa un conjunto de Objetos que comparten: • Las mismas propiedades (Atributos) • El mismo comportamiento (Métodos) • Las mismas relaciones con otros Objetos (Mensajes) • La misma semántica dentro del sistema Pedido FechaRecibido ConPrepago Número Importe Divisa ... seleccionar ( ) comprobar ( ) servir ( ) cerrar ( ) ... [email protected] © Vilalta Consultores 2001 - TRAD Clases 1_esp - Rev. 6.1 - Nombre Direccion valorarCredito( ): string 1 Cliente Corporativo Cliente Personal NumTargetaCredito NombreContacto ValoracionCredito LimiteCredito facturarMes( ) recordar( ) * Estos elementos que configuran cada tipo de objeto sólo se definen una vez, cuando especificamos la estructura de la Clase a la que pertenecen. Objetos 1 * Desde una perspectiva física, una Clase es una pieza de software que actua como un molde para fabricar tipos particulares de objetos que disponen de los mismos atributos y métodos. Los objetos que se han creado a partir de una Clase concreta, se llaman instancias de esta Clase y se diferencian entre ellos únicamente por los valores de sus atributos (variables). 1 Cliente 0..1 * Representante Línea de Pedido Cantidad Importe Cumplimentada * 1 Producto aceptar ( ) Diagrama de Clases Notación UML 1.3 Un Objeto representa una entidad del mundo real o inventada. Es un concepto, una abstracción o algo que dispone de unos límites bien definidos y tiene una significación para el sistema que se pretende modelar. Estructura y función: • Identidad ¿Quien soy? = Atributos • Propósito ¿Cual es mi misión? = Justificación • Responsabilidades ¿Qué debo hacer? = Métodos • Procedencia ¿De qué Clase provengo? = Origen • Relaciones ¿Qué mensajes entiendo? = Comportamiento Cliente Pedido * hacer / comprobación 1 hacer / comprobación item 1 Cliente Corporativo Cliente Personal hacer / comprobación item * 0..1 * Comercial Línea de Pedido hacer / comprobación Objetos * 1 Producto Clases Abstracción 2 vacp 104 1 ét m o od 2 m do o ét Atributos m o od ét 4 © Vilalta Consultores 2001 - TRAD Clases 2_esp - Rev. 3.1 - [email protected] A partir de una abstracción del mundo real, definimos objetos que representan micromódulos de software ideales. Desde su creación, se mantienen de manera independiente unos de otros, sólo interaccionan con otros objetos a través de sus mensajes. Cada objeto configura un universo ordenado y autosuficiente. m o od t é 3 Cliente Pedido * hacer / comprobación 1 hacer / comprobación item 1 Cliente Corporativo hacer / comprobación item * 0..1 * Comercial Línea de Pedido hacer / comprobación * 1 Producto Clases Cliente Personal Objeto 3 Todo lo que un objeto “conoce” está representado en sus atributos (variables y estado actual), y todo lo que puede “realizar” está definido en sus métodos (comportamiento), y en sus “interacciones” con otros objetos a través del intercambio de mensajes (dinámica del ciclo de vida). ¿Quien soy? Vehículo Automático Carga Palets vacp104 ¿Qué puedo hacer? ia Atributos m or af at Pl [email protected] ac H rg ar ev el a © Vilalta Consultores 2001 - TRAD Clases 3_esp - Rev. 2.2 - er ca em ov m It ar a Pl r a aj m or f ta a ¿Qué conozco? b Variables.• • • • • Identificación Medidas de la carga Capacidad de carga Velocidad máxima Tipo de carga Cliente Pedido * hacer / comprobación 1 hacer / comprobación item Estado.- 1 Cliente Corporativo hacer / comprobación item * • Localización • Orientación • Velocidad 0..1 * Comercial Línea de Pedido hacer / comprobación * 1 Producto Clases Cliente Personal Mensaje 4 Una aplicación orientada a objetos consiste en un número determinado de objetos que interactuan entre si enviándose mensajes unos a otros para invocar sus métodos. Este intercambio de mensajes facilita su comportamiento, cambios de estado, destrucción o almacenamiento. Ya que todo lo que un objeto puede realizar está expresado en sus métodos, este simple mecanismo de mensajes soporta todas las posibles interacciones entre ellos. Método que se invoca para que lo ejecute el objeto receptor Parámetro enviado para especificar el método Nombre del objeto receptor vacp104 moverHacia: binB7 Objeto Emisor ia Atributos a rm ar ev el m or af at Pl a © Vilalta Consultores 2001 - TRAD Clases 4_esp - Rev. 1.2 - rg ac H ca em er It ar ov m [email protected] vacp104 ba ja a at l rP Signatura del mensaje fo Cliente Pedido * hacer / comprobación 1 hacer / comprobación item 1 Cliente Corporativo hacer / comprobación item Objeto Receptor * 0..1 * Comercial Línea de Pedido hacer / comprobación * 1 Producto Clases Cliente Personal Encapsulación 5 El empaquetado de métodos y atributos dentro de un objeto mediante una interface de mensajes, es lo que denominamos encapsulación. La clave está precisamente en este envoltorio del objeto. La interface que rodea por completo al objeto actúa como punto de contacto para todos los mensajes que llegan desde cualquier objeto emisor. Interface de mensajes Su propósito es garantizar que todas las interacciones del objeto tengan lugar a través de un sistema de mensajería predefinido con el que es capaz de entenderse y reaccionar adecuadamente. m ac H er ia ca a rg e rIt No existe ninguna otra manera con la que un objeto externo pueda acceder a los atributos y métodos escondidos dentro de la interface de mensajes de otro objeto. Atributos ar ev el m or af at Pl a © Vilalta Consultores 2001 - TRAD Clases 5_esp - Rev. 3.1 - La interface de mensajes tiene la misma función que la membrana de una célula, disponer de una barrera esencial entre la estructura interna de un objeto y el exterior. ov m [email protected] Conjunto de operaciones externamente visibles que define el comportamiento de un objeto ba ja t la P r af a m r o vacp104 moverHacia: binB7 Cliente Pedido * hacer / comprobación 1 hacer / comprobación item Mensaje 1 Cliente Corporativo hacer / comprobación item * 0..1 * Comercial Línea de Pedido hacer / comprobación vacp104 * 1 Producto Clases Cliente Personal Herencia 6 Es el mecanismo por el cual una clase de objetos puede ser definida como un caso especial de otra clase más genérica. Los casos especiales de una clase se denominan Subclases. La clase más genérica, se conoce como la Superclase de todos sus casos especiales. Además de los métodos y atributos que heredan, las Subclases definen sus propios métodos y atributos. Tambien, pueden redefinir algunos de los heredados (overriding). La interface de mensajes definida para una Superclase también es heredada por las subclases. Esto implica que todas las Subclases de una Superclase estan preparadas para responder correctamente a los mismos mensajes que la Clase padre. Esta propiedad es extremadamente útil porque nos permite tratar de la misma manera a todas las especializaciones de una Clase. Vehículo Automático de Carga Vehículo Automático Carga Palets Vehículo Automático Carga Palets Vehículo Automático Carga Bobinas vac 104 vac 104 SubClase SubClase vac 103 vacp 104 Interface de mensajes H er ov Métodos ia ac rg m a ca em r It a m or af at Pl ar Instancias de Vehículo Automático Carga Palets ba ja l rP or af at m Cliente Pedido * hacer / comprobación 1 hacer / comprobación item Atributos ev el © Vilalta Consultores 2001 - TRAD Clases 6_esp - Rev. 1.2 - [email protected] SuperClase a Atributos 1 Cliente Corporativo hacer / comprobación item * 0..1 * Comercial Línea de Pedido hacer / comprobación vacp 104 Identificador del objeto * 1 Producto Clases Cliente Personal Composición 7 Los objetos que contienen a otros objetos se denominan Objetos Compuestos. Los atributos de un objeto pueden utilizarse de dos maneras. Podemos usarlos para almacenar valores como el número 15, o bien, el texto “Autorizado”. También pueden contener referencias de otros objetos. Las referencias almacenadas en los atributos de un objeto compuesto, permite a este objeto enviar los mensajes apropiados a todos los objetos contenidos. Ventana Wizard Progress Enter title here Tab 67% Tab control Trackbar © Vilalta Consultores 2001 - TRAD Clases 7_esp - Rev. 2.1 - [email protected] < Back Next > Panel de ventana Grid Cancel Slider Enter title here Campo simple Scroll Botones de ventana Restore Maximize Cliente Combo box Pedido * hacer / comprobación 1 hacer / comprobación item 1 Cliente Corporativo Help ? Close Minimize hacer / comprobación item List box * 0..1 * Comercial Línea de Pedido hacer / comprobación * 1 Producto Clases Cliente Personal Polimorfismo Diferentes objetos pueden responder a un mismo mensaje de diferentes maneras. El polimorfismo permite a los objetos interactuar entre ellos sin necesidad de conocer previamente a que tipo pertenecen. Vehículo Automático de Carga Un objeto puede ser de diferentes tipos. Por ejemplo un vehículo automático de carga puede especializarse para cargar bobinas, palets u otro tipo de items. Los demás objetos del sistema no tienen porque saber cuantos tipos de vehículos disponemos. SubClase Vehículo Automático Carga Palets SubClase El mismo mensaje cargarItem, acompañado del parámetro que identifica dicho item, será intrepretado de distinta manera por cada objeto receptor, el cual ya conoce previamente como tiene que tratar la naturaleza de su carga: bobinas, palets, etc. Hay una reducción de esfuerzo muy significativa por el hecho de que cualquier objeto del sistema puede enviar mensajes a los vehículos automáticos de carga sin necesidad de saber de antemano qué tipo de vehículos estan en circulación. No hay necesidad así de picar un código específico para cada tipo de vehículo, con lo cual, nos ahorramos prolijas sentencias IF o CASE que son complejas de mantener y de actualizar cuando se incorporan nuevos tipos de objetos. m Cliente Atributos a a m or af at Pl ar r fo ta la ev el a m or af at Pl ar m rP ja ba ia ac ia ac rg ca Atributos cargarItem: #A234C19FZ H er ov H er ov m Ite ar m m Ite ar rg ca ev el © Vilalta Consultores 2001 - TRAD Clases 8_esp - Rev. 1.1 - [email protected] SuperClase Vehículo Automático Carga Bobinas 8 rP ja ba Pedido rm fo ta la * hacer / comprobación 1 hacer / comprobación item a Mensaje 1 Cliente Corporativo hacer / comprobación item * 0..1 * Comercial Línea de Pedido hacer / comprobación vacb 117 vacp 104 * 1 Producto Clases Cliente Personal Visibilidad Cliente Pedido - fechaRecibido conPrepago - número: Alfanúm. - importe: Núm&2d. - divisa ... + crear () + seleccionar ( ) + comprobar ( ) + servir ( ) + cerrar ( ) * 1 + hacer / comprobación 1 Cliente Corporativo + hacer / comprobación item * Cliente Personal Visibilidad [email protected] © Vilalta Consultores 2001 - TRAD Clases visibilidad_esp - Rev. 5.3 - Comercial * 1 Producto C++ Smalltalk + Publica - Privada Un elemento sólo puede ser usado por la Clase que lo define. # Protegida Un elemento sólo puede ser usado por la Clase que lo define, o por las subclases de dicha Clase. Un elemento sólo puede ser usado por la Clase que lo define. Un elemento puede ser usado por subclases y también por cualquier otra Clase en el mismo Package como la Clase propietaria. Esto implica que en Java, el concepto de visibilidad protegida es más público que package. Todas las variables instanciadas son privadas. Un elemento sólo puede ser usado por otras Clases que compartan el mismo Package. Package Cliente Pedido * Ejemplos hacer / comprobación 1 hacer / comprobación item 1 Cliente Corporativo Cliente Personal hacer / comprobación item * 0..1 * Comercial Línea de Pedido hacer / comprobación * 1 Producto Clases Java Un elemento siempre es visible en cualquier parte del programa y puede ser llamado y modificado por cualquier objeto del sistema. Línea de Pedido + hacer / comprobación •Toda Clase encapsula unos elementos (atributos y operaciones) que disponen de ciertos criterios de visibilidad y manipulación para otras Clases. •Los elementos públicos pueden ser usados por cualquier otra Clase. •Los elementos privados pueden ser usados sólo por la Clase propietaria. •Cada plataforma de desarrollo (C++, Smalltalk, Java) desarrolla sus propias reglas con respecto a la visibilidad y manipulación de atributos y operaciones. •La notación UML especifica que todo atributo y operación de una Clase ha de disponer de un indicador de visibilidad. Un elemento siempre es visible en cualquier Todas las operaciones son parte del programa y puede ser llamado y públicas por defecto. modificado por cualquier objeto del sistema. 0..1 * 9 Consideremos la instancia de CLIENTE PERSONAL, <<Miquel M.>>, este objeto puede acceder a cualquier elemento de <<Josep V.>>, que ha sido definido también como una instancia de CLIENTE PERSONAL, sea público, privado o protegido. <<Miquel M.>>, a su vez también puede acceder a cualquier elemento privado, protegido o público de <<Josep V.>> Consideremos la Clase CLIENTE que dispone de una subclase CLIENTE PERSONAL. Consideremos también que el objeto <<Josep V.>>, es una instancia de CLIENTE PERSONAL. <<Josep V.>> • Puede usar todo elemento público de cualquier objeto del sistema. • Puede usar también todo elemento privado de la Clase CLIENTE PERSONAL. • No puede usar los elementos privados definidos en la Clase CLIENTE. • Puede usar los elementos protegidos definidos para CLIENTE y CLIENTE PERSONAL. <<Josep V.>>, puede acceder a cualquier variable instanciada dentro de su propio objeto, si dicha variable ha sido definida dentro de CLIENTE o CLIENTE PERSONAL. De esta manera, el concepto de visibilidad privada en Smalltalk es parecido al concepto de visibilidad protegida en C++. En Smalltalk no hay diferencia con respecto a que un objeto sea de la misma Clase o no. Podemos acceder sólo a los elementos públicos de otro objeto. En C++, podemos acceder a elementos de otros objetos de la propia Clase, de la misma manera que podemos acceder a los propios elementos de un objeto. En Smalltalk, <<Miquel M.>>, no puede acceder a las variables instanciadas privadas de <<Josep V.>>, sólo a sus operaciones públicas. Java permite marcar también las Clases como públicas o packages. Los elementos de una Clase pública pueden ser usados por cualquier Clase que importe el package a la que pertenece la Clase. Los elementos de una Clase package sólo pueden ser usados por otras Clases del mismo package. CU Realizar pedido Flujo Principal Descripción de la Dinámica del Sistema Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. 4. Sistema comprueba la situación del pedido . • Todos los posibles estados que sus objetos pueden tener. • Todas las posibles secuencias de eventos que pueden ocurrir. • Todas las transiciones posibles, de un estado a otro, como consecuencia de los eventos que afectan a los objetos. a. SI se ha realizado el pago y SI todos los items del pedido han sido asignados, sistema informa que procede a servir el pedido activando el CU Servir pedido. Diagrama de Estados de un Pedido b. SI se ha realizado el pago y NO existen suficientes items del artículo en stock, sistema aparca el pedido del cliente activando el CU Aparcar pedido. [email protected] Notación UML 1.3 c. SI no se ha realizado el pago según el plazo convenido, sistema cancela el pedido. /seleccionar primer item * 2 1 ionar primer item hacer / inicio de entregas le ib on sp di le n ib po Entregado I te m od R o s e c ib lo id s it e o m s d is rimer item rimer item Esperando Entregado Dinámica Estados hacer / inicio de entregas 6 Pedido Entregado 5 s] Sirviendo hacer / comprobación item hacer / comprobación item [Todos los items comprobados && algunos items no estan disponibles en stock] [Todos los items comprobados && todos los items disponibles] Verificando [Todos los items comprobados && Sirviendo todos los items disponibles] 3 1 rimer item Comprobando s] [No todos los items comprobados] /seleccionar siguiente item It [T em od R os eci lo bid s ite o m s Pedido fechaRecibido conPrepago número: Alfanúm. importe: Núm&2d. divisa ... seleccionar ( ) comprobar ( ) servir ( ) cerrar ( ) ... [T © Vilalta Consultores 2001 - TRAD Dinámica 1_esp - Rev. 5.1 - La dinámica de un sistema está determinada por: b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. Análisis textual del Use Case 1 4 Item Recibido [algunos items no estan disponibles en stock] Esperando Entregado CU Realizar pedido Flujo Principal Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. Análisis textual del Use Case 2 Descripción de la Dinámica del Sistema a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. Utilizamos el diagrama de estados para describir el comportamiento de una Clase dentro de una serie temporal. b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. Notación UML 1.3 Indicador [No todos los items comprobados] /seleccionar siguiente item Acción 1 Comprobando Estado 2 [Todos los items comprobados && Sirviendo todos los items disponibles] hacer / comprobación item hacer / inicio de entregas Transición di sp [Todos los items comprobados && algunos items no estan disponibles en stock] Desencadena siempre la Transición 6 Evento Pedido Entregado 5 Item Recibido [algunos items no estan disponibles en stock] Transición Condición lógica con dos categorias: “verdadero” o “falso”. Una Transición con [Indicador] sólo ocurre si este es “verdadero”. Sólo podemos extraer una Transición para un Estado concreto. Esperando ionar primer item Entregado rimer item [Todos los items comprobados && todos los items disponibles] Verificando Sirviendo hacer / comprobación item hacer / inicio de entregas s] 4 le Auto-Transición n ib Procesos que ocurren de manera rápida dentro de un ciclo contínuo sin interrupción. [Indicador] on ib 3 Los tres elementos son opcionales / Acción le s] Evento [Indicador] / Acción Actividad po Sintaxis para etiquetar una transición /seleccionar primer item Acción rimer item d is 1 primera Transición Entregado I te m od R o s e c ib lo id s it e o m s Operaciones fechaRecibido conPrepago número: Alfanúm. importe: Núm&2d. divisa ... seleccionar ( ) comprobar ( ) servir ( ) cerrar ( ) ... Inicio * rimer item Esperando [T Atributos Pedido It [T em od R os eci lo bid s ite o m s © Vilalta Consultores 2001 - TRAD Dinámica 2_esp - Rev.- 5.1 - [email protected] Clase Diagrama de Estados de un Pedido Entregado Transición Dinámica Estados CU Realizar pedido Flujo Principal Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. Análisis textual del Use Case a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. Construimos el diagrama de estados a partir de una clase concreta para mostrar el comportamiento de un objeto durante su ciclo de vida. b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. Diagrama de Estados de un Pedido Notación UML 1.3 [Indicador] hacer / inicio de entregas Actividad le 5 Auto-Transición ionar primer item Entregado rimer item [Todos los items comprobados && todos los items disponibles] Verificando Sirviendo hacer / comprobación item hacer / inicio de entregas po n ib le s] Esperando rimer item rimer item Transición Condición lógica con dos categorias: “verdadero” o “falso”. Una Transición con [Indicador] sólo ocurre si este es “verdadero”. Sólo podemos extraer una Transición para un Estado concreto. Evento Pedido Entregado Transición No hay Actividades para este Estado, por lo que el Pedido permanecerá a la espera de un Evento. d is Item Recibido [algunos items no estan disponibles en stock] Desencadena siempre la Transición 6 Entregado I te m od R o s e c ib lo id s it e o m s 4 Procesos que ocurren dentro de un ciclo discontínuo y pueden ser interrumpidospor algun evento. hacer / comprobación item [Todos los items comprobados && algunos items no estan disponibles en stock] Transición Estado Comprobando 3 Los tres elementos son opcionales Procesos que ocurren de manera rápida dentro de un ciclo contínuo sin interrupción. / Actividad 2 [Todos los items comprobados && Sirviendo todos los items disponibles] s] Evento [Indicador] / Acción Aunque finalize la Actividad el Pedido permanecerá en este Estado hasta que ocurre el Evento que desencadena su Transición Esperando [T / Acción Indicador [No todos los items comprobados] /seleccionar siguiente item Acción 1 ib Sintaxis para etiquetar una transición Estado /seleccionar primer item Acción on 1 primera Transición sp fechaRecibido conPrepago número: Alfanúm. importe: Núm&2d. divisa ... seleccionar ( ) comprobar ( ) servir ( ) cerrar ( ) ... Inicio * di Pedido Cuando una Transición no dispone de un Evento en su etiqueta, significa que la Transición se realiza tan pronto como la Actividad asociada con un Estado es finalizada It [T em od R os eci lo bid s ite o m s Operaciones Implementación © Vilalta Consultores 2001 - TRAD Dinámica 3_esp - Rev. 5.1 - [email protected] Clase Atributos 3 Descripción de la Dinámica del Sistema Entregado Dinámica Estados CU Realizar pedido Flujo Principal Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. 2 [Todos los items comprobados && Sirviendo todos los items disponibles] hacer / comprobación item hacer / inicio de entregas s] ib on 5 4 Pedido Entregado Pedido Cancelado Entregado sp on ib 6 Pedido Cancelado Cancelado sin Superestados 5 6 Pedido Cancelado hacer / inicio de entregas le s] Sirviendo hacer / comprobación item n ib Notación UML 1.3 rimer item rimer item Esperando Cancelado Entregado [Todos los items comprobados && todos los items disponibles] Verificando po con Superestados ionar primer item rimer item d is Diagrama de Estados Entregado I te m od R o s e c ib lo id s it e o m s Pedido Entregado [T 4 Item Recibido [algunos items Esperando no estan disponibles en stock] Pedido Cancelado Item Recibido [algunos items Esperando no estan disponibles en stock] di [Todos los items comprobados && algunos items no estan disponibles en stock] le s] 3 le 3 [Todos los items comprobados && algunos items no estan disponibles en stock] hacer / inicio de entregas sp [No todos los items comprobados] /seleccionar Comprobando siguiente item 1 /seleccionar primer item [No todos los items 2 comprobados] [Todos los items comprobados && /seleccionar Comprobando todos los items disponibles] Sirviendo siguiente item hacer / comprobación item Activo /seleccionar primer item Hay que distinguir un Evento como tal, del objeto que representa el registro de los efectos de dicho Evento. di 1 Sólo nos interesan aquellos Eventos que provocan un cambio de estado en los objetos de nuestro modelo. It [T em od R os eci lo bid s ite o m s © Vilalta Consultores 2001 - TRAD Dinámica 4_esp - Rev. 5.1 - [email protected] Nombre del Superestado Sólo podemos conocer que un Evento ha ocurrido, detectando sus “efectos” en nuestro modelo. It [T em od R os eci lo bid s ite o m s Análisis textual del Use Case 4 Un Evento no es un objeto. Un Evento es la “causa” que justifica la existencia de una información. 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. Descripción de la Dinámica del Sistema Entregado Dinámica Estados CU Realizar pedido Flujo Principal Va r i a c i o n e s 1. Usuario identifica el cliente que ha enviado un pedido. 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. 3. Sistema comprueba cada línea del pedido para validar la situación del artículo... 5 Descripción de la Dinámica del Sistema a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra... Los diagramas de estados son muy útiles para describir el comportamiento de un objeto a través de múltiples Casos de Uso. b. SI existen suficientes items... c. NO existen suficientes items... a. SI se ha realizado el pago y SI todos los items del pedido han sido asignados, sistema informa que procede a servir el pedido activando el CU Servir pedido. b. SI se ha realizado el pago y NO existen suficientes items del artículo en stock, sistema aparca el pedido del cliente activando el CU Aparcar pedido. Autorizando hacer / comprobación del pago [pago NO correcto] [pago SI correcto] Esperando Cancelado Autorizado Rechazado Pedido Cancelado Sirviendo Entregado Pedido Entregado ionar primer item [Todos los items comprobados && todos los items disponibles] Verificando Sirviendo hacer / comprobación item hacer / inicio de entregas le s] rimer item n ib Autorizado po Autorizando Entregado rimer item Rechazado Pedido Rechazado Diagrama de Estados Concurrentes Notación UML 1.3 d is Comprobando Entregado I te m od R o s e c ib lo id s it e o m s © Vilalta Consultores 2001 - TRAD Dinámica 5_esp - Rev. 5.1 - [email protected] c. SI no se ha realizado el pago según el plazo convenido, sistema cancela el pedido. rimer item Esperando [T Análisis textual del Use Case 4. Sistema comprueba la situación del pedido . Entregado Dinámica Estados Arquitectura del sistema 1 Una Arquitectura es un conjunto organizado de elementos. Se utiliza para especificar las decisiones estratégicas acerca de la estructura y funcionalidad del sistema, las colaboraciones entre sus distintos elementos y su despliegue físico para cumplir unas responsabilidades bien definidas. Vista de © Vilalta Consultores 2001 - TRAD Arquitectura 1_esp - Rev. 5.1 - [email protected] Vista del Componentes Modulares Modelo de Referencia Vista de la Funcionalidad Use Cases Vista de Vista de Implementación Ejecutables Distribución Física Elementos Vista de la Arquitectura 4+1 Notación UML 1.3 Arquitectura Arquitectura del sistema Vista del Modelo de Referencia 2 La vista del Modelo de Referencia (Reference Information Model), está determinada por la arquitectura lógica. La arquitectura lógica es capturada por los diagramas de Clases que contienen las Clases y relaciones que representan las abstracciones esenciales del sistema a desarrollar. • Clases • Asociaciones Vista del • Agregaciones Modelo de Referencia • Generalización • Packages Pedidos © Vilalta Consultores 2001 - TRAD Arquitectura 2_esp - Rev. 5.1 - [email protected] Cliente El Modelo de Referencia se construye en sucesivas iteraciones durante la fase de Formalización. Las Clases y Packages del modelo reflejan las decisiones tomadas con respecto a los “mecanismos clave” del sistema. Una eficiente implementación de los “mecanismos clave” requiere seleccionar Patrones (Patterns) que se ajusten a los requerimientos esenciales del proyecto. Pedido fechaRecibido conPrepago número: Alfanúm. importe: Núm&2d. divisa ... seleccionar ( ) comprobar ( ) servir ( ) cerrar ( ) ... * 1 hacer / comprobación Artículos 1 Cliente Corporativo La implementación de “mecanismos clave” requiere seleccionar también: * • Motor de Base de Datos • Tratamiento de errores • Mecanismos de comunicación • Migración y distribución de objetos • Networking Cliente Personal hacer / comprobación item • Lenguaje de programación • Interface gráfico de usuario “look and feel” Clientes 0..1 * Comercial Línea de Pedido hacer / comprobación * 1 Producto Arquitectura Arquitectura del sistema 3 Vista de Vista del Componentes Modulares Modelo de Referencia La vista de Componentes Modulares refleja la organización de módulos de software dentro del entorno de desarrollo. Esta vista de arquitectura toma en cuenta los requerimientos que facilitan la programación, los niveles de reutilización, y las limitaciones impuestas por el entorno de desarrollo. Disponemos de dos elementos para modelizar esta vista: • Packages: En esta vista representan una partición física del sistema. Vista de • Componentes: En esta vista representan la organización de módulos de código fuente. © Vilalta Consultores 2001 - TRAD Arquitectura 3_esp - Rev. 5.1 - [email protected] Componentes Modulares Pe d i d o Los Packages estan organizados en una jerarquía de capas que disponen de una interface bien definida: 4 Interface de Usuario 3 Pa c k a g e s e s p e c í f i c o s d e l d o m i n i o 2 Pa c k a g e s r e u t i l i z a b l e s 1 Mecanismos clave CORE ø Pa c k a g e s d e p l a t a f o r m a Entrada Pedidos AWT Mailing Interface Usuario Java GUI toolkit Interface Usuario Información Artículos Dominio (OS -Hardware) Pedidos Los Packages de la vista lógica del modelo estan mapeados con los Packages físicos y los componentes de software (subsistemas). Clientes Artículos Arquitectura Arquitectura del sistema Vista de Vista del Componentes Modulares Modelo de Referencia Esta vista se centra en la estructura de los componentes “run-time”, los ejecutables del sistema. Esta arquitectura tiene muy en cuenta los siguientes requerimientos no funcionales: Vista de Implementación Ejecutables [email protected] Implementación Ejecutables Los componentes run-time muestran los mappings de las Clases a librerías de tipo ActiveX, Applets de Java y librerías dinámicas. Los componentes ejecutables muestran sus interfaces y niveles de dependencia dentro de la aplicación. • Rendimiento • Integridad • Fiabilidad • Seguridad • Escalabilidad • Sincronización • Administración del sistema Vista de © Vilalta Consultores 2001 - TRAD Arquitectura 4_esp - Rev. 5.1 - 4 Entrada Pedidos AWT Mailing Interface Usuario Java GUI toolkit Interface Usuario Entrada Pedidos Mailing Aplicación Aplicación Dominio Pedidos P e d i d o s . exe Clientes Artículos Artículos.dll Oracle Expedición.dll Base de Datos Interface Interface global Ingres Clientes.dll Interface Arquitectura Arquitectura del sistema Vista de Vista del Componentes Modulares Modelo de Referencia Vista de Implementación Ejecutables 5 Esta vista presenta el mapping de componentes de software ejecutables con los nodos de procesamiento (hardware). Esta arquitectura tiene en cuenta los siguientes requerimientos: Vista de Distribución Física Elementos • Disponibilidad del sistema • Rendimiento • Escalabilidad Los diagramas de distribución muestran el despliegue de nodos (locales y remotos), en la organización de la empresa. Vista de © Vilalta Consultores 2001 - TRAD Arquitectura 5_esp - Rev. 5.1 - [email protected] Distribución Física Elementos Permite al equipo de desarrollo comprender mejor la topología de un sistema distribuido. TCP/IP Servidor Contabilidad Un Nodo es un objeto físico run-time que representa un recurso informático. Este recurso, generalmente dispone de datos persistentes y capacidad de proceso. :Base de Datos En la mayoría de los casos un Nodo puede representar una pieza de hardware, desde un periférico a un servidor. :Base de Datos Las Conexiones entre Nodos muestran las líneas de comunicación con las que el sistema tendrá que interactuar. Servidor Área Comercial :Contabilidad :Comercial Configuración :Servidor Aplicaciones Los Componentes, en un diagrama de distribución, representan los módulos físicos de código, los cuales, se corresponden con los Packages de ejecutables. De esta manera, el diagrama muestra donde corre cada Package en el sistema. Nodos :Usuarios TCP/IP Las Dependencias muestran cómo los componentes se comunican con otros componentes. La dirección de una Dependencia concreta, indica el conocimiento en la comunicación. Cliente Win95 :Cliente Comercial Interface :GUI Comercial Componente Conexión Arquitectura Arquitectura del sistema Vista de Vista del Esta vista certifica la validez de: Componentes Modulares Modelo de Referencia • Modelo de Referencia Vista de la Funcionalidad • Componentes modulares de software Use Cases Vista de 6 Vista de Implementación Ejecutables Distribución Física Elementos • Ejecutables • Distribución de recursos informáticos Con la funcionalidad requerida del sistema. Utilizamos los siguientes elementos para describir la funcionalidad: Abrir Arqueo << Ext >> • Diagramas de Casos de Uso Hacer un Inicio de Día • Especificación de Casos de Uso << Inclu >> Cajero Cerrar Arqueo Supervisor • Diagramas de Interacción (Escenarios) • Diagramas de Actividad (Flujos de Trabajo) Hacer un Fin de Día << Ext >> << Inclu >> << Inclu >> Imprimir documento Exportar movimientos • Diagramas de Estados (Dinámica) Contabilidad Recepción de un Pedido Preparar Pedido CU Realizar pedido * [para cada línea de pedido] Flujo Principal Va r i a c i o n e s [NO éxito] Cancelar Pedido 1. Usuario identifica el cliente que ha enviado un pedido. Comprobar Comprobar Pago Items [en stock] [SI éxito] Asignar Items 2. Usuario entra lineas de pedido, con su código de artículo, tipo de presentación y cantidad. Una ventana de introducción de pedidos Un pedido Una línea de pedido Un item de stock 3. Sistema comprueba cada línea del pedido para validar la situación del artículo en catálogo y el número de items del artículo en stock. [Requiere reposición] Reponer Items a. Artículo NO está vigente en catálogo, sistema informa que articulo no está vigente y muestra artículos alternativos activando el CU Seleccionar artículo. Servir Pedido b. SI existen suficientes items del artículo en el stock, sistema asigna items al pedido. tieneStock:= comprobar ( ) [tieneStock] nuevo ionar primer item rimer item [Todos los items comprobados && todos los items disponibles] Verificando Sirviendo hacer / comprobación item hacer / inicio de entregas on ib le s] [tieneStock] asignar ( ) c. NO existen suficientes items del artículo en stock, o la asignación de items deja la situación del artículo en stock por debajo del nivel de reposición, sistema genera pedido de reposición activando el CU Generar pedido. rimer item di sp [tieneStock] nuevo rimer item [tieneStock] nuevo Esperando It [T em od R os eci lo bid s ite o m s © Vilalta Consultores 2001 - TRAD Arquitectura 6_esp - Rev. 5.1 - [email protected] Importar nueva configuración Entregado Entregado Arquitectura