Вы находитесь на странице: 1из 21

Departamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

Construcción de una casa para “fido” Construcción de una casa

Puede hacerlo una sola persona


Requiere :
Modelado mínimo
Proceso simple Construida eficientemente y en un tiempo
Herramientas simples razonable por un equipo
Requiere :
Modelado
Proceso bien definido
Herramientas más sofisticadas
1 2
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Construcción de un rascacielos Claves en Desarrollo de SI

Notación

Herramientas Proceso

3 4
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Abstracción - Modelado Visual (MV) MV para manejar la complejidad


“El modelado captura las
partes esenciales del sistema”

Orden

Item

envío

Proceso de Negocios

Sistema Computacional
5 6
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 1
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

MV para definir la Arquitectura


MV promueve la reutilización
del Software
Interfaz de Usuario
(Visual Basic,
Java, ..) Múltiples Sistemas
Lógica del Negocio
(C++, Java, ..)

Servidor de BDs
(C++ & SQL, ..) Componentes
Reutilizados
“Modelar el sistema independientemente
del lenguaje de implementación” 7 8
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

¿Qué es UML? Situación de Partida


UML = Unified Modeling Language Diversos métodos y técnicas OO, con muchos
aspectos en común pero utilizando distintas
notaciones
Un lenguaje de propósito general para el modelado
orientado a objetos
Inconvenientes para el aprendizaje, aplicación,
Documento “OMG Unified Modeling Language construcción y uso de herramientas, etc.
Specification”
Pugna entre distintos enfoques (y correspondientes
gurús)
UML combina notaciones provenientes desde:
Modelado Orientado a Objetos
Modelado de Datos => Necesidad de una notación estándar
Modelado de Componentes
Modelado de Flujos de Trabajo ( Workflows)
9 10
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Historia de UML
Historia de UML
2001 ? UML 2.0

Comenzó como el “Método Unificado”, con la 2000 UML 1.4

participación de Grady Booch y Jim Rumbaugh. 1999 UML 1.3


Revisiones menores
Se presentó en el OOPSLA’95 1998
Nov ‘97 UML aprobado por el OMG
UML 1.2

El mismo año se unió Ivar Jacobson. Los “Tres


Amigos” son socios en la compañía Rational
Software. Herramienta CASE Rational Rose

11 12
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 2
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

Participantes en UML 1.0 UML “aglutina” enfoques OO


Rational Software MCI Systemhouse Rumbaugh
(Grady Booch, Jim Microsoft Booch Jacobson
Rumbaugh y Ivar Jacobson)
Digital Equipment ObjecTime
Odell
Hewlett-Packard Oracle Corp. Meyer
i-Logix (David Harel) Platinium Technology Pre- and Post-conditions

IBM Shlaer-Mellor UML


Sterling Software Object life cycles
ICON Computing Harel
Taskon State Charts
(Desmond D’Souza) Gamma et. al.
Intellicorp and James Texas Instruments Frameworks, patterns,
notes
Martin & co. (James Odell) Unisys Embly Wirfs-Brock
Singleton classes Responsabilities
Fusion
Operation descriptions,
message numbering
13 14
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Métodos Formales en
Modelado Inconvenientes en UML
Tipos de enfoques: no-formales, semi- Definición del proceso de desarrollo usando UML. UML
formales y formales no es una metodología
Falta integración con respecto de otras técnicas tales
Las principales mejoras al utilizar métodos como patrones de diseño, interfaces de usuario,
formales son: documentación, etc.
Mayor rigor en la especificación
Ejemplos aislados
Mejores condiciones para realizar la verificación y
validación en forma más exhaustiva “Monopolio de conceptos, técnicas y métodos entorno
Mejores condiciones para automatización de procesos
para la generación automática de prototipos y/o código a UML”
final

15 16
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Perspectivas de UML Diagramas de UML


