Diagramas UML

36
D D I I A A G G R R A A M M A A S S U U M M L L C C A A S S T T E E L L L L A A N N O O S S D D A A N N I I E E L L N N A A D D I I A A V V A A L L E E R R I I A A A A N N A A L L I I S S I I S S Y Y D D I I S S E E Ñ Ñ O O

Transcript of Diagramas UML

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

8

Ejemplo 3

ACTOR Caso de uso

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

10

EJEMPLOS

Ejemplo 1

Diagrama de Secuencias [2]

DIAGRAMAS UML | Castellanos Daniel Nadia Valeria

11

Ejemplo 2

Ejemplo 3

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

14

Ejemplo 2

Ejemplo 3

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

17

EJEMPLOS

Ejemplo 1

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

20

EJEMPLOS

Ejemplo 1

Ejemplo 2

DIAGRAMAS UML | Castellanos Daniel Nadia Valeria

21

Ejemplo 3

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

24

EJEMPLOS

Ejemplo 1

DIAGRAMAS UML | Castellanos Daniel Nadia Valeria

25

Ejemplo 2

DIAGRAMAS UML | Castellanos Daniel Nadia Valeria

26

Ejemplo 3

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

28

EJEMPLOS

Ejemplo 1

DIAGRAMAS UML | Castellanos Daniel Nadia Valeria

29

Ejemplo 2

Ejemplo 3

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

32

Ejemplo 2

Ejemplo 3

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

34

Ejemplo 2

Phyton

Ejemplo 3

C#

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