UML (Unified Modeling Language) Lenguage Unificado de Modelado Antonio J. Sierra UML 1 Área de Ingeniería Telemática Universidad de Sevilla Índice Historia Introducción Objetivos del modelo Críticas Modelo Conceptual de UML Clases Diagrama de Clases UML Área de Ingeniería Telemática 2 Universidad de Sevilla 1 Historia (I) Entre mitad de los setenta y finales de los ochenta. De 10 a 50 métodos orientados a objetos (19891994) No cubrían las necesidades completamente. De la experiencia de estos: El método Booch, El método OOSE (Object-Oriented Software Engineering) de Jacobson El método OMT (Object Modeling Technique) Rumbaugh UML 3 Área de Ingeniería Telemática Universidad de Sevilla Historia UML Área de Ingeniería Telemática 4 Universidad de Sevilla 2 Introducción UML Unified Modeling Language (UML) es un lenguaje de modelado de propósito general estándarizado en el campo de la ingeniería software. UML incluye un conjunto de técnicas de notación gráfica para crear modelos abstractos de sistemas específicos, referidos como modelo UML. UML es un lenguaje gráfico de modelado de sistemas de software más conocido y utilizado en la actualidad; Respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software. UML ofrece un estándar para describir un "plano" del sistema (modelo): incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes de software reutilizables. Área de Ingeniería Telemática 5 Universidad de Sevilla Introducción UML es un "lenguaje" para especificar y no para describir métodos o procesos. Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir. Es el lenguaje en el que está descrito el modelo. Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar. UML Área de Ingeniería Telemática 6 Universidad de Sevilla 3 Introducción UML no puede compararse con la programación estructurada, pues UML significa (Lengua de Modelación Unificada), UML no es un programa, solo se representa en forma de diagrama la realidad de una utilización en un requerimiento. La programación estructurada, es una forma de programar como lo es la orientación a objetos, La orientación a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos UML 7 Área de Ingeniería Telemática Universidad de Sevilla Objetivos del modelo Visualizar como es o queremos que sea un sistema. Especificar la estructura y el comportamiento. Proporcionar plantillas que nos guíen en la construcción de un sistema. Documentar las decisiones que hemos adoptado. UML Área de Ingeniería Telemática 8 Universidad de Sevilla 4 Críticas a UML A pesar de estar ampliamente reconocido y utilizado, UML siempre ha sido muy criticado por su carencia de una semántica precisa, lo que ha dado lugar a que la interpretación de un modelo UML no pueda ser objetiva. Otro problema de UML es que no se presta con facilidad al diseño de sistemas distribuidos. En tales sistemas cobran importancia factores como transmisión, serialización, persistencia, etc. UML no cuenta con maneras de describir tales factores. No se puede, por ejemplo, usar UML para señalar que un objeto es persistente o remoto, o que existe en un servidor que corre continuamente y que es compartido entre varias instancias de ejecución del sistema analizado. Sin embargo, UML si acepta la creación de nuestros propios componentes para este tipo de modelado. UML 9 Área de Ingeniería Telemática Universidad de Sevilla Modelo Conceptual de UML Bloques básicos de construcción de UML Elementos Relaciones Diagramas Reglas de UML Mecanismos comunes Especificaciones Adornos Divisiones comunes Mecanismos de extensibilidad UML Área de Ingeniería Telemática 10 Universidad de Sevilla 5 Bloques básicos de construcción de UML Elementos Elementos estructurales Elementos de comportamiento Elementos de agrupación Elementos de anotación Relaciones Dependencia Asociación Generación Realización Diagramas clases objetos casos de uso de secuencia de colaboración de estados de actividades de componentes de despliegue UML 11 Área de Ingeniería Telemática Universidad de Sevilla Elementos estructurales Clase Interfaz Colaboración Caso de Uso Clase activa Componente Nodo UML Área de Ingeniería Telemática 12 Universidad de Sevilla 6 Elementos Estructurales: Las clases público protegido privado Nombre (abstracta en cursiva) Ventana +origen #altura : Float -esMaestra : Boolean = false abrir() cerrar() mover() dibujar() ponerAlarma(t:Temperatura) valor() : Temperatura UML Responsabilidades -- descriptivo de lo que realiza Nombres Simples de clases Cliente atributos Nombre de Camino de clases operaciones java::awt::Rectangle responsabilidades Área de Ingeniería Telemática 13 Universidad de Sevilla Atributos [visibilidad] nombre {multiplicidad}[:tipo] [=valor inicial] [{propiedades}] Propiedades predefinidas changeable No hay restricciones para modificar el valor del atributo addOnly Una vez creado un valor no puede ser eliminado o modificado (con multiplicidad mayor que 1) frozen El valor del atributo no se puede modificar tras inicializar el objeto UML Área de Ingeniería Telemática 14 Universidad de Sevilla 7 Operaciones UML [visibilidad] nombre [(lista de parámetros)][:tipo de retorno] [{propiedades}] En la lista por parámetros [dirección] nombre : tipo [= valor por defecto] dirección puede ser in para parámetro de entrada (no modificable), out para salida (modificable) e inout para entrada (modificable). propiedades puede ser leaf no puede ser polimórfica isQuery sin efectos laterales sequential los invocadores deben coordinarse para que en el objeto sólo haya un único flujo guarded se puede invocar exactamente una operación a un mismo tiempo sobre el objeto concurrent operación concurrente 15 Área de Ingeniería Telemática Universidad de Sevilla Ejemplos Cliente 3 nombre dirección teléfono fechaNacimiento Almacén Producto id nombre precio ubicación Icono {root} origen:Punto Mostrar() Botón {leaf} Factura Envio Mostrar() Transacción acciones tuvoExito() deshacer() Responsabilidades --Mantener información relativa a productos enviados UML Área de Ingeniería Telemática 16 Universidad de Sevilla 8 Elementos de comportamiento Interacción, mensaje intercambiados entre un conjunto de objetos dibujar Máquina de estados, secuencia de estados por los que pasa un objeto, una interacción durante su vida en respuesta a eventos Esperando UML 17 Área de Ingeniería Telemática Universidad de Sevilla Elementos de agrupación, y Elementos de anotación Los elementos de agrupación, son partes organizativas Los elementos de anotación, son partes explicativas Paquetes Reglas del negocio Notas Devuelve una copia del objeto receptor UML Área de Ingeniería Telemática 18 Universidad de Sevilla 9 Relación en UML UML Dependencia, es una relación semántica entre dos elementos, en la cual un cambio a un elemento puede afectar a la semántica del otro Asociación, relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos Generalización, relación de especialización/generalización en la cual los objetos del elemento especializado (hijo) puede sustituir a los objetos del elemento general (padre) Realización, relación semántica entre clasificadores, en donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá. 0..1 * patrón empleado 19 Área de Ingeniería Telemática Universidad de Sevilla Diagrama de Clases UML Área de Ingeniería Telemática 20 Universidad de Sevilla 10