State
UML será el lenguaje de modelado orientado a State de
Use Diagramas
Diagrams
UseCase
Case de Diagrams State
objetos estándar predominante los próximos años Use Diagramas
Diagrams Clases State de
UseCase
Case de
Diagramas
Diagrams
Casos de Uso Diagramas
Diagrams
Diagrams
Diagrams
Razones: Diagrams
Secuencia
Objetos
Participación de metodólogos influyentes
Participación de importantes empresas Scenario State
Scenario State
Diagrams
Diagramas
Diagrams de Diagrams
Diagramas
Diagrams de
Aceptación del OMG como notación estándar
Colaboración Modelo Componentes
Evidencias:
Herramientas que proveen la notación UML
Scenario Component
“Edición” de libros Scenario de Component
Diagrams
Diagramas de
Diagrams
Diagramas Diagrams
Congresos, cursos, “camisetas”, etc. Diagrams Distribución
Estados Diagramas de
Actividad

“Un modelo es una descripción completa de un sistema desde una perspectiva concreta”
17 18
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 3
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

Paquetes en UML … Paquetes en UML

Los paquetes ofrecen un mecanismo general Cada paquete corresponde a un subconjunto


para la organización de los modelos del modelo y contiene, según el modelo, clases,
agrupando elementos de modelado objetos, relaciones, componentes y diagramas
asociados
Se representan gráficamente como:
U n p a q u e t e p u e d e c o n t e n e r o t r o s p a q u e t e s , sin
límite de anidamiento pero cada elemento
Nombre de
paquete pertenece a (está definido en) sólo un paquete

19 20
" www.d s i c.upv. e s / ~uml " w w w .d s i c.u p v . e s / ~u m l

… Paquetes en UML

Una clase de un paquete puede aparecer en


otro paquete por la importación a través de
una relación de dependencia entre paquetes El Paradigma
Orientado a Objetos
Todas las clases no son necesariamente
visibles desde el exterior del paquete, es
decir, un paquete encapsula a la vez que
agrupa

21 22
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

¿Por qué la Orientación a ¿Por qué la Orientación a


Objetos? Objetos?
Proximidad de los conceptos de modelado respecto
de las entidades del mundo real Conceptos comunes de modelado durante el
análisis, diseño e implementación
Mejora captura y validación de requisitos
Acerca el “espacio del problema” y el “espacio de la solución”

Facilita la transición entre distintas fases


Modelado integrado de propiedades estáticas y Favorece el desarrollo iterativo del sistema
dinámicas del ámbito del problema Disipa la barrera entre el “qué” y el “cómo”

Facilita construcción, mantenimiento y reutilización Sin embargo, existen problemas ...

23 24
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" www.dsic.upv.es/~uml 4
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

Problemas en OO Objetos

“...Los conceptos básicos de la OO se conocen desde hace Objeto = unidad atómica que integra estado y
dos décadas, pero su aceptación todavía no está tan comportamiento
extendida como los beneficios que esta tecnología puede
sugerir” La e n c a p s u l a c i ó n e n u n o b j e t o p e r m i t e una alta
cohesión y un bajo acoplamiento
“...La mayoría de los usuarios de la OO no utilizan los
conceptos de la OO de forma purista, como inicialmente Un objeto puede caracterizar una entidad física
se pretendía. Esta práctica ha sido promovida por (coche) o concepto (ecuación matemática)
muchas herramientas y lenguajes que intentan utilizar los
conceptos en diversos grados”
--Wolfgang Strigel

25 26
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Objetos … Objetos

El Modelado de Objetos permite representar el Ejemplo de varios objetos relacionados:


ciclo de vida de los objetos a través de sus
Dos clientes Cuenta
interacciones del banco corriente
Felipe
En UML, un objeto se representa por un
rectángulo con un nombre subrayado Libreta de
ahorro a
Otro plazo
Juan
Objeto
Un Objeto
más
Libreta de
ahorro
Otro
Objeto Cuenta
corriente
27 28
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Objetos Identidad

Objeto = Identidad + Estado + Comportamiento O i d ( Object Identifier)

El estado está representado por los valores de los


Cada objeto posee un o i d. El o i d establece la
atributos
identidad del objeto y tiene las siguientes
Un atributo toma un valor en un dominio concreto características:

