540 likes | 741 Views
Curso de UML. Definición de UML. Es un conjunto de notaciones para la creación de modelos de objetos.
E N D
Curso de UML JEML
Definición de UML • Es un conjunto de notaciones para la creación de modelos de objetos. • Es un lenguaje para la especificación, visua-lización, construcción y documentación de los artefactos de sistemas de software, así como para modelar negocios o cualquier sistema que no sea software. M.C. Jorge Eduardo Macias Luevano
Razones de aparición de UML • Necesidad de estandarizar los lenguajes de modelación para la industria de software orientado a objetos. • Necesidad del desarrollo de un buen modelo del sistema de software a desarrollar. • Crear un conjunto de notaciones y semántica que abarque adecuadamente todas las escalas de arquitecturas complejas, de software, a través de todos los dominios M.C. Jorge Eduardo Macias Luevano
Metas del UML • Definir un lenguaje de modelación visual fácil de usar y semánticamente rico. • Estandarizar los lenguajes de modelación orientados a objetos (Booch, OMT, OOSE) • Suministrar mecanismos de especificación extendibles. • Integrar las mejores prácticas de la industria • Fortalecer el crecimiento del mercado de herramientas orientadas a objetos. M.C. Jorge Eduardo Macias Luevano
Metas del UML • Soportar conceptos contemporáneos de desarrollo de software: • Componentes, colaboración, estructuras, patrones, escalable, concurrencia, distribución, etc. • Proveer flexibilidad para su aplicación en diferentes procesos. • Habilitar el intercambio de modelos y definir un depósito de interfaces. M.C. Jorge Eduardo Macias Luevano
Alcance del UML • Es un lenguaje para especificación, visualización y documentación de los artefactos de un sistema de software. • Fusiona los conceptos de Booch, OMT (Técnica de Modelado de Objetos) y OOSE (Ing. de Software OO); resultando un lenguaje de modelación sencillo, común y ampliamente usado. • Aumenta la cobertura de lo que se puede hacer con los métodos existentes. M.C. Jorge Eduardo Macias Luevano
Alcance del UML • Es un lenguaje de modelación estándar no es un proceso estándar. • Especifica un lenguaje de modelación que incorpora el consenso de la comunidad OO. • Permite desviaciones que estén expresadas en sus mecanismos de extensión. M.C. Jorge Eduardo Macias Luevano
Alcance del UML • UML provee: • Una semántica y notación con una amplia variedad de factores de modelación. • Una semántica que contenga ciertos factores de de modelación esperados en el futuro; relacionados con componentes tecnológicos, sist. distribuidos, estructuras. • Mecanismos de extensión. M.C. Jorge Eduardo Macias Luevano
Elementos fuera del UML • Lenguaje de programación: UML es un lenguaje de modelación visual. • Herramientas: las herramientas se pueden basar en UML. • Procesos: UML es intencionalmente independiente del proceso. M.C. Jorge Eduardo Macias Luevano
I. Introducción: UML Situación de Partida • Diversos métodos y técnicas OO, con muchos aspectos en común pero utilizando distintas notaciones • Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas, etc. • Pugna entre distintos enfoques (y correspondientes gurús) • Establecer una notación estándar M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
I. Introducción: UML Historia de UML • Comenzó como el “Método Unificado”, con la participación de Grady Booch y Jim Rumbaugh. Se presentó en el OOPSLA’95 • El mismo año se unió Ivar Jacobson. Los “Tres Amigos” son socios en la compañía Rational Software. Herramienta CASE Rational Rose M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
I. Introducción: UML Historia de UML UML 2.0 2001 UML 1.4 2000 1999 UML 1.3 Revisiones menores 1998 UML 1.2 Nov ‘97 UML aprobado por el OMG M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
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 Corp. Platinium Technology Sterling Software Taskon Texas Instruments Unisys I. Introducción: UML Participantes en UML 1.0 M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
I. Introducción: UML UML “aglutina” enfoques OO Rumbaugh Booch Jacobson Odell Meyer Pre- and Post-conditions Shlaer-Mellor UML Object life cycles Harel State Charts Gamma et. al. Frameworks, patterns, notes Embly Wirfs-Brock Singleton classes Responsabilities Fusion Operation descriptions, M.C. Jorge Eduardo Macias Luevano message numbering www.dsic.upv.es/~uml
I. Introducción: UML Aspectos Novedosos • Definición semi-formal del Metamodelo de UML • Mecanismos de Extensión en UML: • Stereotypes • Constraints • Tagged Values • Permiten adaptar los elementos de modelado, • asignándoles una semántica particular M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
I. Introducción: UML Inconvenientes en UML • Definición del proceso de desarrollo usando UML. UML no es una metodología • Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación, etc. • Ejemplos aislados • “Monopolio de conceptos, técnicas y métodos en torno a UML” M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
I. Introducción: UML Perspectivas de UML • UML será el lenguaje de modelado orientado a objetos estándar predominante los próximos años • Razones: • Participación de metodólogos influyentes • Participación de importantes empresas • Aceptación del OMG como notación estándar M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
Perspectivas de UML • Evidencias: • Herramientas que proveen la notación UML • “Edición” de libros • Congresos, cursos, “camisetas”, etc. M.C. Jorge Eduardo Macias Luevano www.dsic.upv.es/~uml
Artefactos del UML JEML
Bloques de Construcción del UML • Elementos/Objetos • Relaciones • Diagramas M.C. Jorge Eduardo Macias Luevano
Elementos en UML • Elementos estructurales • Las partes mas estáticas del modelo • clase, interface, colaboración, caso de uso, clase activa, componente, nodo • Elementos de Comportamiento • Partes dinámicas de los modelos de UML • interacción, maquinas de estado • Elementos de Agrupación • Partes organizacionales de UML • Paquetes y subsistemas • Otros elementos • Partes explicativas de UML • notas M.C. Jorge Eduardo Macias Luevano
Relaciones • Dependencia • Una relación semántica entre dos elementos en donde un cambio en un elemento (el independiente) puede afectar la semántica del otro elemento (dependiente) • Asociación • Una relación estructural que describe un conjunto de ligas M.C. Jorge Eduardo Macias Luevano
Relaciones • Generalización • Una relación de especialización/generalización en la cual el hijo le comparte, la estructura y el comportamiento al padre • Realización • Una relación semántica entre clasificadores, donde un clasificadores especifica un contrato que otro clasificador se encarga de realizar. M.C. Jorge Eduardo Macias Luevano
State Diagrams State Diagrams State Diagrams State Diagrams State Diagrams State Diagrams Object Diagrams Class Diagrams Component Diagrams Component Diagrams Component Diagrams Deployment Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Use Case Diagrams Use Case Diagrams Scenario Diagrams Scenario Diagrams Use Case Diagrams Sequence Diagrams Statechart Diagrams Collaboration Diagrams Diagramas en UML Models Activity Diagrams M.C. Jorge Eduardo Macias Luevano
Diagramas • Un diagrama es una vista dentro de un modelo • Presentado desde el aspecto de un punto de vista particular • Provee una representación parcial del sistema • Es semánticamente consistente con otras vistas M.C. Jorge Eduardo Macias Luevano
Vistas estáticas: Casos de uso Clases Objetos Componentes Despliegue Vistas dinámicas: Secuencia Colaboración De estado Actividad Diagramas UML cuenta con nueve diagramas estándar M.C. Jorge Eduardo Macias Luevano
Diagramas de Casos de Uso • Muestra un conjunto de casos de uso, sus actores y sus relaciones. M.C. Jorge Eduardo Macias Luevano
Diagramas de Casos de Uso • Captura la funcionalidad del sistema como es vista por los usuarios. • Se crean en etapas tempranas del desarrollo • Propósito • especificar el contexto de un sistema • Captura los requerimientos de sistema • Validar la arquitectura del sistema • Dirige la implementación y genera casos de prueba • Desarrollados por analistas y expertos del dominio M.C. Jorge Eduardo Macias Luevano
Diagrama de Clases • Muestra un conjunto de clases, interfaces, y colaboraciones y sus relaciones M.C. Jorge Eduardo Macias Luevano
Diagrama de Clases • Captura el vocabulario de un sistema • Conforma la vista estática del diseño de un sistema • Se crea y se redefine a través de todo el desarrollo. • Propósito: • Nombrar y modelar conceptos en el sistema • Especifica colaboraciones • Especifica esquemas lógicos de bases de datos • Desarrollado por analistas, diseñadores, e implementadores M.C. Jorge Eduardo Macias Luevano
Diagramas de Objetos • Muestra un conjunto de objetos y sus relaciones M.C. Jorge Eduardo Macias Luevano
Diagramas de Objetos • Representa instantáneas estáticas de instancias de las cosas que se encuentran en los diagramas de clases. • Comprende la vista estática del diseño o la vista estática del proceso de un sistema. • Se crea durante el análisis y el diseño. • Propósito: • Ilustrar la estructura de datos/objetos • Especificar instantáneas • Desarrollado por analistas, diseñadores e implementadores M.C. Jorge Eduardo Macias Luevano
Diagramas de Componentes • Muestra la organización y dependencias entre un conjunto de componentes M.C. Jorge Eduardo Macias Luevano
Diagramas de Componentes • Comprende la vista estática de la implementación de un sistema. • Se construye como parte de especificación arquitectónica. • Propósito: • Organizar el código fuente • Construir una versión ejecutable. • Especificar una Base de datos física. • Desarrollado por diseñadores y programadores. M.C. Jorge Eduardo Macias Luevano
Diagramas de Despliegue • Muestran la configuración los nodos de procesos run-time y los componentes que viven en ellos. M.C. Jorge Eduardo Macias Luevano
Diagramas de Despliegue • Captura la topología del hardware del sistema • Se crea como parte de la especificación arquitectónica. • Propósito: • Especificar la distribución de componentes • Identificar cuellos de botella del desempeño • Desarrollado por arquitectos, ingenieros de redes e ingenieros de sistemas M.C. Jorge Eduardo Macias Luevano
Diagramas de Actividad • Muestra el flujo de actividades, dentro de un sistema. O la secuencia de actividades. M.C. Jorge Eduardo Macias Luevano
Diagramas de Actividad • Captura el comportamiento dinámico (orientado a las actividades) • Un tipo especial de diagrama de estado • Propósito: • Modela la función de un sistema • Modela el flujo de control entre objetos • Modela el flujo de trabajo del negocio • Modela las operaciones M.C. Jorge Eduardo Macias Luevano
II. Breve Tour por UML … Otro Ejemplo (con swim lines) Pasajero Airline Vendedor Solicitar pasaje Verificar existencia vuelo Dar detalles vuelo Informar alternativas y precios Seleccionar vuelo Solicitar pago Reservar plazas Confirmar plaza reservada Pagar pasaje Emitir billete M.C. Jorge Eduardo Macias Luevano
Diagramas de Secuencia • Enfatiza el orden de los mensajes en el tiempo M.C. Jorge Eduardo Macias Luevano
Diagramas de Secuencia • Captura el comportamiento dinámico (orientado al tiempo) • Es un tipo de diagrama de interacción • Propósito: • Modelar el flujo de control • Ilustra escenarios típicos M.C. Jorge Eduardo Macias Luevano
Diagramas de Colaboración • Enfatiza la organización estructural de los objetos que envían y reciben mensajes. M.C. Jorge Eduardo Macias Luevano
Diagramas de Colaboración • Captura el comportamiento dinámico (orientado a los mensajes) • Es un tipo de diagrama de interacción • Propósito: • Modelar el flujo de control • Ilustrar la coordinación de la estructura de objetos y el control M.C. Jorge Eduardo Macias Luevano
Diagramas de Etado • Muestra una maquina de estado; compuesta de estados, transiciones, eventos y actividades. M.C. Jorge Eduardo Macias Luevano
Diagramas de Estado • Captura el comportamiento dinámico (orientado a los eventos) • El comportamiento es modelado en términos del estado en el cual se encuentra el objeto, qué acciones se ejecutan en cada estado y cuál es el estado al que transita después de un determinado evento • Propósito: • Modelar el ciclo de vida del objeto • Modelar objetos reactivos (interfaces del usuario, dispositivos, etc.) M.C. Jorge Eduardo Macias Luevano
II. Breve Tour por UML Paquetes en UML • Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas agrupando elementos de modelado • Se representan gráficamente como: M.C. Jorge Eduardo Macias Luevano
II. Breve Tour por UML … Paquetes en UML • Cada paquete corresponde a un submodelo (subsistema) del modelo (sistema) • Un paquete puede contener otros paquetes, sin límite de anidamiento pero cada elemento pertenece a (está definido en) sólo un 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 M.C. Jorge Eduardo Macias Luevano
II. Breve Tour por UML … Paquetes en UML • Todas las clases no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa • El operador “::” permite designar una clase definida en un contexto distinto del actual Práctica 1 M.C. Jorge Eduardo Macias Luevano
II. Breve Tour por UML … Paquetes en UML Práctica 1 M.C. Jorge Eduardo Macias Luevano
Clases, interfaces, colaboraciones Componentes Use cases Vista Caso de Uso Clases Activas Nodos Organization Package, subsystem Dynamics Interaction State machine Arquitectura y el UML Vista Diseño Vista Implementación Vista Proceso Vista Despliegue M.C. Jorge Eduardo Macias Luevano