> For the complete documentation index, see [llms.txt](https://jamj2000.gitbook.io/daw1-ed-apuntes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jamj2000.gitbook.io/daw1-ed-apuntes/6.diagramas_comportamiento.md).

# Unidad 6: Elaboración de diagramas de comportamiento

* [Diapositivas](http://jamj2000.github.io/entornosdesarrollo/6/diapositivas)
* [Actividades](https://github.com/jamj2000/DAW1-ED-Apuntes/blob/master/6.actividades.md)

## Introducción

En esta Unidad aprenderemos a:

* Identificar los distintos tipos de **diagramas de comportamiento**.
* Reconocer el significado de los diagramas de casos de uso.
* Elaborar e interpretar diagramas de interacción sencillos.
* Interpretar y plantear diagramas de estados.
* Elaborar e interpretar el significado de diagramas de actividades.

### UML: Diagramas de comportamiento

Los más utilizados son:

* Diagramas de casos de uso
* Diagramas de secuencia (es un diagrama de interacción)
* Diagramas de estados
* Diagramas de actividades

## Diagramas de casos de uso

![Diagrama de casos de uso](http://jamj2000.github.io/entornosdesarrollo/6/assets/use-case-diagram-elements.png)

### Elementos

* Actores
* Casos de uso
* Relaciones

### Ejemplo 1

![Compras on-line](http://jamj2000.github.io/entornosdesarrollo/6/assets/use-case-example-online-shopping.png)

### Ejemplo 1 (continuación)

![Compras on-line - checkout](http://jamj2000.github.io/entornosdesarrollo/6/assets/use-case-example-online-shopping-checkout.png)

### Ejemplo 2

![Estado final](http://jamj2000.github.io/entornosdesarrollo/6/assets/use-case-example-hospital-reception.png)

## Diagramas de secuencia

![Diagrama de secuencia](http://jamj2000.github.io/entornosdesarrollo/6/assets/sequence-diagram-overview.png)

### Ejemplo 1

![Compras on-line](http://jamj2000.github.io/entornosdesarrollo/6/assets/sequence-examples-online-bookshop.png)

### Ejemplo 2

![Autenticación en Facebook](http://jamj2000.github.io/entornosdesarrollo/6/assets/sequence-example-facebook-authentication.png)

## Diagramas de estados

#### Pseudoestado inicial

![Pseudoestado inicial](http://jamj2000.github.io/entornosdesarrollo/6/assets/pseudostate-initial.png)

#### Estado final

![Estado final](http://jamj2000.github.io/entornosdesarrollo/6/assets/state-final.png)

### Estados simples

![Estado simple](http://jamj2000.github.io/entornosdesarrollo/6/assets/state-simple.png)

![Estado simple con actividades internas](http://jamj2000.github.io/entornosdesarrollo/6/assets/state-simple-internal-activities.png)

### Estados compuestos

![Estado compuesto](http://jamj2000.github.io/entornosdesarrollo/6/assets/state-composite.png)

![Estado compuesto con interior oculto](http://jamj2000.github.io/entornosdesarrollo/6/assets/state-composite-hidden-decomposition.png)

### Ejemplo 1

![Ciclo del agua](http://jamj2000.github.io/entornosdesarrollo/6/assets/state-machine-example-water.png)

### Ejemplo 2

![Estados de un hilo en Java](http://jamj2000.github.io/entornosdesarrollo/6/assets/state-machine-example-java-6-thread-states.png)

## Diagramas de actividades

![Diagrama de actividades](http://jamj2000.github.io/entornosdesarrollo/6/assets/control-nodes-overview.png)

### Ejemplo 1

![Compras on-line](http://jamj2000.github.io/entornosdesarrollo/6/assets/activity-examples-online-shopping.png)

### Ejemplo 2

![Proceso de pedido](http://jamj2000.github.io/entornosdesarrollo/6/assets/activity-examples-process-order.png)

### Ejemplo 3

![Gestión de documentos](http://jamj2000.github.io/entornosdesarrollo/6/assets/activity-example-document-management.png)

## Referencias

* [Diagramas UML de ejemplo](https://uml-diagrams.org)
* [OMG.org, donde bajar las especificaciones de UML](https://www.omg.org/spec/UML/)
* [UML.org](http://uml.org)