Constituye un identificador único y global para cada objeto


Un coche
dentro del sistema

Azul
Es determinado en el momento de la creación del objeto
979 Kg
70 CV Es independiente de la localización física del objeto, es decir,
... provee completa independencia de localización

29 30
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 5


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Identidad Estado
El estado evoluciona con el tiempo
Es independiente de las propiedades del objeto, lo cual implica
independencia de valor y de estructura
Algunos atributos pueden ser constantes
No cambia durante toda la vida del objeto. Además, un o i d no
se reutiliza aunque el objeto deje de existir
El comportamiento agrupa las competencias de un
objeto y describe las acciones y reacciones de ese
No se tiene ningún control sobre los oids y su manipulación
resulta transparente objeto

Sin embargo, es preciso contar con algún medio Las operaciones de un objeto son consecuencia de
para hacer referencia a un objeto utilizando un estímulo externo representado como mensaje
referencias del dominio (valores de atributos) enviado desde otro objeto

31 32
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Comportamiento … Comportamiento

Ejemplo de interacción: Los mensajes navegan por los enlaces, a


priori en ambas direcciones
Otro objeto
Estado y comportamiento están relacionados
Un mensaje

Ejemplo: no es posible aterrizar un avión si


Operacion 2
no está volando. Está volando como
Un objeto consecuencia de haber despegado del suelo

Operacion 1

33 34
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Persistencia Comunicación
La persistencia de los objetos designa la capacidad Un sistema informático puede verse como un
de un objeto trascender en el espacio/tiempo
conjunto de objetos autónomos y concurrentes
que trabajan de manera coordinada en la
Un objeto persistente conserva su estado en un
si stema d e almac enam ient o permanent e consecución de un fin específico
(usualmente memoria secundaria)
El comportamiento global se basa pues en la
Podremos después reconstruirlo, es decir, cogerlo de comunicación entre los objetos que la
memoria secundaria para utilizarlo en la ejecución componen
(materialización del objeto)

Los lenguajes OO no proponen soporte adecuado


para la persistencia, pues ésta debería ser
35 36
transparente, un objeto existe desde su creación
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

hasta que se destruya

" w w w.dsic.u p v.es/~u m l 6


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Comunicación El Concepto de Mensaje


Categorías de objetos : La unidad de comunicación entre objetos se llama
Act ivos – Pasivos mensaje.
Clientes – Servidores

Objeto Activo: po s e e un hilo de ejecución (t h r e a d )


propio y puede iniciar una actividad El mensaje es el soporte de una comunicación que
vincula dinámicamente los objetos que fueron
separados previamente en el proceso de
Objeto Pasivo: no puede iniciar una actividad pero descomposición.
puede enviar estímulos una vez que se le solicita un
servicio
Una operación es la especificación y la
implementación de una función efectuada por un
Cliente es el objeto que solicita un servicio. Servidor objeto.
es el objeto que provee el servicio solicitado
37 38
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

El Concepto de Operación El Concepto de Operación

Las operaciones menipulan los atributos del El nombre del mensaje es el de la operación.
objeto.

Los parámetros del mensaje son los


Pueden tener parámetros de entrada y/o parámetros de la operación.
salida.

Un mensaje de un objeto a otro involucra la


ejecución de una operación.

39 40
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

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

Casos de Uso Permiten definir los límites del sistema y las


relaciones entre el sistema y el entorno

Los Casos de Uso son descripciones de la


funcionalidad del sistema independientes de la
implementación

C omparación con respecto a los Diagramas de Flujo


de Datos del Enfoque Estructurado
41 42
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 7


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Casos de Uso Ejemplo de Casos de Uso

Caso de Uso: Comprar productos


Los Casos de Uso particionan el conjunto
de necesidades atendiendo a la categoría Actores: Cliente, Cajero
de usuarios que participan en el mismo Tipo: Primario comprar productos

Descripción: Un cliente llega a la caja


Están basado en el lenguaje natural, es
registradora con los artículos que
decir, es accesible por los usuarios
comprará. El cajero registra los artículos y
cobra el importe. Al terminar la operación
el cliente se marcha con los productos.

