Documentos de Académico
Documentos de Profesional
Documentos de Cultura
la introduccin de ambigedad
Anexo 1
245
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
ndice
Elementos 248
Relaciones 253
Diagramas 255
Paquetes 294
246
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
UML es una gramtica para expresar diseos de software orientado a objetos. Sus siglas
significan, en espaol, Lenguaje Unificado de Modelado. No es la nica notacin que
existe, pero es el estndar actual del llamado Object Management Group (OMG). Por
tanto, conviene saber cmo expresarse en este lenguaje, advirtiendo que los lenguajes
son dinmicos y que, a veces, no se utilizan de la misma forma por diferentes autores.
Nosotros aprovecharemos UML para profundizar en los conceptos del software
orientado a objetos.
247
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Elementos
Elementos estructurales
Los elementos estructurales son la parte esttica de los modelos de UML. Representan
cosas que son conceptuales o materiales. Hay siete tipos de elementos estructurales:
clases, interfaces, colaboraciones, casos de uso, clases activas, componentes y nodos.
Clases: una clase es una descripcin de un conjunto de objetos que comparten los
mismos atributos, operaciones, relaciones y semntica. Grficamente una clase se
representa como un rectngulo, dividido en tres zonas que contienen el nombre, los
atributos y las operaciones.
Nombre Clase
-atributos
+operaciones()
interface
NombreInterfaz NombreInterfaz
248
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
que la suma de los comportamientos de sus elementos. Por lo tanto, las colaboraciones
tienen tanto dimensin estructural como de comportamiento. Una clase dada puede
participar en varias colaboraciones. Estas colaboraciones representan, pues, la
implementacin de patrones que forman un sistema. Grficamente una colaboracin se
representa como una elipse de borde discontinuo.
Nombre
colaboracin
Nombre Caso de
uso
Clase activa: una clase activa es una clase cuyos objetos tienen uno o ms procesos o
hilos de ejecucin y, por lo tanto, pueden dar origen a actividades de control. Los
objetos de una clase activa representan elementos cuyo comportamiento es concurrente
con otros elementos. Grficamente una clase activa se representa como una clase pero
con lneas ms gruesas.
Nombre clase
- atributos
+operaciones
249
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
componente
Nodo
250
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Elementos de comportamiento
operacin()
Mquinas de estados: una mquina de estados especifica las secuencias de estados por
las que pasa un objeto o una interaccin durante su vida en respuesta a eventos. El
comportamiento de una clase individual o una colaboracin de clases puede
especificarse con una mquina de estados. Una mquina de estados involucra otros
elementos, incluyendo estados, transiciones (el flujo de un estado a otro), eventos (que
disparan una transicin) y actividades (la respuesta a una transicin). Grficamente un
estado se representa como un rectngulo de esquinas redondeadas, incluyendo su
nombre y sus subestados si los tiene.
estado
251
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Elementos de agrupacin
Los elementos de agrupacin son las partes organizativas de los modelos de UML, es
decir, las cajas en las que puede descomponerse un modelo. Slo hay un elemento de
agrupacin: el paquete.
Paquete
Elementos de anotacin
Los elementos de anotacin son la parte explicativa de los modelos de UML. Son
comentarios que se pueden aplicar para describir, clarificar y hacer observaciones sobre
cualquier elemento de un modelo. El principal elemento de anotacin es la nota.
Comentario
252
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Relaciones
Dependencia
Una dependencia es una relacin semntica entre dos elementos, en la cual un cambio a
un elemento (el elemento independiente) puede afectar a la semntica del otro elemento
(el elemento dependiente). Grficamente, una dependencia se representa como una lnea
discontinua dirigida, que incluye a veces una etiqueta.
Asociacin
Una asociacin es una relacin estructural que describe un conjunto de enlaces, los
cuales son conexiones entre objetos. La agregacin es un tipo especial de asociacin,
que representa una relacin estructural entre un todo y sus partes. Grficamente, una
asociacin se representa como una lnea continua, posiblemente dirigida, que a veces
incluye una etiqueta, y a menudo incluye otros adornos, como la multiplicidad y los
nombres de rol. La agregacin se representa mediante un rombo situado en la parte del
todo.
Asociaciones y agregaciones
Generalizacin
253
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Realizacin
254
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Diagramas
255
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Mecanismos de extensibilidad
UML proporciona un lenguaje estndar para escribir planos software, pero no es posible
que un lenguaje cerrado sea siempre suficiente para expresar todos los matices posibles
de todos los modelos en todos los dominios y en todos los momentos. Por esta razn,
UML proporciona tres mecanismos para extender el lenguaje de manera controlada.
Estos mecanismos permiten configurar y extender UML a las necesidades de un
proyecto y adaptarse a nuevas tecnologas de software. Los mecanismos de extensin de
UML son:
Estereotipos.
Valores etiquetados.
Restricciones.
Estereotipos
exception
Nombre excepcin
Estereotipos
256
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Valores etiquetados
ColaEventos
{versin = 3.2,
autor = ABC}
aadir( )
quitar( )
vaciar( )
Valores etiquetados
Restricciones
ColaEventos
{versin = 3.2,
autor = ABC}
aadir( ) {ordenado}
quitar( )
vaciar( )
Restricciones
257
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Casos de Uso
Los casos de uso son una tcnica de modelizacin de requisitos funcionales que facilitan
la comunicacin entre los desarrolladores, los clientes y los usuarios finales del sistema.
Su lenguaje sencillo es comprensible por todos los implicados en el proceso de
desarrollo de un sistema software.
Los casos de uso, en su conjunto, describen los distintos usos que se le quiere dar al
sistema. Por ejemplo, extraer dinero, ingresar dinero y consultar saldo, en un cajero
automtico. Cada uno de ellos constituye un Caso de Uso.
Cada servicio que el sistema deba realizar se modela como un caso de uso y cada rol de
los elementos del entorno del sistema se modela como un actor. Grficamente un caso
de uso se representa con una elipse y un actor se representa con un monigote,
independientemente de su naturaleza.
258
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Cajero Automtico
Extraer Dinero
Ingresar Dinero
Cliente
Consultar Saldo
En el diagrama de casos de uso, se delimitan las fronteras del sistema mediante una
caja. Los elementos que queden fuera de la caja forman parte del entorno. Sus roles, es
decir, los actores nunca son parte del sistema, aunque interacten con l.
Los actores y los casos de uso se relacionan mediante asociaciones. Una relacin de
asociacin entre un actor y un caso de uso indica que existe comunicacin entre ellos y
que pueden intercambiar informacin en ambos sentidos.
Es posible que el nmero de casos de uso que necesitemos para modelar un sistema sea
demasiado grande para mostrarse en un nico diagrama sin perder visibilidad y
comprensibilidad. En ese caso, el diagrama se puede organizar agrupando los casos de
uso en paquetes.
Actores
Los actores, como se mencion, representan los distintos roles que los elementos del
entorno desempean respecto al sistema. Un actor representa a todos los elementos que
desempean el mismo rol. En el ejemplo del cajero automtico, el actor Cliente
representa a todos los clientes del banco que pueden utilizar el cajero.
259
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
importante observar que los caso de uso estn asociados con los actores, y no con los
elementos concretos.
Supongamos por ejemplo, que los empleados del banco pueden utilizar el sistema
software del cajero para consultar su estado y realizar estadsticas sobre su uso.
Tendramos entonces un nuevo actor del sistema, Empleado, relacionado con dos
nuevos casos de uso, Consultar Estado y Realizar Estadsticas. Si los empleados del
banco son adems clientes del banco, podran tambin utilizar el cajero como el resto de
los clientes, para sacar o ingresar dinero y consultar sus cuentas. Esto quiere decir que
los empleados del banco actuarn unas veces como el actor Empleado y otras como el
actor Cliente. Pero, no implica que el actor Empleado est relacionado con los casos de
uso Extraer Dinero, Ingresar Dinero y Consultar Saldo.
260
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Nombre o ttulo.
Prioridad.
Frecuencia.
261
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Actores: Cliente.
Precondiciones: Ninguna
Postcondiciones:
En caso de fallo:
262
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Prioridad: Alta.
Frecuencia: Alta.
263
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Los casos de uso pueden organizarse mediante las relaciones de uso (o inclusin),
extensin y generalizacin entre ellos.
Uso
Esta relacin significa que un caso de uso, llamado base, incorpora explcitamente el
comportamiento de otro caso de uso. El caso de uso incorporado nunca se encuentra
aislado. Es instanciado slo como parte de algn caso de uso base que lo utiliza. La
relacin de uso se representa como una dependencia estereotipada con la etiqueta
<<usa>>.
Cajero Automtico
uses
Validar Usuario
Ingresar Dinero
uses
Cliente
Consultar Saldo
264
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Extensin
La relacin de extensin se utiliza para modelar la parte de un caso de uso que puede
considerarse como un comportamiento opcional. De esta forma se separa el
comportamiento opcional del obligatorio. Esta relacin se representa como una
dependencia estereotipada como <<extiende>>.
extends
Caso Base Extensin
Los puntos de extensin pueden indicarse en el diagrama con una etiqueta en la relacin
de extensin, indicando en el flujo de eventos del caso base la localizacin del punto de
extensin.
Generalizacin
La relacin de generalizacin entre casos de uso es como la generalizacin entre clases.
Significa que el caso de uso hijo hereda el comportamiento y el significado del caso de
uso padre. El hijo puede aadir o redefinir el comportamiento del padre y puede ser
colocado en cualquier lugar donde aparezca el padre.
Supongamos que el cajero automtico pudiese validar al cliente de dos formas distintas:
comprobando el PIN de la tarjeta o examinando la retina. El caso de uso padre Validar
Usuario podra tener dos casos de uso hijos especializados Comprobar PIN y Examinar
Retina.
265
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Caso General
Caso Especfico
Los actores slo pueden tener entre ellos relaciones de generalizacin. Se pueden definir
categoras generales de actores y especializarlos mediante relaciones de especializacin.
Actor General
Actor Especfico
266
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Diagrama de clases
Un diagrama de clases muestra las clases que componen el sistema y las relaciones que
existen entre ellos. Este diagrama se utiliza para modelar la vista de diseo estructural
de un sistema. Los diagramas de clases adems, pueden contener paquetes.
Clases
Las clases se representan grficamente con una caja dividida en tres zonas: en la zona
superior se escribe el nombre de la clase, en la zona central los atributos y en la inferior
las operaciones. En algunas ocasiones, para simplificar el diagrama, las clases se
representan con una caja que contiene slo el nombre.
Nombre Clase
-atributos Nombre Clase
+operaciones()
Para especificar que una clase es abstracta, es decir que contiene al menos una
operacin abstracta, se escribe el nombre de la clase en cursiva.
267
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
- Visibilidad: los elementos de una clase pueden ser pblicos, protegidos o privados.
Los elementos pblicos son visibles para los objetos de todas las clases del
sistema. Un elemento pblico va precedido del signo +.
Los elementos protegidos slo son visibles dentro de la clase y de las clases
hijas. Un elemento protegido va precedido del signo #.
Los elementos privados solamente son visibles dentro de la clase. Un elemento
privado va precedido del signo -.
Atributos
268
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Operaciones
Para especificar que una operacin es abstracta se escribe el nombre en cursiva. Una
operacin abstracta no tiene implementacin, slo tiene cabecera. La implementacin la
proporcionan las clases hijas redefiniendo la operacin.
269
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Relaciones
Una clase puede tener una relacin consigo misma, indicando que los objetos de esa
clase estn conectados entre s.
Las relaciones se dibujan con una lnea, empleando un tipo distinto de lnea para cada
tipo de relacin o un smbolo especfico.
Dependencia
Cuando objetos de una clase utilizan objetos de otra clase existe una relacin de
dependencia entre sus clases respectivas. Esta relacin se representa en el diagrama de
clases con una flecha discontinua en el sentido del elemento que se usa. Las clases,
cuyos objetos usan los de otra clase, dependen de la especificacin de la clase usada. Si
cambia la especificacin, habr que hacer cambios en las clases que la usan.
270
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Las dependencias generalmente se utilizan para indicar que una clase utiliza a otra como
argumento en alguna operacin o sus objetos utilizan alguna de las operaciones de la
otra clase.
LectorTarjeta Tarjeta
Se puede poner nombre a las dependencias para mejorar la comprensin del diagrama,
pero generalmente no es necesario.
Asociacin
Una asociacin es una relacin estructural. Esta relacin expresa que se puede navegar
desde los objetos de una clase hasta los objetos de la otra clase. La asociacin se
representa con una lnea continua.
Cliente Persona
Las asociaciones se suelen emplear para indicar que una clase contiene un atributo de la
otra clase. En UML se puede especificar el nombre de una asociacin, el rol de cada
clase y su multiplicidad o cardinalidad.
Clave Usuario
271
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Biblioteca Libro
Generalizacin
La generalizacin o herencia expresa una relacin entre una clase genrica y una o
varias clases especficas. A la clase genrica se le llama clase madre y a las clases
especficas hijas. La generalizacin indica que las hijas heredan los atributos,
operaciones y relaciones de la clase madre (slo se heredarn los elementos que sean
pblicos o protegidos). Las hijas pueden redefinir los elementos que heredan del padre y
aadir sus propios atributos, operaciones y relaciones. Grficamente, la generalizacin
se representa con una lnea continua acabada en una punta de flecha vaca.
272
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Figura
#color
+dibujar()
+borrar()
Triangulo
Rectngulo Circulo
-punto1
-punto1 -centro -punto2
-punto2 -radio -punto3
+dibujar() +dibujar() +dibujar()
UML permite especificar herencias mltiples, es decir que una clase herede el
comportamiento de varias clases madre. Pero, hay que tener cuidado con el uso de la
herencia mltiple. Afortunadamente no todos los lenguajes permiten su
implementacin.
Interfaces y realizaciones
A las clases abstractas puras, es decir, a las clases que no contienen ninguna
implementacin, se les llama interfaces.
En UML una interfaz es una coleccin de operaciones que sirven para especificar los
servicios de una clase o un componente. Una interfaz slo contiene las cabeceras de las
operaciones, no su implementacin. (Una interfaz de UML se corresponde con una clase
virtual pura de C++ y con una interface de Java). Grficamente una interfaz se puede
representar de forma expandida como una clase estereotipada con la etiqueta
<<interface>> o, en su forma abreviada, con una figura en forma de piruleta.
interface
NombreInterfaz NombreInterfaz
En los diagramas de clases se suele utilizar la forma expandida para representar las
interfaces. La forma abreviada generalmente se usa en los diagramas de componentes.
273
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Hay dos relaciones que pueden existir entre una clase y una interfaz: la dependencia y la
realizacin.
Para que una interfaz se pueda usar hace falta que otra clase implemente las operaciones
que la interfaz especifica. A esta relacin entre la interfaz y la clase que la implementa
se le llama realizacin. La realizacin indica que la clase implementa todas las
operaciones de la interfaz. Grficamente la realizacin se representa como una
generalizacin con la lnea discontinua.
Objetivo
-id interface
-posicionActual Observador
+establecerPosicin() +actualizar()
+establecerVelocidad()
+posicinEsperada()
RastreadorDeObjetivo
+actualizar()
Diagrama de objetos
274
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
La representacin grfica de un objeto en UML es igual que la de una clase pero con el
nombre subrayado. Para mostrar el estado de un objeto, se indica el valor de sus
atributos y sus objetos agregados.
c : Compaa
d1 : Departamento d2 : Departamento
nombre : String = "Ventas" nombre : String = "I+D"
p : Persona
nombre : String = "Francisco"
ID_Empleado : unsigned long(idl) = 3421
cargo : String = "Director de Ventas"
Los diagramas de objetos pueden contener paquetes y, cuando se quiere mostrar la clase
que hay detrs de cada instancia, tambin pueden contener clases.
275
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Diagramas de interaccin
Algunos autores llaman a este tipo de diagramas escenarios, quizs porque representan
escenas del comportamiento del software. Cada diagrama slo refleja un aspecto
concreto de un comportamiento particular del sistema y no el comportamiento global.
Por tanto, los diagramas de interaccin muestran una visin fragmentada de la dinmica
del sistema.
Diagrama de secuencias
276
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
c:Cliente p:ProxyODBC
<<create>>()
:Transaccion
establecerAcciones(a, d, o)
estableceValores(d, 3.4)
estableceValores(a, "CO")
xito()
destroy()
Los objetos que participan en la interaccin se dibujan en la parte superior del diagrama
horizontalmente. Los objetos se representan igual que las clases pero con el nombre
subrayado.
Debajo de cada objeto se dibuja una lnea vertical discontinua llamada lnea de vida.
Esta lnea indica el tiempo de existencia del objeto.
Los mensajes se representan con una flecha desde la lnea de vida del objeto que enva
el mensaje haca la lnea de vida del objeto que lo recibe. La etiqueta de la flecha indica
la operacin del objeto receptor que se invoca, incluyendo los parmetros. Si la
operacin devuelve algn valor se dibuja una flecha discontinua apuntando hacia el
objeto emisor, etiquetada con el nombre del valor de retorno.
Generalmente, los objetos que participan en una interaccin existen durante todo el
tiempo que dura dicha interaccin. Siendo as, los objetos se sitan en la parte superior
y sus lneas de vida se prolongan a lo largo de todo del diagrama. Sin embargo, tambin
pueden crearse y destruirse objetos durante la interaccin. La creacin y la destruccin
de un objeto se indican mediante mensajes estereotipados con <<create>> y
<<destroy>> respectivamente. Cuando un objeto es creado durante la interaccin, se
277
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Los rectngulos que aparecen sobre las lneas de vida de los objetos se llaman focos de
control. El foco de control representa el perodo de tiempo durante el cual el objeto est
ejecutando una accin y tiene el control del sistema.
Diagrama de colaboracin
Un diagrama de colaboracin es un grafo, donde los nodos del grafo son los objetos y
los arcos son los enlaces. Un enlace es una instancia de una asociacin o una
dependencia entre clases. Se representa con una lnea continua que une los dos objetos.
278
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
c:Cliente
1: <<create>>
2: establecerAcciones(a,d,o)
3: <<destroy>>
:Transaccion p:ProxyODBC
2.1: establecerValores(d,3.4)
2.2: establecerValores(a,"CO")
Los mensajes se escriben junto a los enlaces, indicando el sentido con una flecha que
apunta hacia al objeto receptor y numerndolos para expresar el orden temporal. Se
pueden representar mensajes anidados utilizando la numeracin decimal de Dewey (1 es
el primer mensaje, 1.1 es el primer mensaje dentro del mensaje 1, 1.2 es el segundo
mensaje dentro del mensaje 1,...)
Para modelar una bifurcacin, el nmero de secuencia del mensaje se precede de una
clusula de condicin. Los caminos alternativos de una bifurcacin tendrn el mismo
nmero de secuencia. Pero, cada camino debe ser distinguible de forma nica por una
condicin que no se solape con las otras.
279
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Diagrama de estados
Las transiciones entre estados se dibujan con una flecha continua desde el estado origen
al estado destino. En cada transicin se puede especificar:
280
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
A las transiciones en las cuales el estado origen y el destino son el mismo se les llama
autotransiciones.
estado inicial
agotado(producto)/renovarStock(producto)
evento autotransicin
estado final
pedido recibido [precio<lmite]
Procesar Pedido
guarda
Esperando accin
estado
**Fig aprobado/cargarCuenta()
transicin
Caractersticas Avanzadas
Utilizando solamente las caractersticas bsicas de los estados y las transiciones se
puede modelar la mayora de los comportamientos de los objetos. Sin embargo, las
mquinas de estados de UML tienen varias caractersticas avanzadas que pueden ayudar
a modelar comportamientos complejos.
281
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Rastreando
accin de entrada
entry/activarModo(enRastreo)
accin de salida
exit/activarModo(noRastreo)
transicin interna
nuevoObjetivo/rastreador.Adquirir( )
actividad
do/seguirObjetivo
evento diferido
autoTest/defer
282
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Adems, en UML los estados de una mquina pueden contener subestados o estados
anidados. A un estado que contiene subestados se le llama estado compuesto. Los
estados compuestos se representan igual que los simples, pero contienen en su interior
una mquina de estados que describe el flujo de control entre los subestados.
283
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
estado compuesto
llamada
Inactivo
Recibiendo
colgar
enviar cabeceraOK
Procesando
Conectado
verificacinOK
Transmisin
Limpiando
Cada vez que se dispara una transicin de entrada a un estado compuesto, la mquina de
estados anidada comienza de nuevo su ejecucin en el estado inicial. Sin embargo, en
algunas ocasiones puede resultar til que la mquina recuerde el ltimo estado en el que
se encontraba y comience su ejecucin desde ese estado. Para modelar este tipo de
comportamiento UML introduce los estados de historia. Un estado de historia se
representa con un crculo con el smbolo H.
estado de historia
CopiaDeSeguridad
Orden H Recoger
consulta
Copiar
transicin inicial
Limpiar
El estado de historia debe tener una nica transicin de salida hacia otro subestado. La
primera vez que se activa el estado compuesto, an no hay historia, y se ejecuta esta
transicin. Si se dispara una transicin de salida, el estado de historia recordar el
ltimo estado que estaba ejecutndose en la mquina antes de salir del estado
compuesto. A partir de ese momento ya hay historia. Cuando se produzca una nueva
transicin de entrada el control pasar al ltimo estado activo.
284
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
divisin Inactivo
unin
Subestados
concurrentes mantener
Mantenimiento
Pruebas
Probar
Autodiagnosis
perifricos
ManejoOrdenes
teclaPulsada [no continuar]
Espera Orden
[continuar]
285
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Diagrama de actividades
En UML los diagramas de actividades son un caso particular de los diagramas de estado
que muestran un flujo de control. En estos diagramas los estados representan
actividades o acciones. Una accin es una operacin atmica indivisible que no puede
ser interrumpida durante su ejecucin. Una actividad es una operacin no atmica que
puede descomponerse en otras actividades o acciones y que puede ser interrumpida
durante su ejecucin. Grficamente no hay ninguna diferencia entre un estado de
actividad y un estado de accin, ambos se representan con una caja de bordes
redondeados.
Para indicar el estado inicial y final de la actividad global se utilizan los mismos
smbolos que en los diagramas de estado: un crculo negro para el estado inicial y un
crculo negro dentro de un crculo blanco para el estado final.
286
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Establecer pedido
[pedido nico]
Cargar tarjeta de crdito
[suscripcin]
Cargar a la cuenta
Solicitar producto
Procesar pedido
Extraer artculos
Enviar Pedido
Pagar factura
Cerrar pedido
287
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
288
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Solicitar producto
Procesar pedido
Extraer artculos
o:Pedido
[en progreso] Enviar pedido
o:Pedido
[completado]
b:Factura
Pagar Factura [impagada]
b:Factura
[pagada] Cerrar pedido
289
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Diagrama de componentes
En UML los componentes representan elemento fsicos del sistema, por ejemplo
ejecutables, pginas HTML, libreras, tablas, ficheros, etc. Grficamente, un
componente se dibuja mediante una caja con pestaas.
Componente
interface
ObservadorDeImagen
+actualizarImagen()
imagen.java componente.java
Figura 1.
Observador
imagen.java componente.java
De Imagen
290
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Figura 2.
UML define cinco estereotipos estndar aplicables a los componentes:
find.html
index.html
find.exe
Diagrama de despliegue
Los diagramas de despliegue modelan la topologa del hardware sobre el que se ejecuta
el sistema software. Este tipo de diagramas suele utilizarse para modelar sistemas
291
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Grficamente, un nodo se dibuja como un cubo. Las conexiones fsicas entre los nodos
se representan mediante relaciones de asociacin.
terminal
servidor unidad
RAID
consola
Figura 1
Los diagramas de despliegue pueden contener paquetes para organizar los nodos.
292
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
terminal
Despliega
user.exe
Despliega
dbadmin.exe
consola
Despliega
admin.exe
config.exe
Figura 2.
Figura 3.
terminal
user.exe
servidor unidad
RAID
admin.exe
consola
dbadmin.exe
config.exe
293
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Paquetes
<<Nombre >>
Los paquetes se utilizan para organizar los elementos de los diagramas en grupos a los
que se puede dar un nombre y manejar como un conjunto.
294
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
Aplicacion IGU
Los paquetes deben agrupar elementos cercanos semnticamente y que suelen cambiar
juntos, tratando de minimizar las dependencias entre paquetes. De esta forma se facilita
el mantenimiento y la evolucin del sistema. Ante un cambio en el sistema, las
modificaciones afectarn principalmente a los elementos de un paquete. Aunque habr
que revisar todos los paquetes que tengan alguna dependencia con el paquete que se ha
modificado.
295
Curso de OO dirigido por Anexo 1: Breve descripcin de UML
la introduccin de ambigedad
296