UML Agustn J. Gonzlez OOP&D. Material Tomado de: Departamento Sistemas Informticos y Computacin (DSIC) Universidad Politcnica de Valencia (UPV) - Espaa www.dsic.upv.es/~uml Introduccin Modelado de SW Construccin de una casa para fido Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples I. Introduccin: Modelado de SW Construccin de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas I. Introduccin: Modelado de SWI Construccin de un rascacielos I. Introduccin: Modelado de SI Claves en Desarrollo de SI Herramientas Proceso Notacin I. Introduccin: Modelado de SWI Sistema Computacional Proceso de Negocios Orden Item envo El modelado captura las partes esenciales del sistema
Abstraccin - Modelado Visual (MV) I. Introduccin: Modelado de SW MV para manejar la complejidad I. Introduccin: Modelado de SW Mltiples Sistemas MV promueve la reutilizacin Componentes Reutilizados I. Introduccin: Modelado de SW Por qu la Orientacin a Objetos? Proximidad de los conceptos de modelado respecto de las entidades del mundo real
Mejora captura y validacin de requisitos Acerca el espacio del problema y el espacio de la solucin
Modelado integrado de propiedades estticas y dinmicas del mbito del problema
Facilita construccin, mantenimiento y reutilizacin III. El Paradigma Orientado a Objeto Por qu la Orientacin a Objetos? Conceptos comunes de modelado durante el anlisis, diseo e implementacin
Facilita la transicin entre distintas fases Favorece el desarrollo iterativo del sistema Disipa la barrera entre el qu y el cmo
Sin embargo, existen problemas ... III. El Paradigma Orientado a Objeto ...Los conceptos bsicos de la OO se conocen desde hace dos dcadas, pero su aceptacin todava no est tan extendida como los beneficios que esta tecnologa puede sugerir ...La mayora de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretenda. Esta prctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados --Wolfgang Strigel Problemas en OO III. El Paradigma Orientado a Objeto Un objeto contiene datos y operaciones que operan sobre los datos, pero ... Podemos distinguir dos tipos de objetos degenerados: Un objeto sin datos (que sera lo mismo que una biblioteca de funciones) Un objeto sin operaciones, con slo operaciones del tipo crear, recuperar, actualizar y borrar (que se correspondera con las estructuras de datos tradicionales) Un sistema construido con objetos degenerados no es un sistema verdaderamente orientado a objetos Problemas en OO III. El Paradigma Orientado a Objeto Fundamentos de Modelado OO Objetos Objeto = unidad atmica que encapsula estado y comportamiento
La encapsulacin en un objeto permite una alta cohesin y un bajo acoplamiento
Un objeto puede caracterizar una entidad fsica (coche) o abstracta (ecuacin matemtica) III. El Paradigma OO: Fundamentos de Modelado OO Objetos El Modelado de Objetos permite representar el ciclo de vida de los objetos a travs de sus interacciones En UML, un objeto se representa por un rectngulo con un nombre subrayado Otro Objeto Un Objeto Otro Objeto ms III. El Paradigma OO: Fundamentos de Modelado OO Objetos Ejemplo de varios objetos relacionados: Felipe Juan Cuenta Corriente 101 Cuenta Corriente 114 Banco de Valencia III. El Paradigma OO: Fundamentos de Modelado OO Objetos Objeto = Identidad + Estado + Comportamiento El estado est representado por los valores de los atributos Un atributo toma un valor en un dominio concreto Un coche Azul 979 Kg 70 CV ... III. El Paradigma OO: Fundamentos de Modelado OO Clases y Objetos III. El Paradigma OO: Fundamentos de Modelado OO Estado El estado evoluciona con el tiempo
Algunos atributos pueden ser constantes
El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto
Las operaciones de un objeto son consecuencia de un estmulo externo representado como mensaje enviado desde otro objeto III. El Paradigma OO: Fundamentos de Modelado OO Comportamiento Ejemplo de interaccin: Otro objeto Un objeto Un mensaje Operacion 1 Operacion 2 III. El Paradigma OO: Fundamentos de Modelado OO Comportamiento Los mensajes navegan por los enlaces, a priori en ambas direcciones
Estado y comportamiento estn relacionados
Ejemplo: no es posible aterrizar un avin si no est volando. Est volando como consecuencia de haber despegado del suelo III. El Paradigma OO: Fundamentos de Modelado OO Persistencia La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo Podremos despus reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la ejecucin (materializacin del objeto)
Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debera ser transparente, un objeto existe desde su creacin hasta que se destruya III. El Paradigma OO: Fundamentos de Modelado OO Comunicacin Un sistema informtico puede verse como un conjunto de objetos autnomos y concurrentes que trabajan de manera coordinada en la consecucin de un fin especfico
El comportamiento global se basa pues en la comunicacin entre los objetos que la componen III. El Paradigma OO: Fundamentos de Modelado OO Comunicacin Categoras de objetos: Activos - Pasivos Cliente Servidores, Agentes
Objeto Activo: posee un hilo de ejecucin (thread) propio y puede iniciar una actividad
Objeto Pasivo: no puede iniciar una actividad pero puede enviar estmulos una vez que se le solicita un servicio Cliente es el objeto que solicita un servicio. Servidor es el objeto que provee el servicio solicitado III. El Paradigma OO: Fundamentos de Modelado OO Comunicacin Los agentes renen las caractersticas de clientes y servidores
Son la base del mecanismo de delegacin
Introducen indireccin: un cliente puede comunicarse con un servidor que no conoce directamente III. El Paradigma OO: Fundamentos de Modelado OO Comunicacin Ejemplo en el que un agente hace de aislante: Un agente Un cliente Sevidor 1 Servidor 2 III. El Paradigma OO: Fundamentos de Modelado OO El Concepto de Mensaje La unidad de comunicacin entre objetos se llama mensaje
El mensaje es el soporte de una comunicacin que vincula dinmicamente los objetos que fueron separados previamente en el proceso de descomposicin Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinmico
III. El Paradigma OO: Fundamentos de Modelado OO El Concepto de Mensaje Objeto 4 Objeto 3 Objeto 2 Objeto 1 : Mensaje E : Mensaje D : Mensaje C : Mensaje A III. El Paradigma OO: Fundamentos de Modelado OO Proceso de Desarrollo de SW basado en UML Define Quin debe hacer Qu, Cundo y Cmo debe hacerlo
No existe un proceso de software universal. Las caractersticas de cada proyecto (equipo de desarrollo, recursos, etc.) exigen que el proceso sea configurable Qu es un Proceso de Desarrollo de SW? Requisitos nuevos o modificados Sistema nuevo o modificado Proceso de Desarrollo de Software IV. Proceso de Desarrollo de SW basado en UML Historia de RUP Pruebas funcionales Pruebas de desempeo Gestin de requisitos Gestin de cambios y configuracin Ingeniera de Negocio Ingeniera de datos Diseo de interfaces Rational Unified Process 1998 Rational Objectory Process 1996-1997 Objectory Process 1987-1995 Enfoque Ericsson UML IV. Proceso de Desarrollo de SW basado en UML Dos Dimensiones IV. Proceso de Desarrollo de SW basado en UML Fases e Hitos (Milestones) tiempo Objetivos (Vision)
Arquitectura
Capacidad Operacional Inicial
Release del Producto Inception Elaboration Construction Transition IV. Proceso de Desarrollo de SW basado en UML El ciclo de vida iterativo se basa en la evolucin de prototipos ejecutables que se muestran a los usuarios y clientes En el ciclo de vida iterativo a cada iteracin se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteracin se establecen en funcin de la evaluacin de las iteraciones precedentes IV. Proceso de Desarrollo de SW basado en UML Proceso Iterativo e Incremental Las actividades se encadenan en una mini- cascada con un alcance limitado por los objetivos de la iteracin Anlisis Diseo Codific. Pruebas e Integracin n veces IV. Proceso de Desarrollo de SW basado en UML ... Proceso Iterativo e Incremental Proceso Iterativo e Incremental Enfoque Cascada Enfoque Iterativo e Incremental IV. Proceso de Desarrollo de SW basado en UML Fases del Ciclo de Vida El ciclo de vida consiste en una serie de ciclos, cada uno de los cuales produce una nueva versin del producto Cada ciclo est compuesto por fases y cada una de estas fases est compuesta por un nmero de iteraciones Las fases son: Inicio o Estudio de oportunidad Elaboracin Construccin Transicin IV. Proceso de Desarrollo de SW basado en UML ...Fases del Ciclo de Vida Inicio o Estudio de oportunidad (inception) Define el mbito y objetivos del proyecto Se define la funcionalidad y capacidades del producto
Elaboracin Tanto la funcionalidad como el dominio del problema se estudian en profundidad Se define una arquitectura bsica Se planifica el proyecto considerando recursos disponibles
IV. Proceso de Desarrollo de SW basado en UML ...Fases del Ciclo de Vida Construccin El producto se desarrolla a travs de iteraciones donde cada iteracin involucra tareas de anlisis, diseo e implementacin Las fases de estudio y anlisis slo dieron una arquitectura bsica que es aqu refinada de manera incremental conforme se construye (se permiten cambios en la estructura) Gran parte del trabajo es programacin y pruebas Se documenta tanto el sistema construido como el manejo del mismo Esta fase proporciona un producto construido junto con la documentacin IV. Proceso de Desarrollo de SW basado en UML ...Fases del Ciclo de Vida Transicin Se libera el producto y se entrega al usuario para un uso real Se incluyen tareas de marketing, empaquetado atractivo, instalacin, configuracin, entrenamiento, soporte, mantenimiento, etc. Los manuales de usuario se completan y refinan con la informacin anterior Estas tareas se realizan tambin en iteraciones IV. Proceso de Desarrollo de SW basado en UML Esfuerzo respecto de las Workflows 15% 10% 15% 30% 15% 10% gestin cambios 5% mantenimiento P r e l i m i n a r y I t e r a t i o n ( s ) i t e r . # 1 i t e r . # 2 i t e r . # n i t e r . # n + 1 i t e r . # n + 2 i t e r . # m i t e r . # m + 1 I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n Una iteracin en la fase de elaboracin Requisitos Diseo Implementacin Pruebas Anlisis ...Esfuerzo respecto de las Fases P r e l i m i n a r y I t e r a t i o n ( s ) i t e r . # 1 i t e r . # 2 i t e r . # n i t e r . # n + 1 i t e r . # n + 2 i t e r . # m i t e r . # m + 1 I n c e p t i o n E l a b o r a t i o n C o n s t r u c t i o n T r a n s i t i o n Esfuerzo: 5% 20% 65% 10% Duracin: 10% 30% 50% 10% Una iteracin en la fase de elaboracin Requisitos Diseo Implementacin Pruebas Anlisis IV. Proceso de Desarrollo de SW basado en UML Conclusiones Claves en el Desarrollo de SI Herramientas p.e. Rational Rose Proceso p.e. Rational Unified Process Notacin UML V. Conclusiones Contexto de Desarrollo: Grado de Complejidad V. Conclusiones Bibliografa Recomendada UML www.omg.org/uml/ Meta-links www.celigent.com/uml/ y www.cetus-links.org/oo_uml.html Pierre-Alain Muller Instant UML Martin Fowler, UML Destilled (UML Gota a Gota) Terry Quatrani, Visual Modeling ..., un caso de estudio
Herramientas CASE Herramientas basadas en UML www.objectsbydesign.com/tools/umltools_byPrice.html International Council in SE (INCOSE) www.incose.org/tools/ Herramientas basadas en UML www.objectsbydesign.com/tools/umltools_byPrice.html Otras Revista IEEE Software, Conferencias: OOPSLA, ECOOP Patrones www.enteract.com/bradapp/docs/patterns-intro.html, Tutoriales en ingls www.celigent.com/omg/umlrtf/tutorials.htm