43 44
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Casos de Uso … Casos de Uso

Ejemplo: Actores:
Principales: personas que usan el sistema
Sistema Secundarios: personas que mantienen o administran el sistema
Material externo: dispositivos materiales imprescindibles que
forman parte del ámbito de la aplicación y deben ser utilizados
Otros sistemas: sistemas con los que el sistema interactúa

Caso de uso X
La misma persona física puede interpretar varios
papeles como actores distintos
Actor A
Actor B
El nombre del actor describe el papel desempeñado
Caso de uso Y

45 46
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Casos de Uso Casos de Uso: Relaciones


Los Casos de Uso se determinan observando y UML define cuatro tipos de relación en los
precisando, actor por actor, las secuencias de Diagramas de Casos de Uso:
interacción, los escenarios, desde el punto de vista del
usuario Comunicación:

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 Actor
casos de uso
Caso de Uso

47 48
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 8


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Casos de Uso: Relaciones … Casos de Uso: Relaciones

I n c l u s i ó n : una instancia del Caso de Uso origen E x t e n s i ó n : el Caso de Uso origen extiende el
incluye también el comportamiento descrito por el
comportamiento del Caso de Uso destino
Caso de Uso destino

<<include>>
< <e x t e n d > >
Caso de uso destino

Caso de uso destino


Caso de uso origen

En UML se estereotipa como <<include> > Caso de uso origen

49 50
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Casos de Uso: Relaciones … Casos de Uso: Relaciones

Herencia : el Caso de Uso origen hereda la Ejemplo:


especificación del Caso de Uso destino y
posiblemente la modifica y/o amplía
<<
< < eexxt e
t ennd d>
s > >>
T r a n s f e r e nGiro
c i a ppor
o r Internet
Internet

Cliente

<<includes>>
< <i n c l u d e >> Transferencia
Giro

Caso de uso destino

Caso de uso origen


Identificación

51 52
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Casos de Uso: Construcción … Casos de Uso: Construcción


Un caso de uso debe ser simple, inteligible, La descripción del Caso de Uso comprende:
claro y conciso el inicio: cuándo y qué actor lo produce?

Generalmente hay pocos actores asociados a el fin: cuándo se produce y qué valor devuelve?

cada Caso de Uso la interacción actor-caso de uso: qué mensajes


intercambian ambos?
Preguntas clave: objetivo del caso de uso: ¿qué lleva a cabo o intenta?
¿cuáles son las tareas del actor? cronología y origen de las interacciones
¿qué información crea, guarda, modifica, destruye o lee el
repeticiones de comportamiento: ¿qué operaciones son
actor?
iteradas?
¿debe el actor notificar al sistema los cambios externos?
situaciones opcionales: ¿qué ejecuciones alternativas se
¿debe el sistema informar al actor de los cambios
presentan en el caso de uso?
internos?

53 54
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 9


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

R F- < i d d e l r e q u i s i t o > <nombre del requisito funcional>


Versión <numero de versión y fecha>
Autores <autor>
Fuentes <fuente de la versión actual>
Objetivos asociados <nombre del objetivo>
Descripción El sistema deberá comportarse tal como se describe e n
el siguiente caso de uso { concreto cuando <evento de
activación> , abstracto durante la realización de los
casos de uso <lista de casos de uso>}
Precondición <precondición del caso de uso>
Secuencia Paso Acción
Normal 1 { E l < a c t o r > , E l s i s t e m a } < a cción realizada por el
actor o sistema>, se realiza el caso de uso
< c a s o d e u s o R F -x >
2 Si <condición>, {el <actor> , el sistema} <acción

