2.3 El UML como una herramienta de modelado de objetos. Construccin de una casa para fido Puede hacerlo una sola persona Requiere: Modelado mnimo Proceso simple Herramientas simples 2 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Construccin de una casa Construida eficientemente y en un tiempo razonable por un equipo Requiere: Modelado Proceso bien definido Herramientas ms sofisticadas 3 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Construccin de un rascacielos 4 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Claves en Desarrollo de SI Herramientas Proceso Notacin 5 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Sistema Computacional Proceso de Negocios Orden Item envo El modelado captura las partes esenciales del sistema
Abstraccin - Modelado Visual (MV) 6 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. MV para manejar la complejidad 7 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Interfaz de Usuario (Visual Basic, Java, ..) Lgica del Negocio (C++, Java, ..) Servidor de BDs (C++ & SQL, ..) Modelar el sistema independientemente del lenguaje de implementacin MV para definir la Arquitectura del Software 8 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mltiples Sistemas MV promueve la reutilizacin Componentes Reutilizados 9 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Qu es UML? UML = Unified Modeling Language
Un lenguaje de propsito 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)
10 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Situacin de Partida Diversos mtodos y tcnicas OO, con muchos aspectos en comn pero utilizando distintas notaciones
Inconvenientes para el aprendizaje, aplicacin, construccin y uso de herramientas, etc.
Pugna entre distintos enfoques (y correspondientes gurs)
=> Necesidad de una notacin estndar 11 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Historia de UML Comenz como el Mtodo Unificado, con la participacin de Grady Booch y Jim Rumbaugh. Se present en el OOPSLA95 El mismo ao se uni Ivar Jacobson. Los Tres Amigos son socios en la compaa Rational Software. Herramienta CASE Rational Rose 12 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Historia de UML Nov 97 UML aprobado por el OMG 1998 1999 2000 UML 1.2 UML 1.3 UML 1.4 2002? UML 2.0 Revisiones menores 13 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Participantes en UML 1.0 Rational Software (Grady Booch, Jim Rumbaugh y Ivar Jacobson) Digital Equipment Hewlett-Packard i-Logix (David Harel) IBM ICON Computing (Desmond DSouza) Intellicorp and James Martin & co. (James Odell)
14 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. UML aglutina enfoques OO UML Rumbaugh Jacobson Meyer Harel Wirfs-Brock Fusion Embly Gamma et. al. Shlaer-Mellor Odell Booch Pre- and Post-conditions State Charts Responsabilities Operation descriptions, message numbering Singleton classes Frameworks, patterns, notes Object life cycles 15 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mtodos Formales en Modelado Tipos de enfoques: no-formales, semi- formales y formales
Las principales mejoras al utilizar mtodos formales son: Mayor rigor en la especificacin Mejores condiciones para realizar la verificacin y validacin en forma ms exhaustiva Mejores condiciones para automatizacin de procesos para la generacin automtica de prototipos y/o cdigo final
16 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Inconvenientes en UML Definicin del proceso de desarrollo usando UML. UML no es una metodologa Falta integracin con respecto de otras tcnicas tales como patrones de diseo, interfaces de usuario, documentacin, etc. Ejemplos aislados Monopolio de conceptos, tcnicas y mtodos entorno a UML
17 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Perspectivas de UML UML ser el lenguaje de modelado orientado a objetos estndar predominante los prximos aos Razones: Participacin de metodlogos influyentes Participacin de importantes empresas Aceptacin del OMG como notacin estndar Evidencias: Herramientas que proveen la notacin UML Edicin de libros Congresos, cursos, camisetas, etc. 18 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de UML Use Case Diagrams Use Case Diagrams Diagramas de Casos de Uso Scenario Diagrams Scenario Diagrams Diagramas de Colaboracin State Diagrams State Diagrams Diagramas de Componentes Component Diagrams Component Diagrams Diagramas de Distribucin State Diagrams State Diagrams Diagramas de Objetos Scenario Diagrams Scenario Diagrams Diagramas de Estados Use Case Diagrams Use Case Diagrams Diagramas de Secuencia State Diagrams State Diagrams Diagramas de Clases Diagramas de Actividad Modelo Un modelo es una descripcin completa de un sistema desde una perspectiva concreta 19 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Paquetes en UML Los paquetes ofrecen un mecanismo general para la organizacin de los modelos agrupando elementos de modelado
Se representan grficamente como: Nombre de paquete 20 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Paquetes en UML Cada paquete corresponde a un subconjunto del modelo y contiene, segn el modelo, clases, objetos, relaciones, componentes y diagramas asociados
Un paquete puede contener otros paquetes, sin lmite de anidamiento pero cada elemento pertenece a (est definido en) slo un paquete 21 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Paquetes en UML
Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes
Todas las clases no son necesariamente visibles desde el exterior del paquete, es decir, un paquete encapsula a la vez que agrupa 22 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. El Paradigma Orientado a Objetos 23 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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
24 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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 ... 25 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. ...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 26 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Objetos Objeto = unidad atmica que integra 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 concepto (ecuacin matemtica) 27 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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 28 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Objetos Ejemplo de varios objetos relacionados: Juan Felipe Libreta de ahorro a plazo Dos clientes del banco Cuenta corriente Libreta de ahorro Cuenta corriente 29 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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 ... 30 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Identidad Oid (Object Identifier)
Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes caractersticas:
Constituye un identificador nico y global para cada objeto dentro del sistema
Es determinado en el momento de la creacin del objeto
Es independiente de la localizacin fsica del objeto, es decir, provee completa independencia de localizacin 31 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Identidad
Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura
No cambia durante toda la vida del objeto. Adems, un oid no se reutiliza aunque el objeto deje de existir
No se tiene ningn control sobre los oids y su manipulacin resulta transparente
Sin embargo, es preciso contar con algn medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos) 32 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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 33 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Comportamiento Ejemplo de interaccin: Otro objeto Un objeto Un mensaje Operacion 1 Operacion 2 34 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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 35 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Persistencia La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo
Un objeto persistente conserva su estado en un sistema de almacenamiento permanente (usualmente memoria secundaria)
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, pues sta debera ser transparente, un objeto existe desde su creacin hasta que se destruya 36 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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 37 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Comunicacin Categoras de objetos: Activos Pasivos Clientes Servidores
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 38 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. 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.
Una operacin es la especificacin y la implementacin de una funcin efectuada por un objeto.
39 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. El Concepto de Operacin Las operaciones menipulan los atributos del objeto.
Pueden tener parmetros de entrada y/o salida.
Un mensaje de un objeto a otro involucra la ejecucin de una operacin.
40 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. El Concepto de Operacin El nombre del mensaje es el de la operacin.
Los parmetros del mensaje son los parmetros de la operacin.
41 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso 42 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso 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 lmites 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 implementacin
Comparacin con respecto a los Diagramas de Flujo de Datos del Enfoque Estructurado 43 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso
Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categora de usuarios que participan en el mismo
Estn basado en el lenguaje natural, es decir, es accesible por los usuarios
44 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplo de Casos de Uso Caso de Uso: Comprar productos Actores: Cliente, Cajero Tipo: Primario Descripcin: Un cliente llega a la caja registradora con los artculos que comprar. El cajero registra los artculos y cobra el importe. Al terminar la operacin el cliente se marcha con los productos. comprar productos 45 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso Ejemplo: Sistema Actor A Caso de uso X Actor B Caso de uso Y 46 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso 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 aplicacin y deben ser utilizados Otros sistemas: sistemas con los que el sistema interacta
La misma persona fsica puede interpretar varios papeles como actores distintos
El nombre del actor describe el papel desempeado
47 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de interaccin, 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
48 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso: Relaciones UML define cuatro tipos de relacin en los Diagramas de Casos de Uso:
Comunicacin: Caso de Uso Actor 49 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso: Relaciones
Inclusin : una instancia del Caso de Uso origen incluye tambin el comportamiento descrito por el Caso de Uso destino
En UML se estereotipa como <<include>> Caso de uso origen Caso de uso destino <<include>> 50 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso: Relaciones
Extensin : el Caso de Uso origen extiende el comportamiento del Caso de Uso destino Caso de uso origen Caso de uso destino <<extend>> 51 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso: Relaciones
Herencia : el Caso de Uso origen hereda la especificacin del Caso de Uso destino y posiblemente la modifica y/o ampla Caso de uso origen Caso de uso destino 52 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso: Relaciones Ejemplo: Identificacin Giro por Internet Cliente Giro <<extends>> <<includes>> <<extend>> <<include>> Transferencia por Internet Transferencia 53 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso: Construccin Un caso de uso debe ser simple, inteligible, claro y conciso Generalmente hay pocos actores asociados a cada Caso de Uso Preguntas clave: cules son las tareas del actor? qu informacin crea, guarda, modifica, destruye o lee el actor? debe el actor notificar al sistema los cambios externos? debe el sistema informar al actor de los cambios internos? 54 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Casos de Uso: Construccin La descripcin del Caso de Uso comprende: el inicio: cundo y qu actor lo produce? el fin: cundo se produce y qu valor devuelve? la interaccin actor-caso de uso: qu mensajes intercambian ambos? objetivo del caso de uso: qu lleva a cabo o intenta? cronologa y origen de las interacciones repeticiones de comportamiento: qu operaciones son iteradas? situaciones opcionales: qu ejecuciones alternativas se presentan en el caso de uso?
55 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. RF- <id del requisito> <nombre del requisito funcional> Versin <numero de versin y fecha> Autores <autor> Fuentes <fuente de la versin actual> Objetivos asociados <nombre del objetivo> Descripcin El sistema deber comportarse tal como se describe en el siguiente caso de uso { concreto cuando <evento de activacin> , abstracto durante la realizacin de los casos de uso <lista de casos de uso>} Precondicin <precondicin del caso de uso> Paso Accin 1 {El <actor> , El sistema} <accin realizada por el actor o sistema>, se realiza el caso de uso < caso de uso RF-x> 2 Si <condicin>, {el <actor> , el sistema} <accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x> 3 4 5 6 Secuencia Normal n Postcondicin <postcondicin del caso de uso> Paso Accin 1 Si <condicin de excepcin>,{el <actor> , el sistema} }<accin realizada por el actor o sistema>>, se realiza el caso de uso < caso de uso RF-x>, a continuacin este caso de uso {continua, aborta} 2 Excepciones 3 Rendimiento Paso Cota de tiempo 1 n segundos 2 n segundos Frecuencia esperada <n de veces> veces / <unidad de tiempo> Importancia {sin importancia, importante, vital} Urgencia {puede esperar, hay presin, inmediatamente} Comentarios <comentarios adicionales>
56 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Modelado de Interacciones 57 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Interaccin Los objetos interactan para realizar colectivamente los servicios ofrecidos por las aplicaciones. Los diagramas de interaccin muestran cmo se comunican los objetos en una interaccin
Existen dos tipos de diagramas de interaccin: los Diagramas de Colaboracin y los Diagramas de Secuencia. 58 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de interaccin Los Diagramas de Secuencia son ms adecuados estn para observar la perspectiva cronolgica de las interacciones
Los Diagramas de Colaboracin ofrecen una mejor visin espacial mostrando los enlaces de comunicacin entre objetos
Normalmente el D. de Colaboracin se obtiene a partir del correspondiente D. de Secuencia 59 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Secuencia Muestra la secuencia de mensajes entre objetos durante un escenario concreto. Cada objeto viene dado por una barra vertical. El tiempo transcurre de arriba abajo. Cuando existe demora entre el envo y la atencin se puede indicar usando una lnea oblicua. 60 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Secuencia Un ejemplo: C B A m1 m2 m3 m4 m5 61 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Secuencia Ejemplo Quien llama Lnea telefnica Llamado descuelga tono marcar indicacin de llamada timbre descuelga diga? Las bandas rectangulares representan los periodos de actividad de los objetos 62 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Estructuras de control Podemos representar iteraciones en el envo de mensajes, p.e., mientras se cumpla una condicin: While X Loop end Loop 63 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Estructuras de control La iteracin puede expresarse tambin como parte del mensaje: *[condicin] Mensaje 64 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Estructuras de control Las bifurcaciones condicionales pueden representarse de esta forma: If condicin else end if 65 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Colaboracin Son tiles en la fase exploratoria para identificar objetos
La distribucin de los objetos en el diagrama permite observar adecuadamente la interaccin de un objeto con respecto de los dems
La estructura esttica viene dada por los enlaces; la dinmica por el envo de mensajes por los enlaces 66 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mensajes Un mensaje desencadena una accin en el objeto destinatario
Un mensaje se enva si han sido enviados los mensajes de una lista (sincronizacin):
A B A.1, B.3 / 1:Mensaje 67 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mensajes Un mensaje se enva iterada y secuencialmente a un conjunto de instancias:
A B 1 *[i:=1..n] : Mensaje 68 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mensajes Un mensaje se enva iterada y concurrentemente a un conjunto de instancias:
A B 1 *| | [i:=1..n] : Mensaje 69 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mensajes Un mensaje se enva de manera condicionada:
A B [x>y] 1: Mensaje 70 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mensajes Un mensaje que devuelve un resultado:
A B 1: distancia:= mover(x,y) 71 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Mensajes Los argumentos de un mensaje pueden ser valores obtenidos como consecuencia de las llamadas anteriores
Los argumentos pueden ser tambin expresiones de navegacin construidas a partir del objeto cliente
Los argumentos pueden omitirse en el diagrama
72 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Modelado Conceptual 73 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Clases Modelado Conceptual:
Organizacin del conocimiento del dominio del problema en un conjunto de abstracciones ordenadas de forma que se obtiene un conocimiento ms profundo del problema 74 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Clases
La clase define el mbito de definicin de un conjunto de objetos
Cada objeto pertenece a una clase
Los objetos se crean por instanciacin de las clases
75 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Clases: Notacin Grfica Cada clase se representa en un rectngulo con tres compartimientos: nombre de la clase atributos de la clase operaciones de la clase motocicleta color cilindrada velocidad maxima arrancar acelerar frenar 76 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Clases: Encapsulacin La encapsulacin presenta dos ventajas bsicas: Se protegen los datos de accesos indebidos El acoplamiento entre las clases se disminuye Favorece la modularidad y el mantenimiento
Los atributos de una clase no deberan ser manipulables directamente por el resto de objetos
77 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Relaciones entre Clases Los enlaces entre de objetos pueden representarse entre las respectivas clases
Formas de relacin entre clases:
Asociacin y Agregacin (vista como un caso particular de asociacin) Generalizacin/Especializacin
Las relaciones de Agregacin y Generalizacin forman jerarquas de clases 78 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Asociacin La asociacin expresa una conexin bidireccional entre objetos Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos Universidad Estudiante Univ. de Murcia:Universidad Antonio:Estudiante Una asociacin Un enlace 79 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplo:
Asociacin Persona Compaa trabaja-para nombre s. s. nombre direccin jefe Administra empleado * * emplea-a 0.. 1 0.. 1 0.. 1 * marido casado-con mujer 80 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Asociacin Especificacin de multiplicidad (mnima...mxima)
1 Uno y slo uno 0..1 Cero o uno M..N Desde M hasta N (enteros naturales) * Cero o muchos 0..* Cero o muchos 1..* Uno o muchos (al menos uno)
La multiplicidad mnima >= 1 establece una restriccin de existencia
81 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Asociacin Cualificada Aerolnea Viajero nro_billete * 0..1 Tablero Ajedrez fila columna 1 1 Cuadro Reduce la multiplicidad del rol opuesto al considerar el valor del cualificador 82 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Agregacin La agregacin representa una relacin parte_de entre objetos
En UML se proporciona una escasa caracterizacin de la agregacin
Puede ser caracterizada con precisin determinando las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus objetos componentes
83 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplos
motor coche 1 1 1 1 Persona 0..2 * +Padre 0..2 +Hijos * 84 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplos Cuenta Persona 1 * or Asociacin excluyente Empresa * * Usuario Estacin est-autorizado-en prioridad privilegios camb_privil Autorizacin * * Clase de asociacin Polgono Punto contiene 3.. * 1 {ordenado} Agregacin 85 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Jerarquas de Generalizacin/Especializacin Permiten gestionar la complejidad mediante un ordenamiento taxonmico Se obtiene usando los mecanismos de abstraccin de Generalizacin y/o Especializacin La Generalizacin consiste en factorizar las propiedades comunes de un conjunto de clases en una clase ms general 86 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Nombres usados: clase padre - clase hija, superclase - subclase, clase base - clase derivada Las subclases heredan caractersticas de sus superclases, es decir, atributos y operaciones (y asociaciones) de la superclase estn disponibles en sus subclases ... Jerarquas de Generalizacin/Especializacin 87 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos.
Abstracciones ms generales. vehiculo vehiculo terrestre vehiculo areo camion coche avion helicoptero ... Jerarquas de Generalizacin/Especializacin 88 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. ... Jerarquas de Generalizacin/Especializacin La especializacin es una tcnica muy eficaz para la extensin y reutilizacin
Caracterizacin de la generalizacin en UML: disjunta - no disjunta total (completa) - parcial (incompleta) coche funcionando estropeado 89 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Un ejemplo combinado: vehiculo vehiculo terrestre camion coche funcionando estropeado vehiculo areo avion helicoptero comercial militar de menos de 1000kms de ms de 1000 kms esttica esttica esttica dinmica dinmica ... Jerarquas de Generalizacin/Especializacin 90 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Herencia Mltiple Se presenta cuando una subclase tiene ms de una superclase
La herencia mltiple debe manejarse con precaucin. Algunos problemas son el conflicto de nombre y el conflicto de precedencia
Se recomienda un uso restringido y disciplinado de la herencia. Java y Ada 95 simplemente no ofrecen herencia mltiple
91 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Polimorfismo El trmino polimorfismo se refiere a que una caracterstica de una clase puede tomar varias formas
El polimorfismo representa la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje
Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones 92 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Polimorfismo Dormir() { en un rbol } Dormir() { sobrela espalda } Dormir() { sobre el vientre } Zoo Animal Len Tigre Oso 1 * Dormir() { } 93 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Polimorfismo La bsqueda automtica del cdigo que en cada momento se va a ejecutar es fruto del enlace dinmico
El cumplimiento del Principio de Sustitucin permite obtener un comportamiento y diseo coherente 94 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Estados 95 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Estados Los Diagramas de Estados representan autmatas de estados finitos, desde el p.d.v. de los estados y las transiciones Son tiles slo para los objetos con un comportamiento significativo El resto de objetos se puede considerar que tienen un nico estado El formalismo utilizado proviene de los Statecharts (Harel) 96 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Estados Cada objeto est en un estado en cierto instante El estado est caracterizado parcialmente por los valores de los atributos del objeto El estado en el que se encuentra un objeto determina su comportamiento Cada objeto sigue el comportamiento descrito en el D. de Estados asociado a su clase Los D. De Estados y escenarios son complementarios 97 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Estados Los D. de Estados son autmatas jerrquicos que permiten expresar concurrencia, sincronizacin y jerarquas de objetos Los Diagramas de Estados son grafos dirigidos Los D. De Estados de UML son deterministas Los estados inicial y final estn diferenciados del resto La transicin entre estados es instantnea y se debe a la ocurrencia de un evento
98 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplo de un Diagrama de Estados para la clase persona:
en el paro en activo jubilado contratar perder empleo jubilarse jubilarse Diagramas de Estados 99 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Las guardas permiten condicionar la transicin:
a b Evento[ condicin ] Diagramas de Estados 100 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Acciones Podemos especificar la ejecucin de una accin como consecuencia de la transicin:
a b Evento[ condicin ] / accin Dicha accin tambin se considera instantnea 101 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Podemos especificar el envo de un evento a otro objeto como consecuencia de la transicin:
a b Evento( arg1, arg2 )[ condicin ] / ^otro_objeto.evento(arg2) Acciones 102 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Se puede especificar el hacer una accin como consecuencia de entrar, salir o estar en un estado:
estado A entry: accin por entrar exit: accin por salir do: accin mientras en estado Acciones 103 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Se puede especificar el hacer una accin cuando ocurre en dicho estado un evento que no conlleva salir del estado:
estado A on evento_activador( arg1 )[ condicin ]: accin por evento .. Acciones 104 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Actividades Las actividades son similares a las acciones pero tienen duracin y se ejecutan dentro de un estado del objeto
Las actividades pueden interrumpirse en todo momento, cuando se desencadena la operacin de salida del estado 105 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Cuando una actividad finaliza se produce una transicin automtica de salida del estado
a do: actividad b [ not condicin ] b [ condicin ] Actividades 106 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Generalizacin de Estados Podemos reducir la complejidad de estos diagramas usando la generalizacin de estados Distinguimos as entre superestado y subestados Un estado puede contener varios subestados disjuntos Los subestados heredan las variables de estado y las transiciones externas 107 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Generalizacin de Estados Ejemplo: a b c e1 e2 e2 108 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Quedara como: c a b a b e1 e2 Generalizacin de Estados 109 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Es preferible tener estados iniciales de entrada a un nivel de manera que desde los niveles superiores no se sepa a qu subestado se entra: c a b a b e1 e2 e1 e0 Generalizacin de Estados 110 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. La agregacin de estados es la composicin de un estado a partir de varios estados independientes
La composicin es concurrente por lo que el objeto estar en alguno de los estados de cada uno de los subestados concurrentes Generalizacin de Estados 111 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplo: e1 e1 Generalizacin de Estados 112 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Destruccin del Objeto La destruccin de un objeto es efectiva cuando el flujo de control del autmata alcanza un estado final no anidado
La llegada a un estado final anidado implica la subida al superestado asociado, no el fin del objeto 113 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Destruccin de Objeto Ejemplo: En tierra Crear(matricula) En vuelo aterrizar despegar crash 114 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Transiciones temporizadas Las esperas son actividades que tienen asociada cierta duracin
La actividad de espera se interrumpe cuando el evento esperado tiene lugar Este evento desencadena una transicin que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado 115 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplo: a esperar dinero entry: Mostrar mensaje do: Esperar 30 segundos exit: cerrar ranura b anular transaccin / Abrir ranura Depsito efectuado Si en 30 segundos no se introduce el dinero se termina la actividad pasando a anular la transaccin. En cualquier caso se cierra la ranura. Transiciones temporizadas 116 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplo v.2: Transiciones temporizadas a esperar dinero entry: Mostrar mensaje exit: cerrar ranura b anular transaccin / Abrir ranura Depsito efectuado Temporizador (30 segundos) 117 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Modelado de Componentes 118 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagrama de Componentes Los diagramas de componentes describen los elementos fsicos del sistema y sus relaciones
Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable 119 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. ...Diagramas de Componentes Los componentes representan todos los tipos de elementos software que entran en la fabricacin de aplicaciones informticas. Pueden ser simples archivos, paquetes de Ada, bibliotecas cargadas dinmicamente, etc. Cada clase del modelo lgico se realiza en dos componentes: la especificacin y el cuerpo 120 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. La representacin grfica es la siguiente: Genrico Cuerpo Especificacin Package specification Package body Generic package Diagramas de Componentes 121 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Dependencias entre Componentes Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente 122 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Subsistemas Los distintos componentes pueden agruparse en paquetes segn un criterio lgico y con vistas a simplificar la implementacin Son paquetes estereotipados en <<subsistemas>> NewPackage4 <<subsistema>> 123 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Modelado de Distribucin 124 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Diagramas de Distribucin Los Diagramas de Distribucin muestran la disposicin fsica de los distintos nodos que componen un sistema y el reparto de los componentes sobre dichos nodos Nodo 125 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Los estereotipos permiten precisar la naturaleza del equipo: Dispositivos Procesadores Memoria
Los nodos se interconectan mediante soportes bidireccionales (en principio) que pueden a su vez estereotiparse Diagramas de Distribucin 126 Unidad 2. Tcnicas bsicas de modelado de objetos. 2.3 El UML como una herramienta de modelado de objetos. Ejemplo de conexin entre nodos: Nodo <<Procesador> nodo2 <<dispositivo>> dispositiv o conexin7 conexin1 <<<<TCP/IP>>>> <<RDSI>> En Rational Rose podemos distinguir entre el dispositivo por estereotipado y el dispositivo con su propio smbolo Diagramas de Distribucin