UML, un resumen ágil

6,572 views

Published on

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,572
On SlideShare
0
From Embeds
0
Number of Embeds
2,360
Actions
Shares
0
Downloads
0
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide
  • Core message -- second bullet
    UML can be used to communicate system and software design throughout the life cycle
  • UML, un resumen ágil

    1. 1. UML, un resumen ágil Javier Garzás Noviembre 2003 www.javiergarzas.com
    2. 2. La esencia “Si no se puede explicar lo que se hace, el trabajo carece de valor” Erwin Schrödinger Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    3. 3. ¿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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    4. 4. 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. Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    5. 5. A finales de los 90 Se toma conciencia de que existe la necesidad de una notación estándar para el modelado Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    6. 6. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    7. 7. Historia de UML Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    8. 8. Partners en UML 1.0  Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson)  MCI Systemhouse  Microsoft  Digital Equipment  ObjecTime  Hewlett-Packard  i-Logix (David Harel)  Oracle  IBM  Platinium Technology  ICON Computing  Sterling Software (Desmond D’Souza)  Taskon  Intellicorp and James Martin & co. (James Odell)  Texas Instruments  Unisys Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    9. 9. UML, síntesis de los anteriores Rumbaugh Booch Jacobson Odell Meyer Pre- and Post-conditions Shlaer-Mellor Object life cycles UML Harel State Charts Gamma et. al. Frameworks, patterns, notes Embly Singleton classes Wirfs-Brock Fusion Responsabilities y estereotipos Operation descriptions, message numbering Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    10. 10. 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. Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    11. 11. 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 Relación Generalización Asociación 1 roles de la asociación 2..* RolAsociación Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    12. 12. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    13. 13. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    14. 14. 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. Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    15. 15. Los Diagramas más destacados de UML
    16. 16. Modelo de vistas 4+1 Descripción del modelo desde 5 vistas Vista de Vista de Diseño Implementación Vista de Procesos Vista de Casos de Uso Vista de Despliegue Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    17. 17. Paquetes  Mecanismo general para dividir modelos y agrupar elementos  Representación: Nombre de paquete Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    18. 18. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    19. 19. Paquetes  Uno 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    20. 20. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    21. 21. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    22. 22. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    23. 23. Ejemplo: Presentación Lógica de la aplicación Servicios Dominio Almacen físico de datos Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    24. 24. Casos de Uso  Captura información de cómo un sistema o negocio trabaja.  No pertenece realmente al enfoque orientado a objetos. Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    25. 25. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    26. 26. Ejemplos Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    27. 27. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    28. 28. Ejemplo : Perro : Gato : Ratón 1. Ladrar 2.1. Correr 2.2. Sacar uñas 1. Ladrar 2. Asustar 2. As ustar : Perro 2.1. Correr : Gato 2.2. Sacar uñas 3. Comer 3.1. Destroy 3.1. Destroy 3. Com er : Ratón Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    29. 29. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    30. 30. Ejemplo Animales Tiene Casa 1 0..* + hacerRuido() + orinar() Perro Collar Gato Ratón Eslabones Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    31. 31. Diagramas de Estados  Modela comportamiento, aspectos dinámicos  Se elabora un diagrama de Estados para cada clase que tenga un comportamiento dinámico importante Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    32. 32. Ejemplo Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    33. 33. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    34. 34. Ejemplos (Fowler, 1997) Buscar Bebida [no hay café] [hay café Poner café en filtro [no zumo] [hay zumo] 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    35. 35. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    36. 36. Ejemplo Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    37. 37. 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 Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    38. 38. Ejemplo Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML
    39. 39. Relación entre Diagramas Casos de Uso Diagramas de Secuencia Diagramas de Colaboración Diagrama de Clases y Objetos Diagramas de Estados Diagramas de Distribución Diagramas de Componentes C Ó D I G O Diagramas de Actividad Javier Garzás, Proceso de desarrollo OO con UML – Presentación de UML

    ×