Modelado de Interacciones
realizada por el actor o sistema>>, se realiza el
c a s o d e u s o < c a s o d e u s o R F- x >
3
4
5
6
n
P o s t c on d i c i ó n <postcondición del caso de uso>
Excepciones Paso Acción
1 Si <condición de excepción>,{el <actor> , el
sistema} }<acción realizada por el actor o
sistema>>, se realiza el caso de uso
< c a s o d e u s o R F -x > , a c o n t i n u a c i ó n e s t e c a s o
d e u s o { c o n t i n u a, aborta}
2
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 presión, inmediatamente}
55 56
C o m e ntarios <comentarios adicionales>
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Interacción Diagramas de interacción

L o s o b j e t o s i n t e r a c t ú a n para realizar Los Diagramas de Secuencia son más adecuados


están para observar la perspectiva cronológica de
colectivamente los servicios ofrecidos por las
las interacciones
aplicaciones. Los diagramas de interacción
muestran cómo se comunican los objetos en
Los Diagramas de Colaboración ofrecen una mejor
una interacción
visión espacial mostrando los enlaces de
comunicación entre objetos
Existen dos tipos de diagramas de
i n t e r a c c i ó n : l o s Di a g r a m a s d e Co l a b o r a c i ó n y
Normalmente el D. de Colaboración se obtiene a
los D i a g r a m a s d e S e c u e n c i a.
partir del correspondiente D. de Secuencia

57 58
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Diagramas de Secuencia … Diagramas de Secuencia

Muestra la secuencia de mensajes entre Un ejemplo:


objetos durante un escenario concreto.
B C
A

Cada objeto viene dado por una barra


v e r t i c a l. m1

E l t i e m p o t r a n s c u r r e d e a r r i b a a b a j o. m2

m3
Cuando existe demora entre el envío y la
atención se puede indicar usando una línea m4

oblicua. m5

59 60
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 10


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Diagramas de Secuencia … Estructuras de control

Ejemplo Podemos representar iteraciones en el envío de


Quien llama Línea telefónica Llamado

descuelga
mensajes, p.e., mientras se cumpla una
tono condición:

marcar

Las bandas indicación de llamada

rectangulares
timbre

While X
representan los descuelga

Loop
periodos de
end Loop
actividad de los diga?

objetos

61 62
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Estructuras de control … Estructuras de control

La iteración puede expresarse también como Las bifurcaciones condicionales pueden


parte del mensaje: representarse de esta forma:

*[condición] Mensaje If condición

else

end if

63 64
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Diagramas de Colaboración Mensajes


Son útiles en la fase exploratoria para identificar Un mensaje desencadena una acción en el
objetos objeto destinatario

La distribución de los objetos en el diagrama Un mensaje se envía si han sido enviados los
permite observar adecuadamente la interacción de mensajes de una lista (sincronización):
un objeto con respecto de los demás

La estructura estática viene dada por los enlaces; la A . 1 , B . 3 / 1 :M e n s a j e B


dinámica por el envío de mensajes por los enlaces

65 66
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 11


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Mensajes … Mensajes

Un mensaje se envía iterada y secuencialm ente Un mensaje se envía iterada y


a un conjunto de instancias : concurrentemente a un conjunto de instancias:

1 *[i:=1..n] : Mensaje
1 *| | [i:=1..n] : Mensaje
B
B
A
A

67 68
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Mensajes … Mensajes

Un mensaje se envía de manera condicionada: Un mensaje que devuelve un resultado:

[x>y] 1: Mensaje 1: d i s t a n c i a:= m o v e r ( x , y )


B B

A A

69 70
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

… Mensajes
Los argumentos de un mensaje pueden ser valores
obtenidos como consecuencia de las llamadas
anteriores

Los argumentos pueden ser también expresiones de Modelado Conceptual


navegación construidas a partir del objeto cliente

Los argumentos pueden omitirse en el diagrama

71 72
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 12


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

Clases Clases

Modelado Conceptual:
La clase define el ámbito de definición de un
conjunto de objetos
Organización del conocimiento del dominio del problema
en un conjunto de abstracciones ordenadas de forma que
se obtiene un conocimiento más profundo del problema Cada objeto pertenece a una clase

Los objetos se crean por instanciación de las


clases

73 74
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Clases: Notación Gráfica Clases: Encapsulación

