Ingeniera de Software. Unified Modeling Language UML. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 1 The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software system. Utilizando el UML, se generan modelos compuestos de: Elementos: cosas (things) y relaciones (relationships). Diagramas (construidos a partir de los elementos). Vistas (diagramas que muestran diferentes perspectivas del modelo). Qu es el UML? Ingeniera de Software. Proceso de Desarrollo de Software Pgina 2 Historia del UML US D. O. D. Bell Labs XEROX PARC Etc. Etc... Programacin OO Programacin OO Ada Eiffel Smalltalk Simula C++ Booch Wirfs-Brock Jacobson:OOSE Shlaer/Mellor Coad/Yourdon UML Rumbaugh: OMT Martin/Odell Mtodos estructurados Modelado de Entidades Modelado de Eventos Ingeniera de Software. Proceso de Desarrollo de Software Pgina 3 Principales Contribuidores (Los Tres Amigos) Diseo y Modelado Orientado a Objetos (1991) Diseo y Modelado Orientado a Objetos (1991) Ingeniera de Software Orientada a Objetos: Un acercamiento conducido en un Caso de Uso (1992) Ingeniera de Software Orientada a Objetos: Un acercamiento conducido en un Caso de Uso (1992) IVAR JACOBSON JAMES RUMBAUGH Aplicaciones con Diseo Orientado a Objetos (1993) Aplicaciones con Diseo Orientado a Objetos (1993) GRADY BOOCH Ingeniera de Software. Proceso de Desarrollo de Software Pgina 4 Evolucin del UML Mtodo Booch OMT Rumbaugh UML 0.9 1995 UML 1.1 1997 (entregado a OMG) UML 1.3, 1.4, 1.5 1998-2004 UML 2.0 2005 UML 2.2 2009 UML 2.3 mayo 2010 Unified Method 0.8 Otros mtodos OOSE Jacobson UML 0.9 UML 1.1 UML 2.3 Ingeniera de Software. Proceso de Desarrollo de Software Pgina 5 Por qu es importante el UML? Convergencia de Ideas Fin a la Guerra de los Mtodos Estandarizacin del Modelado en la Industria Semntica Definicin Notacin UML El lenguaje de modelado Standard de la Industria UML El lenguaje de modelado Standard de la Industria Ingeniera de Software. Proceso de Desarrollo de Software Pgina 6 UML nos da... Elementos a Modelar Elementos y conceptos fundamentales del modelado Notacin Entrega visual de los elementos del modelo en diagramas grficos. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 7 Elementos del UML 1. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 8 Diagramas de UML 1. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 9 Vistas de UML 1. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 10 Dentro de la vista estructural: - Composite structure. - muestra la estructura interna de una clase y las colaboraciones entre sus elementos. - Profile - muestra estereotipos como clases con el estereotipo<<stereotype>> stereotype y paquetes con el estereotipo <<profile>>. Dentro de la vista dinmica: - Timing. - forma horizontal de un diagrama de secuencia. - Interaction Overview. - tipo de diagrama de actividades en donde los nodos pueden ser diagramas de colaboracin, de secuencia o de timing. Nota. Al diagrama de colaboracin se le llama de comunicacin en UML 2. Nuevos Diagramas del UML 2 Ingeniera de Software. Proceso de Desarrollo de Software Pgina 11 Vistas en UML 2 Ingeniera de Software. Proceso de Desarrollo de Software Pgina 12 Diagrama de Casos de Uso Describe la funcionalidad proporcionada por un sistema en trminos de actores, sus objetivos representados como casos de uso y las dependencias entre los casos de uso. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 13 Diagrama de Clases Describe la estructura de un sistema mostrando las clases del sistema, sus atributos y operaciones y las relaciones entre las clases. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 14 Diagrama de Objetos. Muestra una vista parcial o completa de la estructura de un caso particular de un sistema en un tiempo especfico. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 15 Diagrama de Componentes Describe como se divide un sistema de software en sus componentes y las dependencias entre esos componentes. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 16 Diagrama de Deployment Describe el hardware utilizado en la implementacin del sistema asi como los ambientes de ejecucin y los componentes de software instalados en el hardware. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 17 Diagrama de Paquetes Describe como se divide un sistema en grupos lgicos, mostrando las dependencias entre los grupos. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 18 Diagrama de Colaboracin. Muestra las interacciones entre objetos o partes de objetos en trminos de mensajes numerados. En UML 2 se llama diagrama de comunicacin. Es equivalente al diagrama de secuencia. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 19 Diagrama de Secuencia. Muestra como se comunican los objetos entre s en trminos de una secuencia de mensajes. Tambin indica los intervalos de vida de los objetos relativos a los mensajes. Es equivalente al diagrama de colaboracin. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 20 Diagrama de Actividades Describe los flujos de las operaciones de un sistema paso a paso. Muestra el flujo de control general de un caso de uso. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 21 Diagrama de Estado Describe los estados y las transiciones entre los estados de bjetos particularmente complejos en un sistema. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 22 Diagrama de estructura compuesta (composite structure) Describe la estructura interna de una clase y las colaboraciones que esta estructura hace posibles. UML 2. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 23 Diagrama de profile. Opera a nivel de metamodelo para mostrar estereotipos como clases con el estereotipo <<stereotype>> y perfiles como paquetes con el estereotipo <<profile>>. La relacin de extensin indica que elemento de del metamodelo est extendiendo el estereotipo. UML 2. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 24 Diagrama de timing. Es un tipo especfico de diagrama de interaccin con el foco en restricciones de tiempo. Es muy semejante al diagrama de secuencia. UML 2. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 25 Diagrama de interaction overview. Proporciona una vista general del sistema en la cual los nodos del diagrama representan diagramas de comunicacin. UML 2. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 26 Estereotipos - Extensin del vocabulario de UML, que permite crear nuevos elementos UML desde unos ya existentes pero especficos a un problema concreto - Grficamente es representado con un nombre entre (<<>>) y colocado arriba del nombre del elemento del modelo Ingeniera de Software. Proceso de Desarrollo de Software Pgina 27 Ejemplo de Estereotipos Clase <<business>> - Abstraccin derivada del concepto del negocio Clase <<interface>> - Abstraccin representando un slo punto de entrada a una componente o dispositivo, ofreciendo una coleccin de servicios business Cliente Nombre Direccin Localidad interface Calendario Agenda Tarea Agrega Evento Ingeniera de Software. Proceso de Desarrollo de Software Pgina 28 Qu es y qu NO es UML? UML NO ES: PERO ES: Un lenguaje de programacin. Un lenguaje visual de modelado. Tiene caractersticas que permiten representar las construcciones de los lenguajes de programacin Una metodologa. Un lenguaje que se puede usar para representar las actividades de una metodologa. Utilizado para crear un modelo ejecutable. Un lenguaje que se puede usar para generar esqueletos de cdigo real de programacin. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 29 Herramientas de UML. UML en s no es una herramienta. Los diagramas de UML se pueden hacer en papel, sin embargo, hay herramientas de software para: Dibujar los diagramas UML. Validar la semntica de los diagramas. Dar soporte a una metodologa especfica. Generar esqueletos de cdigo a partir de los diagramas UML. Organizar todos los diagramas de un proyecto. Generar automticamente elementos de modelado de patrones de diseo, componentes de una arquitectura especfica como Java EE o Microsoft .net. Ingeniera de Software. Proceso de Desarrollo de Software Pgina 30 Ejercicio: Tipos de diagramas UML. Diagrama Descripcin 1 Use Cases. A Fotografa de objetos de software y sus relaciones. 2 Clases. B Flujo de tareas que lleva a cabo un actor o sistema. 3 Objetos. C Coleccin de componentes y su distribucin a travs de elementos de hardware. 4 Colaboracin. D Conjunto de conductas de alto nivel que lleva a cabo el sistema para un actor en particular. 5 Secuencia. E Coleccin de objetos que trabajan juntos para soportar alguna conducta del sistema. 6 Actividades. F Coleccin de clases de software y sus relaciones 7 Estado. G Coleccin de otros elementos y diagramas. 8 Componentes. H Coleccin de componentes de software y sus relaciones. 9 Deployment. I Conjunto de estados que puede tener un objeto y las transciones de un estado a otro. 10 Paquetes. J Perspectiva en el tiempo de las acciones de un objeto. A qu diagrama corresponden las descripciones?