400 likes | 417 Views
UML o el Unified Modeling Language<br><br>LENGUAJE de propu00f3sito general, ni mu00e9todo, ni metodologu00eda, el mu00e9todo incluye al lenguaje y al proceso:<br><br>Lenguaje de Modelado -> Notaciu00f3n (generalmente gru00e1fica) que utiliza el mu00e9todo para expresarse<br>Proceso -> recomendaciu00f3n sobre que pasos tomar para diseu00f1ar<br>Mu00e9todo -> Lenguaje de Modelado + Proceso
E N D
Visión general de UML Javier Garzás jgarzas@altransdb.com jgarzas@acm.org
La esencia • “Si no se puede explicar lo que se hace, el trabajo carece de valor” • Erwin Schrödinger
¿Qué es UML? • UML o el Unified Modeling Language • Sucesor de las notaciones de finales de los ‘80 principios de los ‘90. • Estándar OMG • LENGUAJE de propósito general, ni método, ni metodología, el método incluye al lenguaje y al proceso: • Lenguaje de Modelado Notación (generalmente gráfica) que utiliza el método para expresarse • Proceso recomendación sobre que pasos tomar para diseñar • Método Lenguaje de Modelado + Proceso
Situación de Partida • Cada metodólogo que se preciase necesitaba sacar su propia metodología y, por ende, su propia notación. • Tenemos notaciones distintas de: • Booch, Jacobson, Coleman, Rumbaught, Meyer, Coad, Henderson-Sellers, más y más etcs. • Esto produce problemas para: integrar, crear y usar CASEs, aprender, aplicar, construir, etc.
A finales de los 90 Se toma conciencia de que existe la necesidad de una notación estándar para el modelado
Historia de UML • Unified Method (Booch y Rumbaugh). Se presentó en el OOPSLA’95. • Unión (¿compra?) de Jacobson. • Los “Tres Amigos” son socios en la compañía Rational Software. • UML unifica los métodos de sus autores principalmente
Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson) Digital Equipment Hewlett-Packard i-Logix (David Harel) IBM ICON Computing (Desmond D’Souza) Intellicorp and James Martin & co. (James Odell) MCI Systemhouse Microsoft ObjecTime Oracle Platinium Technology Sterling Software Taskon Texas Instruments Unisys Partners en UML 1.0
UML, síntesis de los anteriores Rumbaugh Booch Jacobson Odell Meyer Pre- and Post-conditions UML Shlaer-Mellor Object life cycles Harel State Charts Gamma et. al. Frameworks, patterns, notes Embly Wirfs-Brock Singleton classes Responsabilities y estereotipos Fusion Operation descriptions, message numbering
Algunas características novedosas • Incluye “stereotypes” como mecanismo de extensibilidad. • Aporta un lenguaje para expresar restricciones mediante fórmulas bien formadas: • OCL (Object Constraint Language) desarrollado por IBM • Puede describir cualquier tipo de sistema en términos de diagramas orientados a objetos: • Sistemas de Información, de Tiempo Real, Embebidos, Distribuidos, Sistemas, Web, etc.
Define una Notación y un Meta-Modelo • La notación es el material gráfico que se observa en los modelos, la sintaxis del lenguaje. • El meta-modelo es un diagrama, usualmente de clases, que define una notación. Es necesario para dar rigor a la notación, en UML… semi-formal
Aspectos peyorativos • La integración con respecto de otras técnicas (patrones de diseño, interfaces de usuario, documentación, etc.) • ¿Cercano al usuario? ¿fácil de usar sin un CASE que comprar a algún partner? ¿fácil de aprender? • “Monopolio de conceptos, técnicas y métodos en torno a UML” • Muy orientado a ser guiado por casos de uso
Aspectos peyorativos "... Mi larga búsqueda no ha sido en vano. Ella me ha conducido a una apreciación completa de UML, esta admirable máquina auto-alimentada, dedicada desde la A a la Z a la creación de un nuevo mercado; libre de las dificultades asociadas con el molesto negocio el desarrollo de software: ¡Libros de UML! ¡Cursos de UML! ¡Cursos sobre los libros! ¡Libros sobre los cursos! ¡Libros sobre los libros! ¡Cursos Introductorios para preparar para los cursos avanzados! ¡Cursos para aquellos que enseñan los cursos! ¡Revisiones! ¡Revistas de UML! ¡Conferencias! ¡Workshops! ¡Tutoriales! ¡Estándares! ¡Comités! ¡Camisetas! ...". Bertrand Meyer, 1997
Perspectivas de UML • UML es y será el lenguaje de modelado OO estándar durante los próximos años. • Los móviles: • Las figuras influyentes involucradas. • Importantes partners • Aceptación del OMG como notación estándar (que es lo mismo que dice el punto anterior) • Las pruebas: • Herramientas CASE-UML, Publicaciones, Congresos, Cursos, Vosotros, Yo, etc.
9 Diagramas en UML Diagrama de Casos de Uso Diagrama de Clase Diagramas de Objetos Diagramas de Comportamiento Diagrama de Estados Diagrama de Actividad Diagramas de Interacción Diagrama de Secuencia Diagrama de Colaboración Diagramas de implementación Diagrama de Componentes Diagrama de Despliegue
Modelo de vistas 4+1 Descripción del modelo desde 5 vistas Vista de Diseño Vista de Implementación Vista de Casos de Uso Vista de Procesos Vista de Despliegue
Paquetes • Mecanismo general para dividir modelos y agrupar elementos • Representación:
Paquetes • Subconjuntos del modelo: • Pueden contener: clases, objetos, relaciones,componentes y diagramas asociados • Definen la arquitectura del sistema • Los estereotipos aplicables: • <<Categoría>> y <<Subsistema>> permiten distinguir los paquetes de la vista lógica y los de realización, respectivamente
Paquetes • Un puede contener a otros, sin límite de anidamiento • Un nivel dado puede contener paquetes y además otros elementos de modelado (por ejemplo Diagramas de Clases y de Interacción) • Cada elemento pertenece a un sólo paquete • Una clase de un paquete puede aparecer en otro paquete por la importación a través de una relación de dependencia entre paquetes
Paquetes • Las importaciones entre paquetes se representan por medio de una relación de dependencia, orientada del cliente al proveedor • Esto implica que al menos una clase del paquete cliente usa los servicios ofrecidos por al menos una clase del paquete proveedor. • Una clase depende de otra si accede a un valor del proveedor, invoca a una operación o referencia al proveedor como argumento en alguna operación
Paquetes • Todas las clases no son necesariamente visibles desde el exterior del paquete • El operador “::” permite designar una clase definida en un contexto distinto del actual • Por ejemplo, la expresión Ventas::Producto designa la clase Producto definida en el paquete Ventas • Un paquete encapsula a la vez que agrupa
Paquetes • Los paquetes también poseen una interfaz y una implementación • Cada elemento de un paquete se incluye como visible o no desde el exterior del paquete • Sólo las clases públicas aparecen en la interfaz del paquete • No debe haber relaciones cíclicas entre paquetes
Casos de Uso • Captura información de cómo un sistema o negocio trabaja. • No pertenece realmente al enfoque orientado a objetos.
Diagramas de Casos de Uso • Cada Caso de Uso puede estar definido por: • texto que lo describe • secuencia de pasos ejecutados dentro del escenario • condiciones pre-post para que el escenario comience o termine • mezclando las anteriores • Representados por una elipse • Un actor es un agente, alguien o algo que solicita un servicio al sistema o actúa como catalizador para que ocurra algo
Diagramas de Interacción • Diagramas de Secuencia y de Colaboración: usados para realizar un escenario del sistema, determinando los objetos y mensajes involucrados • Un Diagrama de Secuencia muestra los objetos de un escenario mediante líneas verticales y los mensajes entre objetos como flechas conectando objetos • El Diagrama de Colaboración muestra como los objetos están conectados y los mensajes enviados acompañados de una flecha que indica su dirección
Diagramas e Clases • Principal Diagrama en cualquier método de Análisis o Diseño Orientado a Objetos • Muestra las relaciones estructurales y estáticas entre las clases • Se irán refinando durante todo el proceso de desarrollo, para detallarlos se usan muchos de los otros diagramas
Diagramas de Estados • Modela comportamiento, aspectos dinámicos • Se elabora un diagrama de Estados para cada clase que tenga un comportamiento dinámico importante
Diagramas de actividad • Caso especial de Diagrama de Estados donde: • Todos (o la mayoría de) los estados son estados de acción • Todas (la mayoría de) las transiciones son “disparadas” como consecuencia de la finalización de la la acción. • El Diagrama puede estar asociado a: • Una clase • La implementación de una operación • Un Caso de uso
Ejemplos (Fowler, 1997) [no zumo] [no hay café] Buscar Bebida [hay zumo] [hay café Poner café en filtro Añadir agua al depósito Coger taza Coger zumo Poner filtro en máquina Encender máquina ^cafetera.On Café en preparación indicador de fin Servir café Beber
Diagramas de Componentes • Permite modelar la estructura física del software • Un componente representa un modulo de código físico. Pueden corresponder con código fuente, binario o ejecutable • Una relación de dependencia indica que un componente utiliza otro, por lo cual depende de él. Existe visibilidad entre componentes • Por lo general, un componente equivale a un paquete
Diagramas de Despliege • El Diagrama de Despliege modela la distribución en tiempo de ejecución de los elementos de procesamiento y componentes de software, junto a los procesos y objetos asociados • En el Diagrama de Distribución se modelan los nodos y la comunicación entre ellos • Cada nodo puede contener instancias de componentes
Relación entre Diagramas C Ó D I G O Diagramas de Distribución Diagrama de Clases y Objetos Casos de Uso Diagramas de Secuencia Diagramas de Componentes Diagramas de Colaboración Diagramas de Estados Diagramas de Actividad