Cada clase se representa en un rectángulo La e n c a p s u l a c i ó n p r e s e n t a d o s v e n t a j a s


con tres compartimientos: básicas:
Se protegen los datos de accesos indebidos
nombre de la clase El acoplamiento entre las clases se disminuye
atributos de la clase motocicleta Favorece la modularidad y el mantenimiento
operaciones de la clase color
cilindrada
velocidad maxima Lo s a t r i b u t o s d e u n a c l a s e n o d e b e r í a n s e r
manipulables directamente por el resto de
arrancar
acelerar objetos
frenar

75 76
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Relaciones entre Clases Asociación


Los enlaces entre de objetos pueden r e p r e s e n t a r s e La asociación expresa una conexión bidireccional
entre las respectivas clases entre objetos
Una asociación es una abstracción de la relación
Formas de relación entre clases:
existente en los enlaces entre los objetos

Asociación y Agregación (vista como un caso particular de


asociación) Univ. de Murcia:Universidad Un enlace Antonio:Estudiante
Generalización/Especialización

Las relaciones de Agregación y Generalización Universidad Estudiante


forman jerarquías de clases Una asociación

77 78
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

" w w w.dsic.u p v.es/~u m l 13


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Asociación … Asociación

Ejemplo: Especificación de multiplicidad ( m í n i m a . . . m á x i m a )

1 Uno y sólo uno

marido 0..1 Cero o uno


M..N D es d e M hasta N ( e n t e r o s n a t u r a l e s )
casado-con 0.. 1
0.. 1 * Cero o muchos
* trabaja-para * Compañía
mujer Persona 0..* Cero o muchos
nombre emplea-a
jefe nombre 1..* U no o muchos (al menos uno)
0.. 1 s. s. dirección
Administra * empleado
La multiplicidad mínima >= 1 establece una
restricci ón de existencia

79 80
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Asociación Cualificada Agregación


L a agregación representa una relación parte_de
Aerolínea nro_billete
* 0..1
Viajero entre objetos

En UML se proporciona una escasa caracterización


Tablero 1 1
fila
columna
Cuadro de la agregación
Ajedrez

Puede ser caracterizada con precisión determinando


Reduce la multiplicidad del rol opuesto al considerar el valor las relaciones de comportamiento y estructura que
del cualificador existen entre el objeto agregado y cada uno de sus
objetos componentes

81 82
" w w w .d s i c.u p v . e s / ~u m l " w w w .d s i c.u p v . e s / ~u m l

Ejemplos … Ejemplos
contiene
Agregación Polígono 1 3.. *
Punto
{ordenado}

coche Persona +Hijos


* * Persona
1 *
0..2 Cuenta Asociación excluyente
or
*
+Padre Empresa
1

1 está-autorizado-en *
Usuario * Estación
motor
Autorización
Clase de asociación prioridad
privilegios

83
camb_privil 84
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" w w w.dsic.u p v.es/~u m l 14


Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

Jerarquías de ... Jerarquías de


Generalización/Especialización Generalización/Especialización
Permiten gestionar la complejidad mediante un Nombres usados: clase padre - clase hija,
ordenamiento taxonómico superclase - subclase, clase base - clase
derivada
Se obtiene usando los mecanismos de
abstracción de Generalización y/o Especialización Las subclases heredan características de sus
La Generalización consiste en factorizar l as superclases, es decir, atributos y operaciones
propiedades comunes de un conjunto de clases (y asociaciones) de la superclase están
en una clase más general disponibles en sus subclases

85 86
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

... Jerarquías de ... Jerarquías de


Generalización/Especialización Generalización/Especialización
Abstracciones más generales. La especialización es una técnica muy eficaz para la
vehiculo extensión y reutilización
coche

vehiculo terrestre vehiculo aéreo funcionando estropeado

Caracterización de la generalización en UML:


disjunta - no disjunta
camion coche avion helicoptero total (completa) - parcial (incompleta)
87 88
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

... Jerarquías de
Generalización/Especialización Herencia Múltiple
Un ejemplo combinado:
vehiculo
Se presenta cuando una subclase tiene más de
una superclase
comercial

