DDIIAAGGRRAAMMAASS UUMMLL
CCAASSTTEELLLLAANNOOSS DDAANNIIEELL NNAADDIIAA
VVAALLEERRIIAA
AANNAALLIISSIISS YY DDIISSEEÑÑOO
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
1
INDICE
INTRODUCCION 4
¿Qué es el UML? 4
Tipos de Diagramas de UML 4
Estructura 4
Comportamiento 4
Interacción 4
CASOS DE USO 5
Elementos 5
Actor 5
Caso de Uso 5
Relaciones 5
EJEMPLOS 6
Ejemplo 1 6
Ejemplo 2 7
Ejemplo 3 8
DIAGRAMA DE SECUENCIAS 9
Elementos 9
Tipos de mensajes 9
EJEMPLOS 10
Ejemplo 1 10
Ejemplo 2 11
Ejemplo 3 11
DIAGRAMA DE COLABORACION 12
¿En qué consiste? 12
Interacciones 12
Elementos 12
EJEMPLOS 13
Ejemplo 1 13
Ejemplo 2 14
Ejemplo 3 14
DIAGRAMA DE CLASES 15
Representación 15
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
2
Atributos 15
Asociaciones 16
Composición y Agregación 16
Generalización 16
EJEMPLOS 17
Ejemplo 1 17
Ejemplo 2 18
Ejemplo 3 18
DIAGRAMA DE ESTADOS 19
Comportamiento 19
Elementos 19
Estado 19
Transición 19
Estado Inicial/Final 19
EJEMPLOS 20
Ejemplo 1 20
Ejemplo 2 20
Ejemplo 3 21
DIAGRAMA DE ACTIVIDAD 22
Actividades y Acciones 22
Elementos 23
Estados de Acción 23
Flujo de la Acción 23
Flujo de Objetos 23
Estado Inicial/Final 23
Ramificación 23
Sincronización 23
EJEMPLOS 24
Ejemplo 1 24
Ejemplo 2 25
Ejemplo 3 26
DIAGRAMA DE DISTRIBUCIÓN 27
Elementos 27
Nodo 27
Asociación 27
Componentes y Nodos 27
EJEMPLOS 28
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
3
Ejemplo 1 28
Ejemplo 2 29
Ejemplo 3 29
DIAGRAMA DE COMPONENTES 30
Usos más comunes 30
Modelado de Código Fuente 30
Modelado de una versión ejecutable y bibliotecas 30
Modelado de una base de datos física 30
Elementos 31
Componente 31
Interface 31
Dependencias 31
EJEMPLOS 31
Ejemplo 1 31
Ejemplo 2 32
Ejemplo 3 32
CÓDIGO 33
EJEMPLOS 33
Ejemplo 1 33
Ejemplo 2 34
Ejemplo 3 34
BIBLIOGRAFIA 35
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
4
INTRODUCCION
¿Qué es el UML?
UML es el lenguaje gráfico de modelado de sistemas de software más
conocido y utilizado en la actualidad. Sirve para visualizar, especificar,
construir y documentar un sistema. [3]
UML (Unified Modeling Language) es el sucesor de la oleada de métodos
de análisis y diseño orientados a objetos (OOA&D) que surgió a finales de
la década de 1980 y principios de la siguiente.
La mayor parte de los métodos consisten, al menos en principio, en un
lenguaje y en un proceso para modelar. El lenguaje de modelado es la
notación (principalmente gráfica) de que se valen los métodos para
expresar los diseños. El proceso es la orientación que nos dan sobre los
pasos a seguir para hacer el diseño.
El UML define una notación y un metamodelo. La notación es el material
gráfico que se ve en los modelos; es la sintaxis del lenguaje de modelado.
Por ejemplo, la denominación de un diagrama de clases define cómo se
representan conceptos y temas como clase, asociación y multiplicidad. [2]
Tipos de Diagramas de UML
Estructura
Diagrama de clases
Diagrama de objetos
Diagrama de componentes
Diagrama de estructura compuesta
Diagrama de paquetes
Diagrama de despliegue
Comportamiento
Diagrama de casos de uso
Diagrama de actividades
Diagrama de estado
Interacción
Diagrama de secuencia
Diagrama de colaboración
Diagrama de tiempo
Diagrama de interacción [4]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
5
CASOS DE USO
Representa la forma en como un Cliente (Actor) opera con el sistema en
desarrollo, además de la forma, tipo y orden en como los elementos
interactúan (operaciones o casos de uso).
Un diagrama de casos de uso consta de los siguientes elementos:
Actor.
Casos de Uso.
Relaciones de Uso, Herencia y Comunicación.
Elementos
Actor
Una definición previa, es que un Actor es un rol que un
usuario juega con respecto al sistema. Es importante
destacar el uso de la palabra rol, pues con esto se
especifica que un Actor no necesariamente representa a
una persona en particular, sino más bien la labor que realiza
frente al sistema.
Caso de Uso
Es una operación/tarea específica que se realiza tras una
orden de algún agente externo, sea desde una petición de
un actor o bien desde la invocación desde otro caso de
uso.
Relaciones
o Asociación
Es el tipo de relación más básica que indica la invocación desde un actor
o caso de uso a otra operación (caso de uso). Dicha relación se denota
con una flecha simple.
o Dependencia o Instanciación
Es una forma muy particular de relación entre clases, en la cual una clase
depende de otra, es decir, se instancia (se crea). Dicha relación se denota
con una flecha punteada.
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
6
o Generalización
Este tipo de relación es uno de los más utilizados, cumple una doble
función dependiendo de su estereotipo, que puede ser de Uso (<<uses>>)
o de Herencia (<<extends>>).
Este tipo de relación está orientado exclusivamente para casos de uso (y
no para actores).
extends: Se recomienda utilizar cuando un caso de uso es similar a otro
(características).
uses: Se recomienda utilizar cuando se tiene un conjunto de características
que son similares en más de un caso de uso y no se desea mantener
copiada la descripción de la característica. [1]
EJEMPLOS
Ejemplo 1
Caso de Uso [2]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
7
Ejemplo 2
Actores:
Casos de Uso y extends:
Entonces, el diseño completo del diagrama es:
Caso de Uso [1]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
9
DIAGRAMA DE SECUENCIAS
En un diagrama de secuencia se indicarán los módulos o clases que
forman parte del programa y las llamadas que se hacen en cada uno de
ellos para realizar una tarea determinada.
Elementos
En un diagrama de secuencia, un objeto se muestra como caja en la parte
superior de una línea vertical punteada. Esta línea vertical se llama línea de
vida del objeto. La línea de vida representa la vida del objeto durante la
interacción. Cada mensaje se representa mediante una flecha entre las
líneas de vida de dos objetos. El orden en el que se dan estos mensajes
transcurre de arriba hacia abajo. Primero, hay una condición, que indica
cuándo se envía un mensaje (por ejemplo, [necesita reorden]). El mensaje
se envía sólo si la condición es verdadera. El segundo marcador de control
útil es el marcador de iteración, que muestra que un mensaje se envía
muchas veces a varios objetos receptores, corno sucedería cuando se
itera sobre una colección. La base de la iteración se puede mostrar entre
corchetes (como en *[para cada línea de pedido]). [1]
Tipos de mensajes
Existen dos tipos de mensajes: sincrónicos y asincrónicos. Los mensajes
sincrónicos se corresponden con llamadas a métodos del objeto que
recibe el mensaje. El objeto que envía el mensaje queda bloqueado hasta
que termina la llamada. Este tipo de mensajes se representan con flechas
con la cabeza llena. Los mensajes asincrónicos terminan inmediatamente,
y crean un nuevo hilo de ejecución dentro de la secuencia. Se representan
con flechas con la cabeza abierta.
También se representa la respuesta a un mensaje con una flecha
discontinua. [7]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
12
DIAGRAMA DE COLABORACION
Un Diagrama de Colaboración muestra una interacción organizada
basándose en los objetos que toman parte en la interacción y los enlaces
entre los mismos (en cuanto a la interacción se refiere). A diferencia de los
Diagramas de Secuencia, los Diagramas de Colaboración muestran las
relaciones entre los roles de los objetos. La secuencia de los mensajes y los
flujos de ejecución concurrentes deben determinarse explícitamente
mediante números de secuencia. [8]
¿En qué consiste?
• Muestra cómo las instancias específicas de las clases trabajan juntas
para conseguir un objetivo común.
• Consiste especificar un contrato entre objetos.
• Implementa las asociaciones del diagrama de clases mediante el
paso de mensajes de un objeto a otro. Dicha implementación es
llamada "enlace".
Interacciones
Elementos
• Objetos o Roles: nodos del grafo.
• Enlaces o comunicaciones: arcos del grafo.
• Mensajes: llevan número de secuencia y flecha dirigida.
• Anidamiento: se utiliza la numeración decimal.
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
13
• Iteración: colocar un * antes del número de secuencia y una cláusula de
condición, si es necesario.
• Bifurcación: los caminos alternativos tendrán el mismo número de
secuencia, seguido del número de subsecuencia, y se deben distinguir por
una condición. [9]
EJEMPLOS
Ejemplo 1
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
15
DIAGRAMA DE CLASES
Los diagramas de clases describen la estructura estática de un sistema. [5]
El propósito de este diagrama es el de representar los objetos
fundamentales del sistema, es decir los que objetos fundamentales del
sistema, es decir los que percibe el usuario y con los que espera tratar para
percibe el usuario y con los que espera tratar para completar su tarea en
vez de objetos del sistema o de un completar su tarea en vez de objetos
del sistema o de un modelo de programación.
La clase define el ámbito de definición de un conjunto de objetos. Cada
objeto pertenece a una clase. Los objetos se crean por instanciación de
las clases.
Representación
Cada clase se representa en un rectángulo con tres compartimientos:
Atributos
•Tipo: puede llegar a depender del lenguaje de programación a utilizar.
•Valor inicial: valor que poseerá el atributo al crear un objeto.
•Visibilidad: está relacionado con el encapsulamiento.
•Multiplicidad: determinar si un atributo debe estar o no, y si posee un
único valor o una lista de valores.
•Ordenamiento: especifica si el atributo determina alguna relación de
orden dentro de la clase.
•Capacidad de cambio: permite definir atributos con valores constantes.
•Modificadores: un atributo puede ser de clase, derivado, volátil,
transitorio, etc. [10]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
16
Asociaciones
Las asociaciones son una conexión estructural
simple entre clases. Las instancias de las clases
implicadas en entre clases. El nombre de la
asociación va por sobre o por debajo de la
línea que la representa. Una flecha rellena
indica la dirección de la relación. Los roles se
ubican cerca del final de una asociación. Los
roles representan la manera en que dos clases
se ven entre ellas. No es común el colocar
ambos nombres, el de la asociación y el de los
roles a la vez. Cuando una asociación es
calificada, el símbolo correspondiente se
coloca al final de la asociación, contra la
clase que hace de calificador.
Composición y Agregación
Composición es un tipo especial de
agregación que denota una fuerte posesión
de la Clase “Todo”, a la Clase “Parte”. Se
grafica con un rombo diamante relleno
contra la clase que representa el todo. La
agregación es una relación en la que la Clase
“Todo” juega un rol más importante que la
Clase "Parte", pero las dos clases no son
dependientes una de otra. Se grafica con un
rombo diamante vacío contra la Clase
“Todo”.
Generalización
Es otro nombre para la herencia. Se refiere a una relación entre dos clases
en donde una Clase “Específica” es una versión especializada de la otra, o
Clase “General”. [5]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
18
Ejemplo 2
Ejemplo 3
Nombre de la clase
Operaciones
Atributos
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
19
DIAGRAMA DE ESTADOS
Los diagramas de estados son una técnica conocida para describir el
comportamiento de un sistema. Describen todos los estados posibles en los
que puede entrar un objeto particular y la manera en que cambia el
estado del objeto, como resultado de los eventos que llegan a él. [2]
Los diagramas de estados son intensivamente utilizados en:
• Sistemas de tiempo real y críticos.
• La descripción de sistemas reactivos.
• La descripción de sistemas basados en protocolos.
Comportamiento
El comportamiento describe las acciones que se producen mientras que el
sistema se encuentra en un estado:
• entry/behavior: Acción que se realiza cuando se llega a un estado.
• do/behavior: Actividad que se ejecuta mientras se está en un estado.
•Exit/behavior: Acciones que se ejecuta cuando se abandona un estado.
•Transiciones internas: Se formulan como trigger[guard]/behavior.
Elementos
Estado
Representa situaciones durante la vida de un objeto. Se representa con un
rectángulo que tiene sus esquinas redondeadas.
Transición
Una flecha representa el pasaje entre diferentes
estados de un objeto. Se etiqueta con el evento que
lo provoca y con la acción resultante.
Estado Inicial/Final
Un diagrama de estados puede representar ciclos continuos
o bien una vida finita, en la que hay un estado inicial de
creación y un estado final de destrucción. El estado inicial se
muestra como un círculo sólido y el estado final como un
círculo sólido rodeado de otro círculo. [11]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
22
DIAGRAMA DE ACTIVIDAD
Un diagrama de actividades ilustra la naturaleza dinámica de un sistema
mediante el modelado del flujo ocurrente de actividad en actividad. Una
actividad representa una operación en alguna clase del sistema y que
resulta en un cambio en el estado del sistema. Típicamente, son utilizados
para modelar el flujo de trabajo interno de una operación. [5]
Los diagramas de actividad es uno de los elementos de modelado que son
mejor comprendidos por todos, ya que son herederos directos de los
diagramas de flujo. Son más expresivos que los diagramas de flujo.
También heredan características de:
• Los diagramas de estado.
• Los diagramas de flujo de datos.
• Las redes de Petri.
Actividades y Acciones
Una acción es un paso de un proceso que tiene la semántica “run to
completion” (Se inicia para ser terminado).
Una actividad es un conjunto de acciones que modelan un proceso. No
tiene la semántica “run to completion”. Una actividad se modela mediante
un diagrama de actividad.
Enjabonar, enjuagar o secar un coche son acciones de la actividad “Lavar
un coche”. [11]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
23
Elementos
Estados de Acción
Los estados de acción representan las acciones no
interrumpidas de los objetos. Es un rectángulo con las
puntas redondeadas, en cuyo interior se representa una
acción.
Flujo de la Acción
Los flujos de acción, representados con flechas,
ilustran las relaciones entre los estados de acción.
Flujo de Objetos
El flujo de objetos se refiere a la creación y
modificación de objetos por
parte de actividades. Una flecha de flujo de
objeto, desde una acción a un objeto, significa
que la acción está creando o influyendo sobre
dicho objeto. Una flecha de flujo de objeto, desde
un objeto a una acción, indica que el estado de
acción utiliza dicho objeto.
Estado Inicial/Final
El estado inicial se muestra como un círculo sólido y el estado
final como un círculo sólido rodeado de otro círculo.
Ramificación
Un rombo representa una decisión con caminos
alternativos. Las salidas alternativas deben estar
etiquetadas con una condición.
Sincronización
Una barra de sincronización ayuda a ilustrar la
ocurrencia de transiciones paralelas, así quedan
representadas las acciones concurrentes.
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
27
DIAGRAMA DE DISTRIBUCIÓN
Es aquel que muestra las relaciones físicas entre los componentes de
software y de hardware, de un sistema informático.
Este diagrama muestra la secuencia cronológica de todas las operaciones
de taller o en máquinas, inspecciones, márgenes de tiempo y materiales a
utilizar en un proceso de fabricación o administrativo, desde la llegada de
la materia prima hasta el empaque o arreglo final del producto terminado.
Señala la entrada de todos los componentes y subconjuntos al ensamble
con el conjunto principal. [2]
Elementos
Nodo
Cada nodo representa una clase de unidad de cómputo,
en la mayoría de los casos se trata de una pieza de
hardware. El hardware es capaz de ejecutar componentes
de código. (Procesador).
Asociación
La asociación se refiere a la conexión física entre los
nodos, como por ejemplo Ethernet.
Componentes y Nodos
Los componentes en un diagrama de
emplazamiento representan módulos físicos de
código. [5]
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
30
DIAGRAMA DE COMPONENTES
Un diagrama de componentes muestra la organización y las
dependencias entre un conjunto de componentes.
Usos más comunes
Modelado de Código Fuente
Los diagramas de componentes se pueden utilizar para modelar la gestión
de la configuración de los archivos de código fuente, tomando como
productos de trabajo precisamente estos ficheros.
Esto resulta bastante útil por ejemplo cuando se han implementado unas
partes con Java otras con C, etc. El resultado pueden ser ficheros
ejecutables con características particulares, de manera que la mejor forma
de controlarlos es estableciendo gestión de configuración.
Para modelar el código fuente de un sistema:
• Hay que identificar el conjunto de archivos de código fuente de interés y
modelarlos como componentes estereotipados como archivos.
• Si el sistema es muy grande es necesario utilizar los paquetes para
agrupar los archivos de código fuente.
• Es necesario identificar la versión del componente.
Modelado de una versión ejecutable y bibliotecas
La utilización de los componentes para modelar versiones ejecutables se
centra en la definición de todos los elementos que componen lo que se
conoce como versión ejecutable, es decir la documentación, los ficheros
que se entregan etc.
Para modelar una versión ejecutable es preciso:
• Identificar el conjunto de componentes que se pretende modelar.
• Identificar el estereotipo de cada componente.
•Para cada componente hay que considerar las relaciones con los
vecinos. Hay que definir las interfaces importadas por ciertos componentes
y las exportadas por otros.
Modelado de una base de datos física
Para modelar una base de datos física es necesario:
• Identificar las clases del modelo que representan el esquema lógico de
la base de datos.
• Seleccionar una estrategia para hacer corresponder las clases con
tablas. Así como la distribución física de la/s base/s de datos.
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
31
• Para poder visualizar, especificar, construir y documentar dicha
correspondencia es necesario crear un diagrama de componentes que
tenga componentes estereotipados como tablas.
• Donde sea posible es aconsejable utilizar herramientas que ayuden a
transformar diseño lógico en físico. [8]
Elementos
Componente
Un componente es un bloque de construcción física
del sistema.
Interface
Una interface describe a un grupo de operaciones usada o
creada por componentes.
Dependencias
Las dependencias entre componentes se
grafican usando flechas de puntos. [5]
EJEMPLOS
Ejemplo 1
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
33
CÓDIGO
El código es el elemento integrante de un sistema comunicativo que le da
forma o que cifra al mensaje que pretende ser transmitido.
El código fuente de un programa informático (o software) es un conjunto
de líneas de texto que son las instrucciones que debe seguir la
computadora para ejecutar dicho programa. Por tanto, en el código
fuente de un programa está escrito por completo su funcionamiento.
EJEMPLOS
Ejemplo 1
Java
DIAGRAMAS UML | Castellanos Daniel Nadia Valeria
35
BIBLIOGRAFIA
[1] http://users.dcc.uchile.cl/~psalinas/uml/casosuso.html
[2] Fowler, Martin. “UML, gota a gota”. Addison Wesley.
[3] http://www.slideshare.net/e1da4/diagramas-uml
[4] https://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado
[5] http://webbress.com.ar/site/materiales/proyecto/diagramas_del_uml
[6] http://www2.uah.es/jcaceres/capsulas/DiagramaSecuencia.pdf
[7] http://es.wikipedia.org/wiki/Diagrama_de_secuencia
[8] http://fermat.usach.cl/~msanchez/comprimido/OBJETOS.pdf
[9] http://www.slideshare.net/still01/diagrama-de-colaboracion
[10] http://www.dc.uba.ar/materias/isoft1/is1-2005_2/apuntes/SlidesDC.pdf
[11] http://www.ctr.unican.es/asignaturas/procodis_3_II/Doc/stateDiagram.pdf
[12] https://es.wikipedia.org/wiki/C%C3%B3digo_fuente