" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
1
1" www.ds ic.upv.es/~uml
Construcción de una casa para “fido”
Puede hacerlo una sola personaRequiere :
Modelado mínimoProceso simpleHerramientas simples
2" www.ds ic.upv.es/~uml
Construcción de una casa
Construida eficientemente y en un tiempo razonable por un equipoRequiere :
ModeladoProceso bien definidoHerramientas más sofisticadas
3" www.ds ic.upv.es/~uml
Construcción de un rascacielos
4" www.ds ic.upv.es/~uml
Claves en Desarrollo de SI
Herramientas Proceso
Notación
5" www.ds ic.upv.es/~uml
Sistema Computacional
Proceso de Negocios
Orden
Item
envío
“El modelado captura laspartes esenciales del sistema”
Abstracción - Modelado Visual (MV)
6" www.ds ic.upv.es/~uml
MV para manejar la complejidad
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
2
7" www.ds ic.upv.es/~uml
Interfaz de Usuario(Visual Basic,
Java, ..)
Lógica del Negocio(C++, Java, ..)
Servidor de BDs(C++ & SQL, ..)
“Modelar el sistema independientemente del lenguaje de implementación”
MV para definir la Arquitectura del Software
8" www.ds ic.upv.es/~uml
Múltiples Sistemas
MV promueve la reutilización
Componentes Reutilizados
9" www.ds ic.upv.es/~uml
¿Qué es UML?
UML = Unified Modeling Language
Un lenguaje de propósito general para el modelado orientado a objetos
Documento “OMG Unified Modeling Language Specification”
UML combina notaciones provenientes desde:Modelado Orientado a Objetos Modelado de DatosModelado de Componentes Modelado de Flujos de Trabajo ( Workflows)
10" www.ds ic.upv.es/~uml
Situación de Partida
Diversos métodos y técnicas OO, con muchos aspectos en común pero utilizando distintas notaciones
Inconvenientes para el aprendizaje, aplicación, construcción y uso de herramientas, etc.
Pugna entre distintos enfoques (y correspondientes gurús)
=> Necesidad de una notación estándar
11" www.ds ic.upv.es/~uml
Historia de UML
Comenzó como el “Método Unificado”, con la participación de Grady Booch y Jim Rumbaugh. Se presentó en el OOPSLA’95
El mismo año se unió Ivar Jacobson. Los “Tres Amigos” son socios en la compañía RationalSoftware. Herramienta CASE Rational Rose
12" www.ds ic.upv.es/~uml
Historia de UML
Nov ‘97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2001 ? UML 2.0
Revisiones menores
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
3
13" www.ds ic.upv.es/~uml
Participantes en UML 1.0
Rational Software (Grady Booch, Jim
Rumbaugh y Ivar Jacobson)Digital Equipment
Hewlett-Packard i-Logix (David Harel)
IBMICON Computing
(Desmond D’Souza)
Intellicorp and James Martin & co. (James Odell)
MCI SystemhouseMicrosoft ObjecTimeOracle Corp.Platinium TechnologySterling SoftwareTaskonTexas Instruments Unisys
14" www.ds ic.upv.es/~uml
UML “aglutina” enfoques OO
UML
RumbaughJacobson
Meyer
Harel
Wirfs-BrockFusion
Embly
Gamma et. al.
Shlaer-Mellor
Odell
Booch
Pre- and Post-conditions
State Charts
Responsabilities
Operation descriptions, message numbering
Singleton classes
Frameworks, patterns, notes
Object life cycles
15" www.ds ic.upv.es/~uml
Métodos Formales en Modelado
Tipos de enfoques: no-formales, semi-formales y formales
Las principales mejoras al utilizar métodos formales son:
Mayor rigor en la especificaciónMejores condiciones para realizar la verificación y validación en forma más exhaustivaMejores condiciones para automatización de procesos para la generación automática de prototipos y/o código final
16" www.ds ic.upv.es/~uml
Inconvenientes en UML
Definición del proceso de desarrollo usando UML. UML no es una metodología
Falta integración con respecto de otras técnicas tales como patrones de diseño, interfaces de usuario, documentación, etc.
Ejemplos aislados
“Monopolio de conceptos, técnicas y métodos entorno a UML”
17" www.ds ic.upv.es/~uml
Perspectivas de UML
UML será el lenguaje de modelado orientado a objetos estándar predominante los próximos añosRazones:
Participación de metodólogos influyentes
Participación de importantes empresasAceptación del OMG como notación estándar
Evidencias:Herramientas que proveen la notación UML“Edición” de libros
Congresos, cursos, “camisetas”, etc.
18" www.ds ic.upv.es/~uml
Diagramas de UML
Use CaseDiagrams
Use CaseDiagramsDiagramas de
Casos de Uso
ScenarioDiagramsScenarioDiagramsDiagramas deColaboración
StateDiagramsState
DiagramsDiagramas deComponentes
ComponentDiagramsComponent
DiagramsDiagramas deDistribución
StateDiagramsState
DiagramsDiagramas de
Objetos
ScenarioDiagramsScenario
DiagramsDiagramas deEstados
Use CaseDiagramsUse Case
DiagramsDiagramas de
Secuencia
StateDiagrams
StateDiagramsDiagramas de
Clases
Diagramas deActividad
Modelo
“Un modelo es una descripción completa de un sistema desde una perspectiva concreta”
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
4
19" www.ds ic.upv.es/~uml
Paquetes en UML
Los paquetes ofrecen un mecanismo general para la organización de los modelos agrupando elementos de modelado
Se representan gráficamente como:
Nombre de paquete
20
" w w w .d s i c.u p v . e s / ~u m l
… Paque tes en UML
Cada paquete cor responde a un subconjunto de l modelo y cont iene, según e l modelo, c lases, objetos , re lac iones, componentes y d iagramas
asoc iados
Un paquete puede contener ot ros paquetes , sin l ími te de an idamiento pero cada e lemento
pertenece a (está def in ido en) só lo un paquete
21
" w w w .d s i c.u p v . e s / ~u m l
… Paque tes en UML
Una c lase de un paquete puede aparecer en ot ro paquete por la importac ión a t ravés de una re lac ión de dependenc ia entre paquetes
Todas las c lases no son necesar iamente v is ib les desde el exter ior del paquete, es dec i r , un paquete encapsula a la vez que agrupa
22
" w w w .d s i c.u p v . e s / ~u m l
E l Parad igma
Or ien tado a Ob je tos
23
" w w w .d s i c.u p v . e s / ~u m l
¿Por qué la Or ientac ión a
Obje tos?
Proximidad de los conceptos de modelado respecto de las entidades del mundo real
Mejora captura y validación de requisitos
Acerca el “espacio del problema” y el “espacio de la solución”
Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema
Faci l i ta construcción, mantenimiento y reuti l ización
24
" w w w .d s i c.u p v . e s / ~u m l
¿Por qué la Or ientac ión a
Obje tos?
Conceptos comunes de modelado durante el
análisis, diseño e implementación
Facilita la transición entre distintas fases
Favorece el desarrollo iterativo del sistema
Disipa la barrera entre el “qué” y el “cómo”
Sin embargo, existen problemas ...
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
5
25
" w w w .d s i c.u p v . e s / ~u m l
“...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir”
“...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan uti l izar los conceptos en diversos grados”
- - W o l f g a n g S t r i g e l
Prob lemas en OO
26
" w w w .d s i c.u p v . e s / ~u m l
Ob je tos
Objeto = un idad atómica que in tegra estado y compor tamiento
La encapsu lac ión en un objeto permi te una alta
cohes ión y un bajo acop lamiento
Un objeto puede caracter izar una ent idad f ís ica (coche) o concepto (ecuac ión matemát ica)
27
" w w w .d s i c.u p v . e s / ~u m l
… Ob je tos
E l Mode lado de Ob je tos pe rm i te rep resen ta r e l
c i c lo de v ida de los ob je tos a t ravés de sus
in te racc iones
En UML, un ob je to se representa por un
r e c t ángu l o c on un nombre sub r ayado
Otro Objeto
Un Objeto
Otro Objeto más
28
" w w w .d s i c.u p v . e s / ~u m l
… Ob je tos
E jemp lo de va r i o s ob je tos re l a c i onados :
Juan
Felipe
Libreta de ahorro a
plazo
Dos clientes del banco
Cuenta corriente
Libreta de ahorro
Cuenta corriente
29
" w w w .d s i c.u p v . e s / ~u m l
… Ob je tos
Ob je t o = I den t i dad + E s t ado + Compo r t am ien to
E l es tado es tá representado por los va lo res de los
atr ibutos
Un a t r i bu to toma un va lo r en un domin io conc re to
Un coche
Azul 979 Kg 70 CV
...
30
" w w w .d s i c.u p v . e s / ~u m l
Ident idad
Oid (Object Identif ier)
Cada objeto posee un o i d. El o i d establece la identidad del objeto y tiene las siguientes características:
Constituye un identificador único y global para cada objeto dentro del sistema
Es determinado en el momento de la creación del objeto
Es independiente de la localización física del objeto, es decir,provee completa independencia de local ización
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
6
31
" w w w .d s i c.u p v . e s / ~u m l
… Ident idad
Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura
No cambia durante toda la vida del objeto. Además, un o id no se reutil iza aunque el objeto deje de existir
No se tiene ningún control sobre los oids y su manipulación resulta transparente
Sin embargo, es preciso contar con algún medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos)
32
" w w w .d s i c.u p v . e s / ~u m l
Es tado
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 ob je to
Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto
33
" w w w .d s i c.u p v . e s / ~u m l
Compor t am ien to
Ejemplo de interacc ión:
O t r o o b j e t o
U n o b j e t o
Un mensaje
Operacion 1
Operacion 2
34
" w w w .d s i c.u p v . e s / ~u m l
… Compor tam ien to
Los mensajes navegan por los en laces, a pr ior i en ambas d i recc iones
Estado y comportamiento están re lac ionados
Ejemplo: no es posib le aterr izar un avión s i
no está vo lando. Está vo lando como consecuenc ia de haber despegado de l sue lo
35
" w w w .d s i c.u p v . e s / ~u m l
Pers is tenc ia
La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo
Un objeto persistente conserva su estado en un s istema de almacenamiento permanente(usualmente memoria secundaria)
Podremos después reconstruir lo, es decir, cogerlo de memoria secundaria para util izarlo en la ejecución(materialización del objeto)
Los lenguajes OO no proponen soporte adecuado para la persistencia, pues ésta debería ser transparente, un objeto existe desde su creación hasta que se destruya
36
" w w w .d s i c.u p v . e s / ~u m l
Comun i cac i ón
Un s i s tema in formát ico puede verse como un conjunto de ob je tos autónomos y concurrentes que t rabajan de manera coord inada en la
consecuc ión de un f in espec í f ico
E l comportamiento g lobal se basa pues en la
comunicac ión entre los objetos que la c omponen
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
7
37
" w w w .d s i c.u p v . e s / ~u m l
… Comun i cac ión
Categorías de objetos :Act ivos – Pasivos
Clientes – Servidores
Objeto Activo: posee un hilo de ejecución (thread)propio y puede iniciar una actividad
Objeto Pasivo: no puede iniciar una actividad pero puede enviar estímulos una vez que se le solicita un serv ic io
Cliente es el objeto que solicita un servicio. Servidores el objeto que provee el servicio solicitado
38
" w w w .d s i c.u p v . e s / ~u m l
E l Concepto de Mensa je
La unidad de comunicación entre objetos se llama mensaje.
El mensaje es el soporte de una comunicación que vincula dinámicamente los objetos que fueron separados previamente en el proceso de descomposición.
Una operación es la especificación y la implementación de una función efectuada por un objeto.
39
" w w w .d s i c.u p v . e s / ~u m l
E l Concepto de Operac ión
Las operac iones menipu lan los atr ibutos de l objeto.
Pueden tener parámetros de entrada y/o
sa l ida.
Un mensaje de un objeto a otro invo lucra la e jecuc ión de una operac ión.
40
" w w w .d s i c.u p v . e s / ~u m l
E l Concepto de Operac ión
El nombre de l mensaje es e l de la operac ión.
Los parámetros de l mensaje son los parámetros de la operac ión.
41
" w w w .d s i c.u p v . e s / ~u m l
Casos de Uso
42
" 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
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
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
8
43
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso
Los Casos de Uso particionan el conjunto de necesidades atendiendo a la categoría de usuarios que part ic ipan en el mismo
Están basado en el lenguaje natural, es decir, es accesible por los usuarios
44
" w w w .d s i c.u p v . e s / ~u m l
E jemp lo de Casos de Uso
Caso de Uso: Comprar productos
Actores: Cl iente, Cajero
Tipo: Primario
Descripción: Un cl iente l lega a la caja
registradora con los art ículos que comprará. El cajero registra los artículos y cobra el importe. Al terminar la operación el c l iente se marcha con los productos.
comprar productos
45
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso
Ejemplo:
Sistema
Actor A
Caso de uso X
Actor B
Caso de uso Y
46
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso
Actores:Principales: personas que usan el sistema
Secundarios: personas que mantienen o administran el sistema
Material externo: dispositivos materiales imprescindibles que forman parte del ámbito de la aplicación y deben ser util izados
Otros sistemas: sistemas con los que el s istema interactúa
La misma persona física puede interpretar varios papeles como actores distintos
El nombre del actor describe el papel desempeñado
47
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso
Los Casos de Uso se determinan observando y precisando, actor por actor, las secuencias de
interacción, los escenarios, desde el punto de vista del usuar io
Un escenario es una instancia de un caso de uso
Los casos de uso intervienen durante todo el ciclo de vida. El proceso de desarrollo estará dirigido por los
casos de uso
48
" w w w .d s i c.u p v . e s / ~u m l
Casos de Uso: Re lac iones
UML def ine cuat ro t ipos de re lac ión en los
D i ag r amas de Casos de Uso:
Comunicación :
Caso de Uso
Actor
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
9
49
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso: Re lac iones
Inclusión : una instancia del Caso de Uso origen incluye también el comportamiento descrito por el Caso de Uso destino
En UML se estereotipa como <<include>>
C a s o d e u s o o r i g e n
C a s o d e u s o d e s t i n o
<<include>>
50
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso: Re lac iones
Extensión : el Caso de Uso origen extiende el
comportamiento del Caso de Uso destino
Caso de uso origen
Caso de uso destino
< <extend > >
51
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso: Re lac iones
Herencia : el Caso de Uso origen hereda la
especificación del Caso de Uso destino y posiblemente la modifica y/o amplía
Caso de uso origen
Caso de uso destino
52
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso: Re lac iones
Ejemplo:
Identificación
Giro por Internet
Cliente
Giro
<<ex tends>>
<<inc ludes>>
<< e x t e n d> >
< <i n c l u d e >>
Transferenc ia por Internet
Transferencia
53
" w w w .d s i c.u p v . e s / ~u m l
Casos de Uso: Cons t rucc ión
Un caso de uso debe ser s imple, inte l ig ib le, c laro y conciso
Genera lmente hay pocos actores asoc iados a cada Caso de Uso
Preguntas c lave:¿cuáles son las tareas del actor?
¿qué información crea, guarda, modifica, destruye o lee el actor?
¿debe el actor notificar al sistema los cambios externos?¿debe el sistema informar al actor de los cambios internos?
54
" w w w .d s i c.u p v . e s / ~u m l
… Casos de Uso: Cons t rucc ión
La descr ipc ión de l Caso de Uso comprende:el inicio: cuándo y qué actor lo produce?
el fin: cuándo se produce y qué valor devuelve?
la interacción actor-caso de uso: qué mensajes intercambian ambos?
objetivo del caso de uso: ¿qué lleva a cabo o intenta?
cronología y origen de las interacciones
repeticiones de comportamiento: ¿qué operaciones son iteradas?
situaciones opcionales: ¿qué ejecuciones alternativas se presentan en el caso de uso?
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
10
55
" w w w .d s i c.u p v . e s / ~u m l
R F- < i d d e l r e q u i s i t o > < nombre de l requ is i to func iona l> Versión < n u m e r o d e v e r s i ó n y f e c h a > Autores <autor> Fuentes <fuente de la vers ión ac tua l> O b j e t i v o s a s o c i a d o s <nombre de l ob je t i vo> Descr ipc ión El s is tema deberá compor ta rse ta l como se descr ibe e n
e l s igu ien te caso de uso { conc re to cuando <even to de act ivación> , abstracto durante la real ización de los casos de uso < l i s ta de casos de uso>}
Precond ic ión <precondic ión del caso de uso> P a s o A c c i ó n
1 {El <actor> , E l s is tema} <acción real izada por el ac tor o s is tema>, se rea l iza e l caso de uso < c a s o d e u s o R F -x >
2 Si <condic ión>, {e l <actor> , e l s is tema} <acc ión real izada por e l actor o s is tema>>, se real iza e l caso de uso < caso de uso RF- x >
3 4 5 6
Secuencia N o r m a l
n P o s t c ond ic ión < p o s t c o n d i c i ó n d e l c a s o d e u s o >
P a s o A c c i ó n
1 S i <cond ic ión de excepc ión>, {e l <ac tor> , e l s is tema} }<acc ión rea l i zada por e l ac to r o s i s tema>> , se rea l i za e l caso de uso < c a s o d e u s o R F -x> , a con t i nuac ión es te caso d e u s o { c o n t i n u a, abor ta}
2
E x c e p c i o n e s
3 Rendimiento P a s o Cota de t iempo
1 n segundos 2 n segundos Frecuenc ia esperada <nº de veces> veces / <un idad de t i empo> I m p o r t a n c i a {s in importancia, importante, v i ta l } U r g e n c i a {puede esperar , hay p res ión , inmed ia tamente} C o m e ntar ios <comentar ios ad ic iona les>
56
" w w w .d s i c.u p v . e s / ~u m l
Mode lado de In te racc iones
57
" w w w .d s i c.u p v . e s / ~u m l
Interacc ión
Los objetos interactúan para real izar co lect ivamente los serv ic ios ofrec idos por las ap l icac iones. Los d iagramas de interacc ión
muest ran cómo se comunican los objetos en una interacc ión
Ex is ten dos t ipos de d iagramas de
interacción: los Diagramas de Co laborac ión y los Diagramas de Secuenc ia.
58
" w w w .d s i c.u p v . e s / ~u m l
Diagramas de in te racc ión
Los Diagramas de Secuencia son más adecuados están para observar la perspectiva cronológica de
las interacciones
Los Diagramas de Colaboración ofrecen una mejor visión espacial mostrando los enlaces de
comunicación entre objetos
Normalmente el D. de Colaboración se obtiene a
partir del correspondiente D. de Secuencia
59
" w w w .d s i c.u p v . e s / ~u m l
Diagramas de Secuenc ia
Muestra la secuenc ia de mensajes entre objetos durante un escenar io concreto.
Cada objeto v iene dado por una barra vert ica l.
E l t iempo transcurre de arr iba abajo.
Cuando ex is te demora entre e l env ío y la atenc ión se puede ind icar usando una l ínea oblicua.
60
" w w w .d s i c.u p v . e s / ~u m l
… D iagramas de Secuenc ia
Un ejemplo:
CBA
m1
m2
m3
m4
m5
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
11
61
" w w w .d s i c.u p v . e s / ~u m l
… D iagramas de Secuenc ia
EjemploQ u i e n l l a m a L í n e a t e l e f ó n i c a L l a m a d o
d e s c u e l g a
t o n o
m a r c a r
i n d i c a c i ó n d e l l a m a d at i m b r e
d e s c u e l g a
d i g a ?
Las bandas rectangulares representan los
periodos de actividad de los
objetos
62
" w w w .d s i c.u p v . e s / ~u m l
… Est ructuras de cont ro l
Podemos rep resen ta r i t e rac i ones en e l env ío de
mensa jes , p .e . , m ien t ras se cump la una
condic ión:
While XLoop
end Loop
63
" w w w .d s i c.u p v . e s / ~u m l
… Est ructuras de cont ro l
La i t e r a c i ón puede exp re sa r se t amb ién como
par te de l mensa je :
*[condición] Mensaje
64
" w w w .d s i c.u p v . e s / ~u m l
… Est ructuras de cont ro l
Las b i fu r cac iones cond i c i ona les pueden
r ep re sen ta r se de e s t a f o rma :
If condición
else
end if
65
" w w w .d s i c.u p v . e s / ~u m l
Diagramas de Co laborac ión
Son útiles en la fase exploratoria para identificar objetos
La distribución de los objetos en el diagrama permite observar adecuadamente la interacción de un objeto con respecto de los demás
La estructura estática viene dada por los enlaces; la dinámica por el envío de mensajes por los enlaces
66
" w w w .d s i c.u p v . e s / ~u m l
Mensa jes
Un mensa je desencadena una acc i ón en e l
ob je to des t i na ta r i o
Un mensa je se env ía s i han s ido env iados l os
mensa jes de una l i s ta ( s inc ron i zac ión) :
A
BA.1, B.3 / 1 :Mensa je
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
12
67
" w w w .d s i c.u p v . e s / ~u m l
… Mensa jes
Un mensa je se env ía i t e rada y secuenc ia lm ente
a un con junto de ins tanc ias :
A
B1 *[i:=1..n] : Mensaje
68
" w w w .d s i c.u p v . e s / ~u m l
… Mensa jes
Un mensa je se env ía i t e rada y
concu r ren temen te a un con jun to de i n s t anc i a s :
A
B1 *| | [i:=1..n] : Mensaje
69
" w w w .d s i c.u p v . e s / ~u m l
… Mensa jes
Un mensa je se env í a de manera cond i c i onada :
A
B
[x>y] 1: Mensaje
70
" w w w .d s i c.u p v . e s / ~u m l
… Mensa jes
Un mensa je que devue l ve un resu l t ado :
A
B1: distancia:= mover(x ,y)
71
" w w w .d s i c.u p v . e s / ~u m l
… Mensa jes
Los argumentos de un mensaje pueden ser valores obtenidos como consecuencia de las l lamadas
anteriores
Los argumentos pueden ser también expresiones de navegación construidas a partir del objeto cliente
Los argumentos pueden omitirse en el diagrama
72
" w w w .d s i c.u p v . e s / ~u m l
Mode l ado Conceptua l
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
13
73
" w w w .d s i c.u p v . e s / ~u m l
Clases
Mode lado Conceptua l :
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
74
" w w w .d s i c.u p v . e s / ~u m l
Clases
La c lase def ine el ámbito de def in ic ión de un conjunto de objetos
Cada objeto pertenece a una c lase
Los objetos se crean por instanc iac ión de las c lases
75
" w w w .d s i c.u p v . e s / ~u m l
Clases: Notac ión Gráf i ca
Cada c lase se representa en un rectángulo con tres compart imientos:
nombre de la c lase
atributos de la clase
operaciones de la clase
motocicleta
colorcilindradavelocidad maxima
arrancaracelerarfrenar
76
" w w w .d s i c.u p v . e s / ~u m l
Clases: Encapsu lac ión
La encapsu lac ión presenta dos ventajas bás icas:
Se protegen los datos de accesos indebidos
El acoplamiento entre las clases se disminuye
Favorece la modularidad y el mantenimiento
Los atr ibutos de una c lase no deber ían se rmanipu lab les d i rectamente por e l resto de
objetos
77
" w w w .d s i c.u p v . e s / ~u m l
Relac iones entre C lases
Los enlaces entre de objetos pueden representarseentre las respectivas clases
Formas de relación entre clases:
Asociación y Agregación (vista como un caso particular de asociación)
General ización/Especial ización
Las relaciones de Agregación y Generalización forman jerarquías de clases
78
" w w w .d s i c.u p v . e s / ~u m l
Asoc iac ión
La asoc iac ión expresa una conex ión b id i recc iona l
entre ob je tos
Una asoc iac ión es una abs t racc ión de la re lac ión
ex i s tente en los en laces ent re los ob je tos
Universidad Estudiante
Univ. de Murcia:Universidad Antonio:Estudiante
Una asociación
Un enlace
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
14
79
" w w w .d s i c.u p v . e s / ~u m l
Ejemplo:
… Asoc iac ión
Persona Compañíatrabaja-para
nombre
s. s.nombre
direcciónjefe
Administraempleado
* *
emplea-a
0.. 10.. 1
0.. 1
*
marido
casado-con
mujer
80
" w w w .d s i c.u p v . e s / ~u m l
… Asoc iac ión
Especificación de multiplicidad (mínima.. .máxima)
1 Uno y sólo uno
0..1 Cero o uno
M..N Des d e M hasta N (enteros natura les)
* Cero o muchos
0..* Cero o muchos
1..* U no o muchos (al menos uno)
La multiplicidad mínima >= 1 establece una
restricci ón de existencia
81
" w w w .d s i c.u p v . e s / ~u m l
Asociac ión Cual i f icada
Aerolínea Viajeronro_billete* 0..1
TableroAjedrez
filacolumna
1 1 Cuadro
Reduce l a mu l t i p l i c i d ad de l r o l opues t o a l c ons i de r a r e l v a l o r
de l cua l i f i cador
82
" w w w .d s i c.u p v . e s / ~u m l
Agregac ión
La agregación representa una relación parte_de entre objetos
En UML se proporciona una escasa caracterización de la agregación
Puede ser caracterizada con precisión determinando
las relaciones de comportamiento y estructura que existen entre el objeto agregado y cada uno de sus
objetos componentes
83" www.ds ic.upv.es/~uml
Ejemplos
motor
coche
1
1
1
1
Persona
0..2*
+Padre
0..2
+Hijos
*
84" www.ds ic.upv.es/~uml
… Ejemplos
CuentaPersona
1
*
orAsociación excluyente
Empresa
*
*
Usuario Estaciónestá-autorizado-en
prioridadprivilegios
camb_privil
Autorización
* *
Clase de asociación
Polígono Puntocontiene 3.. *1
{ordenado}
Agregación
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
15
85" www.ds ic.upv.es/~uml
Jerarquías de Generalización/Especialización
Permiten gestionar la complejidad mediante un ordenamiento taxonómico
Se obtiene usando los mecanismos de abstracción de Generalización y/o Especialización
La Generalización consiste en factorizar laspropiedades comunes de un conjunto de clases en una clase más general
86" www.ds ic.upv.es/~uml
Nombres usados: clase padre - clase hija, superclase - subclase, clase base - clase derivada
Las subclases heredan características de sus superclases, es decir, atributos y operaciones(y asociaciones) de la superclase están disponibles en sus subclases
... Jerarquías de Generalización/Especialización
87" www.ds ic.upv.es/~uml
Abstracciones más generales.
vehiculo
vehiculo terrestre vehiculo aéreo
camion coche avion helicoptero
... Jerarquías de Generalización/Especialización
88" www.ds ic.upv.es/~uml
... Jerarquías de Generalización/Especialización
La especialización es una técnica muy eficaz para la extensión y reutilización
Caracterización de la generalización en UML: disjunta - no disjuntatotal (completa) - parcial (incompleta)
coche
funcionando estropeado
89" www.ds ic.upv.es/~uml
Un ejemplo combinado:v e h i c u l o
v e h i c u l o t e r r e s t r e
c a m i o n
c o c h e
f u n c i o n a n d o e s t r o p e a d o
v e h i c u l o a é r e o
a v i o n h e l i c o p t e r o
c o m e r c i a l
m i l i t a r
d e m e n o s d e 1 0 0 0 k m s
d e m á s d e 1 0 0 0 k m s
e s t á t i c a
e s t á t i c ae s t á t i c a
d i n á m i c a
d i n á m i c a
... Jerarquías de Generalización/Especialización
90" www.ds ic.upv.es/~uml
Herencia Múltiple
Se presenta cuando una subclase tiene más de una superclase
La herencia múltiple debe manejarse con precaución. 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 múltiple
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
16
91" www.ds ic.upv.es/~uml
Polimorfismo
El término polimorfismo se refiere a que una característica de una clase puede tomar varias formas
El polimorfismo representa la posibilidad de desencadenar operaciones distintas en respuesta a un mismo mensaje
Cada subclase hereda las operaciones pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones
92" www.ds ic.upv.es/~uml
Polimorfismo
Dormir(){en un árbol}
Dormir(){sobrela espalda}
Dormir(){sobre el vientre}
Zoo Animal
León TigreOso
1
*
Dormir(){
}
93" www.ds ic.upv.es/~uml
… Polimorfismo
La búsqueda automática del código que en cada momento se va a ejecutar es fruto del enlace dinámico
El cumplimiento del Principio de Sustitución permite obtener un comportamiento y diseño coherente
94" www.ds ic.upv.es/~uml
Diagramas de Estados
95" www.ds ic.upv.es/~uml
Diagramas de Estados
Los Diagramas de Estados representan autómatas de estados finitos, desde el p.d.v. de los estados y las transicionesSon útiles sólo para los objetos con un comportamiento significativoEl resto de objetos se puede considerar quetienen un único estadoEl formalismo utilizado proviene de los Statecharts (Harel)
96" www.ds ic.upv.es/~uml
… Diagramas de Estados
Cada objeto está en un estado en cierto instanteEl estado está caracterizado parcialmente por los valores de los atributos del objeto El estado en el que se encuentra un objeto determina su comportamientoCada objeto sigue el comportamiento descrito en el D. de Estados asociado a su claseLos D. De Estados y escenarios son complementarios
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
17
97" www.ds ic.upv.es/~uml
… Diagramas de Estados
Los D. de Estados son autómatas jerárquicos que permiten expresar concurrencia, sincronización y jerarquías de objetosLos Diagramas de Estados son grafos dirigidos Los D. De Estados de UML son deterministasLos estados inicial y final están diferenciados del restoLa transición entre estados es instantánea y se debe a la ocurrencia de un evento
98" www.ds ic.upv.es/~uml
Ejemplo de un Diagrama de Estados para la clase persona:
en el paro en activo
jubilado
contratar
perder empleo
jubilarsejubilarse
… Diagramas de Estados
99" www.ds ic.upv.es/~uml
Las guardas permiten condicionar la transición:
a bEvento[ condición ]
… Diagramas de Estados
100" www.ds ic.upv.es/~uml
Acciones
Podemos especificar la ejecución de una acción como consecuencia de la transición:
a bEvento[ condición ] / acción
Dicha acción también se considera instantánea
101" www.ds ic.upv.es/~uml
Podemos especificar el envío de un evento a otro objeto como consecuencia de la transición:
a
b
Evento( arg1, arg2 )[ condición ] / ^otro_objeto.evento(arg2)
… Acciones
102" www.ds ic.upv.es/~uml
Se puede especificar el hacer una acción como consecuencia de entrar, salir o estar en un estado:
e s t a d o A
e n t r y : a c c i ó n p o r e n t r a r
e x i t : a c c i ó n p o r s a l i r
d o : a c c i ó n m i e n t r a s e n e s t a d o
… Acciones
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
18
103" www.ds ic.upv.es/~uml
Se puede especificar el hacer una acción cuando ocurre en dicho estado un evento que no conlleva salir del estado:
estado A
on evento_activador( arg1 )[ condición ]: acción por evento
.. Acciones
104" www.ds ic.upv.es/~uml
Actividades
Las actividades son similares a las acciones pero tienen duración y se ejecutan dentro de un estado del objeto
Las actividades pueden interrumpirse en todo momento, cuando se desencadena la operación de salida del estado
105" www.ds ic.upv.es/~uml
Cuando una actividad finaliza se produce una transición automática de salida del estado
ado: actividad
b[ not condición ]
b
[ condición ]
… Actividades
106" www.ds ic.upv.es/~uml
Generalización de Estados
§ Podemos reducir la complejidad de estos diagramas usando la generalización de estados
§ Distinguimos así entre superestado y subestados
§ Un estado puede contener varios subestadosdisjuntos
§ Los subestados heredan las variables de estado y las transiciones externas
107" www.ds ic.upv.es/~uml
Generalización de Estados
Ejemplo:
a b
c
e 1
e 2
e 2
108" www.ds ic.upv.es/~uml
Quedaría como:
c
a ba be1
e2
Generalización de Estados
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
19
109" www.ds ic.upv.es/~uml
Es preferible tener estados iniciales de entrada a un nivel de manera que desde los niveles superiores no se sepa a qué subestado se entra:
c
a ba b
e 1
e 2
e 1
e 0
… Generalización de Estados
110" www.ds ic.upv.es/~uml
La agregación de estados es la composición de un estado a partir de varios estados independientes
La composición es concurrente por lo que el objeto estará en alguno de los estados de cada uno de los subestados concurrentes
… Generalización de Estados
111" www.ds ic.upv.es/~uml
Ejemplo:
e1e1
… Generalización de Estados
112" www.ds ic.upv.es/~uml
Destrucción del Objeto
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 del objeto
113" www.ds ic.upv.es/~uml
… Destrucción de Objeto
Ejemplo:
En tierraCrear(matricula)
En vuelo
aterrizardespegar
crash
114" www.ds ic.upv.es/~uml
Transiciones temporizadas
Las esperas son actividades que tienen asociada cierta duración
La actividad de espera se interrumpe cuando el evento esperado tiene lugar
Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
20
115" www.ds ic.upv.es/~uml
Ejemplo: a
esperar dineroentry : Mostrar mensajedo: Esperar 30 segundosexit: cerrar ranura
b
anular transacción
/ Abrir ranura
Depósito efectuado
Si en 30 segundos no se introduce el dinero se termina la actividad pasando a anular la transacción. En cualquier caso se cierra la ranura.
… Transiciones temporizadas
116" www.ds ic.upv.es/~uml
Ejemplo v.2:
… Transiciones temporizadas
a
esperar dinero
entry : Mostrar mensajeexit: cerrar ranura
b
anular transacción
/ Abrir ranura
Depósito efectuado
Temporizador(30 segundos)
117" www.ds ic.upv.es/~uml
Modelado de Componentes
118" www.ds ic.upv.es/~uml
Diagrama de Componentes
Los diagramas de componentes describen los elementos físicos del sistema y sus relaciones
Muestran las opciones de realización incluyendo código fuente, binario y ejecutable
119" www.ds ic.upv.es/~uml
...Diagramas de Componentes
Los componentes representan todos los tipos de elementos software que entran en la fabricación de aplicaciones informáticas. 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
120" www.ds ic.upv.es/~uml
La representación gráfica es la siguiente:
GenéricoCuerpoEspecificación
Package specification
Package body
Generic package
… Diagramas de Componentes
" www.dsic.upv.es/~uml
Departamento de Sistemas Informáticos y ComputaciónUniversidad Politécnica de Valencia
21
121" www.ds ic.upv.es/~uml
Dependencias entre Componentes
Las relaciones de dependencia se utilizan en los diagramas de componentes para indicar que un componente utiliza los servicios ofrecidos por otro componente
122" www.ds ic.upv.es/~uml
Subsistemas
Los distintos componentes pueden agruparse en paquetes según un criterio lógico y con vistas a simplificar la implementación
Son paquetes estereotipados en <<subsistemas>>
NewPackage4
<<subsistema>>
123" www.ds ic.upv.es/~uml
Modelado de Distribución
124" www.ds ic.upv.es/~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 componentes sobre dichos nodos
N o d o
125" www.ds ic.upv.es/~uml
Los estereotipos permiten precisar la naturaleza del equipo:
DispositivosProcesadoresMemoria
Los nodos se interconectan mediante soportes bidireccionales (en principio) que pueden a su vez estereotiparse
… Diagramas de Distribución
126" www.ds ic.upv.es/~uml
Ejemplo de conexión entre nodos:
Nodo<<Procesador>
nodo2<<dispositivo>>
dispositivo
conexión7
conexión1<<<<TCP/IP>>>>
<<RDSI>>
En Rational Rose podemos distinguir entre el dispositivo por estereotipado y el dispositivo con su propio símbolo
… Diagramas de Distribución