vehiculo terrestre vehiculo aéreo


La herencia múltiple debe manejarse con
precaución. Algunos problemas son el conflicto
estática

estática
estática
militar de nombre y el conflicto de precedencia
camion avion helicoptero

de menos de 1000kms
Se recomienda un uso restringido y disciplinado
de la herencia. Java y Ada 95 simplemente no
coche

dinámica

ofrecen herencia múltiple


de más de 1000 kms

dinámica

funcionando estropeado

89 90
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 15
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

Polimorfismo Polimorfismo
El término polimorfismo se refiere a que una Zoo Animal Dormir()
característica de una clase puede tomar varias 1
{
formas * }

El polimorfismo representa la posibilidad de


desencadenar operaciones distintas en respuesta a
un mismo mensaje
León Oso Tigre

Cada subclase hereda las operaciones pero tiene la


posibilidad de modificar localmente el
comportamiento de estas operaciones Dormir() Dormir() Dormir()
{ { {
sobre el vientre sobrela espalda en un árbol
} } }
91 92
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

… Polimorfismo
La búsqueda automática del código que en
cada momento se va a ejecutar es fruto del
enlace dinámico
Diagramas de Estados
El cumplimiento del Principio de Sustitución
permite obtener un comportamiento y diseño
coherente

93 94
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Diagramas de Estados … Diagramas de Estados


Los Diagramas de Estados representan Cada objeto está en un estado en cierto instante
autómatas de estados finitos, desde el p.d.v. El estado está caracterizado parcialmente por los
de los estados y las transiciones valores de los atributos del objeto
Son útiles sólo para los objetos con un El estado en el que se encuentra un objeto
comportamiento significativo determina su comportamiento
El resto de objetos se puede considerar que Cada objeto sigue el comportamiento descrito en el
tienen un único estado D. de Estados asociado a su clase
El formalismo utilizado proviene de los Los D. De Estados y escenarios son
complementarios
Statecharts (Harel)

95 96
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 16
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Diagramas de Estados … Diagramas de Estados


Los D. de Estados son autómatas jerárquicos que Ejemplo de un Diagrama de Estados para la
permiten expresar concurrencia, sincronización y clase persona:
jerarquías de objetos
Los Diagramas de Estados son grafos dirigidos contratar
en el paro en activo
Los D. De Estados de UML son deterministas
Los estados inicial y final están diferenciados del perder empleo

resto jubilarse
jubilarse
La transición entre estados es instantánea y se debe
a la ocurrencia de un evento
jubilado

97 98
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

… Diagramas de Estados Acciones


Las guardas permiten condicionar la Podemos especificar la ejecución de una
transición: acción como consecuencia de la transición:

Evento[ condición ]
a b
Evento[ condición ] / acción
a b

Dicha acción también se


considera instantánea

99 100
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

… Acciones … Acciones
Podemos especificar el envío de un evento a Se puede especificar el hacer una acción
otro objeto como consecuencia de la como consecuencia de entrar, salir o estar
transición: en un estado:
a
estado A

entry: acción por entrar

Evento( arg1, arg2 )[ condición ] / ^otro_objeto.evento(arg2) exit: acción por salir


do: acción mientras en estado

101 102
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 17
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

.. Acciones Actividades
Se puede especificar el hacer una acción Las actividades son similares a las acciones
cuando ocurre en dicho estado un evento pero tienen duración y se ejecutan dentro de
que no conlleva salir del estado: un estado del objeto

Las actividades pueden interrumpirse en


estado A todo momento, cuando se desencadena la
on evento_activador( arg1 )[ condición ]: acción por evento
operación de salida del estado

103 104
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

… Actividades Generalización de Estados


Cuando una actividad finaliza se produce una § Podemos reducir la complejidad de estos
transición automática de salida del estado diagramas usando la generalización de
estados
[ not condición ]
a b § Distinguimos así entre superestado y
do: actividad subestados
§ Un estado puede contener varios subestados
[ condición ] disjuntos
§ Los subestados heredan las variables de
b
estado y las transiciones externas

