Agenda Contexto Arquitectura de Software Métodos ágiles (XP y otros) Modelado orientado a objetos Elementos Diagramas Limitaciones Conclusiones
UML – Antecedentes Lenguaje Unificado de Modelado: Lenguaje para especificar, visualizar y documentar los artefactos de los sistemas Grady Booch (Booch) + Jim Rumbaugh (OMT) + Ivar Jacobson (Objectory), 1994 ? Estándar de OMG (Object Management Group) desde 1997 [ http://www-omg.org ] Versión 2.0: notación simplificada
UML – Significación Definición: Es una familia de notaciones gráficas, útil para diseñar sistemas de software, particularmente sistemas que habrán de desarrollarse en términos de OO. Desde su establecimiento ca. 1997, ha desplazado a una multitud de lenguajes gráficos de modelado OO (lo cual es de agradecer) Mellor y Fowler: principales usos Sketch (selectivo) * Blueprint (completo) – Igual a CASE, en desgracia Lenguaje de programación – MDA, Executable UML. No realista en opinión de Fowler. Fowler: No existe ningún estándar que especifique cómo mapea UML sobre un lenguaje de programación en particular
UML – Building blocks 7 Elementos Estructurales Clases, Interfaces, Colaboraciones, Casos de uso, Clases activas, Componentes, Nodos 2 Elementos de Comportamiento Interacciones (mensajes, secuencias & enlaces), máquinas de estado 1 elemento de agrupación: paquetes 1 elemento de anotación 4 Relaciones Dependencia, asociación, generalización, realización 9 Diagramas
UML – Diagramas Estáticos: Diagramas de clases Diagramas de objetos Diagramas de componentes Diagramas de despliegue Dinámicos: Diagramas de casos de uso Diagramas de secuencia Diagramas de colaboración Diagramas de estados Diagramas de actividades
UML 2 – Diagramas
RUP Milestones – Por primera vez en Boehm, 1996: Incepción – Visión y alcance – Life Cycle Objective Milestone Elaboración – Riesgos, arquitectura y planes – Life Cycle Architecture Milestone Construcción – Diseño detallado – Operation Capability Milestone Transición – Fine tuning – Product Release Milestone
Fases de análisis y diseño Definiciónde casos de uso Definicióndel modelodel dominio Definiciónde diagramasde interacción Definiciónde diagramas declases diseño Casos de uso: Análisis de requerimientos Modelo de dominio: Conceptos, atributos y asociaciones Diagramas de interacción: Flujo de mensajes (invocación de métodos) Diagramas de clases: Métodos requeridos por los mensajes
Análisis de requerimientos En UP los requerimientos se clasifican conforme al modelo FURPS+ [Grady92]: Funcional [Casos de uso] Usabilidad: Factor humano, documentación Fiabilidad (Reliability) Performance Soporte: Mantenimiento, configurabilidad… +: Adicionales (packaging, legales…)
Análisis de requerimientos Casos de uso: Writing effective use cases [Cockburn01] Software Engineering Body of Knowledge, http://www.swebok.org ISO 9126, IEEE Std 830, IEEE Std 1061 SEI – Carnegie Mellon Introducidos por Jacobson (86) para describir requerimientos funcionales
Casos de Uso Los casos de uso son requerimientos, pero no todos los requerimientos Son documentos de texto, no diagramas (aunque en UML hay diagramas de casos de uso) No están ligados a OOD u OOP Anderson, Fowler, Cockburn… recomiendan no usar diagramas, sino escribir texto Se recomienda que sean de caja negra: qué (análisis), pero no cómo (diseño) Plantillas para casos de uso en http://www.usecases.org
Casos de Uso Un caso de uso puede tener variantes, ser parte de otro o extender algún otro Los casos de uso se realizan mediante diagramas de colaboración* (UML 1) En BRJ99 son alternativamente referidos como estáticos (p.203) y dinámicos (p.205) Fowler no recomienda el uso de diagramas, sino la forma narrativa Se considera que la definición de casos de uso en UML es más bien ambigua
Página siguiente |