Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Introducción Sin duda alguna los lenguajes simbólicos han servido a través del tiempo para apoyar al Desarrollo del Software; que decir del denominado Diagrama de Flujo o Diagrama bajo el enfoque de Warnier-Or, utilizado en su momento para diagramar los procesos que el software a desarrollar hará, o los procesos previos, en un sistema manual o semimanual, que el software a desarrollar automatizará. Y que decir del Diagrama bajo el enfoque de Yourdon, o simplemente llamado Diagrama de Contexto, usado comúnmente para diagramar los procesos que se realizarán con una base de datos que apoyará al sistema a desarrollar. Existen otros más pero los mencionados eran los más frecuentes. El compendio de prácticas aquí demostradas es un enfoque inteligente para el apoyo de cómo usar los diferentes diagramas que tiene el UML dentro de un posible proyecto Informático apoyados en un enfoque de uso dentro de la Metodología RUP. Este compendio se realiza con el propósito de ahorrar esfuerzo al lector en la utilización de los diferentes diagramas del UML y así poder brindar las experiencias y vivencias con este lenguaje, ya que en la actualidad es uno de los estándares de facto para las fases de Análisis y Diseño de programas dentro de la Ingeniería Software. Y ahora, en la actualidad, es el Lenguaje de Modelado Unificado (UML), el cual es el tema de este documento. Esta obra esta dividida en dos partes, la primera es un enfoque teórico, para sustentar la información que se mostrará en la segunda parte, que es el enfoque práctico de este libro. El capítulo I trata acerca de los Antecedentes e Importancia del UML, describiendo su concepto, la evolución que ha tenido desde que se creó y la importancia que ha acaparado dentro de la Ingeniería del Software. El capítulo II es una visión general del lenguaje, Tratando acerca del modelo orientado a objetos y del modelo conceptual del UML. El capítulo III trata acerca de las metodologías Clásicas y contemporáneas utilizadas dentro de la Ingeniería del Software, y un plan de trabajo basado en la Página 1 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Metodología RUP (Rational Unified Process). Dentro de este capítulo se utilizará a la herramienta Visual Paradigm 6.5, debido a su eficacia realizando los diagramas UML, por su entorno completo, fácil y organizado de manipular símbolos y diagramas, mejor que otros entornos de diagramación OOCASE. El capítulo IV es un enfoque práctico del uso de los diagramas del UML y cómo se utilizan dentro de la Metodología RUP, y el último capítulo es una visión a futuro que se tendrá de este lenguaje. En el apartado Anexos se visualizan todos los problemas prácticos que se le pide al lector de este documento, para su mejor entendimiento del contexto de esta obra. Página 2 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Página 3 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML CAPITULO I. ANTECEDENTES E IMPORTANCIA DEL UML Este capítulo trata acerca de los Antecedentes e Importancia del UML, describiendo su concepto, la evolución que ha tenido desde que se creó y la importancia que ha acaparado dentro de la Ingeniería del Software. 1.1. ¿Qué es el Lenguaje de Modelado Unificado? 1.1.1. Concepto Para poder responder a esta interesante pregunta a continuación les presento 3 definiciones de diferentes autores acerca de la temática: “El Lenguaje de Modelado Unificado (UML) es un lenguaje de modelado visual que se usa para especificar, visualizar, construir y documentar artefactos de un sistema software. Captura decisiones y conocimiento sobre los sistemas que se deben construir. Se usa para entender, diseñar, hojear, configurar, mantener y controlar la información sobre tales sistemas. Está pensado para usarse con todos los métodos de desarrollo de software, etapas del ciclo de vida, dominios de aplicación y medios.” 1 “El UML (Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.” 2 “Es un lenguaje para especificar, visualizar, construir y documentar ingenios software, cuyo alcance pretende cubrir los conceptos de Booch, OMT y OOSE, resultando un lenguaje simple, común y ampliamente utilizable por usuarios de métodos.” 3 1 James Rumbaugh, et al. El Lenguaje Unificado de Modelado, manual de referencia, 117 p. http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado 3 http://pisuerga.inf.ubu.es/lsi/Docencia/TFC/ITIG/icruzadn/Memoria/24.htm 2 Página 4 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Ahora sí, haciendo un análisis de las tres definiciones anteriores puedo decir que el UML es un lenguaje que permite la planificación, análisis, diseño y documentación de sistemas, componentes o procesos software orientados a objetos, así como también sistemas de hardware y organizaciones del mundo real. Debido a que el UML es un lenguaje, cuenta con reglas para combinar a diversos elementos gráficos que a su vez se combinan para conformar diagramas, y éstos, a su vez, modelos. 1.1.2. Analogía Este enfoque es similar a aprender un idioma extranjero, aprendiendo sus reglas gramaticales y la conjugación de sus verbos. Después de un tiempo de ponerlo en práctica (al idioma extranjero) se le facilitará comprender la conjugación de estos verbos así como sus reglas gramaticales hasta el grado de poder hablar bien este nuevo idioma. Lo mismo pasará con el desarrollo de sistemas, componentes o procesos software adquiriendo experiencia con el UML. Sintácticas Lenguaje de = Notación + Reglas Modelado Semánticas Pragmáticas El UML, el Lenguaje Unificado de Modelado es una especificación de notación orientada a objetos, también prescribe un conjunto diagramas estándar para modelar sistemas orientados a objetos, y describe la semántica esencial de lo que estos diagramas y símbolos significan. Mientras que ha habido muchas notaciones y métodos usados para el diseño orientado a objetos, ahora los modeladores sólo tienen que aprender una única notación. 1.1.2.1. División de los proyectos con el Lenguaje de Modelado Unificado Página 5 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML El UML Divide cada proyecto en un número de diagramas que representan las diferentes vistas del proyecto. Estos diagramas juntos son los que representan la arquitectura del proyecto. Los nueve diagramas en los cuales modelar sistemas son: Diagramas de Casos de Uso En ellos se captura los requisitos del sistema, es decir, qué funciones va a realizar el sistema, desde el punto de vista de la interacción con el usuario. Diagramas de Secuencia capturan la interacción entre los objetos y los mensajes que intercambian entre sí atendiendo al orden temporal de los mismos. Diagramas de Colaboración igualmente, muestra la interacción entre los objetos resaltando la organización estructural de los objetos en lugar del orden de los mensajes intercambiados. Diagramas de Estado Se utilizan para analizar los cambios de estado de los objetos. Muestran los estados, eventos, transiciones y actividades de los diferentes objetos. Estos diagramas son útiles en sistemas orientados a eventos. Diagramas de Actividad son un caso especial del diagrama de estados, simplifica el diagrama de estados modelando el comportamiento mediante flujos de actividades. Muestra el flujo entre los objetos. Se utilizan para modelar el funcionamiento del sistema y el flujo de control entre objetos. Diagramas de Clases Muestran un conjunto de clases, interfaces y sus relaciones. Es el diagrama principal de UML y al que dedicaremos más tiempo. Éste es el diagrama más común a la hora de describir el diseño de los sistemas orientados a objetos. Diagramas de Objetos Muestran una serie de objetos (instancias de las clases) y sus relaciones. Es un diagrama de instancias de las clases mostradas en el diagrama de clases. Su representación gráfica sería equivalente a la del diagrama de clases pero más detallado. Diagramas de Componentes muestra la organización y las dependencias entre un conjunto de componentes. Se usan para agrupar clases en componentes o módulos. Página 6 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Diagramas de Implementación muestra los dispositivos que se encuentran en un sistema y su distribución en el mismo. Se utiliza para identificar Sistemas de Cooperación: Durante el proceso de desarrollo el equipo averiguará de qué sistemas dependerá el nuevo sistema y qué otros sistemas dependerán de él. 4 Como anteriormente se dijo, el UML se puede usar para modelar distintos tipos de sistemas: sistemas de software, sistemas de hardware, y organizaciones del mundo real. Mediante el fomento del uso de este lenguaje, la OMG pretende alcanzar los siguientes objetivos: Proporcionar a los usuarios un lenguaje de modelado visual expresivo y utilizable para el desarrollo e intercambio de modelos significativos. Proporcionar mecanismos de extensión y especialización. Ser independiente del proceso de desarrollo y de los lenguajes de programación. Proporcionar una base formal para entender el lenguaje de modelado. Fomentar el crecimiento del mercado de las herramientas OO. Soportar conceptos de desarrollo de alto nivel como pueden ser colaboraciones, frameworks, patterns, y componentes. Integrar las mejores prácticas utilizadas hasta el momento. 5 El UML se quiere convertir en un lenguaje estándar con el que sea posible modelar todos los componentes del proceso de desarrollo de aplicaciones. Sin embargo, hay que tener en cuenta un aspecto importante del modelo: no pretende definir un modelo estándar de desarrollo, sino únicamente un lenguaje de modelado (se consideran fuera del ámbito de UML tanto los lenguajes de programación, como las herramientas y el proceso software). 4 5 http://techfico.blogspot.com/2010/06/uml-orientacion-de-objetos.html. http://alvearjofre.galeon.com/ Página 7 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 1.2. Génesis y evolución Desde que Simula 67 introdujera el concepto de clase y herencia los Lenguajes Orientados a Objetos han experimentado una rápida e intensa evolución para acercarse a la realidad que las empresas les reclama. Pero no es hasta los inicios de la década de los 90 cuando realmente existe un intento serio de normalizar a la Metodología Orientada a Objetos. El Dr. James Rumbaugh (ver figura 1.1.) en 1991 con Michael Blaha, William Premerlani, Frederick Eddy y William Lorensen desarrollan "Object Oriented Modeling and Design" introduciendo OMT (Object Modeling Technique) que él mismo define como "una metodología orientada a objetos para el desarrollo de software". Figura 1.1. Fotografía de James Roumbaugh. Tomado de http://www.ctv.es/USERS/belmont/historia.htm. El Dr. Ivar Jacobson en 1992 desarrolla el método OOSE (Object Oriented Software Engineer), donde introduce el concepto "use case". Figura 1.2. Fotografía de Ivar Jacobson. Tomado de http://www.ctv.es/USERS/belmont/historia.htm. Grady Booch (ver figura 1.3.) en 1993 crea la metodología "Booch '93". Página 8 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.3. Fotografía de Grady Booch. Tomado de http://www.ctv.es/USERS/belmont/historia.htm J. Rumbaugh y G. Booch en el año 1994 se unen en una empresa común (de objetivos y de negocio) Rational Software Corporation donde unifican sus dos métodos (los lenguajes de modelado Booch y OMT). Es entonces cuando fueron reconocidos mundialmente a la cabeza del desarrollo de metodologías orientadas a objetos. Fue entonces cuando terminaron su trabajo de unificación obteniendo el borrador de la versión 0.8 del denominado “Unified Method” en octubre de 1995. A finales de ese mismo año se une al grupo I. Jacobson, dueño de la compañía “Objetory Corporation”, aportando su método. Y los tres autores publican un documento titulado Unified Method versión 0.8 (la que se considera la primera versión del UML). Después el método unificado se reorienta hacia la definición de un lenguaje universal para el modelado de objetos, transformándose en el UML (Unified Modeling Language, for Object-Oriented Development), para obtener después, y finalmente, la versión UML 0.9 y 0.91 en junio y octubre de 1996. Como objetivos principales de la concepción de un nuevo método que unificara los mejores aspectos de sus predecesores, sus protagonistas se propusieron lo siguiente: El método debía ser capaz de modelar no sólo sistemas de software sino otro tipo de sistemas reales de la empresa, siempre utilizando los conceptos de la orientación a objetos (OO). Crear un lenguaje para modelado utilizable a la vez por máquinas y por personas. Página 9 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Establecer un acoplamiento explícito de los conceptos y los artefactos ejecutables. Manejar los problemas típicos de los sistemas complejos de misión crítica. Durante el desarrollo del UML sus autores tuvieron en cuenta los siguientes objetivos: Proporcionar una notación y semánticas suficientes para poder alcanzar una gran cantidad de aspectos del modelado contemporáneo de una forma directa y económica. Proporcionar las semánticas suficientes para alcanzar aspectos del modelado que son de esperar en un futuro, como por ejemplo aspectos relacionados con la tecnología de componentes, el cómputo distribuido, etc. Proporcionar mecanismos de extensión de forma que proyectos concretos puedan extender el meta-modelo a un coste bajo. Proporcionar mecanismos de extensión de forma que aproximaciones de modelado futuras podrían desarrollarse encima del UML. Permitir el intercambio de modelos entre una gran variedad de herramientas. Proporcionar semánticas suficientes para especificar las interfaces a bibliotecas para la compartición y el almacenamiento de componentes del modelo. Lo que se intenta es lograr con ésto es que los lenguajes que se aplican siguiendo los métodos más utilizados sigan evolucionando en conjunto y no por separado. Y además, unificar las perspectivas entre diferentes tipos de sistemas (no sólo software, sino también en el ámbito de los negocios), al aclarar las fases de desarrollo, los requerimientos de análisis, el diseño, la implementación y los conceptos internos de la orientación a objetos. 6 6 http://www.ctv.es/USERS/belmont/historia.htm Página 10 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Tras esto muchas organizaciones como Microsoft, Hewlett-Packard, Oracle, Sterling Software MCI Systemhouse, Unisys, ICON Computing, IntelliCorp, i-Logix, IBM, ObjectTime, Platinum Technology, Ptech, Taskon, Reich Technologies y Softeam, se asociaron junto con Rational Software Corporation para dar como resultado al UML 1.0. A finales de 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño orientado a objetos, publicó una petición con el propósito de un metamodelo orientado a objetos de semántica y notación estándares. El UML, en su versión 1.0, fue propuesto como una respuesta a esta petición en enero de 1997. Hubo otras cinco propuestas rivales. Durante el transcurso de 1997, los seis promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado del UML, llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997, convirtiéndose así en la notación estándar factible para el análisis y diseño orientado a objetos. El OMG llama a este documento OMG UML versión 1.1. En julio de 1998 aparece una revisión interna del UML que recoge diversos cambios editoriales, pero no técnicos. Esta versión es la que se conoce como UML 1.2. Casi un año más tarde, en junio de 1999 aparece OMG UML 1.3 con algunos cambios significativos, especialmente en lo tocante a la semántica. El OMG mejoró una edición técnica de esta especificación en el Septiembre del 2000, llamándose OMG UML 1.4. La última versión del UML es OMG UML 2.0 (Marzo 2003). 7 La notación del UML se deriva y unifica las tres metodologías de análisis y diseño orientado a objetos más extendidas: La metodología de Grady Booch para la descripción de conjuntos de objetos y sus relaciones. La técnica de modelado orientada a objetos de James Rumbaugh (OMT: Object-Modeling Technique). La aproximación de Ivar Jacobson (OOSE: Object- Oriented Software Engineering) mediante la metodología de casos de uso (use case). 7 http://repositorio.bib.upct.es/dspace/bitstream/10317/190/1/pfc1128.pdf Página 11 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML De las tres metodologías de partida, las de Booch y Rumbaugh pueden ser descritas como centradas en objetos, ya que sus aproximaciones se enfocan hacia el modelado de los objetos que componen el sistema, su relación y colaboración. Por otro lado, la metodología de Jacobson es más centrada a usuario, ya que todo en su método se deriva de los escenarios de uso. El UML es el primer método en publicar un meta-modelo en su propia notación, incluyendo la notación para la mayoría de la información de requisitos, análisis y diseño orientado a objetos. Se trata pues de un meta-modelo autoreferencial (cualquier lenguaje de modelado de propósito general debería ser capaz de modelarse a sí mismo). Figura 1.4. Historia y evolución del UML. Tomado de http://wikimej.wikispaces.com/trabajo_uml. 1.3. Importancia del lenguaje dentro de la Ingeniería del software Página 12 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Conforme aumenta la complejidad del mundo, los sistemas informáticos también crecen en complejidad. En ellos se encuentran diversas piezas de software y hardware que se comunican a grandes distancias mediante una red o de Internet, misma que esta vinculada a bases de datos que a su vez, contienen enormes cantidades de información. Si se desea crear sistemas que se involucren con este milenio ¿Cómo manejar tanta complejidad? La clave esta en organizar el proceso de diseño de tal forma que los analistas, clientes, desarrolladores y otras personas involucradas en el desarrollo de sistemas lo comprendan y convengan con él. El UML proporciona tal organización. 8 Un arquitecto no podría crear una compleja estructura como lo es un edificio de oficinas sin crear primero un anteproyecto detallado; asimismo el lector tampoco podría generar un complejo sistema en el edificio de oficinas sin un plan detallado. La idea es que así como un arquitecto le muestra su anteproyecto a la persona que lo contrató, el lector deberá mostrarle su plan de diseño al cliente. Tal plan de diseño debe ser el resultado de un cuidadoso análisis de las necesidades del cliente. La necesidad de diseños sólidos o concretos ha traído consigo la creación de una notación de diseño que los analistas, desarrolladores y clientes acepten como pauta (tal como los diagramas esquemáticos sirven como pauta para los trabajadores especializados en Electrónica). El UML es esa misma notación. 1.3.1. Necesidad de atacar a la complejidad del desarrollo del software con metodologías y herramientas actuales El UML es un lenguaje que permite la planificación, análisis, diseño y documentación de sistemas, componentes o procesos software orientados a objetos, así como también de sistemas hardware y organizaciones del mundo real. El UML es un lenguaje de modelado de objetos independiente del método 8 www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r69318.DOCX Página 13 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML que se implemente (el UML no es una notación propietaria). El objetivo del UML es la unificación de los métodos de modelado de objetos: Identificación y definición de la semántica de los conceptos fundamentales Elección de una representación gráfica cuya sintaxis sea simple, expresiva e intuitiva Las ventajas o beneficios (ver figura 1.5.) que proporciona esta metodología son; Manejar la complejidad. Modelar un sistema independientemente del lenguaje de implementación. Promover la reutilización. Figura 1.5. Ventajas o beneficios del UML. Tomado de http:// delta.cs.cinvestav.mx/~pmalvarez/softeng/curso.../modelado-uml-1.ppt. 1.4. Actividades de capítulo por realizar 1. Con la información del tema 1.2. Realiza una línea de tiempo en orden ascendente. Página 14 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 2. Buscar información más actualizada de cómo va evolucionando el UML. De preferencia busque páginas en inglés y tradúzcalas con Google Translate. 3. Desarrollar mapas conceptuales con los temas vistos en este capítulo. Página 15 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML CAPITULO II. TECNOLOGÍA DE OBJETOS (VISIÓN GENERAL DEL UML) Este capítulo es una visión general del lenguaje, Tratando acerca del modelo orientado a objetos y del modelo conceptual del UML. 2.1. El modelo orientado a objetos Un modelo captura una vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de detalle. El modelo UML de un sistema es similar a un modelo a escala de un edificio (por ejemplo) junto con la interpretación de su arquitecto. El modelo describe lo que supuestamente hará el sistema, pero no dice como implementarlo9. 2.1.1. Concepto de clase En la programación orientada a objetos, una clase es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado (atributos) y el comportamiento (operaciones) que todos los objetos de la clase comparten. Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente bastante abstracta) cosa - es el modelo de un concepto dentro de un programa de computadora. 10 2.1.2. Concepto de Atributo También llamados atributos o características, son valores que corresponden a un objeto, como color, material, cantidad, ubicación. Generalmente se conoce como la información detallada del objeto. Suponiendo que el objeto es una puerta, sus propiedades serían: la marca, tamaño, color y peso. 11. 9 http://www.monografias.com/trabajos34/ingenieria-software/ingenieria-software.shtml http://es.wikipedia.org/wiki/Clase_(inform%C3%A1tica) 11 http://es.wikipedia.org/wiki/Diagrama_de_clases 10 Página 16 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 2.1.3. Concepto de operación Comúnmente llamados métodos, son aquellas actividades o verbos que se pueden realizar con/para este objeto, como por ejemplo abrir, cerrar, buscar, cancelar, acreditar, cargar. De la misma manera que el nombre de un atributo, el nombre de una operación se escribe con minúsculas si consta de una sola palabra. Si el nombre contiene más de una palabra, cada palabra será unida a la anterior y comenzará con una letra mayúscula, a excepción de la primera palabra que comenzará en minúscula. Por ejemplo: abrirPuerta, cerrarPuerta, buscarPuerta, etc12. 2.1.4. Concepto de Objeto Los objetos son entidades que tienen un determinado estado, comportamiento (método) e identidad: El estado está compuesto de datos, será uno o varios atributos a los que se habrán asignado unos valores concretos (datos). El comportamiento está definido por los métodos o mensajes a los que sabe responder dicho objeto, es decir, qué operaciones se pueden realizar con él. La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una variable o una constante). Un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados métodos, que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos 12 Ídem. Página 17 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML como unidades indivisibles, en las que no se separa el estado y el comportamiento13. 2.2. Modelos de representación del UML Modelo de clases: Representa de una manera estática la estructura de información del sistema y la visibilidad que tiene cada una de las clases, dada por sus relaciones con las demás en el modelo. Los modelos de clases se muestran mediante los diagramas de clases y de objetos. Modelo de estados: Éste representa el conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación, junto con los cambios que permiten pasar de un estado a otro. Los modelos de estados se muestran en los diagramas de estados y de actividades. Modelo de casos de uso: Representa la funcionalidad de un sistema u otro clasificador tal como lo perciben quienes interactúan con el sistema desde el exterior (actores). Los modelos de casos de uso se muestran en los diagramas de casos de uso. Modelo de interacción: Éste representa la interacción de un conjunto de objetos en una aplicación a través del tiempo. Los modelos de interacción se muestran en los diagramas de secuencia y de colaboración. Modelo de despliegue o implementación: Éste permite modelar la configuración de los elementos de procesado en tiempo de ejecución (run-time processing elements) y de los componentes, procesos y objetos de software que viven dentro de él. Los modelos de implementación o despliegue se muestran en los diagramas de componentes y de implementación14. Los modelos son manipulados por medio de vistas que se clasifican en tres áreas: Vista Estructural 13 14 http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos http://www.dcc.uchile.cl/~psalinas/uml/modelo.html Página 18 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Vista Dinámica Vista De gestión de modelos15 2.3. Qué es un diagrama Un diagrama es una representación gráfica de una colección de elementos de modelado. La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se les conoce como modelo. El UML define nueve tipos de diagramas: Diagrama de clases: Muestra las clases (descripciones de objetos que comparten características comunes, ver figura 1.6.) que componen el sistema y cómo se relacionan entre sí. Figura 1.6. Ejemplo de un Diagrama de Clases. Tomado de http://commons.wikimedia.org/wiki/File:Diagrama_de_clases.svg. Diagrama de secuencia: Enfatiza la interacción entre los objetos y los mensajes que intercambian entre sí (ver figura 1.7.) junto con el orden temporal de los mismos. 15 http://ocw.usal.es/ensenanzas-tecnicas/.../Tema2-Modeloobjeto-1pp.pdf Página 19 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.7. Ejemplo de un Diagrama de Secuencia. Tomado de http://commons.wikimedia.org/wiki/File:CrearPais.png. Diagrama de colaboración: Igualmente, muestra la interacción entre los objetos (ver figura 1.8.) resaltando la organización estructural de los objetos en lugar del orden de los mensajes intercambiados. Figura 1.8. Ejemplo de un Diagrama de Colaboración. Tomado de http://webdocs.cs.ualberta.ca/~pfiguero/soo/uml/colaboracion01.html Página 20 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Diagrama de objetos: Muestra una serie de objetos (instancias o solicitudes de las clases, ver figura 1.9.) y sus relaciones. A diferencia de los diagramas anteriores, estos diagramas se enfocan en la perspectiva de casos reales o prototipos. Es un diagrama de instancias de las clases mostradas en el diagrama de clases. Figura 1.9. Ejemplo de un Diagrama de Objetos. Tomado de http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html. Diagrama de estados: Se utiliza para analizar los cambios de estado de los objetos. Muestra los estados, eventos, transiciones y actividades de los diferentes objetos (ver figura 1.19.). Son útiles en sistemas que reaccionen a eventos. Figura 1.10. Ejemplo de un Diagrama de Estados. Tomado de http://es.wikipedia.org/wiki/Archivo:Diagrama_de_Estados_State.jpg. Diagrama de actividades: Es un caso especial del diagrama de estados, simplifica el diagrama de estados modelando el comportamiento mediante flujos de actividades. Muestra el flujo entre los objetos (ver figura 1.11.). Se utilizan para modelar el funcionamiento del sistema y el flujo de control entre objetos. Página 21 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.11. Ejemplo de un Diagrama de Actividades. Tomado de http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html. Diagrama de casos de uso: Modela la funcionalidad del sistema agrupándola en descripciones de acciones ejecutadas por un sistema para obtener un resultado (ver figura 1.12.). Se utiliza para entender el uso del sistema. Figura 1.12. Ejemplo de un Diagrama de casos de Uso. Tomado de http://docs.kde.org/stable/es/kdesdk/umbrello/uml-elements.html. Diagrama de componentes: Muestra la organización y las dependencias entre un conjunto de componentes (ver figura 1.13.). Se usan para agrupar clases en componentes o módulos. Página 22 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.13. Ejemplo de un Diagrama de Componentes. Tomado de http://webdocs.cs.ualberta.ca/~pfiguero/soo/uml/implementacion01.html. Diagrama de despliegue o implementación: Muestra los dispositivos que se encuentran en un sistema y su distribución en el mismo (ver figura 1.14.). Se utiliza para identificar Sistemas de Cooperación: Durante el proceso de desarrollo el equipo averiguará de qué sistemas dependerá el nuevo sistema y que otros sistemas dependerán de él16. Figura 1.14. Ejemplo de un Diagrama de Implementación o Despliegue. Tomado de http://sistemas3jam.blogspot.mx/2011/05/diagrama-de-estructuras-5-diagrama-de.html 2.4. Modelado de Objetos 16 http://www.monografias.com/trabajos5/insof/insof.shtml Página 23 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Un modelo es una simplificación de la realidad. Un modelo proporciona los planos de un sistema. Los modelos pueden involucrar planos detallados, así como planos más generales que ofrecen una visión global del sistema en consideración. Un buen modelo incluye aquellos elementos que tienen una gran influencia y omite aquellos elementos menores que no son relevantes para el nivel de abstracción dado. Todo sistema puede ser descrito desde diferentes perspectivas utilizando diferentes modelos, y cada modelo es por tanto una abstracción semánticamente cerrada del sistema. Un modelo puede ser estructural, destacando la organización del sistema, o puede ser de comportamiento, resaltando su dinámica. ¿Por qué modelamos? Hay una razón fundamental: “Construimos modelos para comprender mejor el sistema que estamos desarrollando”17 A través del modelado, conseguimos 4 objetivos: Los modelos nos ayudan a visualizar cómo es o queremos que sea un sistema. Los modelos nos permiten especificar la estructura o el comportamiento de un sistema. Los modelos nos proporcionan plantillas que nos guían en la construcción de un sistema. Los modelos documentan las decisiones que hemos adoptado. El modelado no es sólo para los grandes sistemas. Sin embargo, es absolutamente cierto que, cuanto más grande y complejo es el sistema, el modelado se hace más importante, por una simple razón: “Construimos modelos de sistemas complejos por que no podemos comprender el sistema en su totalidad.” Hay límites a la capacidad humana de comprender la complejidad. A través del modelado, se reduce el problema que se esta estudiando, centrándose sólo en un aspecto a la vez. Éste es, esencialmente, el enfoque “divide y 17 http://www.monografias.com/trabajos82/lenguaje-uml-importancia-modelar/lenguaje-umlimportancia-modelar.shtml Página 24 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML vencerás” que planteó Edsger Dijkstra años atrás: acometer un problema difícil dividiéndolo en una serie de subproblemas más pequeños que se pueden resolver. Además, a través del modelado, se incrementa la mente humana. Un modelo escogido adecuadamente puede permitir al modelador trabajar a mayores niveles de abstracción. Entonces pues, el término modelado expresa la descomposición en elementos simples más fáciles de comprender. Las partes en que se puede clasificar al modelado son: Descripción del problema (análisis). Descripción de la solución (diseño). Descripción del desarrollo de la solución (implementación). El modelado de objetos consiste en la descripción de los objetos en términos de sus propiedades y de sus relaciones. El modelado de objetos es una técnica utilizada en todas las ingenierías. Como tal, la ingeniería del software debe basarse en el modelado de objetos como una parte central de todas las actividades que conducen a la producción de software de calidad18. 2.5. Jerarquía de modelos La arquitectura del UML esta basada en cuatro capas, definida a fin de cumplir con la especificación Meta Object Facility del OMG, estas capas son: Meta-metamodelo: define el lenguaje para especificar metamodelos. Metamodelo: define el lenguaje para especificar modelos. Modelo: define el lenguaje para describir un dominio de información. Objetos de usuario: define un dominio de información específico. 18 http://www.oocities.org/es/avrrinf/tabd/Foro/Foro_UML.htm Página 25 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Lo anterior, de una manera más simplificada, quedaría de la siguiente manera: Los modelos de objetos del usuario sirven como fundamento a otros modelos y como base para los metamodelos que describen las formas que los modelos pueden tomar (estandarización). La misma idea puede aplicarse de nuevo en el nivel de los Metamodelos para construir meta metamodelos que describan a los metamodelos. El resultado es una jerarquía de modelos descrita por las capas anteriormente citadas que se muestra en la sig. figura19: Figura 1.15. Arquitectura del UML (jerarquía de capas). Tomado de http://www.itlalaguna.edu.mx/Acad/Carreras/sistemas/Analisis%20y%20dise%C3%B1o%20ori entado%20a%20objetos/semant.pdf. 2.6. El modelo conceptual del UML 19 http://www.itlalaguna.edu.mx/Acad/Carreras/sistemas/Analisis%20y%20dise%C3%B1o%20orie ntado%20a%20objetos/semant.pdf Página 26 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Para comprender a la metodología del UML, se necesita adquirir un modelo conceptual del lenguaje, esto requiere aprender tres elementos principales: Los Bloques Básicos de Construcción del UML, las Reglas que indican cómo combinar a estos bloques y algunos mecanismos comunes que se aplican a través del lenguaje20. 2.6.1. Bloques Básicos de Construcción del lenguaje El vocabulario del UML incluye tres clases de Bloques de Construcción: 1) Elementos, 1) Relaciones y 3) Diagramas (que se estudiarán más a fondo en el capítulo II). Los elementos son abstracciones, las relaciones ligan estos elementos entre sí y los diagramas agrupan colecciones interesantes de elementos. 2.6.1.1. Elementos del lenguaje Hay cuatro tipos de elementos: 1) Elementos Estructurales, 2) Elementos de Comportamiento, 3) Elementos de Agrupación y 4) Elementos de Anotación. Elementos Estructurales: son los nombres de los modelos UML. En su mayoría son las partes estáticas de un modelo, y representan cosas que son conceptuales o materiales. Elementos de Comportamiento: Son las partes dinámicas de los modelos UML. Éstos son los verbos de un modelo, y representan comportamiento en el tiempo y el espacio. Elementos de Agrupación: Son las partes organizativas de los modelos UML. Éstos son las cajas en las que puede descomponerse un modelo. Elementos de Anotación: son las partes explicativas de los modelos UML. Son comentarios que se pueden aplicar para describir, clarificar y hacer observaciones sobre cualquier elemento de un modelo. 20 http://es.scribd.com/doc/57494332/12/Modelo-conceptual-de-UML Página 27 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Estos elementos son los bloques de construcción orientados a objetos del UML. Se utilizan para describir modelos bien formados21. 2.6.1.1.1. Elementos estructurales En total, hay siete tipos de elementos estructurales: 1. Clase: una clase es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica. Una clase implementa una o más interfaces. Gráficamente, una clase se representa como un rectángulo, que normalmente incluye su nombre, atributos y operaciones. Ver figura 1.16: Figura 1.16. Clase. Tomado del libro El lenguaje de modelado unificado, 15p. 2. Interfaz: una interfaz es una colección de operaciones que especifican un servicio de una clase o componente. Por ende, una interfaz describe el comportamiento visible externamente de ese elemento. Una interfaz puede representar el comportamiento de una clase o componente o sólo una parte de ese comportamiento. Una interfaz define un conjunto de especificaciones de operaciones, pero nunca un conjunto de implementaciones de operaciones. Gráficamente, una interfaz se representa como un círculo junto con su nombre. Ver figura 1.17: 21 Idem. Página 28 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.17. Interfaz. Tomado del libro El lenguaje de modelado unificado, 16p. 3. Colaboración: define una interacción y es una sociedad de roles y otros elementos que colaboran para proporcionar un comportamiento cooperativo mayor que la suma de los comportamientos de sus elementos. Por lo tanto, las colaboraciones tienen dimensión tanto estructural como de comportamiento. Una clase dada puede participar en varias colaboraciones. Estas colaboraciones representan, pues, la implementación de patrones que forman un sistema. Gráficamente, una colaboración se representa como una elipse de borde discontinuo, incluyendo normalmente su nombre. Ver figura 1.18: Figura 1.18. Colaboración. Tomado del libro El lenguaje de modelado unificado, 16p. 4. Caso de uso: Un caso de uso es una descripción de un conjunto de secuencias de acciones que un sistema ejecuta y que produce un resultado observable de interés para un actor particular. Se utiliza para estructurar los aspectos de comportamiento en un modelo. Un caso de uso es realizado por una colaboración. Gráficamente se representa como Página 29 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML una elipse de borde continuo, incluyendo normalmente sólo su nombre 22. Ver figura 1.19: Figura 1.19. Caso de uso. Tomado del libro El lenguaje de modelado unificado, 16p. 5. Clase Activa: Es una clase cuyos objetos tienen uno o más procesos o hilos de ejecución, y por lo tanto pueden dar origen a actividades de control. Es igual que una clase, excepto en que sus objetos representan elementos cuyo comportamiento es concurrente con otros elementos. Gráficamente se representa como una clase, pero con líneas más gruesas, incluyendo normalmente su nombre, atributos y operaciones. Ver figura 1.20: Figura 1.20. Clase activa. Tomado del libro El lenguaje de modelado unificado, 17p. 6. Componente: Un componente es una parte física y reemplazable de un sistema que conforma a un conjunto de interfaces y proporciona la implementación de dicho conjunto. Éste representa típicamente el empaquetamiento físico de diferentes elementos lógicos, como clases, interfaces y colaboraciones. Gráficamente se representa como un 22 Idem 21. Página 30 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML rectángulo con pestañas, incluyendo normalmente su nombre. Ver siguiente figura: Figura 1.21. Componente. Tomado del libro El lenguaje de modelado unificado, 17p. 7. Nodo: Es un elemento físico que existe en tiempo de ejecución y representa un recurso computacional, que por lo general dispone de algo de memoria y, con frecuencia, capacidad de procesamiento. Un conjunto de componentes puede residir en un nodo y puede también migrar de un nodo a otro. Gráficamente un nodo se representa como un cubo, incluyendo normalmente su nombre23. Ver figura: Figura 1.22. Nodo. Tomado del libro El lenguaje de modelado unificado, 18p. 2.6.1.1.2. Elementos de comportamiento Hay dos tipos principales de elementos de comportamiento: 23 Idem 21. Página 31 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 1. Interacción: Es un comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto particular, para alcanzar un propósito específico. El comportamiento de una sociedad de objetos o de una operación individual puede especificarse con una interacción. Una interacción involucra muchos otros elementos, incluyendo mensajes, secuencias de acción (el comportamiento invocado por un mensaje) y enlaces (conexiones entre objetos). Gráficamente un mensaje se muestra con una línea dirigida, incluyendo casi siempre el nombre de su operación24. Ver figura 1.23: Figura 1.23. Mensaje. Tomado del libro El lenguaje de modelado unificado, 18p. 2. Máquina de estados: Es un comportamiento que especifica la secuencia de estados por las que pasa un objeto o una interacción durante su vida en respuesta a eventos, junto con sus reacciones a estos eventos. El comportamiento de una clase individual o una colaboración de clases puede especificarse con una máquina de estados. Una máquina de estados involucra a otros elementos, incluyendo a estados, transiciones (el flujo de un estado a otro), eventos (que disparan una transición) y actividades (la respuesta a una transición). Gráficamente un estado se representa como un rectángulo de esquinas redondeadas, incluyendo normalmente su nombre y sus subastados (si los tiene). Ver figura 1.24: 24 Idem 21. Página 32 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.24. Estado. Tomado del libro El lenguaje de modelado unificado, 18p. 2.6.1.1.3. Elementos de agrupación Hay un solo elemento de agrupación principal, estos son los paquetes. Un paquete es un mecanismo de propósito general para organizar elementos en grupos. Los elementos estructurales, los elementos de comportamiento, e incluso otros elementos pueden incluirse en un paquete. Al contrario de los componentes (que existen en tiempo de ejecución) el paquete es puramente conceptual (sólo existe en tiempo de desarrollo). Gráficamente se visualiza como una carpeta, incluyendo normalmente su nombre y, a veces, su contenido25. Ver figura 1.25: Figura 1.25. Paquete. Tomado del libro El lenguaje de modelado unificado, 19p. 2.6.1.1.4. Elementos de anotación Hay un tipo de elemento de anotación principal llamado Nota. Una nota es simplemente un símbolo para mostrar restricciones y comentarios junto a un 25 Idem 21. Página 33 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML elemento o una colección de elementos. Gráficamente se representa como un rectángulo con una esquina doblada, junto con un comentario textual o gráfico. Ver figura 1.26: Figura 1.26. Nota. Tomado del libro El lenguaje de modelado unificado, 19p. 2.6.1.2. Relaciones en el UML Hay cuatro tipos de relaciones en el lenguaje: 1. Dependencia: Es una relación semántica entre dos elementos, en la cual un cambio a un elemento (el elemento independiente) puede afectar a la semántica del otro elemento (el elemento dependiente). Gráficamente se representa como una línea discontinua, posiblemente dirigida, que incluye a veces una etiqueta. Ver figura 1.27: Figura 1.27. Dependencia. Tomado del libro El lenguaje de modelado unificado, 20p. 2. Asociación: Es una relación estructural que describe un conjunto de enlaces. Los cuales son conexiones entre objetos. La agregación es un tipo especial de asociación, que representa una relación estructural entre un todo y sus partes. Gráficamente, una asociación se representa con una línea continua, posiblemente dirigida, que a veces incluye una etiqueta, y a menudo incluye otros adornos, como la multiplicidad y los nombre de rol. En el capítulo II se explicará con más detalle este concepto. Ver figura 1.28: Página 34 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.28. Asociación. Tomado del libro El lenguaje de modelado unificado, 20p. 3. Generalización: Es una relación de especialización/generalización en la cual los objetos del elemento especializado (el hijo) pueden sustituir a los objetos del elemento general (el padre). De esta forma, el hijo comparte la estructura y el comportamiento del padre. Gráficamente este tipo de relación se representa como una línea continua con una punta de flecha vacía apuntando al padre26. Ver figura 1.29: Figura 1.29. Generalización. Tomado del libro El lenguaje de modelado unificado, 20p. 4. Realización: Es una relación semántica entre clasificadores, en donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá. Se pueden encontrar relaciones de realización en dos sitios: entre interfaces y las clases y los componentes que las realizan, y entre los casos de uso y las colaboraciones que los realizan. Gráficamente se representa como una mezcla entre una generalización y una relación de dependencia. Ver figura 1.30: Figura 1.30. Realización. Tomado del libro El lenguaje de modelado unificado, 20p. 2.6.2. Reglas del UML 26 Idem 21. Página 35 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Los bloques de construcción no pueden simplemente combinarse de cualquier manera. Como cualquier lenguaje, el UML tiene un número de reglas que especifican a qué debe parecerse un modelo bien formado. Un modelo bien formado es aquél que es semánticamente autoconsistente y está en armonía con todos sus modelos relacionados. El UML tiene reglas semánticas para: Nombres: Cómo llamar a los elementos, relaciones y diagramas. Alcance: el contexto que da un significado específico a un nombre. Visibilidad: Cómo se pueden ver y utilizar esos nombres por otros. Integridad: Cómo se relacionan apropiada y consistentemente unos elementos con otros. Ejecución: Qué significa ejecutar y simular un modelo dinámico. Las reglas del lenguaje estimulan (pero no obligan) a considerar las cuestiones más importantes de análisis, diseño e implementación que llevan a sistemas a convertirse en bien formados con el paso del tiempo. 2.6.3. Mecanismos comunes en el lenguaje Un edificio se hace más simple y más armonioso al ajustarse a un patrón de características comunes. Una casa puede construirse de estilo victoriano o francés utilizando ciertos patrones arquitectónicos que definen esos estilos. Lo mismo es cierto en el UML. Éste se simplifica mediante la presencia de cuatro mecanismos comunes que se aplican de forma consistente a través del lenguaje: Especificaciones: el UML es algo más que un lenguaje gráfico. Detrás de cada elemento de su notación gráfica hay una especificación que proporciona una explicación textual de la sintaxis y la semántica de ese bloque de construcción. La notación gráfica se utiliza para visualizar un sistema, mientras que la especificación del UML se utiliza para enunciar los detalles del sistema. Entonces, pues, las especificaciones del UML Página 36 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML proporcionan una base semántica que incluye a todos los elementos de todos los modelos de un sistema, y cada elemento esta relacionado con otros de manera consistente. Los diagramas del UML son así, entonces, simples proyecciones visuales de esa base, y cada diagrama revela un aspecto específico interesante del sistema. Adornos: La especificación de una clase puede incluir otros detalles, tales como si es abstracta o la visibilidad de sus atributos y operaciones. Muchos de estos detalles se pueden incluir como adornos gráficos o textuales en la notación rectangular básica de la clase. Por ejemplo, la siguiente figura muestra una clase con adornos que indican que es una clase abstracta con dos operaciones públicas (símbolo +), una operación protegida (símbolo #) y la otra privada (símbolo -). Ver figura 1.31: Figura 1.31. Adornos. Tomado del libro El lenguaje de modelado unificado, 24p. + public visibility (visibilidad pública) # protected visibility (visibilidad protegida) - private visibility (visibilidad privada) Todos los elementos en la notación del UML comienzan con un símbolo básico, al cual pueden añadirse una variedad de adornos específicos de ese símbolo. Página 37 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Divisiones comunes: Al modelar sistemas orientados a objetos, el mundo puede dividirse en un par de formas. Primero esta la división entre clase y objeto. Una clase es una abstracción y un objeto es una manifestación concreta de sea abstracción. En el UML se pueden modelar tanto clases como objetos. Ver figura 1.32: Figura 1.32. Clase y objetos. Tomado del libro El lenguaje de modelado unificado, 24p. En la figura 1.32 hay una clase llamada Cliente, junto con tres objetos: Juan (del que se indica explícitamente que es un objeto Cliente), :cliente (un objeto cliente anónimo) y Elisa ( el cual se ha etiquetado en su especificación como un objeto de la clase Cliente, aunque no se muestra de forma explícita. En segundo lugar tenemos la separación entre interfaz e implementación. Una interfaz declara un contrato y una implementación representa la realización concreta de ese contrato, responsable de hacer efectiva, de forma fidedigna, la semántica completa de la interfaz. En el UML se pueden modelar las interfaces y sus implementaciones. En la siguiente figura (fig. 1.33) hay un componente llamado AsistenteOrtografico.dll que implementa dos interfaces: InterfDesconocida e InterfOrtografia. Página 38 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.33. Interfaces y componentes. Tomado del libro El lenguaje de modelado unificado, 25p. Mecanismos de extensibilidad: el UML proporciona un lenguaje estándar para escribir planos software, pero no es posible que un lenguaje cerrado sea siempre suficiente para expresar todos los matices posibles de todos los modelos en todos los dominios y en todos los momentos. Por esta razón el UML es abierto-cerrado, siendo posible extender el lenguaje de manera controlada. Los mecanismos de extensión del UML incluyen: Estereotipos: Éstos extienden el vocabulario del lenguaje, permitiendo crear nuevos tipos de bloques de construcción que deriven de los existentes, pero que sean específicos a un problema. Como en la siguiente figura (fig. 1.34), donde la clase Overflow tiene un estereotipo apropiado (<<exception>>). Figura 1.34. Mecanismos comunes. Tomado del libro El lenguaje de modelado unificado, 25p. Valores etiquetados: Extienden las propiedades de un bloque de construcción del UML, permitiendo añadir nueva información en la especificación de ese elemento. Por ejemplo: Un producto que atraviesa por muchas versiones a lo largo del tiempo a menudo se querrá registrar la versión y el autor de ciertas abstracciones críticas. La versión y el autor pueden ser añadidos a cualquier bloque de construcción, como una clase, introduciendo nuevos valores etiquetados en el bloque de construcción. En la figura anterior la clase ColaEventos se extiende indicando explícitamente su versión y su autor. Página 39 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Restricciones: Extiende la semántica de un bloque de construcción del UML, permitiendo añadir nuevas reglas o modificar las existentes. Por ejemplo: Se desea restringir la clase ColaEventos para que todas las adiciones se hiciesen en orden. Se puede añadir una restricción ({ordenado}) que indique explícitamente esto para la operación Añadir(). En conjunto estos tres mecanismos de extensibilidad permiten configurar y extender al UML para las necesidades de un proyecto. Estos mecanismos también permiten al lenguaje adaptarse a nuevas tecnologías de software, como la probable aparición de lenguajes de programación distribuida más potentes27. 2.7. Ejercicios de repaso 1. Realizar un resumen con la información anterior. 2. Efectuar una síntesis con el contenido de los apartados anteriores y la información del resumen anterior. 3. Crear mapas conceptuales de los diferentes temas vistos en este capítulo. 4. Crear un cuestionario con respuestas contestadas. 27 Idem 21. Página 40 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML CAPITULO III. METODOLOGÍAS CLÁSICAS Y CONTEMPORÁNEAS, Y EL PLAN DE TRABAJO CON BASE EN RUP Este capítulo trata acerca de las metodologías Clásicas y contemporáneas utilizadas dentro de la Ingeniería del Software, y un plan de trabajo basado en la Metodología RUP (Rational Unified Process). 3.1. La metodología de desarrollo tradicional En Ingeniería del software la metodología en cascada, también llamado modelo en cascada o clásico, es el enfoque metodológico que ordena rigurosamente las etapas del ciclo de vida del software, de forma tal que el inicio de cada etapa debe esperar a la finalización de la inmediatamente anterior. Un ejemplo de una metodología de desarrollo en cascada es: 1. Análisis de requisitos 2. Diseño del Sistema 3. Diseño del Programa 4. Codificación 5. Pruebas 6. Implantación 7. Mantenimiento De esta forma, cualquier error de diseño detectado en la etapa de prueba conduce necesariamente al rediseño y nueva programación del código afectado, aumentando los costes del desarrollo. La palabra cascada sugiere, mediante la metáfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio en las fases más avanzadas de un proyecto. Si bien ha sido ampliamente criticado desde el ámbito académico y la industria, sigue siendo el paradigma más seguido al día de hoy. Sin embargo, esta idea demasiado simplificada del proceso de desarrollo podrá darle una idea de que las etapas deberán sucederse en lapsos claramente definidos (una después de la otra). Esta forma de metodología tiene algunos puntos inquietantes: por un lado, tiende a la realización de tareas individuales; si un analista no tiene contacto con Página 41 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML un diseñador, y éste no tiene contacto con un desarrollador, existe la posibilidad de que los tres miembros rara vez trabajen juntos para compartir puntos de vista importantes. Otro problema con esta metodología es que reduce en impacto de la comprensión obtenida en el proyecto; si el proyecto no puede retroceder y volver a los primeros estados, es posible que las ideas desarrolladas no sean utilizadas (intentar introducir con calzador nuevos puntos de vista durante el desarrollo es, cuando menos, bastante difícil). Esta metodología antigua también fomenta otro problema: es común el caso de que los partidarios a la metodología en cascada reparten el tiempo del proyecto en la codificación. El verdadero efecto es que se quita un tiempo valioso al análisis y diseño28. 3.2. Nuevas metodologías actuales. 3.2.1. Metodología RAD Rapid application development (RAD), es un proceso de desarrollo de software (Software Development Process) desarrollado inicialmente por James Martin en 1980. El método comprende el desarrollo interactivo, Guías para la Ingeniería de Aplicaciones Rápidas (GRAPPLE [Guide for Rapid Aplications Production Process to Level Enginering]), la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución. Hoy en día se suele utilizar para referirnos al desarrollo rápido de GUIs tal como Glade, o IDEs de desarrollo completas como Delphi, Foxpro o Anjuta29. 28 29 http://es.wikipedia.org/wiki/Desarrollo_en_cascada Schmuller, Joseph, Aprendiendo Lenguaje de Modelado Unificado en 24 horas, 211 p. Página 42 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 3.2.1.1. Fases de la metodología RAD Recopilación necesidades Análisis Diseño Desarrollo Distribución 3.2.1.1.1. Fase 1. Recopilación de necesidades Descubrir los procesos de los negocios – Entrevista al cliente y a personas con el conocimiento de los procesos (sesiones JAD) – Obtener un vocabulario de trabajo con terminología de la empresa – Observar los procesos directamente – Estudiar los resultados que arroja el sistema manual o anterior – Obtener como producto(s) diagrama(s) de casos de uso y diagrama(s) de actividades de los procesos de negocios Realizar un análisis de dominio – Comprender el dominio del cliente • Entrevistar nuevamente al cliente para comprender las entidades del dominio (sesiones JAD. Se define en el tema 3.2.1.2.) – Obtener como producto un diagrama de clases de alto nivel Identificar sistemas cooperativos Página 43 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML – Descubrir de qué sistemas depende el anterior y cuáles dependerán del nuevo, – Obtener como productos un diagrama de colaboración y un diagrama de distribución. Descubrir las necesidades del sistema – Realizar una sesión JAD reuniendo al cliente y a los usuarios potenciales del nuevo sistema, junto con el equipo de trabajo, para saber que esperan que haga el sistema – Refinar el diagrama de clases anterior – Obtener como producto un diagrama de paquetes Presentar resultados al cliente 3.2.1.1.2. Fase 2. Análisis Comprender el uso del sistema – Analizar los casos de uso de alto nivel e inferiores para descubrir actores (del diagrama de paquetes anterior), – Obtener como producto un conjunto de diagramas de casos de uso que muestren los actores y dependencias estereotipadas entre los casos de uso (DCU de sistema). Depurar el diagrama de clases Definir la comunicación entre objetos – Definir la forma en que los objetos se comunican – Desarrollar un conjunto de diagramas de secuencias y de colaboraciones para delinear la comunicación Analizar la integración con diagramas de colaboración Página 44 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML – Descubrir detalles de la integración con los sistemas cooperativos – Determinar la arquitectura (física y lógica) de bases de datos – Obtener como productos diagramas de componentes y diagramas de distribución detallados. 3.2.1.1.3. Fase 3. Diseño Desarrollo y depuración de los diagramas de clases y de objetos Desarrollo de diagramas de componentes depurados Planeación para la distribución – Depurar el diagrama de distribución de la etapa anterior Diseño y prototipos de la(s) interfaz (ces) de usuario 3.2.1.2. ¿Qué es una sesión JAD? La técnica denominada JAD (Joint Application Development, Desarrollo Conjunto de Aplicaciones), desarrollada por IBM en 1977, es una alternativa a las entrevistas individuales que se desarrolla a lo largo de un conjunto de reuniones en grupo durante un periodo de 2 a 4 días. En estas reuniones se ayuda a los clientes y usuarios a formular problemas y explorar posibles soluciones, involucrándolos y haciéndolos sentirse partícipes del desarrollo. Esta técnica se base en cuatro principios: dinámica de grupo, el uso de ayudas visuales para mejorar la comunicación (diagramas, transparencias, multimedia, herramientas CASE, etc.), mantener un proceso organizado y racional y una filosofía de documentación WYSIWYG (What You See Is What You Get, lo que se ve es lo que se obtiene), por la que durante las reuniones se trabaja directamente sobre los documentos a generar. Página 45 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML El JAD tiene dos grandes pasos, el JAD/Plan cuyo objetivo es elicitar y especificar requisitos, y el JAD/Design, en el que se aborda el diseño del software. En este documento sólo se verá con detalle el primero de ellos. En comparación con las entrevistas individuales, presenta las siguientes ventajas: • Ahorra tiempo al evitar que las opiniones de los clientes se contrasten por separado. • Todo el grupo, incluyendo los clientes y los futuros usuarios, revisa la documentación generada, no sólo los ingenieros de requisitos. • Implica más a los clientes y usuarios en el desarrollo30. 3.2.2. Modelos de desarrollo evolutivos El software evoluciona con el tiempo. Los requisitos del usuario y del producto suelen cambiar conforme se desarrolla el mismo. Las fechas de mercado y la competencia hacen que no sea posible esperar a poner en el mercado un producto absolutamente completo, por lo que se debe introducir una versión funcional limitada de alguna forma para aliviar las presiones competitivas. Los evolutivos son modelos iterativos, permiten desarrollar versiones cada vez más completas y complejas, hasta llegar al objetivo final deseado; incluso evolucionar más allá, durante la fase de operación. Los modelos «iterativo incremental» y «espiral» (entre otros) son dos de los más conocidos y utilizados del tipo evolutivo 31. 3.2.2.1. Modelo iterativo incremental 30 31 http://www.infor.uva.es/~mlaguna/is1/materiales/metodologia_elicitacion.pdf http://es.wikipedia.org/wiki/Software Página 46 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML En términos generales, podemos distinguir, los pasos generales que sigue el proceso de desarrollo de un producto software. En el modelo de ciclo de vida seleccionado, se identifican claramente dichos pasos. La Descripción del Sistema es esencial para especificar y confeccionar los distintos incrementos hasta llegar al Producto global y final. Las actividades concurrentes (Especificación, Desarrollo y Validación) sintetizan el desarrollo pormenorizado de los incrementos, que se hará posteriormente. Ver figura 1.35: Figura 1.35. Modelo iterativo incremental 1. Tomado de http://es.wikipedia.org/wiki/Software. El incremental es un modelo de tipo evolutivo que está basado en varios ciclos Cascada realimentados aplicados repetidamente, con una filosofía iterativa. En la siguiente figura (fig. 1.36) se muestra un refino del diagrama previo, bajo un esquema temporal, para obtener finalmente el esquema del Modelo de ciclo de vida Iterativo Incremental, con sus actividades genéricas asociadas. Aquí se observa claramente cada ciclo cascada que es aplicado para la obtención de un incremento; estos últimos se van integrando para obtener el producto final completo. Cada incremento es un ciclo Cascada Realimentado, aunque, por simplicidad. Página 47 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.36. Modelo iterativo incremental 2. Tomado de http://es.wikipedia.org/wiki/Software. La figura es sólo esquemática, un incremento no necesariamente se iniciará durante la fase de diseño del anterior, puede ser posterior (incluso antes), en cualquier tiempo de la etapa previa. Bajo este modelo se entrega software «por partes funcionales más pequeñas», pero reutilizables, llamadas incrementos. En general cada incremento se construye sobre aquel que ya fue entregado. Se aplican secuencias Cascada en forma escalonada, mientras progresa el tiempo calendario. Cada secuencia lineal o Cascada produce un incremento y a menudo el primer incremento es un sistema básico, con muchas funciones suplementarias (conocidas o no) sin entregar32. El cliente utiliza inicialmente ese sistema básico intertanto, el resultado de su uso y evaluación puede aportar al plan para el desarrollo del/los siguientes incrementos (o versiones). Además también aportan a ese plan otros factores, como lo es la priorización (mayor o menor urgencia en la necesidad de cada incremento) y la dependencia entre incrementos (o independencia). 32 Idem. Página 48 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Luego de cada integración se entrega un producto con mayor funcionalidad que el previo. El proceso se repite hasta alcanzar el software final completo. Siendo iterativo, con el modelo incremental se entrega un producto parcial pero completamente operacional en cada incremento, y no una parte que sea usada para reajustar los requerimientos (como si ocurre en el modelo de construcción de prototipos). El enfoque incremental resulta muy útil con baja dotación de personal para el desarrollo; también si no hay disponible fecha límite del proyecto por lo que se entregan versiones incompletas pero que proporcionan al usuario funcionalidad básica (y cada vez mayor). También es un modelo útil a los fines de evaluación. El Iterativo Incremental es un modelo del tipo evolutivo, es decir donde se permiten y esperan probables cambios en los requisitos en tiempo de desarrollo; se admite cierto margen para que el software pueda evolucionar. Aplicable cuando los requisitos son medianamente bien conocidos pero no son completamente estáticos y definidos, cuestión esa que si es indispensable para poder utilizar un modelo Cascada. El modelo es aconsejable para el desarrollo de software en el cual se observe, en su etapa inicial de análisis, que posee áreas bastante bien definidas a cubrir, con suficiente independencia como para ser desarrolladas en etapas sucesivas. Tales áreas a cubrir suelen tener distintos grados de apremio por lo cual las mismas se deben priorizar en un análisis previo, es decir, definir cual será la primera, la segunda, y así sucesivamente; esto se conoce como «definición de los incrementos» con base en priorización. Pueden no existir prioridades funcionales por parte del cliente, pero el desarrollador debe fijarlas de todos modos y con algún criterio, ya que basándose en ellas se desarrollarán y entregarán los distintos incrementos. El hecho de que existan incrementos funcionales del software lleva inmediatamente a pensar en un esquema de desarrollo modular, por tanto este modelo facilita tal paradigma de diseño. Página 49 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML En resumen, un modelo incremental lleva a pensar en un desarrollo modular, con entregas parciales del producto software denominados «incrementos» del sistema, que son escogidos según prioridades predefinidas de algún modo. El modelo permite una implementación con refinamientos sucesivos (ampliación o mejora). Con cada incremento se agrega nueva funcionalidad o se cubren nuevos requisitos o bien se mejora la versión previamente implementada del producto software 33. 3.2.2.2. Modelo en espiral El modelo espiral fue propuesto inicialmente por Barry Boehm. Es un modelo evolutivo que conjuga la naturaleza iterativa del Modelo de Prototipos o Modelo MCP con los aspectos controlados y sistemáticos del Modelo Cascada. Proporciona potencial para desarrollo rápido de versiones incrementales. En el modelo Espiral el software se construye en una serie de versiones incrementales. En las primeras iteraciones la versión incremental podría ser un modelo en papel o bien un prototipo. En las últimas iteraciones se producen versiones cada vez más completas del sistema diseñado. Ver figura 1.37: Figura 1.37. Modelo en espiral. Tomado de http://es.wikipedia.org/wiki/Software. 33 Idem 31. Página 50 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML El modelo se divide en un número de Actividades de marco de trabajo, llamadas «regiones de tareas». En general existen entre tres y seis regiones de tareas (hay variantes del modelo)34. Las regiones definidas en el modelo de la figura son: Región 1. Tareas requeridas para establecer la comunicación entre el cliente y el desarrollador. Región 2. Tareas inherentes a la definición de los recursos, tiempo y otra información relacionada con el proyecto. Región 3. Tareas necesarias para evaluar los riesgos técnicos y de gestión del proyecto. Región 4. Tareas para construir una o más representaciones de la aplicación software. Región 5. Tareas para construir la aplicación, instalarla, probarla y proporcionar soporte al usuario o cliente (Ej. documentación y práctica). Región 6. Tareas para obtener la reacción del cliente, según la evaluación de lo creado e instalado en los ciclos anteriores. Desventajas importantes: Requiere mucha experiencia y habilidad para la evaluación de los riesgos, lo cual es requisito para el éxito del proyecto. Es difícil convencer a los grandes clientes que se podrá controlar este enfoque evolutivo. Este modelo no se ha usado tanto, como el Cascada (Incremental) o MCP, por lo que no se tiene bien medida su eficacia, es un paradigma relativamente nuevo y difícil de implementar y controlar. 34 http://es.wikipedia.org/wiki/Desarrollo_en_espiral Página 51 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 3.2.3. Rational Unified Process Rational Unified Process (RUP) es un modelo de proceso iterativo de desarrollo de software, originalmente desarrollado por Rational Software, y ahora disponible desde IBM. RUP tiene un ciclo de vida que consiste de cuatro fases: Concepción, Elaboración, Construcción y Transición. Estás fases permiten que el proceso sea presentado a un alto nivel en una forma similar a como se presentaría un proyecto en cascada, aunque en esencia la clave para el proceso yace en las iteraciones de desarrollo que se encuentran dentro de cada fase. Además, cada fase tiene un objetivo clave y un hito al final que denota el objetivo a ser alcanzado. Dentro de cada iteración las tareas son categorizadas en nueve disciplinas, de las cuales seis son disciplinas de ingeniería y tres son disciplinas de soporte. Las disciplinas de ingeniería son: Modelado de Negocio, Requerimientos, Análisis y Diseño, Implementación, Pruebas y Deployment. Las disciplinas de soporte son: Gestión de cambios y configuraciones, Gestión de proyecto y Entorno35. RUP maneja 6 principios claves: 1. Adaptación del proceso. El proceso debe adaptarse a las necesidades propias del proyecto: regulaciones, alcance, etc. 2. Balancear prioridades. Debe encontrarse un balance que satisfaga las expectativas de los diferentes inversores. 3. Colaboración entre equipos. Debe haber una comunicación fluida entre los equipos de desarrollo para coordinar requerimientos, planes, resultados, etc. 4. Demostrar valor iterativamente. Los proyectos se analizan en etapas iteradas, en cada iteración se decide sobre la estabilidad y calidad del producto, también se asumen riegos involucrados. 35 http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational Página 52 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 5. Elevar el nivel de abstracción. Este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software, lenguajes 4GL o esquemas (frameworks) por nombrar algunos. Éstos se pueden acompañar por las representaciones visuales de la arquitectura, por ejemplo con UML. 6. Enfocarse en la calidad. El control de calidad se analiza durante cada proceso de la producción. 3.2.3.1. Ciclo de vida del RUP RUP divide el proceso en 4 fases (ver figura 1.38.), dentro de las cuales se realizan varias iteraciones en número variable según el proyecto y en las que se hace un mayor o menor hincapié en los distintas actividades. En un tema más adelante se explicará de mayor manera a la metodología RUP. Figura 1.38. Ciclo de vida del RUP. Tomado de http://mdjesus.wordpress.com/2010/05/19/84/. 3.2.4. Extreme Programming Página 53 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el más destacado de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos. Se puede considerar la programación extrema como la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software36. 3.3. Fases e iteraciones (en RUP) 3.3.1. Fases Estas conforman la organización dinámica del proceso a lo largo del tiempo. El ciclo de vida del software está dividido en ciclos, cada ciclo trabaja en una nueva generación del producto. El Proceso Unificado divide un ciclo de desarrollo en cuatro fases consecutivas: 1. Fase de Inicio (Inception Phase). 2. Fase de Elaboración (Elaboration Phase). 3. Fase de Construcción (Construction Phase). 4. Fase de Transición (Transition Phase). 36 Idem. Página 54 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Cada fase es construida con hitos (un punto en el tiempo en el cual ciertas decisiones críticas deben ser tomadas) bien definidos, y por lo tanto metas claves han sido alcanzadas. Cada fase tiene un propósito específico: 1. Fase de Inicio: Esta fase tiene como propósito definir y acordar el alcance del proyecto con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una visión muy general de la arquitectura de software y producir el plan de las fases y el de iteraciones posteriores. 2. Fase de elaboración: En la fase de elaboración se seleccionan los casos de uso que permiten definir la arquitectura base del sistema y se desarrollaran en esta fase, se realiza la especificación de los casos de uso seleccionados y el primer análisis del dominio del problema, se diseña la solución preliminar. 3. Fase de Construcción: El propósito de esta fase es completar la funcionalidad del sistema, para ello se deben clarificar los requisitos pendientes, administrar los cambios de acuerdo a las evaluaciones realizados por los usuarios y se realizan las mejoras para el proyecto. 4. Fase de Transición: El propósito de esta fase es asegurar que el software esté disponible para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de aceptación, capacitar a los usuarios y proveer el soporte técnico necesario. Se debe verificar que el producto cumpla con las especificaciones entregadas por las personas involucradas en el proyecto. 3.3.2. Iteraciones Cada fase en el Proceso Unificado puede ser dividida aún más en iteraciones. Una iteración es un ciclo completo de desarrollo que resulta en una versión (interna o externa) de un producto ejecutable, un subconjunto del producto final bajo desarrollo, el cual crece incrementalmente de iteración en iteración para convertirse en el sistema final. Cada iteración pasa por todos los aspectos del desarrollo de software. Ej. Todos los componentes de proceso, aunque con un énfasis diferente en cada componente del proceso dependiendo de la fase. Página 55 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML La consecuencia principal de esta aproximación iterativa es que los artificios que describimos anteriormente crezcan y maduren a medida que el tiempo fluye37. En el contexto de un proyecto se refieren a la técnica de desarrollar y entregar componentes incrementales de funcionalidades de un negocio. Esto está comúnmente asociado al desarrollo ágil de software, pero podría referirse a cualquier material. Una iteración resulta en uno o más paquetes atómicos y completos del trabajo del proyecto que pueda realizar alguna función tangible del negocio. Múltiples iteraciones contribuyen a crear un producto completamente integrado. A esto se lo compara comúnmente con el enfoque de desarrollo en cascada. 3.4. Artefactos y UML en RUP 3.4.1. Artefacto En el Lenguaje Unificado de Modelado (UML), un artefacto es la especificación de un componente físico de información que es usado o producido por un proceso de desarrollo de software, o por el desarrollo y operación de un sistema.1 Ejemplos de artefactos incluyen modelo de archivos, archivos fuentes, scripts, archivos binarios ejecutables, una tabla en una base de datos, un development deliverable, o un documento de procesamiento de texto, como un mensaje de correo electrónico. En UML 2.0, los artefactos son las entidades físicas que son desplegadas en Nodos, Dispositivos y Ambientes de Ejecución. Otros elementos de UML, tales como las clases y los componentes, son primero manifestados como artefactos, y las instancias de dichos artefactos son luego desplegados. Los artefactos pueden también estar compuestos por otros artefactos. 37 Idem 36. Página 56 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 3.4.1.1. Artefactos para el Desarrollo de Proyectos Un artefacto es una información que es utilizada o producida mediante un proceso de desarrollo de software. Pueden ser artefactos un modelo, una descripción o un software. Los artefactos de UML se especifican en forma de diagramas, éstos, junto con la documentación sobre el sistema constituyen los artefactos principales que el modelador puede observar. Se necesita más de un punto de vista para llegar a representar un sistema. UML utiliza los diagramas gráficos para obtener estos distintos puntos de vista de un sistema: Diagramas de Implementación. Diagramas de Comportamiento o Interacción. Diagramas de Casos de uso. Diagramas de Clases38. 3.4.2. UML en RUP 3.4.2.1. UML El lenguaje UML se expresa con símbolos y/o agrupaciones de estos llamadas diagramas (ver figura 1.39.). Nos sirve fundamentalmente para crear diferentes tipos de ellos permitiéndonos ver desde diferentes perspectivas un sistema software. 38 http://www.monografias.com/trabajos5/insof/insof.shtml Página 57 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 1.39. Tipos de Diagramas en UML. Tomado de http://www.queinformatica.com/index.php/software/uml-lenguaje-unificado-de-modelado-2/. Los diagramas son de gran utilidad para trabajar en los requisitos, en el análisis del sistema, en la construcción del mismo y en su posterior despliegue. Nos permitirán conocer ese concepto del que tanto se habla y que parece tan difícil de determinar que es la Arquitectura del Sistema. El UML hace que esta sea algo tangible. Siendo el resultado de agrupar los diferentes diagramas en lo que llamamos vistas (ver figura 1.40). Estas vistas forman la Arquitectura del Sistema. Cada una de ellas nos ofrece diferente información sobre el sistema software: Vista de Casos de Uso: Nos facilita información sobre el comportamiento y funcionalidad del sistema. Vista de Diseño: Nos proporciona información del vocabulario y la funcionalidad del sistema. Vista de Interacción: Nos da información sobre el rendimiento del sistema, la escalabilidad del mismo y la capacidad de procesamiento necesaria. Vista de Implementación: Establece el ensamblado del sistema y la gestión de la configuración. Página 58 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Vista de Despliegue: Nos permite establecer la topología del sistema, su distribución y las pautas para su instalación39. Figura 1.40. Vistas del UML. Tomado de http://www.queinformatica.com/index.php/software/uml-lenguaje-unificado-de-modelado-2/. 3.6. Ejercicios de repaso 1. Realizar un resumen con la información anterior. 2. Efectuar una síntesis con el contenido de los apartados anteriores y la información del resumen anterior. 3. Crear Mapas conceptuales de los diversos temas vistos en este capítulo. 4. Crear un cuestionario con respuestas contestadas. 39 http://www.que-informatica.com/index.php/software/uml-lenguaje-unificado-de-modelado/ Página 59 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Página 60 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML CAPITULO IV. PERSPECTIVA PRÁCTICA DE LOS DIAGRAMAS Este capítulo es un enfoque práctico del uso de los diagramas del UML y cómo se utilizan dentro de la Metodología RUP. En este apartado se irá realizando un ejemplo aplicado de la vida real de cada uno de los diagramas utilizados dentro del lenguaje con ayuda de la herramienta software denominada Visual Paradigm 6.5 trial versión. Este ejemplo será un sistema de control de rentas de películas para una empresa como de tipo Blockbuster o Macrovideocentro. Se escoge el software Visual Paradigm 6.5 trial versión de entre otros conocidos, que pueden manipular los símbolos y diagramas del UML (Rational Software, Enterprise Architect, Poseidon, Umbrello, entre otros) por su facilidad y organización dentro de su entorno de trabajo o de diagramación, que lo hacen más manipulable que los otros software mencionados que hay en el mercado. La forma en cómo se van desarrollando los diferentes diagramas en este enfoque teórico del manual es la misma que se muestra dentro del temario de la asignatura de especialidad denominada Análisis y Diseño con Lenguaje de Modelado Unificado, clave DSF-0701, dentro del plan de la carrera de Licenciatura en Informática LINF 2004-303 en el Instituto Tecnológico Superior de la Región Sierra, y también dentro de la Metodología RUP para desarrollo de software. Primero se muestra la simbología básica para cada diagrama, luego el ejemplo práctico que se va a diagramar y se culmina cada apartado con unos ejercicios prácticos, mismos que se pueden visualizar en el anexo B de este documento, respuestas a ejercicios o prácticas de los capítulos. Página 61 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.1. Modelos de Casos de Uso En ellos se captura los requisitos del sistema, es decir, qué funciones va a realizar el sistema, desde el punto de vista de la interacción con el usuario. 4.1.1. Simbología principal del diagrama NOTACIÓN NOMBRE DESCRIPCIÓN Un caso de uso es una descripción de un conjunto de secuencias de acciones que un sistema ejecuta y que produce un Caso de Uso resultado observable de interés para un actor particular. estructurar los Se utiliza para aspectos de comportamiento en un modelo. Es un usuario del sistema, otro sistema, un departamento u oficina u organización Actor o empresa, que necesita o usa algunos de los casos de uso. Entre los elementos de un diagrama de Casos de uso se pueden presentar tres Relación tipos de relaciones, representadas por líneas dirigidas entre ellos (del elemento dependiente al independiente). Página 62 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Es una relación semántica entre dos elementos, en la cual un cambio a un Relación de elemento (el elemento independiente) dependencia puede afectar a la semántica del otro elemento (el elemento dependiente). 4.1.2. Ejemplo propuesto para el diagrama de Casos de Uso El ejercicio que se propone a modelar, a nivel de sistema y luego a nivel de diseño, se podrá visualizar en el Anexo A, sección A, Pág. 161 de este documento. 4.1.3.1. Construcción del diagrama de Casos de uso a nivel modelado del negocio o de análisis del software 1. Se abre el entorno de trabajo de Visual Paradigm 6.5 y se le da un clic en los links iniciales a “Nuevo diagrama de casos de uso”. Ver figuras 2.1 y 2.2: Figura 2.1. Página de bienvenida del entorno de trabajo demostrando links iniciales. Elaborada por el realizador del documento. Página 63 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.2. Acercamiento del área de los links iniciales. Elaborada por el realizador del documento. 2. Una vez que el entorno de trabajo abre éste pedirá un nombre para el diagrama que vamos a construir, el cual se le pondrá “Diagrama de Casos de Uso 1 Nivel Modelado Negocio”. Ver figuras 2.3 y 2.4: Figura 2.3. Acercamiento del área del nombre del diagrama. Figura 2.4. Área de trabajo del entorno de diagramación. Elaborada por el realizador del documento. 3. Acto seguido se elige del cuadro de símbolos el símbolo del Actor y se le da un clic a la zona de trabajo; se visualizará un actor y el entorno le pedirá un nombre pare él; para nuestro ejemplo le daremos el nombre de “Encargado”. Ver figuras 2.5: Página 64 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.5. Símbolo del actor en el entorno de diagramación. Elaborada por el realizador del documento. Figura 2.6. Visualización del actor “Encargado” en el entorno de diagramación. Elaborada por el realizador del documento. 4. Repetir el paso anterior para introducir tres actores más cuyos nombres serán “Cliente”, “Administrador Junior” y “Administrador Senior”. Ver figura anterior. 5. Ahora se introducirán los casos de uso para cada uno de los actores. Se le da un clic al encargado y note que mientras el puntero del ratón esta encima del símbolo se muestra lo siguiente. Ver figura 2.7: Figura 2.7. Actor “Administrador Junior”. Elaborada por el realizador del documento. 6. Se elige el símbolo de la asociación y del caso de uso. Sin soltar el botón se arrastra a un lugar fuera del símbolo anterior, en alguna parte de la zona de trabajo y se suelta; se le pedirá introducir un dato al caso de uso. Ver figura 2.8: Página 65 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.8. Símbolos adicionales y selección del nombre del caso de uso. Elaborada por el realizador del documento. 7. Se introduce lo siguiente desde teclado: “Dar de alta en el sistema anterior a la película”. Ver figura 2.9: Figura 2.9. Contenido del caso de uso. Elaborada por el realizador del documento. 8. Ahora se introduce la navegabilidad de la asociación, para eso hacemos lo siguiente: se posiciona el puntero del ratón sobre la raya/Asociación y se le da un clic derecho para ver el menú emergente de la siguiente figura: Figura 2.10. Menú emergente del caso de uso. Elaborada por el realizador del documento. 9. Se elige la ruta Role A (Encargado)/Navegable/Falso, y se muestra entonces la asociación como en la siguiente figura: Página 66 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.11. Visualización de la asociación. Elaborada por el realizador del documento. 10. Repetir los pasos del 5 al 9 para introducir en la zona de trabajo los siguientes Casos de Uso: “Poner las cajas de las películas en los estantes de clientes y los DVDs en los estantes internos”, “Verificar el estado del cliente”, “Verificar el estado de la película”, “Capturar los datos necesarios para realizar la renta”, “Cobrar la renta al cliente” y “Dar Comprobante de Renta al cliente”. Ver figura 2.12: Figura 2.12. Casos de uso siguientes. Elaborada por el realizador del documento. 11. Ahora se introducirá unas Extensiones al caso de uso “Cobrar la Renta al cliente”, para eso se hace lo siguiente: se selecciona al caso de uso mencionado anteriormente para poder ver los símbolos adicionales, como en la siguiente figura: Página 67 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.13. Opción a usar y leyenda Extend -> Use Case. Elaborada por el realizador del documento. 12. Se Posiciona el puntero del ratón y se elige la opción con la leyenda “Extend -> Use Case”. Se le da un clic al botón izquierdo, arrastre ahora a la zona de trabajo y suelte. Se mostrará un caso de uso como en la figura siguiente: Figura 2.14. Caso de uso adicional. Elaborada por el realizador del documento. 13. Y se escribe dentro del caso de uso la siguiente leyenda: “Cobrar al contado”. Ver figura 2.15: Página 68 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.15. Texto del caso de uso. Elaborada por el realizador del documento. 14. Repetir los pasos del 11 al 13 para introducir en la zona de trabajo otra extensión al Caso de Uso:”Cobrar la Renta al cliente”, con la siguiente leyenda “Cobrar con tarjeta”. 15. Se introducirá ahora una inclusión al Caso de Uso “Cobrar con tarjeta”. para eso se hace lo siguiente: se selecciona al caso de uso mencionado anteriormente para poder ver los símbolos adicionales: Figura 2.16. Opción a usar y leyenda Include -> Use Case, Elaborada por el realizador del documento. 16. Se Posiciona el puntero del ratón y se elige la opción con la leyenda “Include > Use Case”. Se le da un clic al botón izquierdo, se arrastra a la zona de trabajo y se suelta. 17. Se escribe dentro del caso de uso “Verificar el estado de cuenta del cliente”. Ver figura 2.17: Página 69 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.17. Texto del caso de uso. Elaborada por el realizador del documento. 18. Se introducirá ahora multiplicidad para actores y casos de uso. Se posiciona el puntero del ratón sobre la asociación entre el “Encargado” (Actor) y “Dar de alta en el sistema anterior a la película nueva” (CU). Figura 2.18. Asociación Actor-Caso de uso. Elaborada por el realizador del documento. 19. Una vez posicionado el puntero sobre esta asociación dar clic con el botón derecho del ratón y elegir la ruta Role A (Encargado)/Multiplicidad/1. Ver figura 2.19: Figura 2.19. Menú emergente 1. Elaborada por el realizador del documento. Página 70 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 20. Cuando se realizó esta acción se visualiza un numero “1” cerca de la asociación. Ahora el puntero del ratón sobre la misma asociación y busca la siguiente ruta Role B (Dar de alta a… )/ Multiplicidad/1..*. Ver figura 2.20: Figura 2.20. Menú emergente 2. Elaborada por el realizador del documento. 21. Los dos pasos anteriores se visualizan de la siguiente manera: Figura 2.21. Los dos pasos anteriores. Elaborada por el realizador del documento. 22. Repetir los pasos del 18 al 21 para introducir la multiplicidad del actor con sus casos de uso (Encargado-Poner las cajas de las películas…, EncargadoCapturar los datos n…) que se ven en la siguiente figura 2.22: Página 71 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.22. Asociaciones faltantes. Elaborada por el realizador del documento. 23. Se anexará ahora una asociación Actor-Actor (Encargado-Administrador Junior). Del panel de símbolos se da un clic a la Asociación, ahora toque el actor “Encargado” y sin dejar de soltar el botón izquierdo del ratón arrastre hasta el actor “Administrador Junior”, y suelte el botón. Se mostrará una línea que relaciona a estos dos actores. Ver figuras 2.23 y 2.24: Figura 2.23. Símbolo Asociación en el panel de símbolos. Elaborada por el realizador del documento. Figura 2.24. Asociación Actor-Actor. Elaborada por el realizador del documento. Página 72 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 24. Para distinguir a la asociación entre los actores de otras líneas dentro del área de trabajo seleccionamos a la asociación creada anteriormente dándole un clic, y luego ir a la Ventana de Propiedades, ubicada abajo y hacia la izquierda del entorno de desarrollo, y seleccionar la opción Foreground y después un clic a botón … que aparece a la derecha de esta opción. Ver figuras 2.25 y 2.26: Figura 2.25. Panel de Propiedades. Elaborada por el realizador del documento. Figura 2.26. Cuadro de Diálogo Línea. Elaborada por el realizador del documento. 25. En el apartado Línea se selecciona el botón fechas Arriba-Abajo del subapartado Weight y se le agrega 2.5 con la flecha Arriba. Ver figura 2.27: Página 73 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.27. Apartado Línea. Elaborada por el realizador del documento. 26. Se le da un clic al botón OK y se visualiza la asociación con una línea más gruesa que el valor por Default. 27. Repetir los pasos del 23 al 26 para agregar las asociaciones “EncargadoCliente”,”Encargado-Administrador Senior” y “Administrador Junior- Administrador Senior”. 28. Ahora se guardará el proyecto creado en Visual Paradigm 6.5. Se guardan los últimos cambios al diagrama de casos de uso y se le da un clic al Icono Guardar, ubicado hacia arriba y a la izquierda del entorno de desarrollo, o bien en el Menú Archivo/Guardar Proyecto. Ver figuras 2.28 y 2.29: Figura 2.28. Ícono Guardar. Elaborada por el realizador del documento. Figura 2.29. Opción Guardar proyecto. Elaborada por el realizador del documento. 29. Si es la primera vez que se va a guardar el proyecto se visualiza el siguiente cuadro de dialogo, si nó solo se guardan los últimos cambios. Ver figura 2.30: Página 74 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.30. Cuadro de diálogo Guardar proyecto. Elaborada por el realizador del documento. 30. El entorno de desarrollo da por defecto la opción “Guardar en área de trabajo”, y en el apartado Destino del Cuadro de Dialogo se puede visualizar la ruta en donde se guardará el proyecto. Si el lector quiere guardar el proyecto en otra ruta particular, se deberá dar un clic a la opción “Guardar en directorio”, si se requiere guardar el archivo dentro de una memoria USB se le da un clic al botón (Ver figuras 2.31. y 2.32)… Figura 2.31. Botón Agregar. Elaborada por el realizador del documento. Figura 2.32. Cuadro de diálogo Guardar proyecto. Elaborada por el realizador del documento. 31. En el apartado Select the directory to use se escogerá la unidad/carpeta principal del resguardo del proyecto, y en la parte derecha la carpeta o carpetas secundarias que serán parte de la ruta del resguardo del proyecto. El apartado Folder y Ruta se rellenan por defecto. Ver figura 2.33: Página 75 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.33. Cuadro de diálogo Seleccionar directorio. Elaborada por el realizador del documento. 32. Se le da clic a OK y se regresa al entorno de desarrollo. En la Barra de Títulos del IDE se visualiza la ruta en donde se resguardo el proyecto. 4.1.2.1. Construcción del diagrama de Casos de uso a nivel modelado del software o de diseño 1. Se abre el entorno de trabajo de Visual Paradigm 6.5 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Archivo/Cerrar Proyecto, y luego teclear el metacomando Ctrl + O, dar clic en el botón Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y espere a que abra el entorno. Ver figura 2.34: Página 76 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.34. Cuadro de diálogo Abrir. Elaborada por el realizador del documento. 2. Una vez que se está en el entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Casos de Uso (1) ubicado en el panel de Diagrama de Navegación, y luego se seleccionará el comando “Nuevo diagrama de casos de uso”. Ver figura 2.35: Figura 2.35. Menú emergente. Elaborada por el realizador del documento. 3. Éste pedirá un nombre para el diagrama que vamos a construir, el cual se le pondrá “Diagrama de Casos de Uso 1 Nivel Modelado Sistema”. Ver figura 2.36: Página 77 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.36. Zona de escritura del nombre de diagrama y acercamiento de la zona. Elaborada por el realizador del documento. 4. Acto seguido se elige del Panel de símbolos el símbolo del Sistema (System) y se le da un clic a la zona de trabajo; se visualizará un rectángulo Azul y el entorno le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Sistema Películas”. Ver figuras: Figura 2.37. Símbolo de sistema. Elaborada por el realizador del documento. Página 78 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.38. Nombre que se le dará al símbolo. Elaborada por el realizador del documento. 5. Ahora se elige del Panel de símbolos el símbolo del Paquete (Package) y acto seguido se le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Control de Películas”. Ver figura 2.39: Figura 2.39. Símbolo de paquete y Nombre que se le dará al paquete. Elaborada por el realizador del documento. Página 79 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 6. Repetir el paso anterior para introducir un paquete más cuyo nombre será “Área de Consulta”. Ver figura 2.40: Figura 2.40. Paquetes requeridos. Elaborada por el realizador del documento. 7. Acto seguido se elige del cuadro de símbolos el símbolo del Actor y se le da un clic a la zona de trabajo; se visualizará un actor y el entorno le pedirá un nombre pare él; para nuestro ejemplo le daremos el nombre de “Usuario Sistema”. Ver figura 2.41: Figura 2.41. Símbolo actor del panel de símbolos y Colocación del actor. Elaborada por el realizador del documento. 8. Repetir el paso anterior para introducir otro actor más cuyo nombre será “Base de datos”: Página 80 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.42. Colocación del siguiente actor. Elaborada por el realizador del documento. 9. Ahora se introducirá los casos de uso para cada uno de los actores. Se le da un clic al actor Usuario Sistema y note que mientras el puntero del ratón esta encima del símbolo se muestra lo siguiente: Figura 2.43. Opciones del actor. Elaborada por el realizador del documento. 10. Se elige el símbolo Association -> Use Case. Sin soltar el botón se arrastra adentro del paquete “Control de Películas” y se suelta; se le pedirá introducir el nombre al caso de uso, el cual se llamará “Controlar Películas”, Ver figuras 2.44 y 2.45: Figura 2.44. Opción a seleccionar. Elaborada por el realizador del documento. Página 81 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.45. Texto a introducir del caso de uso. Elaborada por el realizador del documento. Agregar Navegabilidad al Diagrama de Casos de Uso 11. Ahora se introducirá la navegabilidad de la asociación, para eso se posiciona el puntero del ratón sobre la raya/Asociación y damos un clic derecho para ver el menú emergente de la figura 2.46: Figura 2.46. Opción a seleccionar del menú emergente. Elaborada por el realizador del documento. 12. Se elige la ruta Role A (Encargado)/Navegable/Falso, y se muestra entonces la asociación como en la figura 2.47: Página 82 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.47. Opción a seleccionar y Texto a introducir. Elaborada por el realizador del documento. 13. Repetir los pasos del 9 al 12 para introducir en el paquete “Área de Consulta” el Caso de Uso: “Mostrar Películas”. Ver figura 2.48: Figura 2.48. Vista actual del diagrama. Elaborada por el realizador del documento. Página 83 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Agregar Inclusiones al Diagrama de Casos de Uso 14. Se introducirá unas inclusiones al caso de uso “Controlar Películas”; se selecciona al caso de uso mencionado anteriormente para poder ver los símbolos adicionales. Ver figura 2.49: Figura 2.49. Opciones del caso de uso. Elaborada por el realizador del documento. 15. Se Posiciona el puntero del ratón y se elige la opción con la leyenda “Include -> Use Case”. Se le da un clic al botón izquierdo, se arrastra dentro del paquete “Control de Películas” y se suelta. Se mostrará un caso de uso como en la figura siguiente: Figura 2.50. Introducción de un caso de uso tipo Include. Elaborada por el realizador del documento. 16. Y escribimos dentro del caso de uso la siguiente leyenda: “Registrar Películas”. Ver figura 2.51: Figura 2.51. Texto a introducir en el caso de uso. Elaborada por el realizador del documento. Página 84 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 17. Repetir los pasos del 14 al 16 para introducir en la zona de trabajo otras inclusiones al Caso de Uso “Controlar Películas”, con la siguiente leyenda: “Eliminar Películas” y “Modificar Películas” (Ver figura 2.52). Figura 2.52. Inclusiones adicionales a introducir. Elaborada por el realizador del documento. Agregar Extensiones al Diagrama de Casos de Uso 18. Se introducirá ahora una Extensión al Caso de Uso ”Controlar Películas”; se selecciona al caso de uso mencionado anteriormente para poder ver los símbolos adicionales y Se Posiciona el puntero del ratón y se elige la opción con la leyenda “Extend -> Use Case”. Se le da un clic al botón izquierdo, se arrastra dentro del paquete “Control de Películas” y se suelta (Ver figura 2.53). Figura 2.53. Opción a seleccionar. Elaborada por el realizador del documento. 19. Se escribe dentro del caso de uso “Imprimir Películas”. Ver figura 2.54: Figura 2.54. Texto introducido en el caso de uso. Elaborada por el realizador del documento. 20. En el apartado Extension Points del Caso de Uso “Controlar Películas”, de doble clic y escribir también “Imprimir Películas”. Página 85 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Agregar Asociaciones al Diagrama de Casos de Uso 21. Se anexará ahora una asociación Caso de Uso-Actor (Controlar PelículasBase de datos). Del panel de símbolos se da un clic al símbolo Asociación, ahora toque el Caso de Uso “Controlar Películas” y sin dejar de soltar el botón izquierdo del ratón arrastre hasta el actor “Base de datos”, y suelte el botón. Se mostrará una línea que relaciona a estos dos objetos. Ver figura 2.55: Figura 2.55. Símbolo Asociación en el panel de símbolos y colocación en el diagrama. Elaborada por el realizador del documento. 22. Repetir el paso anterior para agregar la asociación “Mostrar Películas-Base de datos”. Ver figura 2.56: Figura 2.56. Asociación adicional. Elaborada por el realizador del documento. 23. El diagramado final en la fase Diagrama de Casos de Uso Nivel Diseño del Sistema se podrá ver en el Anexo A, Sección B, Pág. 162 de esta obra. 4.1.3. Ejercicios de Repaso Página 86 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 1. Cree un diagrama de casos de uso nivel modelado de negocios para mostrar los roles y responsabilidades de una estación de autobuses dentro del contexto de venta de boletos. 2. Cree otro DCU nivel modelado de negocios para mostrar los roles y responsabilidades de una repostería dentro del contexto de venta de piezas de pan. 3. Cree otro DCU nivel diseño de sistema para mostrar los roles y responsabilidades de un formulario de control de autobuses dentro del contexto del control de la venta de boletos. 4. Cree otro DCU nivel diseño de sistema para mostrar los roles y responsabilidades de un formulario de un catálogo de postres (consulta de postres). NOTA: Ver ejemplos de los ejercicios en el anexo B, sección A 4.2. Modelos de Actividades Página 87 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Es un diagrama de pasos lógicos a seguir, prácticamente es la forma o representación de un algoritmo, que bien puede ser lineal, condicional o cíclico. Se podría decir que el antecesor a este esquema es el diagrama de flujo, propuesto por Wagnier. 4.2.1. Simbología principal del diagrama NOTACIÓN DESCRIPCIÓN NOMBRE Representa un estado con acción Estado Acción de acción interna, con por lo menos una transición que identifica la culminación de la acción (por medio de un evento implícito). Las flechas entre estados representan Transiciones transiciones con evento implícito. Pueden tener una condición en el caso de decisiones. Se representa mediante una transición Decisiones múltiple que sale de un estado, donde cada camino tiene un label (nivel) distinto. Pasajero Vendedor Calles o Swin Utilizadas Lines Inicio y fin para separar responsabilidades entre los objetos. Marca el inicio o fin de las actividades de un proceso. 4.2.2. Ejemplo propuesto para el diagrama de Actividades Página 88 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML El diagramado final que se realizará para este ejercicio queda como en la figura 2.57: Figura 2.57. Ejemplo propuesto de diagrama de actividades. Elaborada por el realizador del documento. Nota: Cualquier duda que se tenga con las actividades siguientes se puede recurrir a la revisión de este diagrama. 1. Se abre el entorno de trabajo de Visual Paradigma 7 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Archivo/Cerrar Proyecto, y luego teclear el meta comando Ctrl + O, dar clic en el botón Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y espere a que abra el entorno. Ver figura 2.58: Página 89 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.58. Entorno de diagramación. Elaborada por el realizador del documento. 2. Una vez que se está en el entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Actividades ubicada en el panel Navegación de Diagramas, y luego se seleccionará el comando “Nuevo diagrama de Actividades”. Ver figura 2.59: Figura 2.59. Cómo adicionar un nuevo diagrama. Elaborada por el realizador del documento. 3. Éste pedirá un nombre para el diagrama que se construirá, el cual se le pondrá “Diagrama de Actividades 1”. Ver figura 2.60: Página 90 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.60. Área de colocación del nombre de diagrama y acercamiento. Elaborada por el realizador del documento. 4. Acto seguido se elige del Panel de símbolos el símbolo de Swimlane (calle) y se le da un clic a la zona de trabajo; se visualizará un recuadro y el entorno le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Cliente”. Ver figura 2.61: Figura 2.61. Símbolo de Swinlane en el panel de símbolos y nombre a introducir. Elaborada por el realizador del documento. 5. Repetir el paso anterior para agregar otra Swimlane que se le denominará “Vendedor de Mostrador”. Página 91 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 6. Acto seguido se elige del Panel de símbolos el símbolo de Inicio y se le da un clic a la zona de trabajo; se visualizará un círculo negro. Ver figura 2.62: Figura 2.62. Introducción del símbolo Initial State. Elaborada por el realizador del documento. 7. Ahora se introducirá el símbolo de Actividad, asociado al símbolo de Inicio. Se le da un clic al símbolo de Inicio y notamos que mientras el puntero del ratón esta encima del símbolo se muestra lo siguiente: Figura 2.63. Opciones a seleccionar del símbolo. Elaborada por el realizador del documento. 8. Se elige el símbolo Transition -> Action State (el primero de los símbolos de izquierda a derecha), y sin soltar el botón se arrastra dentro del entorno de trabajo y se suelta. Ver figura 2.64: Figura 2.64. Símbolo ActionState. Elaborada por el realizador del documento. Página 92 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 9. Se le pedirá introducir el nombre a la actividad, el cual se escribirá “Selecciona la o las películas de su preferencia” como se visualiza en la siguiente figura: Figura 2.65. Texto a introducir. Elaborada por el realizador del documento. 10. Ahora se seleccionará el símbolo que anteriormente introducimos, al seleccionarlo aparecerán los siguientes símbolos. Ver figura 2.66: Figura 2.66. Opción a seleccionar. Elaborada por el realizador del documento. 11. Selecciona el segundo símbolo, cuya leyenda dice “Transition -> Action State”, y sin soltar el botón se arrastra adentro del entorno de trabajo y se suelta dentro del segundo Swimlane, a la derecha. Ver figura 2.67: Página 93 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.67. ActionState adicional. Elaborada por el realizador del documento. 12. Se le pedirá introducir el nombre a la actividad, el cual se escribirá “Tomar con el verificador de código de barras la clave de las películas que el cliente tomó” como se visualiza en la figura 2.68: Figura 2.68. Texto a introducir. Elaborada por el realizador del documento. 13. Ahora se selecciona el último símbolo insertado para visualizar las siguientes símbolos: Figura 2.69. Opciones a seleccionar. Elaborada por el realizador del documento. 14. Se elige el símbolo Transition -> Action State (el segundo símbolo de izquierda a derecha), y sin soltar el botón arrastre adentro del Página 94 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML entorno de trabajo y suelte. Se visualizará el siguiente símbolo. Ver figura 2.70: Figura 2.70. Símbolo ActionState. Elaborada por el realizador del documento. 15. Se le pedirá introducir el nombre a la actividad, el cual se escribirá “Indicarle al cliente el monto a pagar de la renta de películas” como se visualiza en la siguiente figura: Figura 2.71. Texto a introducir. Elaborada por el realizador del documento. 16. Se repiten los pasos del 11 al 13 para agregar dos Símbolos ActionState dentro del diagrama y le anexamos las siguientes leyendas: “Pagar el monto de la renta de películas” y “Entregarle las películas al cliente, Indicarle la fecha de devolución de las películas y proporcionarle el ticket de compra” respectivamente. Agregar una Nota al diagrama de Actividades 17. Seleccionar ahora el ActionState que dice en su leyenda “Tomar con el verificador de código de barras la clave de las películas que el cliente tomó” para ver los siguientes símbolos: Figura 2.72. Selección del Símbolo Note. Elaborada por el realizador del documento. Página 95 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 18. Y sin soltar el botón arrastre adentro del entorno de trabajo y suelte. Se visualizará el siguiente símbolo. Ver figura 2.73: Figura 2.73. Símbolo Note a usar. Elaborada por el realizador del documento. 19. Agregar dentro de la nota la siguiente leyenda “Dentro del sistema se va registrando y sumando la cantidad del monto que pagará el cliente”: Figura 2.74. Texto a introducir. Elaborada por el realizador del documento. 20. Por último se seleccionará el ActionState con la leyenda que se visualiza en la figura 2.75: Figura 2.75. ActionState a seleccionar. Elaborada por el realizador del documento. 21. Con esta acción se visualizarán los siguientes símbolos, del cual se seleccionará Transition -> Final State: Figura 2.76. Símbolo Final State a seleccionar. Elaborada por el realizador del documento. Página 96 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 22. Y sin soltar el botón arrastre adentro del entorno de trabajo y suelte. Se visualizará el siguiente símbolo. Ver figura 2.77: Figura 2.77. Símbolo introducido. Elaborada por el realizador del documento. 4.2.3. Ejercicios de Repaso 1. Cree un Diagrama de Actividades para mostrar los pasos a realizar del caso de uso Vender Boleto de Autobús. 2. Cree un Diagrama de Actividades para mostrar los pasos a realizar del caso de uso Vender pan. NOTA: Ver ejemplos de los ejercicios en el anexo B, sección B. Página 97 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.3. Modelos de Secuencias Sobresale en este modelo la capacidad de poder mostrar como es la interacción dentro de un formulario, sea de tipo Web o de Windows; con el usuario, un objeto, control o componente, incluso entre ellos. 4.3.1. Simbología principal del diagrama NOTACIÓN NOMBRE DESCRIPCIÓN Un objeto se representa como una línea : Socio vertical punteada con un rectángulo de Línea de vida encabezado y con rectángulos a través de de un objeto la línea principal que denotan la ejecución de métodos. Muestra el periodo de tiempo en el cual el Activación objeto se encuentra desarrollando alguna operación. El envío de mensajes entre objetos se denota mediante una línea sólida dirigida, Mensaje desde el objeto que emite el mensaje hacia el objeto que lo ejecuta. Es un usuario del sistema, otro sistema, un departamento u oficina u organización Actor o empresa, que necesita o usa algunos de los casos de uso. Página 98 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.3.2. Ejemplo propuesto para el diagrama de Secuencias El Diagrama de Secuencias propuesto para este ejemplo quedará de la siguiente forma: Figura 2.78. Ejemplo propuesto de diagrama de secuencias. Elaborada por el realizador del documento. Nota: Cualquier duda que se tenga con las actividades siguientes se puede recurrir a la revisión de este diagrama. 1. Se abre el entorno de trabajo de Visual Paradigm 6.5 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Archivo/Cerrar Proyecto, y luego teclear el metacomando Ctrl + O, dar clic en el botón Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y espere a que cargue el entorno. Ver figura 2.79: Página 99 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.79. Entorno de diagramación. Elaborada por el realizador del documento. 2. Una vez que este en el entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Secuencias ubicado en el panel de Navegación de Diagramas, y luego se seleccionará el comando “Nuevo diagrama de Secuencia”. Figura 2.80. Seleccionando la opción correcta. Elaborada por el realizador del documento. 3. Éste pedirá un nombre para el diagrama que vamos a construir, el cual se le pondrá “Diagrama de Secuencias 1” (ver figura 2.81): Página 100 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.81. Área de inserción de nombre de diagrama y acercamiento. Elaborada por el realizador del documento. 4. Acto seguido elegimos del Panel de símbolos el símbolo de Actor y le damos un clic a la zona de trabajo y el entorno le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Usuario”. Ver figura 2.82: Figura 2.82. Símbolo Actor en el panel de símbolos. Elaborada por el realizador del documento. 5. Ahora introduzca el símbolo de LifeLine, para asociarlo con el símbolo del Usuario. De un clic al símbolo Actor (Usuario) y note que mientras el puntero del ratón esta encima del símbolo se muestra lo siguiente: Figura 2.83. Opción a seleccionar. Elaborada por el realizador del documento. Página 101 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Ahora Se elige el símbolo Message -> LifeLine. Sin soltar el botón arrastre 6. adentro del entorno de trabajo y suelte; se le pedirá introducir el nombre al símbolo LifeLine, el cual se llamará “Interfaz Control de Películas”: Figura 2.84. Colocación del símbolo y texto a introducir. Elaborada por el realizador del documento. 7. Ahora se selecciona el símbolo Message, después se le da un doble clic y se le introducirá la siguiente leyenda “Capturar los datos de la película y dar clic al botón Registrar”. Ver figura 2.85: Figura 2.85. Selección del símbolo Message y Texto a introducir. Elaborada por el realizador del documento. Página 102 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Ahora se selecciona el símbolo LifeLine introducido para mostrar los 8. símbolos que aparecen en la figura siguiente: Figura 2.86. Opciones del símbolo LifeLine. Elaborada por el realizador del documento. Se escoge el símbolo cuya leyenda dice Self Message -> LifeLine. 9. Sin soltar el botón arrastre adentro del entorno de trabajo y suelte; se le pedirá introducir el nombre al símbolo Self Message que aparece, el cual se dirá “Conectar con la Base de Datos”. Ver figura 2.87: Figura 2.87. Selección de opción y texto a introducir. Elaborada por el realizador del documento. 10. Seleccionar el LifeLine Interfaz Control de Películas y repetir los pasos del 5 al 7 para introducir un LifeLine y un Message que digan “Tabla Películas” y “Verificar si la película no está registrada” respectivamente: Página 103 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.88. Textos a introducir. Elaborada por el realizador del documento. 11. Ahora se selecciona el último LifeLine que se introdujo y se repiten los pasos 8 y 9 para introducir un Self Message el cual dirá “Búsqueda de la película”: Figura 2.89. Texto a introducir. Elaborada por el realizador del documento. 12. Ahora, tocando el LifeLine Tabla Películas aparecerá el siguiente símbolo (Ver figura 2.90): Página 104 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.90. Opción a seleccionar. Elaborada por el realizador del documento. 13. Se toma al Message -> LifeLine, se mantiene apretado y se suelta hasta tocar el LifeLine llamado Interfaz Control de Películas. Ver figura 2.91: Figura 2.91. Colocación del símbolo Message. Elaborada por el realizador del documento. 14. El message debe decir “Película no encontrada”. 15. Repetir los pasos del 12 al 14 para introducir otro Message dentro del diagrama, del LifeLine Interfaz Control de Películas al LifeLine Tabla Películas. El message debe decir “Registrar datos de la película”: Figura 2.92. Texto a introducir. Elaborada por el realizador del documento. 16. Nuevamente repetir los pasos del 12 al 14 para introducir otro Message dentro del diagrama. Del LifeLine Interfaz Control de Películas al Página 105 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Usuario. El message debe decir “Mostrar mensaje al usuario de registro de película exitoso”. Ver figura 2.93: Figura 2.93. Texto a introducir 1. Elaborada por el realizador del documento. 17. Nuevamente repetir los pasos del 12 al 14 para introducir otro Message dentro del diagrama. Del LifeLine Interfaz Control de Películas al Tabla Películas. El message debe decir “Película encontrada”: Figura 2.94. Texto a introducir 2. Elaborada por el realizador del documento. 18. Nuevamente repetir los pasos del 12 al 14 para introducir otro Message dentro del diagrama. Del LifeLine Interfaz Control de Películas al LifeLine Usuario. El message debe decir “Mostrar mensaje al usuario de registro de película no exitoso”: Figura 2.95. Texto a introducir 3. Elaborada por el realizador del documento. 19. Por último se introducirá un Alt. Combined Fragment. Dentro del panel de símbolos se buscará el siguiente ícono. Ver figura 2.96: Página 106 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.96. Símbolo A introducir desde el panel de símbolos. Elaborada por el realizador del documento. 20. Se le da un clic al comando y otro clic dentro del área de trabajo, para visualizar el siguiente símbolo: Figura 2.97. Símbolo Alt. Combined Fragment. Elaborada por el realizador del documento. 21. En el botón negro, ubicado abajo y a la derecha del símbolo anterior, de un clic, arrastre hacia la derecha y toque los tres LifeLine Usuario, Interfaz Control de Películas y Tabla Películas. Ubicando los tres LifeLines dentro del símbolo Alt. Combined Fragment suelte el botón izquierdo del Mouse. Trate de ubicar el símbolo a como se muestra en la figura 2.98: Figura 2.98. Área a abarcar con el símbolo Alt. Combined Fragment. Elaborada por el realizador del documento. 22. Los puntos del 5 al 7 serán una respuesta satisfactoria de la interfaz. Los puntos 8 y 9 serán una respuesta negativa de la interfaz. Compara tu diagrama de secuencias realizado con el propuesto en esta sección. Página 107 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.3.3. Ejercicios de Repaso 1. Cree un Diagrama de Secuencias para mostrar los pasos a realizar para dar de alta aun autobús dentro de un formulario de control de autobuses. 2. Cree un Diagrama de Secuencias para mostrar los pasos a realizar para modificar los datos de un postre dentro de un formulario de control de postres. NOTA: Ver ejemplos de los ejercicios en el anexo B, sección C. Página 108 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.4. Modelos de Clases Esta es la nueva forma de representar a un esquema de base de datos; se puede decir con toda certeza que este tipo de diagrama reemplazará al modelo relacional que la mayoría de los sistemas gestores de bases de datos actuales tienen para representar sus tablas y relaciones entre éstas. 4.4.1. Simbología principal del diagrama NOTACIÓN DESCRIPCIÓN NOMBRE Una clase describe un conjunto de objetos con características y Clase comportamiento idéntico. Una asociación, en general, es una línea que une dos o más Asociación símbolos. Pueden tener varios tipos de adornos, que definen su semántica y características. Un paquete es una forma de Ventas agrupar Paquete elementos clases en otro (u otros tipo de diagramas) en modelos grandes. Denota una relación semántica entre dos elementos (clases o Relación de Dependencia paquetes, por el momento) del modelo. Indica que cambiar el elemento independiente puede requerir cambios en los dependientes. 4.4.2. Ejemplo propuesto para el diagrama de Clases Página 109 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.99. Ejemplo propuesto de diagrama de clases. Elaborada por el realizador del documento. 1. Abrimos el entorno de trabajo de Visual Paradigm 6.5 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Archivo/Cerrar Proyecto, y luego teclear el metacomando Ctrl + O, dar clic en el botón Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y esperamos a que abra el entorno. Ver figura 2.100: Página 110 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.100. Entorno de diagramación. Elaborada por el realizador del documento. 2. Una vez que estemos en nuestro entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Clases ubicado en el panel de Diagrama de Navegación, y luego se seleccionará el comando “Nuevo diagrama de Clases”. Ver figura 2.102: Figura 2.101. Selección del comando correcto. Elaborada por el realizador del documento. 3. éste pedirá un nombre para el diagrama que vamos a construir, el cual le pondremos “Diagrama de Clases 1”: Figura 2.102. Área de introducción de nombre de diagrama. Elaborada por el realizador del documento. Página 111 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4. Acto seguido elegimos del Panel de símbolos el símbolo de la Clase y le damos un clic a la zona de trabajo y el entorno le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Diagrama de Clases Base de Datos”: Figura 2.103. Texto a introducir. Elaborada por el realizador del documento. 5. Ahora se introducirá el símbolo de Clase. De un clic al símbolo de Clase dentro del entorno de trabajo. Ver figura 2.104: Figura 2.104. Símbolo a introducir en el panel y colocación en el área de trabajo. Elaborada por el realizador del documento. 6. Aparece la palabra Class Seleccionada, lista para cambiarle el nombre. El nombre de la clase será Clientes. Note que mientras el puntero del ratón esta encima del símbolo se muestra lo siguiente: Figura 2.105. Opciones del símbolo. Elaborada por el realizador del documento. Página 112 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 7. Elegimos el símbolo Association -> Class. Sin soltar el botón arrastramos adentro del entorno de trabajo y soltamos; se le pedirá introducir el nombre de la siguiente clase, el cual se llamará “NotaRemision”. Ver figura 106: Figura 2.106. Clase adicional y texto a introducir. Elaborada por el realizador del documento. 8. Se procede ahora a cargar las propiedades de la clase clientes. De un clic derecho sobre la clase mencionada para mostrar un menú emergente, del cual seleccionará el comando Abrir Especificación… Figura 2.107. Comando Abrir especificación. Elaborada por el realizador del documento. 9. En pantalla se muestra el cuadro de diálogo Class Specification. Ver figura 2.108: Página 113 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.108. Cuadro de diálogo Especificación de clase. Elaborada por el realizador del documento. 10. De la ventana mostrada se le dará un clic a la pestaña Attributes, que mostrará los siguientes datos: Figura 2.109. Pestaña Attributes. Elaborada por el realizador del documento. 11. De un clic al botón Añadir, ubicado abajo y hacia la derecha del cuadro de diálogo, y se mostrará lo siguiente: Página 114 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.110. Cuadro de diálogo Attribute Specification. Elaborada por el realizador del documento. 12. En el cuadro de diálogo Attribute Specification, por defecto está seleccionado, en el apartado nombre, un valor estándar para denominar al atributo o propiedad, cambie el nombre actual seleccionado por RFC: Figura 2.111. Texto a introducir. Elaborada por el realizador del documento. 13. En el apartado Tipo se le capturará el valor de string(15). Ver figura 2.112: Figura 2.112. Cuadro de texto Tipo. Elaborada por el realizador del documento. Página 115 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 14. En el apartado Visibilidad se le cambiará el valor Privado por defecto, por el de Protegidos, dándole un clic al botón del cuadro combinado y seleccionando la opción mencionada, y se le da un clic al botón OK, ubicado abajo: Figura 2.113. Texto a seleccionar del cuadro combinado Visibilidad. Elaborada por el realizador del documento. 15. El cuadro de diálogo Class Specification se mostrará de la siguiente manera: Figura 2.114. Visualización actual. Elaborada por el realizador del documento. 16. Repetir los pasos del 11 al 15 para introducir los siguientes atributos a la clase Clientes (en el apartado Visibilidad para los siguientes atributos se dejará el valor por defecto, Privado): nombre, ApellidoPat, ApellidoMat, direccion, telefono. Ver figura 2.115: Página 116 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.115. Textos a introducir. Elaborada por el realizador del documento. 17. La vista de la clase dentro del diagrama queda de la siguiente manera: Figura 2.116. Apariencia clase actual. Elaborada por el realizador del documento. 18. Ahora se introducirán las operaciones a programar que se realizarán con la clase. Tocando el nombre de la clase Clientes se da un clic derecho y se selecciona del menú emergente el comando Abrir Especificación: Página 117 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.117. Comando Abrir Especificación. Elaborada por el realizador del documento. 19. Del cuadro de dialogo Class Specification se le da un clic a la pestaña Operations (ver figura 2.118): Figura 2.118. Pestaña Operations del cuadro de diálogo Class Specification. Elaborada por el realizador del documento. 20. De un clic al botón Añadir, ubicado abajo y hacia la derecha del cuadro de diálogo, y se mostrará lo siguiente: Página 118 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.119. Cuadro de diálogo Operation Specification. Elaborada por el realizador del documento. 21. En el cuadro de diálogo Operation Specification, por defecto está seleccionado, en el apartado nombre, un valor estándar para denominar a la operación, cambie el nombre actual seleccionado por el de Registrar: Figura 2.120. Texto a introducir. Elaborada por el realizador del documento. 22. Dar clic al botón OK, ubicado abajo y hacia la derecha. En el cuadro de dialogo Class Specification se mostrará de la siguiente manera: Página 119 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.121. Cuadro de dialogo Class Specification. Elaborada por el realizador del documento. 23. Dar clic al botón OK y en el diagrama de clases se mostrará la figura siguiente: Figura 2.122. Clase Clientes. Elaborada por el realizador del documento. 24. Repetir los pasos del 18 al 23 para introducir las siguientes operaciones: Eliminar, Modificar, Consultar, Imprimir. La clase queda de la siguiente manera (ver figura 2.123): Página 120 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.123. Operaciones de la clase Clientes. Elaborada por el realizador del documento. 25. Se le pondrá Multiplicidad a la asociación entre las clases Clientes y NotaRemision: Figura 2.124. Relación entre la clase Clientes y la clase NotaRemisión. Elaborada por el realizador del documento. 26. Se posiciona el puntero del ratón sobre la asociación entre las clases Clientes y NotaRemision, y se le da un clic al botón derecho del ratón para mostrar en pantalla el siguiente menú emergente. Ver figura 2.125: Figura 2.125. Seleccionando el comando Abrir Especificación. Elaborada por el realizador del documento. Página 121 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 27. Se selecciona la opción Role B (Clientes)/Multiplicidad/1, tal y como se muestra la siguiente figura: Figura 2.126. Seleccionando la opción Role B. Elaborada por el realizador del documento. 28. En el diagrama de Clases se muestra el cambio realizado de la siguiente manera. Ver figura 2.126: Figura 2.127. Multiplicidad 1. Elaborada por el realizador del documento. 29. Ahora se selecciona la opción Role A (NotaRemision)/Multiplicidad/*, tal y como se muestra la figura 2.128: Página 122 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.128. Seleccionando la opción Role A. Elaborada por el realizador del documento. 30. En el diagrama de Clases se muestra el cambio realizado de la siguiente manera: Figura 2.129. Multiplicidad 2. Elaborada por el realizador del documento. 31. Ahora se repiten los pasos del 5 al 30 para agregar las siguientes clases, con sus atributos y operaciones, y su multiplicidad, tal y como se muestra en el diagrama de clases propuesto para este apartado: Usuarios Atributo Tipo Visibilidad CveUsuario Int Protegido nombre String(30) Privado Página 123 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML ApellidoPat string(30) Privado ApellidoMat string(30) Privado direccion string(40) Privado telefono string(40) Privado Operaciones Nombre Visibilidad Registrar Privado Eliminar Privado Modificar Privado Consultar Privado Imprimir Privado Películas Atributo Tipo Visibilidad CvePelicula Int Protegido titulo String Privado Año DateTime Privado Director String Privado actores string Privado sinopsis string Privado Operaciones Nombre Visibilidad Página 124 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Registrar Privado Eliminar Privado Modificar Privado Consultar Privado Imprimir Privado NotaRemision (La clase ya está en el diagrama, solo le falta sus atributos y operaciones) Atributo Tipo Visibilidad NoFolio Int Protegido Fecha DateTime Privado CveCliente Int Privado Total double Privado Operaciones Nombre Visibilidad Registrar Privado Eliminar Privado Modificar Privado Consultar Privado Imprimir Privado DetallesNotaRemision Página 125 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Atributo Tipo Visibilidad NoFolio Int Privado CvePelicula Int Privado Cantidad Int Privado PrecioVta double Privado Importe double Privado 32. Comparar su diagrama con el propuesto para este apartado. 4.4.3. Ejercicios de Repaso 1. Cree un Diagrama de Clases que muestre el modelo relacional de una base de datos para el control de préstamos dentro de una biblioteca. 2. Cree un Diagrama de Clases que muestre el modelo relacional de una base de datos para el control de ventas dentro de una refaccionaria. NOTA: Ver ejemplos de los ejercicios en el anexo B, sección D. Página 126 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.5. Modelos de Estados 4.5.1. Simbología principal del diagrama de Estados NOTACIÓN DESCRIPCIÓN NOMBRE Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto Estado esta operación, Selecc_Azucar esperando tiene alguna cierto estado característico o puede recibir cierto tipo de estímulos. Es una ocurrencia que puede causar Devolver la transición de un estado a otro de un Evento [número_préstamos = 1] objeto. Las Transiciones flechas entre estados representan transiciones con evento implícito. Pueden tener una condición en el caso de decisiones. Denota una relación semántica entre dos elementos (clases o paquetes, Relación de por el momento) del modelo. Indica Dependencia que cambiar independiente el puede elemento requerir cambios en los dependientes. 4.5.2. Ejemplo propuesto para el diagrama de Estados Página 127 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML El diagrama propuesto para este apartado es el siguiente: Figura 2.130. Ejemplo de diagrama de estados propuesto. Elaborada por el realizador del documento. 1. Abrimos el entorno de trabajo de Visual Paradigm 6.5 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Archivo/Cerrar Proyecto, y luego teclear el metacomando Ctrl + O, dar clic en el botón Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y esperamos a que abra el entorno. Figura 2.131. Entorno de diagramación. Elaborada por el realizador del documento. 3. Una vez que estemos en nuestro entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Estados ubicado en el panel de Diagrama de Página 128 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Navegación, y luego se seleccionará el comando “Nuevo diagrama de Máquina de Estados”. Ver figura 2.132: Figura 2.132. Selección de comando correcto. Elaborada por el realizador del documento. 3. éste pedirá un nombre para el diagrama que vamos a construir, el cual le pondremos “Diagrama de Estados 1” (ver figura 2.133): Figura 2.133. Área de introducción del nombre de diagrama. Elaborada por el realizador del documento. 4. Acto seguido elegimos del Panel de símbolos el símbolo Initial State y le damos un clic a la zona de trabajo (ver figura2.134): Figura 2.134. Selección del símbolo Initial State. Elaborada por el realizador del documento. 5. Note Usted los símbolos asociados a símbolo Initial State. Se escoge aquel que contiene la leyenda Transition -> State, y sin soltar el botón izquierdo de ratón arrastramos adentro del entorno de trabajo y soltamos a la derecha; se le pedirá introducir el nombre al estado, el cual se llamará “Película comprada”: Página 129 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.135. Opciones de símbolo Initial State, selección de la opción correcta y texto a introducir. Elaborada por el realizador del documento. 6. Seleccione el Estado “Película comprada” y note los símbolos que aparecen en su contorno. Ver figura 2.136: Figura 2.136. Opciones del símbolo State. Elaborada por el realizador del documento. 7. Se escoge aquel que contiene la leyenda Transition -> State, y sin soltar el botón izquierdo de ratón arrastramos adentro del entorno de trabajo y soltamos a la derecha; se le pedirá introducir el nombre al estado, el cual se llamará “Película registrada”: Página 130 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.137. Texto a introducir. Elaborada por el realizador del documento. 8. Ahora repita los pasos 6 y 7 para introducir de manera similar los siguientes estados: Película disponible, Película rentada, Película rentada, Película devuelta y Película desechada. Ver figura 2.138: Figura 2.138. Estados a introducir en el área de trabajo. Elaborada por el realizador del documento. 9. Seleccione el Estado “Película desechada” y note los símbolos que aparecen en su contorno (ver figura 2.139): Figura 2.139. Opciones del estado seleccionado. Elaborada por el realizador del documento. 10. Se selecciona el símbolo con la leyenda Transition -> Final State, se arrastra y se suelta a la izquierda del último símbolo State: Página 131 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.140. Símbolo Final State. Elaborada por el realizador del documento. 11. Se selecciona el State con la leyenda “Película devuelta” para ver la siguiente simbología (ver figura 2.141): Figura 2.141. Opciones del estado seleccionado. Elaborada por el realizador del documento. 12. Se escoge aquel símbolo que contiene la leyenda Transition -> State, y sin soltar el botón izquierdo de ratón arrastramos hacia el State “Película disponible”: Figura 2.142. Colocación del estado seleccionado. Elaborada por el realizador del documento. 13. Ahora se le da doble clic a la transición entre el símbolo Initial State y el State “Película comprada”, y se le escribe la siguiente leyenda “Enviar Película al gerente (por el proveedor)”. Ver figura 2.143: Página 132 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.143. Texto a introducir. Elaborada por el realizador del documento. 14. Ahora se le da doble clic a la transición entre el símbolo State “Película comprada” y el State “Película registrada”, y se le escribe la siguiente leyenda “Verificar daños de fábrica o físicos durante el viaje” (ver figura 2.144): Figura 2.144. Texto a introducir. Elaborada por el realizador del documento. 15. Repita el paso anterior para anexar las siguientes leyendas de las diferentes transiciones dentro del diagrama: “Catalogar la película para servicio de renta a los clientes”, “Rentar la película por uno o varios días (el socio)”, “Dejar película en el buzón después de usarla (socio)”, “Verificar si existe rentabilidad de la película” y “Verificar daños físicos por el socio o recargos del mismo” (Mirar el diagrama propuesto para este apartado para verificar la posición de las leyendas en las transiciones). 4.5.3. Ejercicios de Repaso Página 133 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 1. Crear un diagrama que muestre los estados de un libro, desde que se compra a un proveedor hasta que se presta a un derechohabiente dentro de una biblioteca. 2. Crear un diagrama que muestre los estados de un paquete, desde que se recepciona hasta que se entrega a su dueño, dentro de un servicio de paquetería. NOTA: Ver ejemplos de los ejercicios en el anexo B, sección E. Página 134 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.6. Modelos de Colaboración 4.6.1. Simbología principal del diagrama NOTACIÓN NOMBRE DESCRIPCIÓN Un objeto es la instancia de una clase (o : Socio categoría). Es una entidad que tiene Objeto valores específicos de los atributos y operaciones o acciones). Un enlace es una instancia de una asociación en un diagrama de Enlace colaboración. Se representa como una línea continua que une a dos objetos. Flujo de Expresa el envío de un mensaje. Mensajes Página 135 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.6.2. Ejemplo propuesto para el diagrama de Colaboración Figura 2.145. Ejemplo propuesto de diagrama de colaboración. Elaborada por el realizador del documento. 1. Abrimos el entorno de trabajo de Visual Paradigm 6.5 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Archivo/Cerrar Proyecto, y luego teclear el metacomando Ctrl + O, dar clic en el botón Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y esperamos a que abra el entorno (ver figura 2.146): Página 136 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.146. Entorno de diagramación. Elaborada por el realizador del documento. 2. Una vez que estemos en nuestro entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Comunicación ubicado en el Panel de Diagrama de Navegación, y luego se seleccionará el comando “Nuevo diagrama de Colaboración” y se le da un clic. Ver figura 2.147: Figura 2.147. Selección del comando correcto. Elaborada por el realizador del documento. 3. Éste pedirá un nombre para el diagrama que vamos a construir, el cual le pondremos “Diagrama de Comunicación 1” (ver figura 2.148): Figura 2.148. Área de introducción de nombre de diagrama. Elaborada por el realizador del documento. Página 137 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Acto seguido elegimos del Panel de símbolos el símbolo Actor y le damos un 4. clic a la zona de trabajo y el entorno le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Usuario” (ver figura 2.149): Figura 2.149. Símbolo Actor del panel de símbolos y colocación en el área de trabajo. Elaborada por el realizador del documento. Ahora vamos a introducir el símbolo de LifeLine, para asociarlo con el símbolo 5. anterior. Damos un clic al símbolo Actor que se introdujo dentro del entorno de trabajo y note que mientras el puntero del ratón esta encima del símbolo se muestra la figura 2.150: Figura 2.150. Opciones del símbolo Actor a seleccionar. Elaborada por el realizador del documento. 6. Elegimos el símbolo Message -> LifeLine. Sin soltar el botón arrastramos hacia la izquierda y soltamos; se le pedirá introducir el nombre al LifeLine, el cual se llamará “Interfaz Control de Películas”: Figura 2.151. Selección del símbolo y texto a introducir. Elaborada por el realizador del documento. Página 138 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 7. Note que en la asociación se puede visualizar el número 1, al cual se le dará un doble clic y se le agregará la siguiente leyenda “Capturar datos de película y dar clic al botón Registrar” (ver figura 2.152): Figura 2.152. Selección de la Asociación y Texto a introducir. Elaborada por el realizador del documento. 8. Se le da un clic al símbolo LifeLine introducido dentro del área de trabajo para visualizar los símbolos asociados a ella, y se seleccionará Self Message>LifeLine, y se visualizará una asociación como en la figura 2.153: Figura 2.153. Selección de la opción y visualización del símbolo. Elaborada por el realizador del documento. 9. Se le agregará la siguiente leyenda “Conectar con la base de datos” (ver figura 2.154): Página 139 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.154. Texto a introducir. Elaborada por el realizador del documento. 10. Se repite el paso 6 para agregar otro LifeLine. Arrastramos hacia abajo y soltamos; se le pedirá introducir el nombre al LifeLine, el cual se llamará “Tabla Películas”: Figura 2.155. Agregación de LifeLine adicional y texto a introducir. Elaborada por el realizador del documento. 11. Note que en la asociación se puede visualizar el número 3, al cual se le dará un doble clic y se le agregará la siguiente leyenda “Verificar si la película no está registrada” (ver figura 2.156): Figura 2.156. Texto a introducir en la Asociación. Elaborada por el realizador del documento. Página 140 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 12. Seleccione el LifeLine anterior para visualizar los diferentes símbolos asociados a él, y seleccione Self Message -> LifeLine y se le agrega la siguiente leyenda: “Búsqueda de película”. Ver figura 2.157: Figura 2.157. Texto a introducir en el Self Message. Elaborada por el realizador del documento. 13. Vuelva a seleccionar el LifeLine Tabla Películas para visualizar los diferentes símbolos asociados a él, y seleccione el símbolo Message -> LifeLine. Mantenga el botón izquierdo del ratón presionado y suelte hasta tocar el LifeLine Interfaz Control de Películas. Ver figura 2.158: Figura 2.158. Selección del símbolo indicado. Elaborada por el realizador del documento. 14. Se selecciona el número cinco aparecido dentro del diagrama, se le da doble clic y se le inserta la siguiente leyenda: “Película no encontrada”. Ver figura 2.159: Figura 2.159. Texto a introducir en la numeración indicada. Elaborada por el realizador del documento. Página 141 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 15. Para insertar la leyenda del paso número 6 vuelva el repetir el paso 14. La leyenda dirá: “Mostrar mensaje de registro exitoso”. Ver la figura 2.160: Figura 2.160. Texto a introducir en la Asociación. Elaborada por el realizador del documento. 16. Comparar el diagrama que ha realizado con el propuesto en este apartado. 4.6.3. Ejercicios de Repaso 1. Cree un Diagrama de Colaboración para mostrar los pasos a realizar para dar de alta aun autobús dentro de un formulario de control de autobuses. 2. Cree un Diagrama de Colaboración para mostrar los pasos a realizar para modificar los datos de un postre dentro de un formulario de control de postres. NOTA: Ver ejemplos de los ejercicios en el anexo B, sección F. Página 142 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.7. Modelos de Componentes 4.7.1. Simbología principal del diagrama NOTACIÓN DESCRIPCIÓN NOMBRE Un componente representa una unidad de código (fuente, binario o ejecutable) que permite mostrar las Componente dependencias en tiempo de compilación y ejecución. Pueden mostrar también que interfaces implementan y qué objetos contienen. 4.7.2. Ejemplo propuesto para el diagrama de Componentes Figura 2.161. Ejemplo propuesto de diagrama de componentes. Elaborada por el realizador del documento. 1. Abrimos el entorno de trabajo de Visual Paradigm 6.5 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Página 143 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Archivo/Cerrar Proyecto, y luego teclear el metacomando Ctrl + O, dar clic en el botón Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y esperamos a que abra el entorno. Ver figura 2.162: Figura 2.162. Entorno de diagramación. Elaborada por el realizador del documento. 2. Una vez que estemos en nuestro entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Componentes ubicado en el panel de Diagrama de Navegación, y luego se seleccionará el comando “Nuevo diagrama de Componentes”. Figura 2.163. Selección de comando correcto. Elaborada por el realizador del documento. 3. Éste pedirá un nombre para el diagrama que vamos a construir, el cual le pondremos “Diagrama de Componentes 1” (ver figura 2.164): Página 144 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.164. Área de introducción de nombre de diagrama. Elaborada por el realizador del documento. 4. Acto seguido elegimos del Panel de símbolos el símbolo Interface y le damos un clic a la zona de trabajo y el entorno le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Control de Películas (cliente)”: Figura 2.165. Símbolo Interface y texto a introducir. Elaborada por el realizador del documento. 5. Ahora se introducirá el símbolo Component, para asociarlo con el símbolo anterior. Damos un clic al símbolo anterior dentro del entorno de trabajo y note que mientras el puntero del ratón esta encima del símbolo se muestra lo siguiente: Figura 2.166. Opciones del Símbolo Interface a seleccionar. Elaborada por el realizador del documento. 6. Elegimos el símbolo Association -> Component. Sin soltar el botón arrastramos adentro del entorno de trabajo y soltamos; se le pedirá introducir el nombre al componente, el cual se llamará “AccesoDatos.cs (Cliente)”. Ver figura 2.167 Página 145 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.167. Opción a escoger del símbolo Interface y texto a introducir. Elaborada por el realizador del documento. 7. Selecciona ahora el componente anterior y se repiten los pasos 5 y 6 para insertar dentro del entorno de desarrollo el componente denominado “DatosMacroVideo.mdf (Servidor)”. Ver la figura 2.168: Figura 2.168. Texto a introducir. Elaborada por el realizador del documento. 8. Ahora se selecciona el último componente (DatosMacroVideo.mdf (Servidor)) para visualizar los símbolos asociados a éste: Página 146 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.169. Opciones del símbolo Component. Elaborada por el realizador del documento. 9. Elegimos el símbolo Association -> Component. Sin soltar el botón arrastramos adentro del entorno de trabajo y soltamos; se le pedirá introducir el nombre al estado, el cual se llamará “AccesoDatos.cs (Servidor)” (ver figura 2.170): Figura 2.170. Texto a introducir en el componente. Elaborada por el realizador del documento. 10. Ahora se selecciona el último componente (AccesoDatos.cs (Servidor)) para visualizar los símbolos asociados a éste: Figura 2.171. Opciones del símbolo componente. Elaborada por el realizador del documento. 11. Elegimos el símbolo Usage -> Interface. Sin soltar el botón arrastramos adentro del entorno de trabajo y soltamos; se le pedirá introducir el nombre al componente, el cual se llamará “Sistema de Admon. (Servidor)” (ver figura 2.172): Página 147 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.172. Texto a introducir en la interfase. Elaborada por el realizador del documento. 12. verificar y acomodar el diagrama a como esta el ejemplo de este apartado. 4.7.3. Ejercicios de Repaso 1. Cree un diagrama de componentes que muestre una arquitectura software de tres capas para un sistema de control de boletos de autobús, modelo clienteservidor. NOTA: Ver ejemplos del ejercicio en el anexo B, sección G. Página 148 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 4.8. Modelos de Despliegue o Distribución 4.8.1. Simbología principal del diagrama NOTACIÓN DESCRIPCIÓN NOMBRE Un componente representa una unidad de código (fuente, binario o ejecutable) que permite mostrar las Componente dependencias en tiempo de compilación y ejecución. Pueden mostrar también implementan y que qué interfaces objetos contienen. 4.8.2. Ejemplo propuesto para el diagrama de Despliegue o Distribución Así le deberá de quedar el diagrama al final de este ejercicio. Ver figura 2.173: Figura 2.173. Ejemplo propuesto de diagrama de distribución. Elaborada por el realizador del documento. 1. Abrimos el entorno de trabajo de Visual Paradigm 6.5 y entonces aparecerá por defecto el último proyecto abierto; en caso de realizar otro proyecto ir a menú Archivo/Cerrar Proyecto, y luego teclear el metacomando Ctrl + O, dar clic en el botón Página 149 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Abrir Proyecto en la barra de herramientas estándar o ir a menú Archivo/Abrir Proyecto…, seleccionaremos nuestro proyecto anterior y esperamos a que abra el entorno. Ver figura 2.174: Figura 2.174. Entorno de diagramación. Elaborada por el realizador del documento. 2. Una vez que estemos en nuestro entorno de trabajo se le dará un clic derecho sobre la etiqueta Diagrama de Despliegue ubicado en el panel de Diagrama de Navegación, y luego se seleccionará el comando “Nuevo diagrama de Despliegue”. Figura 2.175. Comando a seleccionar. Elaborada por el realizador del documento. 3. éste pedirá un nombre para el diagrama que vamos a construir, el cual le pondremos “Diagrama de Despliegue 1”: Página 150 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.176. Nombre de diagrama. Elaborada por el realizador del documento. 4. Acto seguido se elige del Panel de símbolos el símbolo denominado Paquete, y se le da un clic a la zona de trabajo, y el entorno le pedirá un nombre pare él; para el ejemplo se le dará el nombre de “Departamento de RH” y trate de dimensionarlo como se ve en la figura siguiente: Figura 2.177. Símbolo a seleccionar y texto a introducir. Elaborada por el realizador del documento. 5. Repite el paso anterior para introducir tres paquetes más dentro del área de trabajo de la siguiente manera: Página 151 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.178. Paquetes adicionales a introducir. Elaborada por el realizador del documento. Introduzca los siguientes nombres en cada paquete: Departamento de Finanzas, Departamento de Recursos Materiales y Departamento de Ventas. 6. Ahora se introducirá el símbolo Node, al cual se le dará el nombre de SWITCH. Ver figura 2.179: Figura 2.179. Símbolo a seleccionar y texto a introducir. Elaborada por el realizador del documento. Página 152 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 7. Ahora se introducirá otros símbolos Node, y se asocian con los símbolos Paquete de la siguiente manera. También Introduzca los siguientes nombres en cada Nodo: PC1, PC2, PC3, PC4 y Servidor. Ver figura 2.180: Figura 2.180. Nodos adicionales a introducir. Elaborada por el realizador del documento. 8. Ahora se selecciona al Nodo PC1 y se elige al primer símbolo de los que aparecen a su alrededor (Association -> Node): Figura 2.181. Selección de opción a introducir. Elaborada por el realizador del documento. 9. Y sin soltar el botón del ratón se asocia con el nodo SWITCH de la siguiente manera. Vea la figura 2.182: Página 153 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Figura 2.182. Colocación del Nodos seleccionado. Elaborada por el realizador del documento. 10. Se repite el paso anterior para asociar todos los nodos al nodo SWITCH como se ilustra en la figura 2.183: Figura 2.183. Asociaciones entre Nodos. Elaborada por el realizador del documento. 4.8.3. Ejercicios de Repaso Cree un diagrama de Distribución que muestre una arquitectura software de tres capas para un sistema de control de boletos de autobús, modelo cliente-servidor. NOTA: Ver ejemplos del ejercicio en el anexo B, sección H. Página 154 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML CAPITULO V. EL FUTURO DEL UML Este último capítulo es una visión a futuro que se tendrá de este lenguaje, el cual se ha convertido en un estándar de facto dentro de la Ingeniería del Software. 5.1. Perspectiva a futuro del lenguaje A pesar de que UML es un lenguaje preciso que utiliza las mejores técnicas, se le puede realizar una extensión, además de mejoras en los conceptos de modelamiento, y muchas técnicas avanzadas pueden ser definidas usando UML como base. Se espera que UML sea la base para muchas herramientas, incluyendo el modelamiento visual, simulación y desarrollo de ambientes. En la medida que integraciones de herramienta interesantes se desarrollen, normas de implementación basadas en UML se tendrán disponibles40. UML ha integrado muchas ideas dispares, de manera que dicha integración acelerará el uso de OO. Hay dos aspectos de “unificado” que UML logra: elimina efectivamente muchas de las diferencias entre los lenguajes de modelamiento y métodos previos y unifica las perspectivas entre muchas diferentes clases de sistemas, fases de desarrollo y conceptos internos. Muchos metodologistas, organizaciones y vendedores usan el Lenguaje de Modelamiento Unificado como su estándar en el desarrollo de procesos y productos y animan a otros adoptar UML. Cada vez más usuarios adoptan UML debido a sus características similares en cuanto a semántica y anotación a los métodos Booch, OMT, OOSE, entre otros, la contribución de UML Partners, la incorporación de la información de la comunidad general, así como la realización de artículos, cursos de enseñanza, ejemplos y libros. 40 www.magma.com.ni/~jorge/upoli_uml/.../Resumen_de_UML.doc Página 155 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML No obstante, la medida real del éxito de UML es su uso en proyectos exitosos y el incremento en la demanda de herramientas de apoyo, libros, aprendizaje, etc41. 5.2. Actividades de unidad por realizar Realizar una síntesis de los capítulos 1, 2, 3 y 5 de esta obra. Conclusión 41 Ídem. Página 156 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML La culminación de este proyecto indica que para ciertos temas dentro del campo de Ingeniería de Desarrollo de Software es necesario, para todas aquellas personas que se están adentrando a este campo, sean estudiantes o intermedios, tener una enseñanza adecuada, misma que les apoye y motive a realizar su trabajo más profesionalmente y tener más creatividad e invención a la hora de desarrollar software de calidad. Es por esto que el realizador de este documento se esforzó por hacer un manual sencillo, amigable, y de forma visual, que permita responder dudas y llevar a la práctica a toda aquella persona que se interese por este documento. El ámbito de la enseñanza en específico, en este caso, para conocer más acerca del Lenguaje de Modelado Unificado, y como saber utilizar de manera rápida y profesional una herramienta OOCASE (como Visual Paradigm 6.5), es esencial en el campo del Análisis y Diseño de Software. Se creó este documento como resultado de experiencias dando clases especificas de Informática, y viendo la necesidad, muy arraigada, de poder crear una herramienta que apoyase a la gente que necesita practicar y saber como utilizar los diferentes diagramas del UML, así como también que metodologías de desarrollo de software se pueden utilizar con éstos. Fue una labor de compilación de información y experiencias vividas, sistematizarlas y conformarlas en un manual sencillo y práctico, mismo que se volvió en algo tangible o real al realizar este documento. En base a la experiencia vivida en las aulas del instituto educativo superior, cuando el realizador de este documento utilizó el presente manual para los discentes de la asignatura Análisis y Diseño con Lenguaje de Modelado Unificado, de octavo semestre de la carrera de Licenciatura en Informática, dentro del Instituto Tecnológico Superior de la Región Sierra, estos discentes pudieron aprender de manera significativa a desarrollar productos software por medio del uso de una herramienta automatizada para el análisis y diseño de sistemas informáticos que manipule los diferentes diagramas del UML. Con lo que se puede concluir que se cubrió el objetivo de la realización de este manual, Página 157 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Referencia Bibliográfica Schmuller, Joseph. Aprendiendo Lenguaje de Modelado Unificado en 24 horas. 1ra. Edición, Edit. Prentice Hall. México, DF. 2001. 221 p. Rumbaugh, James; et al. El Lenguaje Unificado de Modelado, manual de referencia, 1ra. Edición, Edit. Prentice Hall. México, DF. 2000. 16-25 pp. Referencia Electrónica Enciclopedia en línea Wikipedia. Lenguaje de Modelado Unificado. Disponible en: http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado. Recuperado el 02 de mayo de 2010. (13 de junio 2010) UML, orientado a Objetos. Disponible en: http://techfico.blogspot.com/2010/06/uml-orientacion-de-objetos.html. Recuperado el 11 de julio de 2010. Historia de UML. Disponible en: http://alvearjofre.galeon.com/. Recuperado el 10 de mayo de 2010. UML (Unified Modeling Language). Disponible en: http://www.ctv.es/USERS/belmont/historia.htm. Recuperado el 12 de junio del 2010. Linares Pagán, Diego (octubre 2003). Introducción a UML. Disponible en: http://repositorio.bib.upct.es/dspace/bitstream/10317/190/1/pfc1128.pdf. Recuperado el 12 de junio del 2010. La concepción del UML y Diagramas del UML. Disponible en: http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r69318.DOC X. Recuperado el 03 de julio del 2010. Hinojosa Castillo, Laura M.; Ramírez Gil, Ma. Del Pilar (22 de marzo del 2006). Ingeniería del software. Disponible en: Página 158 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML http://www.monografias.com/trabajos34/ingenieria-software/ingenieriasoftware.shtml. Recuperado el 03 de julio del 2010. Enciclopedia en línea Wikipedia. Diagrama de clases. Disponible en: http://es.wikipedia.org/wiki/Diagrama_de_clases. Recuperado el 03 de julio del 2010. Enciclopedia en línea Wikipedia. Programación orientada a objetos. Disponible en: http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos. Recuperado el 03 de junio del 2010. Hitschfeld Kahler, Nancy. Unified Modeling Language UML (Tutorial), Modelos de clases. Disponible en: http://www.dcc.uchile.cl/~psalinas/uml/modelo.html. Recuperado el 03 de junio del 2010. Moreno Martínez, Gerardo. Ingeniería de Software UML. Disponible en: http://www.monografias.com/trabajos5/insof/insof.shtml. Recuperado el 03 de junio del 2010. Pérez Cuvit, Alejandro. Lenguaje UML, La importancia de modelar. Disponible en: http://www.monografias.com/trabajos82/lenguaje-uml- importancia-modelar/lenguaje-uml-importancia-modelar.shtml. recuperado el 03 de junio del 2010. Zamudio, Lenis, et. al. Disponible en: http://www.oocities.org/es/avrrinf/tabd/Foro/Foro_UML.htm. Recuperado el 03 de junio del 2010. Enciclopedia en línea Wikipedia. Software. Disponible en: http://es.wikipedia.org/wiki/Software. Recuperado el 03 de junio del 2010. Enciclopedia en línea Wikipedia. Desarrollo en espiral. Disponible en: http://es.wikipedia.org/wiki/Desarrollo_en_espiral. Recuperado el 03 de junio del 2010. Página 159 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Enciclopedia en línea Wikipedia. Disponible en: Proceso Unificado de Rational. http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational. Recuperado el 03 de junio del 2010. Domínguez, José Alberto (9 de Mayo de 2012). UML: Lenguaje Unificado de Modelado. Disponible en: http://www.que- informatica.com/index.php/software/uml-lenguaje-unificado-demodelado/. Recuperado el 03 de junio del 2010. Gestión de Sistemas (19 de mayo del 2009). Disponible en. http://mdjesus.wordpress.com/2010/05/19/84/. Recuperado el 03 de junio del 2010. Página 160 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Anexos A. Diagramas de los ejercicios prácticos de capítulos Sección A. Diagrama de Casos de Uso Modelado de Negocios Página 161 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Sección B. Diagrama de Casos de Uso Nivel Sistema Página 162 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML B. Respuestas a ejercicios o prácticas de los capítulos Sección A. Diagramas ejemplo de casos de uso 1. Cree un diagrama de casos de uso nivel modelado de negocios para mostrar los roles y responsabilidades de una estación de autobuses dentro del contexto de venta de boletos: Página 163 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 2. Cree otro DCU nivel modelado de negocios para mostrar los roles y responsabilidades de una repostería dentro del contexto de venta de piezas de pan: Página 164 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 3. Cree otro DCU nivel diseño de sistema para mostrar los roles y responsabilidades de un formulario de control de autobuses dentro del contexto de venta de boletos: 4. Cree otro DCU nivel diseño de sistema para mostrar los roles y responsabilidades de un formulario de un catálogo de postres (consulta de postres): Página 165 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Sección B. Diagramas de Actividades de ejemplo 1. Cree un Diagrama de Actividades para mostrar los pasos a realizar del caso de uso Vender Boleto de Autobús: 2. Cree un Diagrama de Actividades para mostrar los pasos a realizar del caso de uso Vender pan: Página 166 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Sección C. Diagrama de Secuencias 1. Cree un Diagrama de Secuencias para mostrar los pasos a realizar para dar de alta aun autobús dentro de un formulario de control de autobuses: Página 167 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 2. Cree un Diagrama de Secuencias para mostrar los pasos a realizar para modificar los datos de un postre dentro de un formulario de control de postres: Página 168 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Sección D. Diagrama de Clases 1. Cree un Diagrama de Clases que muestre el modelo relacional de una base de datos para el control de préstamos dentro de una biblioteca. Página 169 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 2. Cree un Diagrama de Clases que muestre el modelo relacional de una base de datos para el control de ventas dentro de una refaccionaría. Página 170 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Sección E. Diagrama de Estados 1. Crear un diagrama que muestre los estados de un libro, desde que se compra a un proveedor hasta que se presta a un derechohabiente dentro de una biblioteca: 2. Crear un diagrama que muestre los estados de un paquete, desde que se recepciona hasta que se entrega a su dueño, dentro de un servicio de paquetería. Sección F. Diagrama de Colaboración Página 171 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML 1. Cree un Diagrama de Colaboración para mostrar los pasos a realizar para dar de alta aun autobús dentro de un formulario de control de autobuses. 2. Cree un Diagrama de Colaboración para mostrar los pasos a realizar para modificar los datos de un postre dentro de un formulario de control de postres. Página 172 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Sección G. Diagrama de Componentes 1. Cree un diagrama de componentes que muestre una arquitectura software de tres capas para un sistema de control de boletos de autobús, modelo clienteservidor. Página 173 Manual básico de UML; apoyo para la Asign. Análisis y Diseño con UML Sección H. Diagrama de Distribución Cree un diagrama de Distribución que muestre una arquitectura software de tres capas para un sistema de control de boletos de autobús, modelo cliente-servidor. Página 174