105 106
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Generalización de Estados Generalización de Estados


Ejemplo: Quedaría como:

e1
a b e1
a b

e2

e2

c e2

107 108
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 18
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Generalización de Estados … Generalización de Estados


Es preferible tener estados iniciales de La agregación de estados es la composición
entrada a un nivel de manera que desde los de un estado a partir de varios estados
niveles superiores no se sepa a qué independientes
subestado se entra:
La composición es concurrente por lo que el
e1 objeto estará en alguno de los estados de
cada uno de los subestados concurrentes
a b

c
e2
e0

109 110
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

… Generalización de Estados Destrucción del Objeto


Ejemplo: La destrucción de un objeto es efectiva
cuando el flujo de control del autómata
alcanza un estado final no anidado

La llegada a un estado final anidado implica


la “subida” al superestado asociado, no el fin
e1
e1
del objeto

111 112
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

… Destrucción de Objeto Transiciones temporizadas


Ejemplo: Las esperas son actividades que tienen
asociada cierta duración
crash
En vuelo La actividad de espera se interrumpe cuando
el evento esperado tiene lugar
despegar aterrizar
Este evento desencadena una transición que
Crear(matricula)
En tierra permite salir del estado que alberga la
actividad de espera. El flujo de control se
transmite entonces a otro estado

113 114
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 19
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

… Transiciones temporizadas … Transiciones temporizadas


Ejemplo: a
Ejemplo v.2: a

/ Abrir ranura
/ Abrir ranura
Si en 30 segundos no se
introduce el dinero se esperar dinero Temporizador
termina la actividad esperar dinero (30 segundos)
anular transacción entry : Mostrar mensaje anular transacción
pasando a anular la entry : Mostrar mensaje
exit: cerrar ranura
transacción. En do: Esperar 30 segundos
exit: cerrar ranura
cualquier caso se cierra
la ranura.
Depósito efectuado
Depósito efectuado

b b

115 116
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Diagrama de Componentes
Los diagramas de componentes describen los
elementos físicos del sistema y sus relaciones

Modelado de Componentes Muestran las opciones de realización


incluyendo código fuente, binario y ejecutable

117 118
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

...Diagramas de Componentes … Diagramas de Componentes


Los componentes representan todos los tipos La representación gráfica es la siguiente:
de elementos software que entran en la
fabricación de aplicaciones informáticas. Especificación Cuerpo Genérico

Pueden ser simples archivos, paquetes de


Ada, bibliotecas cargadas dinámicamente,
etc.
Cada clase del modelo lógico se realiza en
dos componentes: la especificación y el
cuerpo Package Package Generic
specification body package

119 120
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 20
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia

Dependencias entre Componentes Subsistemas


Las relaciones de dependencia se utilizan en Los distintos componentes pueden agruparse en
los diagramas de componentes para indicar paquetes según un criterio lógico y con vistas a
que un componente utiliza los servicios simplificar la implementación
ofrecidos por otro componente Son paquetes estereotipados en <<subsistemas>>

<<subsistema>>
NewPackage4

121 122
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

Diagramas de Distribución
Los Diagramas de Distribución muestran la
disposición física de los distintos nodos que
componen un sistema y el reparto de los
Modelado de Distribución componentes sobre dichos nodos

Nodo

123 124
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

… Diagramas de Distribución … Diagramas de Distribución


Ejemplo de conexión entre nodos:
Los estereotipos permiten precisar la
naturaleza del equipo:
<<Procesador> <<dispositivo>>
Dispositivos <<<<TCP/IP>>>> nodo2
Nodo
Procesadores conexión1

Memoria
conexión7
Los nodos se interconectan mediante <<RDSI>>

soportes bidireccionales (en principio) que En Rational Rose podemos


dispositiv
o
pueden a su vez estereotiparse distinguir entre el dispositivo por
estereotipado y el dispositivo con
su propio símbolo

125 126
" www.d s i c.upv. e s / ~uml " www.d s i c.upv. e s / ~uml

" www.dsic.upv.es/~uml 21