1 / 185

Ingeniería de Software Clase 6

Ingeniería de Software Clase 6. UML. Contenido de la clase 6. Desarrollo de soft OO usando UML Introducción Modelado del soft UML (Conceptos básicos) Paradigma OO Fundamentos Diagramas de CU Diagramas de Interacciones Diagramas de clase Diagramas de estado/actividad

lazaro
Download Presentation

Ingeniería de Software Clase 6

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ingeniería de SoftwareClase 6 UML Ingeniería de Software - Clase 6

  2. Contenido de la clase 6 • Desarrollo de soft OO usando UML • Introducción • Modelado del soft • UML (Conceptos básicos) • Paradigma OO • Fundamentos • Diagramas de CU • Diagramas de Interacciones • Diagramas de clase • Diagramas de estado/actividad • Diagrama de componentes • Diagrama de despliegue Ingeniería de Software - Clase 6

  3. Bibliografía • UML • www.dsic.upv.es/~uml • Patricio Letelier Torres UPV (politécnica de Valencia) • UML Gota a Gota (Fowler) • UML (Booch, Rumbaugh, Jacobson) • Instant UML (Muller) • Webs • www.omg.org/uml Ingeniería de Software - Clase 6

  4. Ejemplos Construcción de una cucha para un perro Puede hacerlo una sola persona Requiere: Modelado mínimo Proceso simple Herramientas simples Construcción de una casa Construida eficientemente y en un tiempo razonable de un equipo Modelado Proceso bien definido Herramientas más sofisticadas Construcción de un rascacielos Contexto de desarrollo Determinar configuración del proceso Recursos necesarios Herramientas más sofisticadas aún. Modelado del software www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  5. Claves en Desarrollo de SI www.dsic.upv.es/~uml Notación Herramientas Proceso Ingeniería de Software - Clase 6

  6. Orden Item envío Proceso de Negocios Abstracción - Modelado Visual (MV) www.dsic.upv.es/~uml “El modelado captura las partes esenciales del sistema” Sistema Computacional Ingeniería de Software - Clase 6

  7. ¿Qué es UML? www.dsic.upv.es/~uml • UML = Unified Modeling Language • Un lenguaje de propósito general para el modelado orientado a objetos • Documento “OMG Unified Modeling Language Specification” • UML combina notaciones provenientes desde: • Modelado Orientado a Objetos • Modelado de Datos • Modelado de Componentes • Modelado de Flujos de Trabajo (Workflows) Ingeniería de Software - Clase 6

  8. Motivación www.dsic.upv.es/~uml • 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 Ingeniería de Software - Clase 6

  9. Historia de UML www.dsic.upv.es/~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 Ingeniería de Software - Clase 6

  10. Historia de UML www.dsic.upv.es/~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 Ingeniería de Software - Clase 6

  11. UML “aglutina” enfoques OO www.dsic.upv.es/~uml 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, Ingeniería de Software - Clase 6 message numbering

  12. Aspectos Novedosos www.dsic.upv.es/~uml • 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 Ingeniería de Software - Clase 6

  13. Inconvenientes en UML www.dsic.upv.es/~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. • “Monopolio de conceptos, técnicas y métodos en torno a UML” Ingeniería de Software - Clase 6

  14. Perspectivas de UML www.dsic.upv.es/~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 • Evidencias: • Herramientas que proveen la notación UML • “Edición” de libros • Congresos, cursos, etc. Ingeniería de Software - Clase 6

  15. Modelos y Diagramas www.dsic.upv.es/~uml • Un modelo capturauna vista de un sistema del mundo real. Es una abstracción de dicho sistema, considerando un cierto propósito. Así, el modelo describe completamente aquellos aspectos del sistema que son relevantes al propósito del modelo, y a un apropiado nivel de detalle. • Diagrama: una representación gráfica de una colección de elementos de modelado, a menudo dibujada como un grafo con vértices conectados por arcos OMG UML 1.4 Specification Ingeniería de Software - Clase 6

  16. ... Modelos y Diagramas www.dsic.upv.es/~uml • Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de interés • El código fuente del sistema es el modelo más detallado del sistema (y además es ejecutable). Sin embargo, se requieren otros modelos ... • Cada modelo es completo desde su punto de vista del sistema, sin embargo, existen relaciones de trazabilidad entre los diferentes modelos Ingeniería de Software - Clase 6

  17. Diagrama de Casos de Uso Diagrama de Clases Diagrama 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 Diagramas de UML www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  18. State Diagrams State Diagrams Diagramas de Clases Use Case Diagrams Use Case Diagrams State Diagrams Diagramas de Casos de Uso State Diagrams Use Case Diagrams Diagramas de Objetos Use Case Diagrams Diagramas de Secuencia Scenario Diagrams State Diagrams Scenario Diagrams State Diagrams Diagramas de Componentes Diagramas de Colaboración Modelo Component Diagrams Scenario Diagrams Component Diagrams Scenario Diagrams Diagramas de Distribución Diagramas de Estados Diagramas de Actividad ... Diagramas de UML www.dsic.upv.es/~uml Los diagramas expresan gráficamente partes de un modelo Ingeniería de Software - Clase 6

  19. Organización de Modelos www.dsic.upv.es/~uml • 4+1 vistas de Kruchten (1995) Vista de Realización Vista Lógica Vista de los Casos de Uso Vista de Distribución Vista de Procesos Este enfoque sigue el browser de Rational Rose Ingeniería de Software - Clase 6

  20. ... Organización de Modelos www.dsic.upv.es/~uml Propuesta de Rational Unified Process (RUP) • M. de Casos de Uso del Negocio (Business Use-Case Model) • M. de Objetos del Negocio (Business Object Model) • M. de Casos de Uso (Use-Case Model) • M. de Análisis (Analysis Model) • M. de Diseño (Design Model) • M. de Despliegue (Deployment Model) • M. de Datos (Data Model) • M. de Implementación (Implementation Model) • M. de Pruebas (Test Model) Ingeniería de Software - Clase 6

  21. Paquetes en UML www.dsic.upv.es/~uml • Los paquetes ofrecen un mecanismo general para la organización de los modelos/subsistemas agrupando elementos de modelado • Se representan gráficamente como: Ingeniería de Software - Clase 6

  22. … Paquetes en UML www.dsic.upv.es/~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 Ingeniería de Software - Clase 6

  23. … Paquetes en UML www.dsic.upv.es/~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 Ingeniería de Software - Clase 6

  24. … Paquetes en UML www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  25. Diagrama de Casos de Uso www.dsic.upv.es/~uml • Casos de Uso es una técnica para capturar información de cómo un sistema o negocio trabaja, o de cómo se desea que trabaje • No pertenece estrictamente al enfoque orientado a objeto, es una técnica para captura de requisitos Ingeniería de Software - Clase 6

  26. … Ejemplos www.dsic.upv.es/~uml En el paquete tipos de venta: Otro Ejemplo Ingeniería de Software - Clase 6

  27. … Ejemplos www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  28. Diagrama de Secuencia www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  29. Diagrama de Colaboración www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  30. Diagrama de Clases www.dsic.upv.es/~uml • El Diagrama de Clases es el diagrama principal para el análisis y diseño • Un diagrama de clases presenta las clases del sistema con sus relaciones estructurales y de herencia • La definición de clase incluye definiciones para atributos y operaciones • El modelo de casos de uso aporta información para establecer las clases, objetos, atributos y operaciones Ingeniería de Software - Clase 6

  31. Ejemplos www.dsic.upv.es/~uml Asociación (Clase y Visibilidad) Ingeniería de Software - Clase 6

  32. … Ejemplos (Clase Asociación) www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  33. … Ejemplos (Generalización) www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  34. … Ejemplos www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  35. Diagrama de Estados www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  36. [no zumo] [no hay café] Buscar Bebida [hay zumo] [hay café Poner café en filtro Añadir agua al depósito Agarrar taza Agarrar zumo Poner filtro en máquina Encender máquina / cafetera.On Café en preparación indicador de fin Servir café Beber Diagrama de Actividad www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  37. … Otro Ejemplo (con swim lines) www.dsic.upv.es/~uml Pasajero Airline Vendedor Solicitar pasaje Verificar existencia vuelo Dar detalles vuelo Informar alternativas y precios Seleccionar vuelo Reservar plazas Solicitar pago Confirmar plaza reservada Pagar pasaje Emitir billete Ingeniería de Software - Clase 6

  38. Diagrama Componentes www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  39. Diagrama de Despliegue www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  40. Resumen www.dsic.upv.es/~uml • UML define una notación que se expresa como diagramas sirven para representar modelos/subsistemas o partes de ellos • El 80 por ciento de la mayoría de los problemas pueden modelarse usando alrededor del 20 por ciento de UML-- Grady Booch Ingeniería de Software - Clase 6

  41. UML Paradigma OO Diagramas Ingeniería de Software - Clase 6

  42. Proximidad de los conceptos de modelado respecto de las entidades del mundo real Mejora captura y validación de requisitos Acerca el “espacio del problema” y el “espacio de la solución” Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema Facilita construcción, mantenimiento y reutilización Conceptos comunes de modelado durante el análisis, diseño e implementación Facilita la transición entre distintas fases Favorece el desarrollo iterativo del sistema Disipa la barrera entre el “qué” y el “cómo” Sin embargo, existen problemas ... ¿Por qué la Orientación a Objetos? www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  43. Problemas en OO www.dsic.upv.es/~uml “...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir” “...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados” --Wolfgang Strigel Ingeniería de Software - Clase 6

  44. … Problemas en OO www.dsic.upv.es/~uml • Un objeto contiene datos y operaciones que operan sobre los datos, pero ... • Podemos distinguir dos tipos de objetos degenerados: • Un objeto sin datos (que sería lo mismo que una biblioteca de funciones) • Un objeto sin “operaciones”, con sólo operaciones del tipo crear, recuperar, actualizar y borrar (que se correspondería con las estructuras de datos tradicionales) • Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos “Las aplicaciones de gestión están constituidas mayoritariamente por objetos degenerados” Ingeniería de Software - Clase 6

  45. Reflexiones respecto de Situación Actual de Desarrollo de SI Análisis Diseño Implementación DFDs DEs Enfoque Estructurado Entornos de Programación Visual E-R Modelo Relacional Diagramas de Casos de Uso Diagramas de Actividad Diagramas de Secuencia Diagramas de Colaboración d Modelo Relacional !! Bases de Datos (Objeto-) Relacionales Enfoque OO Diagrama de Clases Diagrama de Estados Diagramas de Actividad Ingeniería de Software - Clase 6

  46. Diagramas de Casos de Uso Ingeniería de Software - Clase 6

  47. Los Casos de Uso (Ivar Jacobson) describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el p.d.v. del usuario Permiten definir los límites del sistema y las relaciones entre el sistema y el entorno Los Casos de Uso son descripciones de la funcionalidad del sistema independientes de la implementación Comparación con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado Un caso de uso es una función atómica ofrecida por el sistema al entorno (actores) DFD puede ser detallada en un DFD Hijo Caso Uso y Proceso igual modelado, pero caso de uso expresa funcionalidad mediante interacción de actores Caso de uno no modela detalle funcional interno Relaciones de extensión y generalización de CU no tienen igual en DFD Casos de Uso www.dsic.upv.es/~uml Ingeniería de Software - Clase 6

  48. … Casos de Uso www.dsic.upv.es/~uml • Los Casos de Uso cubren la carencia existente en métodos previos (OMT, Booch) en cuanto a la determinación de requisitos • Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios que participan en el mismo • Están basado en el lenguaje natural, es decir, es accesible por los usuarios Ingeniería de Software - Clase 6

  49. … Casos de Uso www.dsic.upv.es/~uml • Actores: • Principales: personas que usan el sistema • Secundarios: personas que mantienen o administran el sistema • Material externo: dispositivos materiales imprescindibles que forman parte del ámbito de la aplicación y deben ser utilizados • Otros sistemas: sistemas con los que el sistema interactúa • La misma persona física puede interpretar varios papeles como actores distintos • El nombre del actor describe el papel desempeñado Ingeniería de Software - Clase 6

  50. … Casos de Uso www.dsic.upv.es/~uml • Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interacción, los escenarios, desde el punto de vista del usuario • Un escenario es una instancia de un caso de uso • Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estará dirigido por los casos de uso Ingeniería de Software - Clase 6

More Related