Beruflich Dokumente
Kultur Dokumente
Contenido
Introduccin a Modelado de SI Un Breve Tour por UML El Paradigma Orientado a Objetos Fundamentos del Modelado OO Captura de Requisitos Modelado de Interacciones Modelado de la Estructura del Sistema Diagramas de Estados Modelado de Componentes Modelado de Distribucin Hacia un proceso de Desarrollo usando UML Conclusiones
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
xito en Desarrollo de SI
Notacin
Herramientas
Proceso
3
" www.dsic.upv.es/~uml
envo
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
5
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
MV promueve la reutilizacin
Multiples Sistemas
Componentes Reutilizados
7
" www.dsic.upv.es/~uml
8
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Qu es UML?
UML = Unified Modeling Language Un lenguaje de propsito general para el modelado orientado a objetos UML combina notaciones provenientes desde:
Modelado Orientado a Objetos Modelado de Datos Modelado de Componentes Modelado de Flujos de Trabajo (Workflows)
9
" www.dsic.upv.es/~uml
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 correspon-dientes gurs)
10
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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.
11
" www.dsic.upv.es/~uml
Historia de UML
2001 ? 2000 ? 1999 1998 Nov 97
UML aprobado por el OMG
12
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
MCI Systemhouse Microsoft ObjecTime Oracle Platinium Technology Sterling Software Taskon Texas Instruments Unisys
13
" www.dsic.upv.es/~uml
Jacobson Meyer
Pre- and Post-conditions
UML
State Charts
Harel
Embly
Singleton classes
Wirfs-Brock Fusion
Responsabilities Operation descriptions, message numbering
14
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Aspectos Novedosos
Definicin semi-formal del Meta-Modelo semntico asociado Incluye stereotypes como mecanismo de extensibilidad. Mediante stereotypes los elementos de modelado pueden diferenciarse de acuerdo a un uso particular Incluye un lenguaje para expresar restricciones mediante frmulas bien formadas. OCL (Object Constraint Language) desarrollado por IBM
15
" www.dsic.upv.es/~uml
Los mtodos formales permiten determinar y expresar con mayor rigor las propiedades del software. Sin embargo, an no son ampliamente utilizados.
" www.dsic.upv.es/~uml
16
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
17
" www.dsic.upv.es/~uml
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 en torno a UML
18
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Perspectivas de UML
UML ser el lenguaje de modelizacin de objetos estndar predominante los prximos aos Razones:
Participacin de metodlogos influyentes Participacin de importantes empresas Aceptacin del OMG como notacin estndar Herramientas que proveen la notacin UML Edicin de libros Congresos, cursos, camisetas, etc.
Evidencias:
19
" www.dsic.upv.es/~uml
Uso de UML
El objetivo de UML es describir cualquier tipo de sistema en trminos de diagramas orientados a objetos Algunas categoras de Sistemas
Sistemas de Informacin Sistemas de Tiempo Real Sistemas Embebidos Sistemas Distribuidos Software de Sistemas Sistemas de Negocios
20
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
10
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Modelo
Diagramas de Actividad
Distribucin
" www.dsic.upv.es/~uml
11
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Paquetes en UML
Los paquetes ofrecen un mecanismo general para la particin de los modelos y la agrupacin de los elementos de modelado Se representan grficamente como:
Nombre de paquete
23
" www.dsic.upv.es/~uml
Paquetes en UML
Cada paquete corresponde a un subconjunto del modelo y contiene, segn el modelo, clases, objetos, relaciones, componentes y diagramas asociados La arquitectura del sistema viene dada en forma de paquetes y por las relaciones de dependencia entre ellos Los estereotipos <<Categora>> y <<Subsistema>> permiten distinguir los paquetes de la vista lgica y los de realizacin, respectivamente
24
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
12
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Paquetes en UML
Un paquete puede contener a otros, sin lmite de anidamiento Un nivel dado puede contener paquetes y adems otros elementos de modelado (por ejemplo Diagramas de Clases y de Interaccin) Cada elemento pertenece a slo un paquete Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes
25
" www.dsic.upv.es/~uml
Paquetes en UML
Las importaciones entre paquetes se representan por medio de una relacin de dependencia estereotipada y 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 (alguna clase en el paquete cliente hereda de, usa o depende de clases del proveedor) Una clase depende de otra si accede a un valor del proveedor, invoca a una operacin o referencia al proveedor como argumento en alguna operacin
26
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
13
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Paquetes en UML
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 expresin Ventas::Producto designa la clase Producto definida en el paquete Ventas Un paquete encapsula a la vez que agrupa
27
" www.dsic.upv.es/~uml
Paquetes en UML
Los paquetes tambin poseen una interfaz y una implementacin Cada elemento de un paquete se incluye como visible o no desde el exterior del paquete Slo las clases pblicas aparecen en la interfaz del paquete No debe haber relaciones cclicas entre paquetes
28
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
14
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Prctica 1
Paquetes en UML
Ejemplo:
Personal
Ventas
Representante de Ventas
Cliente
29
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
15
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Un Caso de Uso es representado por una elipse y describe una situacin de uso del sistema interactuando con actores Un actor es un agente, alguien o algo que solicita un servicio al sistema o acta como catalizador para que ocurra algo
" www.dsic.upv.es/~uml
31
Ejemplos
Verificar Situacin Vendedor
Realizar Venta
Secretaria Cliente
Preparar Catlogo
32
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
16
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Ejemplos
Venta Normal
Venta en Oferta
" www.dsic.upv.es/~uml
33
Ejemplos
34
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
17
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Prctica 2
Ejemplos
<<uses>>
Cliente
35
" www.dsic.upv.es/~uml
Diagramas de Secuencia
Los Diagramas de Secuencia y de Colaboracin son usados para establecer un escenario del sistema, determinando los objetos y mensajes involucrados Un Diagrama de Secuencia muestra los objetos de un escenario mediante lneas verticales y los mensajes entre objetos como flechas conectando objetos Los mensajes son dibujados cronolgicamente desde arriba hacia abajo
36
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
18
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Ejemplo
: Socio : Encargado Coger libro : Libro : Ficha socio : Ficha libro : Prstamo
Solicitar prstamo Verificar situacin socio Situacin socio ok Verificar situacin libro Situacin libro ok Introducir prstamo Autorizar prstamo
37
" www.dsic.upv.es/~uml
Diagramas de Colaboracin
El Diagrama de Colaboracin modela la interaccin entre los objetos de un Caso de Uso Los objetos estn conectados por enlaces (links) en los cuales se representan los mensajes enviados acompaados de una flecha que indica su direccin El Diagrama de Colaboracin ofrece una mejor visin del escenario cuando el analista est intentando comprender la participacin de un objeto en el sistema
38
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
19
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Prctica 3
Ejemplo
1: Coger libro : Libro
: Socio
: Ficha s ocio
6: Situacin libro ok
: Encargado : Prsta mo
7: Introducir prstamo
39
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
20
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Alumno DNI : char[10] NroExpediente : int Nombre : char[50] Alta(argname) PonerNota(asignatura : char *, ao : int, nota : float) Matricular(cursos : asignatura *, ao : int) ListarExpediente()
41
" www.dsic.upv.es/~uml
Ejemplos (Asociacin)
Departamento
42
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
21
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
1..* +subordinado
43
" www.dsic.upv.es/~uml
Ejemplos (Generalizacin)
Empleado
{disjunta, completa}
Directivo
Administrativo
Obrero
44
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
22
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Prcticas 4-8
Ejemplos
Motor 1..4 Piloto 1..2 Vendedor de billetes 1
1 Avin 1 *
* Vuelo * 1 *
* Reserva
{ disjunta, completa }
{ disjunta, completa }
Avin de carga
Avin de pasajeros 45
" www.dsic.upv.es/~uml
Diagramas de Estados
El Diagrama de Estados modela el comporta-miento de una parte del sistema a travs del tiempo Tpicamente se elabora un diagrama de Estados para cada clase que tenga un comportamiento significativo El comportamiento es modelado en trminos del estado en el cual se encuentra el objeto, qu acciones se ejecutan en cada estado y cul es el estado al que transita despus de un determinado evento
46
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
23
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Ejemplo
Prestar Devolver[ Nmero prstamos = 1 ] Con prstamos Nmero prstamos > 1 Socio Biblioteca Nmero : int Nombre : char[50] Nmero prstamos : int = 0 Alta() Baja() Prestar(CdigoLibro : int, Fecha : date) Devolver(CdigoLibro : int, Fecha : date)
Nmero prstamos = 0
47
" www.dsic.upv.es/~uml
Diagramas de Actividad
Caso especial de Diagrama de Estados donde:
Todos (o la mayora de) los estados son estados de accin Todas (la mayora de) las transiciones son disparadas como consecuencia de la finalizacin de la la accin.
" www.dsic.upv.es/~uml
24
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Ejemplos
Buscar Bebida [no hay caf] [no zumo] [hay zumo] [hay caf Poner caf en filtro Aadir agua al depsito Coger taza Coger zumo
Encender mquina ^cafetera.On Caf en preparacin indicador de fin Servir caf Beber
49
" www.dsic.upv.es/~uml
Prctica 9
Solicitar pago
50
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
25
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas Componentes
Un diagrama de Componentes permite modelar la estructura del software y la dependencia entre componentes Un componente es un grupo de clases que trabajan estrechamente. Los componentes pueden corresponder cdigo fuente, binario o ejecutable Una relacin de dependencia indica que un componente utiliza otro, por lo cual depende de l
51
" www.dsic.upv.es/~uml
Ejemplo
Control y Anlisis Interfaz de Terminal Comment Comment
Acceso a BD Comment
52
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
26
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Distribucin
El Diagrama de Distribucin modela la distribucin en tiempo de ejecucin de los elementos de procesamiento y componentes de software, junto a los procesos y objetos asociados En el Diagrama de Distribucin se modelan los nodos y la comunicacin entre ellos Cada nodo puede contener instancias de componentes
53
" www.dsic.upv.es/~uml
Prctica 10
Ejemplo
Servidor Central Acceso a BD Comment Control y Anlisis Comment
Rutinas de Coneccion
Punto de Venta
54
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
27
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Casos de Uso
Diagramas de Secuencia
Diagramas de Colaboracin
Diagramas de Estados
C D I G O
Diagramas de Actividad
55
" www.dsic.upv.es/~uml
56
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
28
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Mejora captura y validacin de requisitos Acerca el espacio del problema y el espacio de la solucin
57
" www.dsic.upv.es/~uml
Facilita la transicin entre distintas fases Favorece el desarrollo iterativo del sistema Disipa la barrera entre el qu y el cmo
58
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
29
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Problemas en OO
...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
59
" www.dsic.upv.es/~uml
Problemas en OO
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 Las aplicaciones de gestin estn constituidas mayoritariamente por objetos degenerados
60
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
30
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
OO y Aplicaciones de Gestin
Las expectativas depositadas en la OO no se cumplen cuando se usa en las aplicaciones de gestin, pero Por qu invierten las compaas en el desarrollo OO? Esperan que las ventajas que se supone va a ofrecer se hagan realidad Necesitan IGU y tecnologa Cliente/Servidor Estan satisfechas con las tcnicas de modelado de datos que ofrece la OO, si no han tenido experiencias previas con otras tcnicas de modelado
61
" www.dsic.upv.es/~uml
Diseo DEs
Modelo Relacional Modelo Relacional !!
Implementacin
Entornos de Programacin Visual
DFDs E-R
Diagramas de Casos de Uso Diagramas de Actividad Diagramas de Secuencia Diagramas de Colaboracin Diseo de Interfaces
Enfoque OO
62
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
31
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
63
" www.dsic.upv.es/~uml
Objetos
Objeto = unidad atmica que integra estado y comportamiento. El encapsulamiento de un objeto asegura una alta cohesin y un bajo acoplamiento. Un objeto puede caracterizar una entidad fsica (coche) o concepto (ecuacin matemtica).
64
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
32
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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 ms Otro Objeto
65
" www.dsic.upv.es/~uml
Un Objeto
Objetos
Ejemplo de varios objetos relacionados:
Dos clientes del banco
Felipe
66
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
33
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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 ...
67
" www.dsic.upv.es/~uml
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.
68
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
34
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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)
69
" www.dsic.upv.es/~uml
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
70
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
35
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Comportamiento
Ejemplo de interaccin:
Otro objeto
Un mensaje Operacion 2
Un objeto
Operacion 1
71
" www.dsic.upv.es/~uml
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
72
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
36
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Persistencia
La persistencia de los objetos designa la capacidad de un objeto transcender en el espacio/tiempo. Un objeto persistente conserva su estado en un sistema de almacenamiento permanente Podremos despus reconstruirlo (materializacin del objeto). Por defecto no los consideramos persistentes
73
" www.dsic.upv.es/~uml
Persistencia
Los lenguajes OO no proponen soporte adecuado para la persistencia Esto obliga a recurrir a artificios externos para asegurar la persistencia
74
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
37
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Comunicacin
Un sistema informtico puede verse como un conjunto de objetos autnomos y concurrentes que trabajan de manera corrdinada en la consecucin de un fin especfico El comportamiento global se basa pues en la comunicacin entre los objetos que la componen
75
" www.dsic.upv.es/~uml
Comunicacin
El estudio de las formas de comunicacin entre objetos es primordial en el modelo de objetos Los objetos interactan para realizar las funciones de la aplicacin Segn la naturaleza de las interacciones es posible describir el comportamiento de los objetos
76
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
38
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Comunicacin
Categoras de comportamiento:
Actores o clientes Servidores Agentes
Actores: objetos en el origen de una interaccin. Poseen un hilo de ejecucin (thread) y pasan el testigo a otros objetos Servidores: No son nunca el origen de una interaccin. Son los receptores de los mensajes
77
" www.dsic.upv.es/~uml
Comunicacin
Ejemplo: Un actor pasa el testigo a un servidor y espera el fin del servicio antes de continuar su ejecucin
Un actor Un servidor
78
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
39
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Comunicacin
Los agentes renen las caractersticas de actores y servidores. Pueden interactuar por iniciativa propia o por una solicitud externa Son la base del mecanismo de delegacin Introducen indireccin: un cliente puede comunicarse con un servidor que no conoce directamente
79
" www.dsic.upv.es/~uml
Comunicacin
Ejemplo en el que un agente hace de aislante:
Enrutamiento dinmico
Un agente
Sevidor 1
Servidor 2 Un cliente
Aislante
80
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
40
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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 Permite la interaccin de manera flexible Asegura la delegacin de tareas
81
" www.dsic.upv.es/~uml
El Concepto de Mensaje
Es un integrador dinmico que permite reconstruir una funcin de la aplicacin por la puesta en marcha de la colaboracin entre un grupo de objetos Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinmico
82
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
41
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
El Concepto de Mensaje
Objeto 1 : Mensaje A Objeto 2
: Mensaje C Objeto 3
: Mensaje E Objeto 4
: Mensaje D
83
" www.dsic.upv.es/~uml
Sincronizacin
Las formas de sincronizacin describen la naturaleza de los mecanismos de comunicacin entre objetos Consideraremos 5 categoras de mensajes:
Envo Envo Envo Envo Envo de mensaje simple de mensaje sncrono de mensaje esperado de mensaje cronometrado de mensaje asncrono
84
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
42
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Sincronizacin
Envo de mensaje simple:
Un solo hilo de ejecucin El objeto activo pasa el control al objeto pasivo
Un cliente
85
" www.dsic.upv.es/~uml
Sincronizacin
Envo de mensaje sncrono:
Slo se desencadena la operacin cuando el servidor acepta el mensaje El cliente se bloquea hasta que el servidor lo acepta o rechaza
Un cliente
: Envo sncrono
Otro objeto
86
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
43
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Sincronizacin
Envo de mensaje esperado:
Se desencadena la operacin slo si el servidor est previamente esperando el mensaje
Un cliente
: Envo esperado
Otro objeto
87
" www.dsic.upv.es/~uml
Sincronizacin
Envo de mensaje cronometrado:
El cliente estar bloqueado durante un tiempo dado esperando la atencin del mensaje por el destinatario Tras el tiempo fijado el cliente se libera
" www.dsic.upv.es/~uml
44
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Sincronizacin
Envo de mensaje asncrono:
Un mensaje asncrono no interrumpe la ejecucin del cliente El cliente enva el mensaje sin saber cundo ni si se llevar a cabo
Un cliente
: Envo asncrono
Otro objeto
89
" www.dsic.upv.es/~uml
Captura de Requisitos
90
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
45
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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 Contexto similar al de los tradicionales DFDs
91
" www.dsic.upv.es/~uml
Casos de Uso
Los Casos de Uso cubren la carencia existente en mtodos previos (OMT, Booch) en cuanto a la determinacin de requisitos 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
92
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
46
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Casos de Uso
El modelo de los Casos de Uso comprende los actores, el sistema y los propios casos de uso El conjunto de funcionalidades de un sistema se determina examinando las necesidades funcionales de cada actor, expresadas en forma de interacciones
93
" www.dsic.upv.es/~uml
Casos de Uso
Ejemplo:
Sistema
Caso de uso X
Actor A Actor B
Caso de uso Y
94
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
47
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Casos de Uso
Los actores se deteminan observando:
Usuarios directos del sistema Responsables del uso o mantenimiento del sistema Otros sistemas que interactan con el sistema en cuestin
La misma persona fsica puede interpretar varios papeles como actores distintos El nombre del actor describe el papel desempeado
95
" www.dsic.upv.es/~uml
Casos de Uso
La determinacin de los actores permite delimitar el alcance del sistema de manera progresiva Categoras de 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 utilziados Otros sistemas: sistemas con los que el sistema interacta
96
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
48
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Casos de Uso
Tras localizar los actores, procede el describirlos 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
97
" www.dsic.upv.es/~uml
98
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
49
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
100
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
50
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
101
" www.dsic.upv.es/~uml
Identificacin
102
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
51
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
103
" www.dsic.upv.es/~uml
104
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
52
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
106
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
53
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
107
" www.dsic.upv.es/~uml
108
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
54
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
109
" www.dsic.upv.es/~uml
Control Objects:
Estos objetos controlan las interacciones entre un grupo de objetos. A veces slo existen durante la ejecucin del Caso de Uso.
Entity Objects:
Representan entidades del dominio. Son normalmente pasivos. Suelen ser persistentes y participar en diversos Casos de Uso.
110
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
55
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Prctica 11
111
" www.dsic.upv.es/~uml
Modelado de Interacciones
112
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
56
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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
113
" www.dsic.upv.es/~uml
Diagramas de interaccin
Los Diagramas de Secuencia estn bien adaptados para representar interacciones Los Diagramas de Colaboracin se prestn ms al descubrimiento de abstracciones pues permite representar los objetos en una disposicin prxima a la realidad Es frecuente empezar por uno de Colaboracin y pasar despus a Secuencia
114
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
57
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Secuencia
Muestra la secuencia cronolgica 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 oblcua
115
" www.dsic.upv.es/~uml
Diagramas de Secuencia
Un ejemplo:
A B C
m1
m2 m3
m4 m5
116
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
58
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Secuencia
Utilidad del Diagrama de Secuencia:
Para la documentacin de un Caso de Uso: en trminos prximos al usuario y sin detallar la sincronizacin existente Para la representacin precisa de las interacciones entre objetos
117
" www.dsic.upv.es/~uml
Diagramas de Secuencia
Ejemplo
Quien llama Lnea telefnica Llamado descuelga
tono
marcar
indicacin de llamada
timbre
descuelga
diga?
118
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
59
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Secuencia
Un objeto puede enviarse a s mismo un mensaje:
a
Puede representar tambin la entrada por parte del objeto en cierta actividad de ms bajo nivel
mensaje reflexivo
119
" www.dsic.upv.es/~uml
Diagramas de Secuencia
p
Grficamente tambin se puede indicar cundo el mensaje es para crear el objeto (va dirigido al rectngulo del objeto o etiquetado con new) o para destruirlo (va dirigido a la lnea del objeto pero el final de la flecha es una cruz)
120
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
60
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Secuencia
Normalmente no es necesario indicar el retorno del control:
a b
121
" www.dsic.upv.es/~uml
Diagrama de Secuencia
En el caso asncrono el retorno, si existe, se debe representar:
a : aa b : aa
122
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
61
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Tipos de Control
El Diagrama de Secuencia refleja de manera indirecta las opciones de control Un control centralizado tiene una forma como esta:
123
" www.dsic.upv.es/~uml
Tipos de control
Un control descentralizado tiene una forma como esta:
124
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
62
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Estructuras de control
Podemos representar iteraciones en el envo de mensajes mientras, p.e., se cumpla una condicin:
125
" www.dsic.upv.es/~uml
Estructuras de control
La iteracin puede expresarse tambin como parte del mensaje:
*[condicin] Mensaje
126
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
63
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Estructuras de control
Las bifurcaciones condicionales pueden representarse de esta forma:
127
" www.dsic.upv.es/~uml
Diagramas de Colaboracin
Son tiles en la fase exploratoria para identificar objetos La distribucin de los objetos en el diagrama permite representar una disposicin espacial La estructura esttica viene dada por los enlaces; la dinmica por el envo de mensajes por los enlaces
128
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
64
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Colaboracin
El contexto de una interaccin comprende los argumentos, las variables locales creadas en ejecucin y los enlaces entre los objetos que participan en la interaccin La colaboracin es mediante el intercambio de mensajes
129
" www.dsic.upv.es/~uml
Mensajes
Un mensaje desencadena una accin en el objeto destinatario. Un mensaje se enva si han sido enviados los mensajes de una lista (sincronizacin):
130
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
65
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Mensajes
Un mensaje se enva iterada y secuencialente a un conjunto de instancias:
1: *[i:=1..n] : Mensaje B A
131
" www.dsic.upv.es/~uml
Mensajes
Un mensaje se enva iterada y concurrentemente a un conjunto de instancias:
1: *| | [i:=1..n] : Mensaje B A
132
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
66
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Mensajes
Un mensaje se enva de manera condicionada:
1: [x>y]: Mensaje B A
133
" www.dsic.upv.es/~uml
Mensajes
Un mensaje que devuelve un resultado:
1: p:= cuestin B A
134
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
67
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Prctica 12
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
135
" www.dsic.upv.es/~uml
136
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
68
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Clases
Modelado Conceptual:
Organizacin del conocimiento del dominio del problema en un conjunto de abstracciones ordenadas de forma que se obtiene un conocimiento ms en profundidad del problema
137
" www.dsic.upv.es/~uml
Clases
El mundo real puede ser visto desde abstracciones diferentes (subjetividad) Mecanismos de abstraccin:
Clasificacin / Instanciacin Composicin / Descomposicin Agrupacin / Individualizacin Especializacin / Generalizacin
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
69
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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
139
" www.dsic.upv.es/~uml
Clases: Definicin
Un lenguajes OO permite describir y manipular las clases y sus instancias Un lenguaje OO reduce la distancia entre nuestra forma de entender un dominio (abstracciones) y el sistema de informacin asociado
140
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
70
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
141
" www.dsic.upv.es/~uml
142
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
71
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Clases: Encapsulacin
La encapsulacin presenta dos ventajas bsicas:
Se protegen los datos de accesos indebidos El acoplamiento entre las clases se disminuye por no saber cmo estn implementadas Favorece la modularidad y el mantenimiento
Tericamente los atributos de una clase no son manipulables directamente por el resto de objetos. El grado de encapsulacin es flexible
143
" www.dsic.upv.es/~uml
Clases: Encapsulacin
Los niveles de encapsulacin estn heredados de los niveles de C++:
(-) Privado: es el ms fuerte. Esta parte es totalmente invisible (excepto para los friends en terminologa C++) (#) Los atributos de la parte protegida estn visibles para los friends y para las clases derivadas de la original (+) Los atributos de la parte pblica son visibles a todas las clases (se pierde la encapsulacin)
144
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
72
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Clases: Encapsulacin
Ejemplo:
Reglas de visibilidad + Atributo pblico : int # Atributo protegido : int - Atributo privado : int + "Operacin pblica" # "Operacin protegida" - "Operacin privada"
145
" www.dsic.upv.es/~uml
Las jerarquas de herencia son tambin un modo particular de relaciones entre clases
146
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
73
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Asociacin
La asociacin expresa una conexin semntica bidireccional entre clases Una asociacin es una abstraccin de la relacin existente en los enlaces entre los objetos
Univ. de Murcia:Universidad Un enlace Antonio:Estudiante
Estudiante
147
" www.dsic.upv.es/~uml
Asociacin
Ejemplo:
Universidad
+Patron 0..1
+Docente *
Persona
148
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
74
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Asociacin
Especificacin de multiplicidad
1 0..1 M..N * 0..* 1..* Uno y slo uno Cero o uno De M a N (enteros naturales) De cero a varios De cero a varios De uno a varios
La multiplicidad puede establecer restricciones de existencia para los objetos de las clases asociadas
149
" www.dsic.upv.es/~uml
Asociacin Cualificada
Aerolnea nro_viajero *
0..1
Viajero
Tablero Ajedrez
fila columna
Cuadro
Un objeto y un cualificador identifican a un nico objeto en la asociacin (forma una clave compuesta) Reduce la multiplicidad del rol opuesto. La nueva multiplicidad es 0 1 (si hay mapeo para todos los valores del dominio del cualificador)
150
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
75
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Agregacin
Histricamente, la agregacin representa un objeto compuesto por otros objetos Conocida tambin como relacin parte_de 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
151
" www.dsic.upv.es/~uml
Agregacin: Caracterizacin
1. Puede el objeto componente ser compartido por ms de un objeto agregado?
No => componente disjunto (m. inclusin fuerte) Si => componente no disjunto (m. inclusin dbil)
3. Puede un objeto de la clase componente existir sin ser componente de un objeto agregado?
Si => componente flexible No => componente estricto
152
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
76
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Agregacin: Caracterizacin
4. Cuntos objetos de una clase componente puede tener asociados un objeto agregado?
Ms de uno => componente multivaluado Mximo uno => componente univaluado
5. Puede el objeto agregado no tener objetos de una clase componente en algn instante?
Si => componente con nulos permitidos No => componente con nulos no permitidos
153
" www.dsic.upv.es/~uml
Agregacin: Caracterizacin
Las caracterizaciones 1, 3, 4 y 5 estn incluidas en el concepto ms amplio de multiplicidad Objeto Agregado
Multiplicidad Mnima 0 nulos permitidos > 0 nulos no permitidos Multiplicidad Mxima 1 univaluado > 1 multivaluado Multiplicidad Mnima 0 flexible > 0 estricta Multiplicidad Mxima 1 disjunto > 1 no disjunto
Objeto Componente
154
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
77
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Ejemplos
coche 1 0..2 +Padre 1 motor +Hijos *
Persona
155
" www.dsic.upv.es/~uml
Ejemplos
marido casado-con 0.. 1 0.. 1 mujer Persona jefe nombre 0.. 1 s. s. Administra trabaja-para emplea-a
* Compaa
nombre direccin
empleado
Agregacin
Polgono
1 contiene
3.. *
{ordenado}
Punto
156
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
78
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Ejemplos
* *
Persona Empresa
Cuenta
*
or
1
Asociacin excluyente
Usuario
est-autorizado-en
Estacin
Clase de asociacin
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
79
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Clases Diferidas
Baricentro* Extensin* *
Figura
* rotar* visualizar*
Fig. Cerrada
permetro+
permetro* permetro+
Segmento
Elipse
permetro++
Tringulo
diagonal
Cuadriltero
Crculo
permetro++ lado2 lado1 permetro++
159
Rectngulo
" www.dsic.upv.es/~uml
Cuadrado
" www.dsic.upv.es/~uml
80
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
Las jerarquas de clases permiten gestionar la complejidad mediante un ordenamiento taxonmico Una jerarqua se obtiene usando los mecanismos de abstraccin de Generalizacin o Especializacin La Generalizacin consiste en factorizar los elementos comunes de un conjunto de clases en una clase ms general
161
" www.dsic.upv.es/~uml
Jerarquas de Clases
Nombres usados: clase padre - clase hija, superclase - subclase, clase base - clase derivada Una superclase es una abstraccin de sus subclases Las subclases heredan caractersticas de sus superclases, es decir, atributos y operaciones de la superclase estn disponibles en sus subclases
162
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
81
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
La Generalizacin y Especializacin son equivalentes en cuanto al resultado: la jerarqua y herencia establecidas Generalizacin y Especializacin no son operaciones reflexivas ni simtricas pero s transitivas Dos formas de Generalizar segn Meyer:
Abstraccin: Se reconoce de manera tarda un nivel superior. Factorizacin: Se detecta que dos clases son variaciones de un concepto general.
163
" www.dsic.upv.es/~uml
Jerarquas de Clases
Abstracciones ms generales. vehiculo
vehiculo terrestre
vehiculo areo
camion
coche
avion
helicoptero
164
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
82
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
La especializacin es una tcnica muy eficaz para la extensin y reutilizacin
coche
funcionando
estropeado
Tipos de especializacin:
disjunta - no disjunta total (completa) - parcial (incompleta)
165
" www.dsic.upv.es/~uml
Jerarquas de Clases
La nocin de clase est prxima a la de conjunto Dada una clase, podemos ver el conjunto relativo a las instancias que posee o bien relativo a las propiedades de la clase Generalizacin y especializacin expresan relaciones de inclusin entre conjuntos
166
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
83
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
Particionamiento del espacio de objetos Especializacin Esttica Particionamiento del espacio de estados de los objetos Especializacin Dinmica
167
" www.dsic.upv.es/~uml
Jerarquas de Clases
Un ejemplo de Especializacin Esttica:
vehiculo areo
avion
helicoptero
168
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
84
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
Un ejemplo de Especializacin Dinmica:
coche
funcionando
estropeado
169
" www.dsic.upv.es/~uml
Jerarquas de Clases
Extensin: Posibles instancias de una clase Intensin: Propiedades definidas en una clase
A int(A) int(B) ext(B) ext(A) B
170
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
85
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
Estticas:
C0
C1
Cn
extt(C i) extt(C j) =
171
" www.dsic.upv.es/~uml
Jerarquas de Clases
Dinmicas:
C0
C1
Cn
172
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
86
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
En la Especializacin Esttica, el objeto es instancia desde su creacin de la subclase y la superclase en las que fue creado. Esta pertenencia es inmutable Un objeto slo puede ser instancia de una subclase en una Especializacin Esttica Puede haber ms de una especializacin esttica o dinmica a partir de la misma superclase
173
" www.dsic.upv.es/~uml
Jerarquas de Clases
Ejemplo: especializaciones a partir de la misma superclase:
comercial vehiculo areo
" www.dsic.upv.es/~uml
87
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
En la Especializacin Dinmica un objeto puede migrar durante su vida entre las distintas subclases de la especializacin La migracin puede definirse en funcin de su estado o de los eventos que le acontezcan
175
" www.dsic.upv.es/~uml
Jerarquas de Clases
Ejemplo: especializaciones dinmicas de la misma superclase:
de menos de 1000kms coche
176
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
88
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
Un ejemplo combinado:
vehiculo
esttica
militar
camion
coche
dinmica
funcionando
" www.dsic.upv.es/~uml
estropeado
177
Jerarquas de Clases
El siguiente es un ejemplo de clasificacin no equilibrada:
vehiculo terrestre
camion
coche
Harley Davidson
178
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
89
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Jerarquas de Clases
Por regla general, es mejor limitar el nmero de subclases a cada nivel a costa de aumentar el nmero de objetos por clase y reservar los atributos para cualificar afinadamente los objetos A veces, una especializacin dinmica tiene un equivalente a travs de una especializacin esttica y una asociacin ...
179
" www.dsic.upv.es/~uml
Jerarquas de Clases
Ejemplo:
mariposa
oruga
crislida
Lepidptero
oruga
crislida
Lepidptero
180
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
90
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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
181
" www.dsic.upv.es/~uml
Herencia Mltiple
La multiplicidad de la clasificacin mltiple se puede representar tambin mediante asociaciones:
Realiza > Clase * Tipo
Tipo A
Tipo B
Tipo C
182
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
91
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Herencia Mltiple
Uso disciplinado de la herencia mltiple
conejo
con pelo Herbvoro con plumas omnvoro Animal con escamas carnvoro
Bipedo
Cuadrpedo
183
" www.dsic.upv.es/~uml
Delegacin
La herencia no es una necesidad absoluta y siempre puede sustituirse por delegacin Disminuye el acoplamiento: el cliente no conoce directamente al proveedor y el proveedor puede ser modificado sobre la marcha Permite implementar herencia mltiple en lenguajes con herencia simple
184
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
92
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
...Delegacin
Herencia con vistas (Meyer)
* Empleado
Fijo
Temporal
Supervisor
Ingeniero
Administr.
185
" www.dsic.upv.es/~uml
...Delegacin
Alternativa con vistas:
Empleado * contrato Contrato * contratar * despedir *
Supervisor
Ingeniero
Administr.
Fijo
Temporal
186
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
93
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
...Delegacin
Otras soluciones son ms oscuras:
Vista de empleado desde la perspectiva especialidad
Empleado *
Especialista
Contrato
Supervisor
Ingeniero
Administr.
Fijo
Temporal
187
" www.dsic.upv.es/~uml
Delegacin
Ejemplo de delegacin:
Delegado 1 Cliente 1: Cuestin 2: Propagacin
Interfaz
3: Propagacin
Delegado 2
188
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
94
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Delegacin
Ejemplo de delegacin que evita la herencia mltiple: Animal
x Locomocin
x Alimento
Bpedo
" www.dsic.upv.es/~uml
Cuadrpedo
Herbvoro
Carnvoro
189
Principio de Sustitucin
El Principio de Sustitucin de Liskow (1987) afirma que: debe ser posible sustituir cualquier objeto instancia de una subclase por cualquier objeto instancia de una superclase sin que la semntica del programa escrito en los trminos de la superclase se vea afectado.
190
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
95
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Principio de Sustitucin
La herencia es respecto del estado, el comportamiento y las restricciones Todas las propiedades son vlidas en las clases hijas La necesidad de heredar parcialmente es sntoma de no existir realmente una relacin de clasificacin entre las clases
191
" www.dsic.upv.es/~uml
Principio de Sustitucin
Dado que los programadores pueden introducir cdigo en las subclases redefiniendo las operaciones, es posible introducir involuntariamente incoherencias que violen el principio de sustitucin El polimorfismo que veremos a continuacin no puede implementarse sin este principio
192
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
96
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Polimorfismo
El trmino polimorfismo se refiere a que una caracterstica de una clase puede tomar varias formas El polimorfismo representa en nuestro caso 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
193
" www.dsic.upv.es/~uml
Polimorfismo
Los beneficios del polimorfismo se recogen principalmente durante el mantenimiento No debemos pensar el anlisis en trminos del polimorfismo sino en trminos de abstraccin y como efecto secundario beneficioso aprovechar el polimorfismo
194
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
97
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Polimorfismo
Ejemplo: todo animal duerme, pero cada clase lo hace de forma distinta
Zoo 1 * Animal
?
dormir
?
Len Oso Tigre
195
" www.dsic.upv.es/~uml
Polimorfismo
Zoo 1 * Animal Dormir() { }
Len
Oso
Tigre
Dormir() { en un rbol }
196
" www.dsic.upv.es/~uml
98
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Polimorfismo
Los mecanismos generales escritos segn la especificacin del zoo no necesitan conocer los gustos particulares de cada especie para invocar la operacin dormir(). As al caer la noche el guarda se pasea e informa a cada animal de que debe dormir:
El guarda:Guardas : dormir Zoo Madrid
197
" www.dsic.upv.es/~uml
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
198
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
99
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
...Polimorfismo
El siguiente es un ejemplo de violacin del principio de sustitucin:
Pjaro
Paloma
Gorrin
Avestruz
199
Diagramas de Estados
200
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
100
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Estados
Los Diagramas de Estados representan autmatas de estados finitos, desde el p.d.v. de los estados y las transiciones Esta descripcin es til slo para los objetos con un comportamiento significativo El resto de objetos se puede considerar tienen un nico estado El formalismo es el de los Statecharts (Harel)
201
" www.dsic.upv.es/~uml
Diagramas de Estados
Los Statecharts son autmatas jerrquicos que permiten expresar concurrencia, sincronizacin y jerarquas de objetos Los Diagramas de Estados son grafos cclicos dirigidos Cada objeto sigue el comportamiento descrito en el Statechart asociado a su clase El estado en el que se encuentra caracteriza sus condiciones dinmicas Statecharts y escenarios son complementarios
202
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
101
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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 Los Statecharts 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 eventos
203
" www.dsic.upv.es/~uml
Diagramas de Estados
Ejemplo de un Diagrama de Estados para la clase persona:
contratar en el paro perder empleo jubilarse jubilarse en activo
jubilado
204
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
102
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Estados
La comunicacin bidireccional puede representarse mediante comunicacin asncrona. Por ejemplo en un Diagrama de Colaboracin:
1: una pregunta un objeto 2: la respuesta otro objeto
205
" www.dsic.upv.es/~uml
Diagramas de Estados
En este caso, el cliente debe esperar la respuesta. Con lo cual en tendramos:
a
plantear pregunta
espera respuesta
recibir respuesta
206
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
103
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Estados
Las guardas permiten condicionar la transicin:
a Evento[ condicin ] b
207
" www.dsic.upv.es/~uml
Acciones
Podemos especificar la ejecucin de una accin como consecuencia de la transicin:
" www.dsic.upv.es/~uml
104
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Acciones
Podemos especificar el envo de un evento a otro objeto como consecuencia de la transicin:
a
b
209
" www.dsic.upv.es/~uml
Acciones
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
210
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
105
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
.. Acciones
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
211
" www.dsic.upv.es/~uml
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
212
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
106
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Actividades
Cuando una actividad finaliza se puede produce una transicin automtica de salida del estado
a do: actividad [ condicin ] [ not condicin ] b
b
213
" www.dsic.upv.es/~uml
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
214
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
107
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Generalizacin de Estados
Ejemplo:
a e1 b
e2 e2 c
215
" www.dsic.upv.es/~uml
Generalizacin de Estados
Quedara como:
e1
e2
216
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
108
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Generalizacin de Estados
Las transiciones de entrada deben ir hacia subestados especficos:
e1 a e2 e0 b
217
" www.dsic.upv.es/~uml
Generalizacin de Estados
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:
e1 a b c e2 e0
218
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
109
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Generalizacin de Estados
Es posible ocultar los detalles de los subestados:
c e0
219
" www.dsic.upv.es/~uml
Generalizacin de Estados
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
220
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
110
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Generalizacin de Estados
Ejemplo:
e1 e1
221
" www.dsic.upv.es/~uml
Historial
Por defecto, los autmatas no tienen memoria Es posible memorizar el ltimo subestado visitado para recuperarlo en una transicin entrante en el superestado que lo engloba
222
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
111
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Historial
Ejemplo:
a
d2 in h out d1 x y
223
" www.dsic.upv.es/~uml
Historial
Tambin es posible la memorizacin para cualquiera de los subestados anidados (aparece un * junto a la H)
a d2
in h x out d1 y
H*
224
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
112
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Historial
Ejemplo:
Enjuague Lavado Secado
Espera
225
" www.dsic.upv.es/~uml
226
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
113
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Destruccin de Objeto
Ejemplo:
En vuelo crash
despegar Crear(matricula)
aterrizar
En tierra
227
" www.dsic.upv.es/~uml
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
228
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
114
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Transiciones temporizadas
Ejemplo:
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.
/ Abrir ranura esperar dinero entry: Mostrar mensaje do: Esperar 30 segundos exit: cerrar ranura anular transaccin a
Depsito efectuado
b
229
" www.dsic.upv.es/~uml
Transiciones temporizadas
Ejemplo v.2:
a
/ Abrir ranura esperar dinero entry: Mostrar mensaje exit: cerrar ranura Temporizador (30 segundos) anular transaccin
Depsito efectuado
b
230
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
115
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagrama de Actividades
El Diagrama de Actividades es una variante de los Diagramas de Estados, organizado respecto de las acciones y principalmente destinado a representar el comportamiento interno de un mtodo (la realizacin de una operacin) o de un caso de uso Una actividad es un estereotipo de estado
231
" www.dsic.upv.es/~uml
...Diagrama de Actividades
Las actividades se enlazan por transiciones automticas Cuando una actividad termina se desencadena el paso a la siguiente actividad Las actividades no poseen transiciones internas ni transiciones desencadenadas por eventos
232
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
116
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Ejemplos
Buscar Bebida [no hay caf] [no zumo] [hay zumo] [hay caf Poner caf en filtro Aadir agua al depsito Coger taza Coger zumo
Encender mquina ^cafetera.On Caf en preparacin indicador de fin Servir caf Beber
233
" www.dsic.upv.es/~uml
...Ejemplos (bandas)
Pasajero Vendedor Airline
Solicitar pasaje Verificar existencia vuelo Dar detalles vuelo Informar alternativas y precios Seleccionar vuelo
Solicitar pago
234
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
117
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Modelado de Componentes
235
" www.dsic.upv.es/~uml
Diagrama de Componentes
Los diagramas de componentes describen los elementos fsicos y sus realizaciones en el entorno de realizacin Muestran las opciones de realizacin incluyendo cdigo fuente, binario y ejecutable
236
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
118
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
...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
237
" www.dsic.upv.es/~uml
Diagramas de Componentes
La especificacin contiene el interfaz de la clase mientras que el cuerpo contiene la realizacin de la clase La especificacin puede ser genrica en el caso de las clases parametrizables
238
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
119
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Componentes
La representacin grfica es la siguiente:
Especificacin Cuerpo Genrico
Package specification
" www.dsic.upv.es/~uml
Package body
Generic package
239
Diagramas de Componentes
En C++ una especificacin corresponde a un archivo con un sufijo .h y un cuerpo a un archivo con un sufijo .cpp En Ada la nocin de mdulo existe directamente en el lenguaje con el nombre del paquete
240
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
120
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
241
Subsistemas
Los distintos componentes pueden agruparse en paquetes segn un criterio lgico y con vistas a simplificar la implementacin Son paquetes estereotipados en <<subsistemas>> para incorporar la nocin de biblioteca de compilacin y de gestin de configuracin
<<subsistema>> NewPackage4
242
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
121
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Subsistemas
Los subsistemas organizan la vista de realizacin de un sistema Cada subsistema puede contener componentes y otros subsistemas La descomposicin en subsistemas no es una descomposicin funcional La relacin entre paquetes y clases en el nivel lgico es el que existe entre subsistemas y componentes en el nivel fsico
243
" www.dsic.upv.es/~uml
Modelado de Distribucin
244
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
122
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
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
245
" www.dsic.upv.es/~uml
Diagramas de Distribucin
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
246
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
123
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diagramas de Distribucin
Ejemplo de conexin entre nodos:
<<Procesador> Nodo <<<<TCP/IP>>>> conexin1 <<dispositivo>> nodo2
conexin7 <<RDSI>>
En Rational Rose podemos distinguir entre el dispositivo por estereotipado y el dispositivo con su propio smbolo
" www.dsic.upv.es/~uml
dispositiv o
247
Hacia un Mtodo OO
248
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
124
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Hacia un Mtodo OO
Un proceso de desarrrollo de programas tiene como objetivo la formalizacin de las actividades relacionadas con la elaboracin de sistemas informticos Debe ser:
Reproducible Definido Medible en cuanto a rendimiento Optimizable ...
249
" www.dsic.upv.es/~uml
Hacia un Mtodo OO
UML no incorpora por s misma el modelo de proceso Los autores destacan las siguientes caractersticas de UML como esenciales para determinar el proceso de desarrollo:
Est controlado por los casos de uso: desde la especificacin hasta el mantenimiento Se centra en la arquitectura: reutilizable y como gua hasta la solucin Iterativo e incremental: el trabajo se divide en iteraciones pequeas en funcin de la importancia de los casos de uso y el estudio de riesgos
250
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
125
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Hacia un Mtodo OO
Requisitos Anlisis Diseo Implement. Prueba
Hacia un Mtodo OO
En anlisis las necesidades se segmentan respecto de los distintos actores. Sevicios del sistema de la forma interaccin actor -sistema En anlisis tambin se distinguen objetos y clases. Cada caso de uso se realiza por la colaboracin entre objetos La descomposicin no es estrictamente funcional: la colaboracin de un caso de uso es una situacin particular de clases potenciales
252
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
126
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Hacia un Mtodo OO
Las 4+1 vistas de Kruchten (1995):
Vista de Realizacin
Vista de Distribucin
253
" www.dsic.upv.es/~uml
Vista Lgica
La vista lgica describe los aspectos estticos y dinmicos de un sistema en trminos de clases y objetos Se usan:
Objetos Clases Colaboraciones Interacciones Categoras (paquetes estereotipados)
254
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
127
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Vista de Realizacin
Se preocupa de la organizacin de los componentes en el entorno de desarrollo Muestra el reparto de clases en componentes y estos en subsistemas Se usan:
Mdulos Subprogramas Tareas Subsistemas (paquetes estereotipados)
255
" www.dsic.upv.es/~uml
Vista de Procesos
Representa la descomposicin en flujos de ejecucin (threads), la sincronizacin entre flujos y la asignacin de objetos y clases en dichos flujos. Fiabilidad, rendimiento, etc. Importante en entornos multitarea. Se usan:
Tareas, threads, procesos. Interacciones.
256
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
128
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Vista de Distribucin
Describe los diferentes recursos de hardware y la implementacin del programa en dichos recursos Se consideran:
Tiempos de respuesta y rendimiento restricciones geogrficas potencia de clculo distribuido sobrecargas tolerancia a fallos y a averas nodos, mdulos y programas principales
257
" www.dsic.upv.es/~uml
Se usan:
258
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
129
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Realizacin
El cdigo que realiza las clases, los objetos y las interacciones entre los objetos se almacena en componentes que constituyen los mdulos de la estructura fsica de los sistemas Un programa principal es una especie de componente con cdigo ejecutable correspondiente a una o varias interacciones Un programa principal se distribuye sobre nodos en procesos que lo ejecutan
259
" www.dsic.upv.es/~uml
260
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
130
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
261
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
131
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
" www.dsic.upv.es/~uml
132
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
" www.dsic.upv.es/~uml
133
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Reparto de Actividades
Actividades
Inception E la bora tion
Fases
Construction Transition
Diseo
Implementacin
Prueba
P re lim ina ry Iter atio n (s)
" www.dsic.upv.es/~uml
iter. #1
iter. #2
iter. #n
iter. # n +1
ite r. # n +2
iter. #m
ite r. # m +1
267
" www.dsic.upv.es/~uml
134
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Elaboracin
269
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
135
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
271
" www.dsic.upv.es/~uml
15%
Requisitos Una iteracin en la fase de elaboracin Anlisis
Diseo
Implementacin
Prueba
P re lim in ar y Iter atio n (s) ite r. #1 iter. #2 iter. #n iter. #n + 1 ite r. # n +2 iter. #m ite r. #m +1
272
" www.dsic.upv.es/~uml
136
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Diseo
Implementacin
Prueba
P re lim in ar y Iter atio n (s) ite r. #1 iter. #2 iter. #n iter. #n + 1 ite r. # n +2 iter. #m ite r. #m +1
" www.dsic.upv.es/~uml
Esfuerzo: Duracin:
5% 10%
20% 30%
65% 50%
10% 10%
273
Conclusiones
Apostar por enfoque Orientado a Objetos usando notacin UML Problemas actuales en implementacin, al usar programacin visual y/o bases de datos relacionales Posibles mejoras a medio plazo
Evolucin: Uso de BDOO y/o mejoras en los LPOO Revolucin: Generacin Automtica de Cdigo a partir de Modelos OO
274
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
137
Formacin de Postgrado, Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Junio 2000
Bibliografa Recomendada
UML
www.rational.com Martin Fowler, UML Destilled (UML Gota a Gota) Terry Quatrani, Visual Modeling ..., un ejemplo completo International Council in SE (INCOSE) Tools Database Working Group. www.incose.org/tools/ Desmond DSouza, componentes www.enteract.com/ bradapp/docs/patterns-intro.html, patrones Revista IEEE Software, Conferencias: OOPSLA, ECOOP
Herramientas CASE
Otras
275
" www.dsic.upv.es/~uml
" www.dsic.upv.es/~uml
138