Diseño orientado a objetos. Elaboración de diagramas de comportamiento.

Caso práctico

Mujer de mediana edad vista de frente, se ve de cintura para arriba, sonriente, es morena con flequillo y lleva el pelo recogido.

En BK Programación continúan inmersos en el mundo de UML. A pesar de que han trabajado duro y han aprendido bastante acerca de este lenguaje de especificación, Ada se ha dado cuenta de que apenas han empezado a arañar la superficie de todas las posibilidades que les ofrece. De momento ya saben como crear un diagrama de clases bastante completo y como analizar un problema propuesto, sin embargo hay muchos aspectos del problema que no pueden modelar todavía, por ejemplo con solo el diagrama de clases no pueden saber qué se espera del sistema que van a construir, o en qué se deben basar para codificar los métodos, o simplemente, ¿Cómo colaboran los objetos de las clases que han creado para hacer alguna tarea que sea útil?

Ada decide que no pueden parar ahora, y que hay que hacer un esfuerzo final para que los conocimientos del equipo sean globales y puedan enfrentarse a cualquier desarrollo software con solvencia.

Al momento, Ada pone a su equipo manos a la obra.

1.- Introducción.

Caso práctico

Mujer de mediana edad vista de frente, se ve de cintura para arriba, sonriente, es morena con flequillo y lleva el pelo recogido.

-Compañeros, creo que ahora no debemos conformarnos con modelar diagramas de clase y nada más, esto no nos da posibilidades de incluir ninguna información acerca del comportamiento de nuestro sistema. ¿Cómo especificamos la funcionalidad? O ¿qué acciones se realizan?, o ¿las restricciones? Necesitamos seguir estudiando diagramas que nos ayuden a especificar la dinámica del sistema. ¿Empezamos ahora mismo?

En el tema anterior vimos como crear un diagrama de clases para un problema determinado, esto nos ayuda a ver el problema con otra perspectiva y descubrir información nueva, sin embargo no tiene en cuenta elementos como la creación y destrucción de objetos, el paso de mensajes entre ellos y el orden en que deben hacerse, qué funcionalidad espera un usuario poder realizar, o como influyen elementos externos en nuestro sistema. Un diagrama de clases nos da información estática pero no dice nada acerca del comportamiento dinámico de los objetos que lo forman, para incluir éste tipo de información utilizamos los diagramas de comportamiento que incluyen:

  • Diagramas de casos de uso.
  • Diagramas de actividad.
  • Diagramas de estados.
  • Diagramas de interacción.
    • Diagramas de secuencia.
    • Diagramas de comunicación/colaboración.
    • Diagramas de interacción.
    • Diagramas de tiempo.

Para saber más

En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML, puedes usarlo como complemento a lo que vamos a ver en la unidad. No obstante te animo a que busques en la web información y ejemplos diferentes que te ayuden a seguir los contenidos.

Introducción a UML.

2.- Diagramas de casos de uso.

Caso práctico

Primer plano de un chico joven, de unos veinte años, de frente, con una leve sonrisa, pelo moreno y corto, viste camiseta amarilla con un dibujo.

-Empezaremos por el principio. Cuando estamos diseñando software es esencial saber cuales son los requerimientos del sistema que queremos construir, y necesitamos alguna herramienta que nos ayude a especificarlos de una manera clara, sistemática, y que nuestros clientes puedan entender fácilmente, ya que es imprescindible que nos pongamos de acuerdo en lo que realmente queremos hacer. ¿Alguna idea?

-¿No bastaría con hacer una lista de requerimientos y describirlos exhaustivamente?

-No, una descripción textual puede inducir a errores de interpretación y suele dejar cabos sueltos, y no contempla otra información, como quien realiza las acciones que describimos, por ejemplo. Necesitamos algo más específico.

Lo que Ada necesita son los diagramas de casos de uso.

Al construir software es esencial saber cuáles son los requerimientos del sistema que se desea crear, y se precisa alguna herramienta que ayude a especificarlos de una manera clara, sistemática y que los clientes puedan entender fácilmente.

Pero, ¿no bastaría con hacer una lista de requerimientos y describirlos exhaustivamente?. No, una descripción textual puede inducir a errores de interpretación y suele dejar cabos sueltos. La solución puede ser los diagramas de casos de uso.

Los diagramas de casos de uso son un elemento fundamental en la etapa de análisis de un sistema desde la perspectiva de la orientación a objetos porque resuelven uno de los principales problemas en los que se ve envuelto el proceso de producción de software: la falta de comunicación entre el equipo de desarrollo y el equipo que necesita de una solución software. Un diagrama de casos de uso nos ayuda a determinar QUÉ puede hacer cada tipo diferente de usuario con el sistema, en una forma que los no versados en el mundo de la informática o, más concretamente el desarrollo de software, pueda entender.

Los diagramas de casos de uso documentan el comportamiento de un sistema desde el punto de vista del usuario. Por lo tanto los casos de uso determinan los requisitos funcionales del sistema, es decir, representan las funciones que un sistema puede ejecutar.

Un diagrama de casos de uso es una visualización gráfica de los requisitos funcionales del sistema, que está formado por casos de uso (se representan como elipses) y los actores que interactúan con ellos (se representan como monigotes). Su principal función es dirigir el proceso de creación del software, definiendo qué se espera de él, y su ventaja principal es la facilidad para interpretarlos, lo que hace que sean especialmente útiles en la comunicación con el cliente.

 

Un requisito es una condición que debe cumplir un proyecto software. Los requisitos funcionales definen las acciones fundamentales que debe realizar el software al recibir información, procesarla y producir resultados. Suelen venir definidos por el cliente.

Reflexiona

Los diagramas de casos de uso se crean en las primera etapa de desarrollo del software, y se enmarcan en el proceso de análisis, para definir de forma detallada la funcionalidad que se espera cumpla el software, y que, además, se pueda comunicar fácilmente al usuario, pero, ¿termina aquí su función?

2.1.- Elementos del diagrama de casos de uso

Los elementos de un diagrama de casos de uso son los siguientes:

  • Actores.
  • Casos de uso.
  • Relaciones

2.1.1.- Actores.

Caso práctico

Mujer de mediana edad vista de frente, se ve de cintura para arriba, sonriente, es morena con flequillo y lleva el pelo recogido.

-Como decía, uno de los principales problemas de una descripción textual es que no permite especificar adecuadamente qué personas o entidades externas interactúan con el sistema. Ahora tenemos una herramienta que tiene esto muy en cuenta.

Los actores representan un tipo de usuario del sistema. Se entiende como usuario cualquier cosa externa que interactúa con el sistema. No tiene por qué ser un ser humano, puede ser otro sistema informático o unidades organizativas o empresas.
Los actores representan los tipos de usuario que interactúan con el sistema (un ser humano, un PC, una empresa ...) . Es importante entender la diferencia entre actores y los usuarios, por ejemplo, un usuario puede interpretar diferentes roles según la operación que esté ejecutando, cada uno de estos roles representará un actor diferente. Por otro lado, cada actor puede ser interpretado por diferentes usuarios.

Por ejemplo, el dueño de una panadería podrá aparecer en un diagrama de casos de uso con los roles de administrador y de cocinero, a su vez, puede tener otro usuario contratado, de forma que el actor cocinero podrá ser "interpretado" tanto por el dueño como por el empleado.
Tipos de actores:
  • Primarios: interaccionan con el sistema para explotar su funcionalidad. Trabajan directa y frecuentemente con el software.
  • Secundarios: soporte del sistema para que los primarios puedan trabajar. Son precisos para alcanzar algún objetivo.
  • Iniciadores: es posible que haya casos de uso que no sean iniciados por ningún usuario, en ese caso se podrá considerar un actor "tiempo" o "sistema" que asuma el arranque del caso.

Los actores se representan mediante la siguiente figura:Monigote con cabeza azul redonda, y cuerpo, brazos y piernas hechos con palotes. Debajo aparece la palabra Actor.

Es posible que haya casos de uso que no sean iniciados por ningún usuario, o algún otro elemento software, en ese caso se puede crear un actor "Tiempo" o "Sistema".

Autoevaluación

Pregunta

¿Un sistema software externo, como una entidad para la autentificación de claves, podría considerarse como un actor en un diagrama de casos de uso?

Respuestas

Verdadero.

Falso.

Retroalimentación

2.1.2.- Casos de uso.

Caso práctico

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

-Vale, pero lo que verdaderamente queremos es identificar la funcionalidad del sistema ¿no?, ¿cómo hace esta herramienta la descripción de la funcionalidad?

Se utilizan casos de uso para especificar tareas que deben poder llevarse a cabo con el apoyo del sistema que se está desarrollando.

Un caso de uso especifica una secuencia de acciones, incluyendo variantes, que el sistema puede llevar a cabo, y que producen un resultado observable de valor para un actor concreto.

El conjunto de casos de uso forma el "comportamiento requerido" de un sistema. El objetivo principal de elaborar un diagrama de casos de uso no es crear el diagrama en sí, sino la descripción que de cada caso se debe realizar, ya que esto es lo que ayuda al equipo de desarrollo a crear el sistema a posteriori. Junto al diagrama, por cada caso de uso se crea una tabla con una descripción textual, en la que se deben incluir, al menos, los siguientes datos (a los que se denomina contrato).

  • Nombre: nombre del caso de uso.
  • Actores: aquellos que interactúan con el sistema a través del caso de uso.
  • Propósito: breve descripción de lo que se espera que haga.
  • Precondiciones: aquellas que deben cumplirse para que pueda llevarse a cabo el caso de uso.
  • Flujo normal: flujo normal de eventos que deben cumplirse para ejecutar el caso de uso exitosamente, desde el punto de vista del actor que participa y del sistema.
  • Flujo alternativo: flujo de eventos que se llevan a cabo cuando se producen casos inesperados o poco frecuentes. No se deben incluir aquí errores como escribir un tipo de dato incorrecto o la omisión de un parámetro necesario.
  • Postcondiciones: las que se cumplen una vez que se ha realizado el caso de uso.
Ovalo de color azul conlas palabras Caso de uso dentro.
Tabla en la que aparecen los elementos que describen un caso de uso. Tiene siete filas y dos columnas con los siguientes contenidos: Primera fila:Super use case y nada. Segunda fila: Author y usuario. Tercera fila: Date y 26-ago-2001 13:56:56. Cuarta fila: Drief descripción y nada. Quinta fila: Preconditions y nada. Sexta fila: Post-conditions y nada. Séptima fila: Flow of events y otra tabla de dos filas por tres columnas con los siguientes contenidos: en la primera fila nada, Actor input y System response y en la segunda fila 1, nada y nada.

La representación gráfica de un caso de uso se realiza mediante un óvalo o elipse, y su descripción se suele hacer rellenando una o más tablas como la de la imagen (obtenida de la herramienta Visual Paradigm).

Autoevaluación

Pregunta

"Tras comprobar todos los artículos el pedido queda en el almacén a la espera de ser recogido."

¿Dónde incluirías esta afirmación sobre un caso de uso en un contrato?

Respuestas

En el flujo de eventos normal.

En el flujo de eventos alternativo.

En las precondiciones.

En las postcondiciones.

Retroalimentación

2.1.3.- Relaciones.

Caso práctico

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

-De acuerdo, y ahora ¿Cómo asociamos a los actores con los casos de uso que pueden realizar?

Los diagramas de casos de uso son grafos no conexos en los que los nodos son actores y casos de uso, y las aristas son las relaciones que existen entre ellos. Las relaciones representan qué actores realizan las tareas descritas en los casos de uso, en concreto qué actores inician un caso de uso. Pero además existen otros tipos de relaciones que se utilizan para especificar relaciones más complejas, como uso o herencia entre casos de uso o actores.

Existen diferentes tipos de relaciones entre elementos:

 

Relación

Descripción/ Ejemplo

Asociación

 Título: Línea recta. Descripción: Línea recta horizontal azul. Nombre:  ED06_Relac_10.png Autoría: Elena Pérez Nebreda. Licencia: Uso educativo no comercial. Procedencia: Elaboración propia.

Representa la relación entre el actor y un caso de uso en el que participa.

Ejemplo: Relación entre el caso de uso sacar dinero y el cliente de un banco.

Actor en forma de monigote con el nombre Cliente unido por una línea recta con un caso de uso, en forma de óvalo azul llamado Sacar dinero.

Inclusión (include - use)

Flecha formada por líneas discontinuas con dirección a la izquierda.

Include

Se trata de una relación entre casos de uso. La ejecución de un caso de uso implica necesariamente la ejecución del segundo.

             Dos casos de usos (A y B) que se encuentran dentro de unos óvalos blancos que mediante una relación de inclusión dan lugar a un caso de uso C que también se encuentra dentro de un óvalo blanco, unido mediante flechas discontinuas.

 

.

 

 

Esta relación es muy útil cuando se desea especificar algún comportamiento común en dos o más casos de uso, aunque es frecuente cometer el error de utilizar esta técnica para hacer subdivisión de funciones, por lo que se debe tener mucho cuidado cuando se utilice.

Ejemplo 1:

Al ejecutar el caso de uso sacar dinero, obligatoriamente se ejecuta el caso de uso validar pin de la tarjeta de crédito.

El caso de uso Sacar dinero que se encuentra dentro de un óvalo azul está unida al caso de uso Validar Pin que también se encuentra dentro de un óvalo azul, mediante una flecha discontinua sobre la que pone Include. En este caso se utiliza la relación de inclusión.

Ejemplo 2:

Por ejemplo, a la hora de hacer un pedido se debe buscar la información de los artículos para obtener el precio, es un proceso que necesariamente forma parte del caso de uso, sin embargo también forma parte de otros, como son el que visualiza el catálogo de productos y la búsqueda de un artículo concreto, y dado que tiene entidad por sí solo se separa del resto de casos de uso y se incluye en los otros tres.

En el siguiente gráfico se representa que A usa B, es decir, que A siempre ejecuta B.

El caso de uso A que se encuentra dentro de un óvalo blanco está unida al caso de uso B que se encuentra dentro de un óvalo blanco, mediante una flecha discontinua sobre la que pone Include. En este caso se utiliza la relación de inclusión.

 Extensión (extend)

Flecha formada por líneas discontinuas con dirección a la izquierda.

extend

Se trata de una relación entre casos de uso. La ejecución de un caso de uso puede provocar la ejecución del segundo

         

 

Se utiliza una relación entre dos casos de uso de tipo "extends" cuando se desea especificar que el comportamiento de un caso de uso es diferente dependiendo de ciertas circunstancias.

La principal función de esta relación es simplificar el flujo de casos de uso complejos. Se utiliza cuando existe una parte del caso de uso que se ejecuta sólo en determinadas ocasiones, pero no es imprescindible para su completa ejecución. Cuando un caso de uso extendido se ejecuta, se indica en la especificación del caso de uso como un punto de extensión. Los puntos de extensión se pueden mostrar en el diagrama de casos de uso.

Ejemplo 1:

 

Imprimir ticket es consecuencia del caso de uso sacar dinero, pero su ejecución es opcional a que sea requerida por el cliente.

 El caso de uso Sacar dinero que se encuentra dentro de un óvalo azul está unida al caso de uso Imprimir ticket que también se encuentra dentro de un óvalo azul, mediante una flecha discontinua sobre la que pone Extends. En este caso se utiliza la relación de extensión.

Ejemplo 2:

Cuando un usuario hace un pedido si no es socio se le ofrece la posibilidad de darse de alta en el sistema en ese momento, pero puede realizar el pedido aunque no lo sea.

Actor en forma de monigote con el nombre Usuario unido por una línea recta con un caso de uso, en forma de óvalo azul llamado Hacer pedido, dentro del óvalo debajo del nombre y separado por una linea horizontal aparece el rótulo Extension Points  Registrarse. Hacer pedido se une a otro caso llamado Registrarse, mediante una línea de puntos con una flecha en el extremo de Hacer pedido y el rótulo <<Extends >>. Debajo aparece otro actor llamado Socio unido por una línea recta con un caso de uso llamado Modificar datos personales. Los actores también están unidos por un línea recta con un triángulo blanco en el extremo de usuario.

El caso de uso A que se encuentra dentro de un óvalo blanco está unido al caso de uso B que también se encuentra dentro de un óvalo blanco, mediante una flecha discontinua sobre la que pone Extends. En este caso se utiliza la relación de extensión.

                        A opcionalmente ejecuta B.

 

Generalización

Flecha recta horizontal azul formada por líneas continuas.

Se utiliza para representar relaciones de herencia entre casos de uso o actores. No se contemplan generalizaciones combinadas entre actores y casos de uso.

Se utiliza cuando se tiene uno o más casos de uso que son especificaciones de un caso más general.

Por ejemplo, entre actores: tanto profesor como alumno son casos particulares del actor persona.

 Actores en forma de monigote con el nombre Profesor y Alumno unido por una flecha en forma de T inversa a otro actor en forma de monigote con el nombre Persona.

Ejemplos, entre casos de uso:

 

Un ejemplo de generalización de casos de uso sería la compra de artículos en un comercio, pudiendo considerarse la compra de alimentos o de bebidas. Ambos tipos de compras tendrán las características heredadas del caso de uso compra general, más las particulares definidas para cada caso.

 

 

Grafo en el que no es obligatorio que se pueda trazar un camino (sucesión de arcos que une dos nodos cualesquiera) entre cualquier pareja de nodos a y b.

Autoevaluación

Pregunta

Actor llamado Empleado de almacén unido a un caso de uso llamado Servir pedido seguido de tres interrogaciones y otro caso de uso llamado Consultar stock.

Supón el siguiente sistema que modela el caso de uso "Servir pedido" en el que el Empleado de almacén revisa si hay suficientes artículos para hacer el pedido y si todo es correcto, el pedido se embala y se envía:

¿Qué tipo de relación emplearías en el modelo del dibujo?

Respuestas

Asociación.

Generalización.

extends.

Include.

Retroalimentación

2.2.- Elaboración de casos de uso.

Caso práctico

Imagen de un chico joven con camisa de color marrón de espaldas tecleando ante la pantalla de un ordenador.

Después de analizar todos los elementos que formen un diagrama de casos de uso el equipo de Ada está preparado para hacer frente a su primer diagrama de casos de uso.

En los diagramas de casos se hace una abstracción de la realidad en la que representamos qué cosas pueden hacerse en nuestro sistema y quién las va a hacer.

Necesitamos diagramas cuya información permita al equipo de desarrollo la toma de decisiones adecuadas en la fase de análisis y diseño (cumpliendo los requisitos), así como que sean útiles en la fase de implementación en un lenguaje orientado a objetos.

Partiremos de una descripción lo más detallada posible del problema a resolver y trataremos de detectar aspectos como:

  • Usuarios que interactúan con el  sistema, para obtener los actores.
  • Tareas que realizan estos actores para determinar los casos de uso más genéricos.
  • Refinar el diagrama analizando los casos de uso más generales para detectar casos relacionados por inclusión, extensión y generalización.
Diagrama de casos de uso con los siguientes elementos de izquierda a derecha: Dos actores llamados Cliente y Administrador, colocados uno debajo de otro, a la derecha y de arriba a abajo los siguientes casos de uso: Sacar dinero, Realizar transferencias, Hacer ingreso y Administrar cajero. A la derecha otro actor llamado Sistema bancario. Sacar dinero, Realizar transferencias y Hacer ingreso se asocian con Cliente y Sistema bancario mediante líneas rectas, Administrar cajero se relaciona con Administrador. Los casos de uso están enmarcados en un rectángulo azul con el rótulo Cajero automático.

Paso a código de las especificaciones que se han definido durante la fase de análisis y diseño de un sistema software.

2.3.- Escenarios.

Caso práctico

Mujer de mediana edad vista de frente, se ve de cintura para arriba, sonriente, es morena con flequillo y lleva el pelo recogido.

Ada continua la investigación, junto con el equipo de BK programación, que una vez ha creado su primer diagrama de casos de uso, se da cuenta de que realmente es una herramienta muy útil a la hora de definir la funcionalidad de un sistema. Continuando con la investigación descubren una ventaja adicional, utilizando los flujos de eventos, pueden describir interacciones concretas de los actores con el sistema, estas interacciones son los escenarios.

Un caso de uso debe especificar un comportamiento deseado, pero no imponer cómo se llevará a cabo ese comportamiento, es decir, debe decir QUÉ pero no CÓMO. Esto se realiza utilizando escenarios que son casos particulares de un caso de uso.

Un escenario es una ejecución particular de un caso de uso que se describe como una secuencia de eventos. Un caso de uso es una generalización de un escenario.

Por ejemplo, para el caso de uso hacer pedido podemos establecer diferentes escenarios:

Un posible escenario podría ser:

Realizar pedido de unos zapatos y unas botas.

  1. El usuario inicia el pedido.
  2. Se crea el pedido en estado "en construcción".
  3. Se selecciona un par de zapatos "Lucía" de piel negros, del número 39.
  4. Se selecciona la cantidad 1.
  5. Se recupera la información de los zapatos y se modifica la cantidad a pagar sumándole 45 .
  6. Se selecciona un par de botas "Aymara" de ante marrón del número 40.
  7. Se selecciona la cantidad 1.
  8. Se recupera la información de las botas y se modifica la cantidad a pagar sumándole 135 €.
  9. El usuario acepta el pedido.
  10. Se comprueba que el usuario es, efectivamente socio.
  11. Se comprueban los datos bancarios, que son correctos.
  12. Se calcula el total a pagar añadiendo los gastos de envío.
  13. Se realiza el pago a través de una entidad externa.
  14. Se genera un pedido para el usuario con los dos zapatos que ha comprado, con el estado "pendiente".

Los escenarios pueden y deben posteriormente documentarse mediante diagramas de secuencia.

2.4.- Ejercicio resuelto 1 ("ZAPATERÍA TACÓN DE ORO") (Elaboración de un diagrama de casos de uso).

Ejercicio Propuesto

Descripción del problema: "El tacón de oro".

La zapatería Tacón de oro ha decidido crear un espacio web para ampliar su línea de negocio, así sus usuarios podrán adquirir los artículos: zapatos, bolsos y complementos que se venden en la tienda.

Los usuarios del sistema navegarán por la web para ver los artículos, zapatos, bolsos y complementos que se venden en la tienda. De los artículos nos interesa su nombre, descripción, material, color, precio y stock. De los zapatos nos interesa su número y el tipo. De los bolsos nos interesa su tipo (bandolera, mochila, fiesta). De los complementos (cinturones y guantes) su talla.

Los artículos se organizan por campañas para cada temporada (primavera/verano y otoño/invierno) de cada año.

Los artículos son de fabricación propia, pero, opcionalmente, pueden venderse artículos de otras firmas. De las firmas nos interesa saber su nombre, CIF y domicilio fiscal. La venta de artículos de firma se realiza a través de proveedores, de forma que un proveedor puede llevar varios artículos de diferentes firmas, y una firma puede ser suministrada por más de un proveedor. Los artículos pertenecen a una firma solamente. De los proveedores debemos conocer su nombre, CIF, y domicilio fiscal.

Los usuarios pueden registrarse en el sitio web para hacerse socios. Cuando un usuario se hace socio debe proporcionar los siguiente datos: nombre completo, correo electrónico y dirección.

Los socios pueden hacer pedidos de los artículos. Los usuarios pueden consultar todos los productos que tienen a  su disposición, pero para realizar compras han de registrarse como socios.

Para comprar productos, se generan pedidos. Un pedido está formado por un conjunto de detalles de pedido que son parejas formadas por artículo y la cantidad. De los pedidos interesa saber la fecha en la que se realizó y cuanto debe pagar el socio en total. El pago se hace a través tarjeta bancaria, cuando se va a pagar una entidad bancaria comprueba la validez de la tarjeta. De la tarjeta interesa conocer el número.

Las campañas son gestionadas por el administrativo de la tienda que se encargará de dar de baja la campaña anterior y dar de alta la nueva siempre que no haya ningún pedido pendiente de cumplimentar.

Existe un empleado de almacén que revisa los pedidos a diario y los cumplimenta. Esto consiste en recopilar los artículos que aparecen en el pedido y empaquetarlos. Cuando el paquete está listo se pasa al almacén a la espera de ser repartido. Del reparto se encarga una empresa de transportes que tiene varias rutas preestablecidas. Según el destino del paquete (la dirección del socio) se asigna a una u otra ruta. De la empresa de transportes se debe conocer su nombre, CIF y domicilio fiscal. Las rutas tienen un área de influencia que determina los destinos, y unos días de reparto asignados. Se debe conocer la fecha en la que se reparte el pedido. Si se produce alguna incidencia durante el reparto de algún pedido se almacena la fecha en la que se ha producido y una descripción.

Los socios pueden visualizar sus pedidos y una vez comprobados, puede cancelarlos (siempre y cuando no hayan sido cumplimentados por el empleado de almacén) o confirmar la compra.  Las compras deberán ser abonadas a través de una entidad bancaria. Así mismo  los socios puede modificar sus datos personales.

Se pide:
  • Diagrama de casos de uso. Identifica los actores y casos de uso, incluye relaciones de asociación, identifica generalizaciones (de actores y de casos de uso). Si consideras alguna relación tipo include o extend, justifica su uso.
  • Del diagrama que hayas obtenido en el apartado anterior, agrupa todos los casos de uso que hayas considerado en el proceso de gestión de pedidos en uno sólo. Para este apartado, se entiende que el pedido ya ha sido dado de alta y que el proceso normal de un pedido es que termine siendo comprado. Desarrolla su notación escrita (tabla del caso de uso).

Debes conocer

La elaboración de casos de uso no es un proceso inmediato, en la siguiente presentación tienes la descripción de como elaborar el diagrama de casos de uso del sistema con el que estamos trabajando. 

Revísalo con cuidado para comprender los conceptos que acabamos de ver.

                      

2.5.- Ejercicio resuelto 2 ("QUIJOTE")(Elaboración de un diagrama de casos de uso).

Ejercicio Propuesto

La empresa Quijote se dedica a la venta de material informático puerta a puerta, ofrece sus productos a los clientes en sus propios domicilios. Sus empleados se organizan en dos grandes grupos: vendedores y publicitarios. Los publicitarios tratan de facilitar el acceso de los vendedores a los clientes para que éstos les hagan llegar los catálogos de productos y realicen las operaciones de ventas.

Los publicitarios anualmente encargan a la consultora Sancho un estudio de sus resultados, y en función de los datos que desprenda pueden realizar un análisis de mercado. Gracias a la información obtenida en el análisis se hacen campañas publicitarias en radio y televisión.

La política de la empresa Quijote se basa en tener grandes profesionales en sus filas, por lo que todos sus empleados reciben formación periódicamente.

Se pide:

  • Diagrama de casos de uso. Identifica los actores y casos de uso, incluye relaciones de asociación, identifica generalizaciones. Si consideras alguna relación tipo include o extend, justifica su uso.
  • Si agrupamos todos los casos de uso que hayas considerado en el proceso relacionado con los empleados de márketing/publicitarios en uno sólo. Desarrolla la notación escrita del caso de uso.

2.6.- Ejercicio resuelto 3 ("ALQUILER DE PISOS Y LOCALES")(Elaboración de un diagrama de casos de usos).

Ejercicio Propuesto

Una empresa de alquiler de pisos y locales desea diseñar un sistema que cumpla los siguientes requisitos:

- Los propietarios previa identificación en el sistema, podrán dar de alta o baja un piso o un local. También podrán modificar los datos de ese piso o local.

- Los futuros inquilinos también deben identificarse antes de poder usar el sistema. Al acceder se les presenta un menú donde pueden elegir la acción a realizar:

   1. listar pisos y locales disponibles.

   2. solicitar el alquiler de un piso o local.

Para alquilar un local se le pedirá su email y para alquilar un piso su número de teléfono

Diagrama de casos de uso

  1. Identificar los actores.
  2. Identificar los casos de uso.
  3. Implementar con UMLet el diagrama de casos de uso.

3.-Diagrama de interacción

Una vez conocidos los diagramas de casos de uso, se hace necesario buscar la forma de representar como circula la información, los objetos que participan en los casos de uso, los mensajes que envían, y en el momento en que se producen. Disponer de esta información ayudará con posterioridad en el desarrollo de los diagramas de clases.

Los diagramas de interacción son vistas del sistema que muestran como grupos de objetos interactúan para un cierto comportamiento. Captan la ejecución de los casos de uso, representando a los actores que participan y los mensajes que se pasan.

Hay dos tipos de diagramas de interacción: diagramas de secuencia y diagramas de colaboración.

El diagrama de colaboración contiene la misma información que un diagrama de secuencia, pero  la anotación es diferente.

3.1.- Diagramas de secuencia.

Caso práctico

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

María se ha dado cuenta de que los casos de uso permiten, de una manera sencilla, añadir información sobre qué hace el sistema, sin embargo por completa que se la descripción de la secuencia de eventos no permite incluir información útil, como los objetos que intervienen en las tareas, y como se comunican.

-Tendríamos que buscar la forma de representar como circula la información, que objetos participan en los casos de uso, qué mensajes envían, y en que momento, esto nos ayudaría mucho a completar después el diagrama de clases.

Como siempre, Ada tiene una solución.

-Tendremos que investigar los diagramas de secuencia.

En los diagramas de secuencia, los objetos/actores que forman parte del escenario de un caso de uso se representan mediante rectángulos distribuidos horizontalmente en la zona superior del diagrama, a los que se asocia una línea temporal vertical (una para cada actor)  de las que salen, en orden, los diferentes mensajes que se pasan entre ellos.

 Con esto el equipo de desarrollo puede hacerse una idea de las diferentes operaciones que deben ocurrir al ejecutarse una determinada tarea y el orden en que deben realizarse.

Reflexiona

Los diagramas de secuencia completan a los diagramas de casos de uso, ya que permiten al equipo de desarrollo hacerse una idea de qué objetos participan en el caso de uso y como interaccionan a lo largo del tiempo.

3.1.1.- Representación de objetos, línea de vida y paso de mensajes.

Caso práctico

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

Ada, orienta a su equipo:

-Bien, ¿qué nos haría falta para poder representar la interacción de los objetos que participan en el caso de uso a lo largo del tiempo?

-Alguna manera de representar los objetos, el paso del tiempo y el paso de mensajes ¿no?

Representación de objetos y linea de vida.

En un diagrama de secuencia, los objetos se dibujan mediante rectángulos y se distribuyen horizontalmente en la parte superior del diagrama. Por cada objeto se identifica su nombre, seguido del símbolo de dos puntos y a continuación el nombre de la clase a la que pertenece. Si no se indica el nombre del objeto, se considera que para el propósito del diagrama es válido cualquier objeto de la clase.

Objetos de un diagrama de secuencia. En la zona superior hay un rectángulo verde con el nombre del objeto: Objeto_1 de la Clase_1 y debajo Cualquier objeto de la Clase_2. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1 en uno y :Clase_2 en otro. De cada objeto parte una línea de puntos hacia abajo.

De cada rectángulo sale una línea punteada que representa el paso del tiempo, se denomina línea de vida. La línea de vida se prolonga mientras el objeto es relevante en el diagrama, una vez deja de serlo se indica mediante una cruz "X", dejando por tanto de existir a partir de ese momento.

Cuando el objeto toma protagonismo en el intercambio de mensajes, se dice que está activo y se indica mediante un recuadro sobre su línea de vida.

Objetos de un diagrama de secuencia. En la zona superior hay un rectángulo verde con el nombre del objeto: *Tiempos de activación y *Finalización del objeto. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1 en uno y :Clase_2 en otro. De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos.

Una línea de vida puede estar encabezada por otro tipo de instancias como el sistema o un actor que aparecerán con su propio nombre. Usaremos el sistema para representar solicitudes al mismo, como por ejemplo pulsar un botón para abrir una ventana o una llamada a una subrutina

Paso de mensajes (Invocación de métodos).

Los mensajes, que significan la invocación de métodos, se representan como flechas horizontales que van de una línea de vida a otra, indicando con la flecha la dirección del mensaje. Los mensajes se dibujan desde el objeto que envía el mensaje al que lo recibe, pudiendo ser el mismo objeto emisor y receptor de un mensaje. El orden en el tiempo viene determinado por su posición vertical, un mensaje que se dibuja debajo de otro indica que se envía después, por lo que no se hace necesario un número de secuencia. Los mensajes tendrán un nombre y pueden incluir argumentos de entrada, valores devueltos e información de control (condición o iteración).

Objetos de un diagrama de secuencia. En la zona superior hay un rectángulo verde con el nombre del objeto: Ejemplos de métodos con/sin parámetros de entrada y valores devueltos. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1 en uno y :Clase_2 en otro.De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos. De los rectángulos sale una flecha de Objeto_1:Clase_1  a :Clase_2 con el rótulo val_ret=nombre_metiparam_lnl. Por otro lado, de :Clase_2 sale una flecha hacia Objeto_1:Clase_1 con el rótulo nombre_met2().

Una notación alternativa para recoger valores devueltos por los métodos es dibujar una línea de puntos finalizada en flecha, que irá desde el objeto destinatario del mensaje al que lo ha generado, acompañado del texto del valor devuelto.

Condicionales e iteraciones.

Además de presentar acciones sencillas que se ejecutan de manera secuencial también se pueden representar algunas situaciones más complejas como bucles usando marcos, normalmente se nombra el marco con el tipo de bucle a ejecutar y la condición de parada. También se pueden representar flujos de mensajes condicionales en función de un valor determinado.

En el diagrama aparecen cuatro instancias llamadas unSoci:Socio, <<system>>:sistema, miPedido:Pedido, y linea:LineaPedido, todas se forman con rectángulos azules, menos linea que se forma con dos rectángulos superpuestos. Se envían los siguientes mensajes en forma de flecha con los siguientes rótulos: de unSocio a sistema 1:iniciarPedido, un poco más abajo, de sistema a miPedido 1.1: crear. Debajo aparece un rectángulo horizontal que ocupa todo el ancho de la imagen, en la esquina superior izquierda aparece el rótulo loop y un poco más abajo entre corchetes Repetir hasta completar pedido. Los mensajes que aparecen dentro del rectángulo de loop son: de unSocio a sistema 2: cod = seleccionarArticulo() y de sistema a linea 2.1: crear(cod).

Las secuencias de control; tanto condicionales, como iterativas, se pueden representar usando marcos, normalmente se nombra el marco con el tipo de bucle a ejecutar y la condición de parada. También se pueden representar flujos de mensajes condicionales en función de un valor determinado.

La expresión a evaluar para la condición o iteración se representa entre corchetes.

En la zona superior hay un rectángulo verde con el nombre del objeto: Ejemplos de maro de condición. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1, :Clase_2 y :Clase_3. Se envían los siguientes mensajes en forma de flecha con los siguientes rótulos: de Objeto_1:Clase_1 a: Clase_2 el rótulo val_ret=nombre_met(), un poco más abajo, de Objeto_1:Clase_1 a:Clase_3 el rótulo nombre_met2(). Debajo aparece un rectángulo horizontal que ocupa solamente el rótulo que va desde Objeto_1:Clase_1 a :Clase_3, en la esquina superior izquierda aparece el rótulo optional y un poco más abajo entre corchetes val_ret = true. De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos.

Combinando varios marcos opcionales es posible representar diferentes alternativas en la ejecución de un diagrama de secuencia.

Para el caso de una iteración, tenemos el siguiente ejemplo.

En la zona superior hay un rectángulo verde con el nombre del objeto: Ejemplos de maro de iteración. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1, :Clase_2 y :Clase_3. Se envían los siguientes mensajes en forma de flecha con los siguientes rótulos: de Objeto_1:Clase_1 a:Clase_2 el rótulo val_ret=nombre_met(), un poco más abajo, de Objeto_1:Clase_1 a:Clase_3 el rótulo nombre_met2(). Debajo aparece un rectángulo horizontal que ocupa todo el ancho de la imagen, en la esquina superior izquierda aparece el rótulo loop y un poco más abajo entre corchetes val_ret!= true. De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos.

Por defecto los métodos son bloqueantes, se entiende que el proceso del diagrama de secuencia completa cada método antes de continuar con el siguiente, es una secuencia de métodos en el tiempo. Pero en ocasiones se producen situaciones en las que se desea mostrar varios procesos en paralelo (concurrencia), se puede reflejar mediante el uso de marcos con la etiqueta concurrence.

Junto a los marcos de concurrencia, se hace necesario el uso de métodos no bloqueantes (asíncronos), que permitan en paralelo activar diferentes procesos. La notación utilizada para los métodos asíncronos es una línea finalizada con media cabeza de flecha o en UMLet una línea cuya punta flecha no está rellena.

En la zona superior hay varios rectángulos naranjas con los nombres de los siguientes objetos: :Responsable, Uno:Puerta y Dos:Puerta. Debajo aparece un rectángulo verde claro horizontal que ocupa todo el ancho de la imagen, en la zona superior izquierda aparece la etiqueta Concurrence y de la que sale dos rótulos: de :Responsable a Uno:Puerta OkUno = apertura() y de :Responsable a Dos:Puerta OkDos = apertura(). Además, hay dos bandas de color verde oscuro dentro del rectángulo verde claro. En la banda superior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo cierre() que va desde  :Responsable a Uno:Puerta.  En la banda inferior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo activarAcceso() que va desde  :Responsable a Dos:Puerta.  Por último, debajo del rectángulo verde claro, hay un recuadro gris en el que pone el siguiente mensaje: Observa como los métodos apertura no son bloqueantes.

Por último destacar que se puede completar el diagrama añadiendo etiquetas y notas en el margen izquierdo que aclare la operación que se está realizando.

Autoevaluación

Pregunta

¿Cual de estos elementos no forma parte de un diagrama de secuencia?

Respuestas

Actor.

Objeto.

Bucle.

Evento.

Retroalimentación

3.1.2.- Ejercicio resuelto 1 ("Generar pedido")(Elaboración de un diagrama de secuencias).

Diagrama de interacción: Diagrama de secuencia

Vamos a generar el diagrama de secuencia que representa el caso de uso "Generar pedido" del diagrama de casos de uso del ejercicio resuelto 1 "ZAPATERÍA TACÓN DE ORO" (en el punto 2 de "Los diagramas de casos de uso"). En dicho diagrama se establece la secuencia de operaciones que se llevarán a cabo entre los diferentes objetos que intervienen en el caso de uso.

Este es el diagrama ya terminado, en el se han incluido todas las entidades (actores, objetos y sistema) que participan en el diagrama, y se han descrito todas las operaciones, incluidos los casos especiales, como es el registro de usuarios o la gestión de los datos bancarios. También incluye el modelado de acciones en bucle, como es la selección de artículos y de acciones regidas por condición, como es la posibilidad de cancelar el pedido si hay problemas con la tarjeta de crédito.

Diagrama de secuencia con las siguientes instancias: usuario en forma de monigote, unSocio:Socio en forma de rectángulo azul, <<system >>:sistema en forma de rectángulo azul, unPedido:Pedido en forma de rectángulo azul, linea:lineaPedido en forma de dos rectángulos superpuestos, articulo:Articulo en forma de rectángulo doble superpuesto azul y Banca en forma de monigote. Los mensajes que se envían entre instancias, en orden de arriba a abajo son: de usuario a sistema 1:hacerPedido(), de sistema a unPedido 1.1: crear. A continuación aparece un rectángulo de bucle que abarca desde la zona izquierda hasta artículo, en la zona superior izquierda aparece la etiqueta  loop  y debajo, entre corchetes, Repetir hasta completar pedido, debajo los mensajes  de usuario a sistema, 2:seleccionaArticulo: cod, de usuario a sistema 3: seleccionarCantidad(): cantidad, de sistema a linea 3.1: crear(cod, cant), de sistema a artículo obtenerPrecio():precio, de sistema a sistema, volviendo la flecha con dos giros, 3.3: actualizarTotal(precio, cantidad), en este punto termina el rectángulo del bucle. Continúan los siguientes mensajes de usuario a sistema 4:aceptarPedido, de sistema a socio 5: comprobarSocio: socio, se sistema a sistema 6: [Usuario no registrado] registrarSocio. Seguidamente aparece otro rectángulo de iteración que abarca desde la instancia sistema hasta Banca, con la condición entre corchetes    [Repetir hasta que los datos sean correctos o el usuario cancele la operación] y los mensajes 7: comprobarDatosBancarios(): datosBancarios y de sistema a sistema 8: [DatosBancarios erroneos] solicitarDatosBancarios, aquí termina el rectángulo de iteración. A continuación hay un rectángulo de condición con el rótulo alt en la esquina superior izquierda. Abarca todo el ancho de la imagen y está dividido en dos bandas horizontales separadas por una línea de puntos. En la banda superior encontramos la condición entre corchetes [Datos bancarios correctos] y los mensajes de usuario a Banca 9:pagarPedido y de sistema a pedido 10: establecer(“Pendiente”). En la banda inferior la condición entre corchetes [Operación cancelada por el usuario] y a continuación un rectángulo de iteración desde sistema a linea con la condición [Para todas las lineas de pedido] y el mensaje de sistema a linea 11: destruir y fuera de la iteración de sistema a pedido 12: destruir.

Debes conocer

En la siguiente presentación puedes encontrar una descripción de como elaborar este diagrama con Visual Paradigm.

Presentación en la que se describe como se elabora el diagrama de secuencia.  Presentación en la que se describe como se elabora el diagrama de secuencia.  Presentación en la que se describe como se elabora el diagrama de secuencia.  Presentación en la que se describe como se elabora el diagrama de secuencia.  Presentación en la que se describe como se elabora el diagrama de secuencia.  Presentación en la que se describe como se elabora el diagrama de secuencia.  Presentación en la que se describe como se elabora el diagrama de secuencia.  Presentación en la que se describe como se elabora el diagrama de secuencia.

3.1.3.- Ejercicio resuelto 2 ("ESTADIO")(Elaboración de un diagrama de secuencia).

Ejercicio Propuesto

Se pretende desarrollar un programa que dé respuesta a las necesidades de un estadio de fútbol en uno de sus partidos. Tras varias entrevistas con el responsable, se ha llegado al acuerdo de que los requisitos funcionales se pueden recoger en el caso de uso Gestión del estadio donde hay que considerar actividades como:

  • Control de puntos de acceso. Se dispone de 2 puertas, a las que el responsable del estadio dará orden de apertura. Cada puerta hace un test interno y devuelve al responsable Ok o Ko. Si una puerta no abre, queda inactiva para el resto del partido. El proceso de apertura se realiza de forma simultánea en ambas puertas. Al finalizar el partido, el responsable del estadio dará orden de cierre de las puertas que se han usado durante el partido.
  • Control de acceso de aficionados. Si la puerta está disponible, el responsable da orden de iniciar el acceso al estadio. Mientras haya aficionados, el operario de la puerta valida la entrada, si es correcta le da acceso al campo, en caso contrario avisa al responsable del estadio que ha habido un intento de acceso con entrada falsa.

Nota:

  • Considera en este diagrama que la puerta uno está averiada y la puerta dos operativa.

Se pide:

Desarrollar el diagrama de secuencia resultante del caso de uso planteado.

Atiende a aspectos como:

  • Identificación de los objetos involucrados en el diagrama de secuencia.
  • Que el diagrama recoja la secuencia de mensajes intercambiados, tomando en consideración las funcionalidades descritas en el enunciado.
  • Uso correcto de la notación vista para este tipo de diagramas.
  • Que los diagramas generados sean visualmente útiles. Un diagrama de secuencia debe dar una idea clara/rápida de la secuencia de acciones que se derivan de la ejecución del caso de uso que representa.

3.1.4.- Ejercicio resuelto 3 ("ROPERO")(Elaboración de un diagrama de secuencia).

Ejercicio Propuesto

Se pretende crear un programa para la gestión de ciertas funciones de una discoteca. En particular, el depósito de los abrigos en el ropero.

Algunas consideraciones:

  • El responsable de la discoteca cada día decide si abre el vestíbulo, y es el encargado de su apertura y cierre.
  • El propio ropero informa a los clientes si proporciona o no servicio de guardarropa.
  • Si está abierto, a primera hora recoge los abrigos de los clientes que tengan abrigo.
  • Al finalizar la jornada, mientras haya abrigos en el ropero se devuelven siempre que sea antes de las 4 de la mañana.
  • Se pide desarrollar el diagrama de secuencia resultante del caso de uso planteado.

Considera aspectos como:

  • Identificación de los objetos involucrados.
  • Que el diagrama recoja la secuencia de mensajes intercambiados, tomando en consideración las funcionalidades descritas en el enunciado.
  • Uso correcto de la notación vista para este tipo de diagramas.

3.2.- Diagramas de colaboración.

Caso práctico

Primer plano de un hombre joven, de frente, de pelo corto y moreno, con expresión seria, camisa de rayas azules.

-El diagrama de secuencia ha aportado información muy valiosa sobre la circulación de mensajes en los casos de uso, sin embargo estaría bien poder mostrar esta información de otra forma en la que se apreciase mejor el anidamiento de los mensajes, y el flujo de control entre objetos, ¿no creéis?

Actor con el nombre Iniciador del que parte una linea que lo conecta con un rectángulo que está a su derecha con el rótulo :C1, sobre la línea aparece una flecha corta de punta gruesa dirección desde Iniciador a :C1 y encima el mensaje 1:mensajeInicial. :C1 está conectado mediante una línea con otro rectángulo azul con el rótulo :C2, que está debajo, a la izquierda de la linea hay una flecha corta con unta gruesa en dirección de :C1 a :C2 y a la derecha de la linea los mensajes 2:mensaje1(parámetro) y 3:mensaje2().

Al igual que los diagramas de secuencia, los diagramas de colaboración muestran una secuencia de ejecución de uno o varios casos de uso. La notación utilizada es muy similar y la principal diferencia radica en el modo de mostrar el orden de mensajes intercambiados entre objetos. Mientras el diagrama de secuencia establece el orden de los mensajes en el tiempo según su posición de arriba-abajo, el diagrama de colaboración lo hace mediante el etiquetado de los mensajes. Las interacciones entre los objetos se describen en forma de grafo en el que los nodos son objetos y las aristas son enlaces entre objetos a través de los cuales se pueden enviar mensajes entre ellos.

Los diagramas de colaboración permiten una mejor organización visual de los objetos al no ser obligada su representación en la parte superior del diagrama, en cambio la secuencia temporal suele ser más complicada de seguir.

Los diagramas de colaboración tienen forma de grafo en el que los nodos son objetos y las aristas son los mensajes que intercambian.

UMLet no dispone de herramientas para la elaboración de diagramas de colaboración directamente. No obstante, no resulta complicado generarlos a partir de los símbolos disponibles para otros diagramas: representación de objetos mediante cajas, paso de mensajes mediante líneas, información de los métodos mediante descripciones textuales; todos ellos disponibles en los diagramas de secuencia de UMLet.

 

Deriva del griego, significa trazar. Objeto combinatorio formado por un conjunto de nodos y un subconjunto de líneas seleccionadas del conjunto de líneas que unen cada par de nodos entre si, denominadas arcos. Cuando dos nodos del grafo están unidos por un arco se dice que existe una relación entre los nodos.

Reflexiona

Los diagramas de colaboración y secuencia utilizan los mismo elementos pero distribuyéndolos de forma diferente, ¿crees que son semejantes?

3.2.1.- Representación de objetos.

Caso práctico

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

-De acuerdo, mientras investigamos los diagramas de colaboración vamos a ver con un poco más de detalle qué significa la notación que se asigna a los objetos, ¿que diferencia hay entre usar los dos puntos o no hacerlo? ¿Podemos usar el nombre de una clase, solamente, o es obligatorio indicar el nombre del objeto?

Cuatro rectángulos de color azul colocados uno debajo de otro con los siguientes rótulos: Clase, :objeto, :Clase y objeto:Clase.

Un objeto puede ser cualquier instancia de las clases que hay definidas en el sistema, aunque también pueden incluirse objetos como la interfaz del sistema, o el propio sistema, si esto nos ayuda a modelar las operaciones que se van a llevar a cabo.

Los objetos se representan mediante rectángulos en los que aparece uno de estos nombres.

  • NombreClase: directamente se puede utilizar el nombre de la clase a la que pertenece el objeto que participa en la interacción. Pero esta representación hace referencia a la clase, el resto son objetos.
  • NombreObjeto: se puede usar el nombre concreto del objeto que participa en la interacción, normalmente aparece subrayado.
  • :nombreClase: cuando se coloca el símbolo ":" delante del nombre de la clase quiere decir que hace referencia a un objeto genérico de esa clase.
  • NombreObjeto:nombreClase: hace referencia al objeto concreto que se nombre añadiendo la clase a la que pertenece.

3.2.2.- Paso de mensajes.

Caso práctico

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

-Y cuando enviamos un mensaje ¿cómo se representa exactamente?, ¿podemos incluir de alguna forma parámetros en los mensajes o valores devueltos? ¿Y si necesitamos indicar que el mensaje se enviará sólo si se cumple una determinada condición? ¿o que se envía dentro de un bucle?

Para que sea posible el paso de mensajes es necesario que exista una asociación entre los objetos, que se podrá mostrar mediante una línea que los una y una flecha que indique la dirección.

Al igual que sucedía en los diagramas de secuencia, es posible incluir parámetros en los mensajes, valores devueltos, mensajes enviados sólo si se cumple una determinada condición, o mensajes que se ejecutan varias veces (iteraciones).

La sintaxis de un mensaje es la siguiente:

[Secuencia] [*] [Condición] {valorDevuelto} : mensaje (argumentos de entrada)  o
[Secuencia] [*] [Condición] mensaje (argumentos de entrada) : {valorDevuelto}

Donde:
  • Secuencia: representa el nivel de anidamiento del envío del mensaje dentro de la interacción. Los mensajes se numeran para indicar el orden en el que se envían, y si es necesario se puede indicar anidamiento incluyendo subrangos.
  • *: indica que el mensaje es iterativo.
  • Condición de guarda: debe cumplirse para que el mensaje pueda ser enviado.
  • ValorDevuelto: lista de valores devueltos por el mensaje. Estos valores se pueden utilizar como parámetros de otros mensajes. Los corchetes indican que es opcional.
  • Mensaje: nombre del mensaje.
  • Argumentos: parámetros que se pasan al mensaje.

La enumeración de los mensajes se puede hacer de dos formas:

  • Numeración simple: empieza en 1, se va incrementando en 1 y no hay ningún nivel de anidamiento.
  • Numeración decimal: se muestran varios niveles de subíndices para indicar anidamiento de operaciones. Por ejemplo, 1 es el primer mensaje; 1.1 es el primer mensaje anidado en el mensaje 1, 1.2 es el segundo mensaje anidado en el mensaje 1; y así sucesivamente.
Como se ve en el ejemplo, se puede usar la misma asociación para enviar varios mensajes. Vemos que hay dos mensajes anidados, el 1.1 y el 2.1, se ha usado el nombre de los mensajes para indicar el orden real en el que se envían.
Cinco instancias de objetos en forma de rectángulo azul. De arriba a abajo vemos: el objeto :ClaseA y el objeto :ClaseB unidos por una linea, debajo de la cual vemos una flecha corta con punta gruesa de :Clasea a :ClaseB y el mensaje 1:mensaje1(p1, p2):r1. Debajo, alineados con los de arriba aparecen los objetos :ClaseC y :ClaseD, están unidos entre si por un linea con una flecha de :Clase a :ClaseD y el mensaje 2:mensaje3(p3), :ClaseC está unido con :ClaseA sin mensajes y :ClaseB está unido con :ClaseD, con una flecha de :ClaseB :ClaseD y el mensaje 1.1: mensaje2(r1) y otra fecha en dirección contraria con el mensaje 2.1:mensaje4().  :ClaseD está unido a otro objeto llamado :ClaseE, que está debajo la flecha va de :ClaseE a :ClaseD con el mensaje mensaje5():r2.

Los mensajes 1, 1.1 y 2 tienen parámetros y los mensajes 1 y 3 devuelven un resultado.

Se contempla la bifurcación en la secuencia añadiendo una condición en la sintaxis del mensaje:

[Secuencia][*][CondiciónGuarda]{valorDevuelto} : mensaje (argumentos)

Cuando tenemos una condición se repite el número de secuencia y se añaden las condiciones necesarias, como vemos en la imagen según la condición se enviará el mensaje 1 o el 2, pero no ambos, por lo que coinciden en número de secuencia.

La iteración se representa mediante un * al lado del número de secuencia, pudiendo indicarse ente corchetes la condición de parada del bucle.

Nota: VP-UML modifica el orden en el que aparecen los datos pero no su notación.

Autoevaluación

Pregunta

Dos objetos llamados :objeto1 y :objeto2 unidos por una linea recta continua con el siguiente mensaje de :objeto1 a :Objeto2 1:*[condicion]operacion(p).
Indica qué afirmación no es correcta para el siguiente diagrama:

Respuestas

El objeto ob2 es multiobjeto.

Se envía un mensaje del objeto 1 al objeto 2.

El mensaje operacion(pp) se ejecutará siempre.

La operación se puede ejecutar varias veces.

Retroalimentación

3.2.3.- Ejemplo de un diagrama de colaboración.

Diagrama de interacción: Diagrama de colaboración

A continuación se muestra un diagrama de colaboración de ejemplo.

Este es el diagrama de colaboración que representa el caso de uso "Generar pedido" del diagrama de casos de uso del ejercicio resuelto 1 "ZAPATERÍA TACÓN DE ORO" (en el punto 2 de "Los diagramas de casos de uso"). Se ha creado siguiendo el diagrama de secuencia, por lo que no te debe ser muy difícil seguirlo, de hecho algunas aplicaciones para la creación de estos diagramas permiten la obtención de uno a partir de otro. Debes tener en cuenta que la aplicación modifica un poco la signatura de los mensajes, el valor devuelto se representa al final precedido de dos puntos.

Se parte de un conjunto central de objetos que son usuario, con forma de monigote, sistema con forma de rectángulo azul y Banca con forma de monigote. Están unidos por líneas rectas y continuas. Existe una línea que empieza y termina en sistema haciendo como un rectángulo y otra linea que pasa por la zona superior de Usuario a Banca. Debajo están los objetos artículo:Articulo, en forma de rectángulo doble superpuesto, pedido:Pedido en forma de rectángulo azul, socio:Socio en forma de rectángulo azul y linea:lineaPedido en forma de rectángulo doble superpuesto. Sistema se conecta por líneas continuas con todos estos objetos. A continuación se lista la secuencia del mensajes que se envían indicando el orden de secuencia, el objeto origen, el objeto destino y la signatura del mensaje: De Usuario a sistema 1:iniciarPedido(). De sistema a pedido 1.1:crear(). De usuario a sistema 1.2: *[mientras pedido incompleto]seleccionarArticulo() De usuario a sistema 1.3: *[mientras pedido incompleto]seleccionarCantidad() De sistema a linea 1.4: * [mientras pedido incompleto]crear(cod, cant) De sistema a artículo 1.5: * [mientras pedido incompleto]obtenerPrecio() De sistema a sistema 1.6: * [mientras pedido incompleto]actualizarTotal() De usuario a sistema 2: aceptarPedido(). De sistema a socio 3:comprobarSocio() De sistema a sistema 3.1 [Socio no encontrado] registrarSocio() De sistema a Banca 4: comprobarDatosBancarios() De sistema a sistema 4.1: * [Mientras datos bancarios incorrectos] solicitarDatosBancarios(). De Ususario a Banca 5a: [DatosBancarios correctos]pagarPedido(). De sistema a pedido 6a: [DatosBancarios correctos] establece(“pendiente”). De sistema a linea 5b:* [operación cancelada] destruir(). De sistema a pedido 6b:[operación cancelada] destruir().

Los aspectos más destacados son los siguientes:

  • Las actividades que se repiten o pueden repetirse se marcan con un asterisco y su condición.
  • Las condiciones de guarda se escriben en el mismo nombre del mensaje.
  • El flujo alternativo de eventos según si el usuario cancela el pedido o no, obliga a modificar los números de secuencia de los mensajes 5 y 6, pasando a tener los mensajes 5a y 6a y 5b y 6b, según la condición. Puedes modificar el número se secuencia de los mensajes abriendo la especificación del diagrama, y seleccionando la pestaña Mensajes, donde puedes editar los números de secuencia haciendo doble clic sobre ellos.
  • Al objeto "sistema" se le ha asignado el estereotipo system.

4.- Diagramas de estados.

Caso práctico

Mujer de mediana edad vista de frente, se ve de cintura para arriba, sonriente, es morena con flequillo y lleva el pelo recogido.

Ada espera que su equipo continúe con tan buen ánimo para estudiar un tipo de diagrama más, que completará las diferentes visiones de la dinámica de un sistema que proporciona UML. Son los diagramas de estados, que les permitirán analizar cómo va cambiando el estado de los objetos que tienen una situación variable a lo largo del tiempo.

Los diagramas de estados permiten analizar como va evolucionando el estado de un objeto a lo largo del tiempo, es decir, representa su comportamiento transitando por una serie de estados.

Modelan el comportamiento dinámico de los objetos en respuesta a determinados eventos.

En relación con el diagrama de estados se cumple que:

  • Un objeto está en un estado concreto en un cierto momento, que principalmente viene determinado, por los valores de sus atributos.
  • La transición de un estado a otro es momentánea y se produce cuando ocurre un determinado evento.

Por ejemplo, aquí tenemos el diagrama de estados de una puerta.

Diagrama de estados con los siguientes elementos de izquierda a derecha, parte del nodo inicial en forma de círculo negro del que surge una flecha con el rótulo Crear hacia un rectángulo con las esquinas redondeadas con el texto Abierta. De este parte una flecha con rótulo cerrar[paso.vacio] a otro rectángulo a la derecha con el texto Cerrada. De Cerrada vuelve una flecha a Abierta con el rótulo Abrir. De Cerrada sale otra flecha con el rótulo cerrar cerradura a otro rectángulo que está debajo con el texto Cerrada con llave de éste vuelve otra flecha con el texto abrir cerradura a Cerrada.

Autoevaluación

Pregunta

Analiza el diagrama de estados de la puerta, según está dibujado, ¿se puede abrir una puerta que está cerrada con llave directamente?

Respuestas

Verdadero.

Falso.

Retroalimentación

4.1.- Estados y eventos.

Caso práctico

Mujer de mediana edad vista de frente, se ve de cintura para arriba, sonriente, es morena con flequillo y lleva el pelo recogido.

Ada indica a su equipo que para entender bien la dinámica de un diagrama de estados deben comenzar por analizar sus componentes fundamentales: estados y eventos.

Un estado es una situación en la vida de un objeto en la que satisface cierta condición, realiza alguna actividad o espera algún evento.

Existen tres tipos de estado en los que se puede encontrar un objeto:

  • Estado inicial. Punto de partida por defecto del diagrama de estados. Corresponde a los valores de los atributos de una clase en el momento de instanciar un nuevo objeto.
  • Estado final. Estado en el que se encuentra el objeto una vez finalizada la secuencia de eventos que pueden proporcionar transiciones entre estados.
  • Estado intermedio. Cualquiera de los estados intermedios entre los dos anteriores.

De izquierda a derecha se ve un círculo negro que marca el estado de acción inicial, un círculo negro rodeado de una circunferencia negra que marca el estado de acción final y un rectángulo con las esquinas redondeadas que marca el estado intermedio.

Los estados se representan mediante una caja y admite algunas variantes. La información que se muestra en los estados suele ser:
  • Nombre del estado. Por ejemplo Abierta.
  • Nombre del estado y acción/actividad asociada  al objeto mientras se encuentra en ese estado. En un semáforo en estado de precaución, se produce la actividad de parpadeo de la luz.
  • Estado con subestados. En el ejemplo se indica que el estado vigilando tiene asociado una serie de subestados, si se trata de un vigilante de seguridad, el estado "vigilando" podría tener relacionados los subestados de ruta a pie y o de visionado de cámaras.
De izquierda a derecha se ven 3 rectángulos con las esquinas redondeadas. En el primero pone Abierta (estado), el segundo se divide en dos y en la parte de arriba pone Precaución (estado)  y en la parte de abajo Parpadear luz (acción) y en el tercero pone Vigilando (estado) con un par de rectángulos pequeños unidos con una línea en la esquina inferior izquierda (subestados).

Un evento es un acontecimiento que dispara una transición entre dos estados del objeto. Existen eventos externos y eventos internos según el agente que los produzca.

Tipos de eventos:
  •  Señales (excepciones): la recepción de una señal, producida por una situación excepcional en el sistema. Puede ser origen de una transición entre estados.
  • Llamadas: la recepción de una petición para invocar una operación. Normalmente un evento de llamada es manejado por un método del objeto.
  • Paso de tiempo: el evento se genera como consecuencia del cumplimiento de un temporizador.
  • Cambio de estado: evento generado por un cambio en el estado o el cumplimiento de una condición.

4.2.- Transiciones.

Caso práctico

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

-De acuerdo, los estados son situaciones específicas en las que se puede encontrar un objeto, y los eventos pueden hacer que un objeto cambie de estado, y, ¿cómo representamos eso?

Una transición de un estado A a un estado B, se produce cuando se origina el evento asociado y se satisface cierta condición especificada, en cuyo caso se ejecuta la acción de salida de A, la acción de entrada a B y la acción asociada a la transición.

La notación de una transición tiene tres partes, todas ellas optativas:

Evento(argumentos) [Condición] / Acción.

Elementos de una transición:

  • Evento: cuando se produce un evento, afecta a todas las transiciones que lo contienen en su etiqueta.
  • Condición: expresión evaluable como verdadera o falsa. Si es falsa, la transición no se dispara.
  • Acción: conjunto de actuaciones que lleva asociada la transición. Puede incluir llamadas a operaciones de objetos, creación o destrucción de objetos ...

Ejemplo: Vamos a ver el diagrama de estados para un semáforo. Recoge ejemplos de los tres elementos descritos para las transiciones.

Diagrama de estados con los siguientes elementos de izquierda a derecha, parte del nodo inicial en forma de círculo negro del que surge una flecha hacia un rectángulo con las esquinas redondeadas con el texto Pare.  De este parte una flecha con rótulo after 30 sec/Poner verde a otro rectángulo a la derecha con el texto Circule. De Circule sale una flecha a Precaución en la parte de arriba y Parpadear Luz en la parte de abajo con el rótulo after 30 sec[si peatón pulsa]/Poner naranja. De Precaución sale otra flecha con el rótulo after 30 sec/Poner rojo que vuelve a Pare.

Autoevaluación

Pregunta

Recordemos el diagrama de estado de la puerta:

Diagrama de estados con los siguientes elementos de izquierda a derecha, parte del nodo inicial en forma de círculo negro del que surge una flecha con el rótulo Crear hacia un rectángulo con las esquinas redondeadas con el texto Abierta. De este parte una flecha con rótulo cerrar[paso.vacio] a otro rectángulo a la derecha con el texto Cerrada. De Cerrada vuelve una flecha a Abierta con el rótulo Abrir. De Cerrada sale otra flecha con el rótulo cerrar cerradura a otro rectángulo que está debajo con el texto Cerrada con llave de éste vuelve otra flecha con el texto abrir cerradura a Cerrada.

¿Qué significa la signatura de la transición "cerrar [paso.vacio]"?

Respuestas

Que cuando cerremos la puerta el paso quedará vacío.

Que para cerrar la puerta el paso debe estar vacío.

Que cuando se está cerrado la puerta se vacía el paso.

Retroalimentación

4.3.- Ejercicio resuelto 1 ("Generar pedido")(Elaboración de un diagrama de estados).

Diagrama de estados:

Para ejemplificar la creación de un diagrama de estados vamos a ver el que representa el caso de uso "Generar pedido" del diagrama de casos de uso del ejercicio resuelto 1 "ZAPATERÍA TACÓN DE ORO" (en el punto 2 de "Los diagramas de casos de uso") que cumple con las condiciones que hemos visto al principio, tiene un comportamiento significativo en tiempo real, ya que su situación tanto física, como el sistema, va evolucionando conforme pasa el tiempo, y participa en varios casos de uso (como Hacer pedido y Cumplimentar pedido).

Los diferentes estados en los que puede estar un pedido son:

  • En creación: es cuando se están seleccionando los productos que formará el pedido.
  • Pendiente: está en este estado desde que se confirma el pedido hasta que se selecciona para preparar su envío.
  • En almacén: está en este estado cuando es elaborado el paquete y se ha asignado a una ruta, hasta que se envía a través de la ruta que le corresponde.
  • Servido: Cuando el pedido es enviado. En este caso se envía una señal física desde el almacén cuando el transporte abandona el almacén.
  • Cancelado: puede llegarse a esta situación por dos motivos, o bien se cancela mientras se está haciendo por problemas con la tarjeta de crédito, o bien porque, una vez pendiente de su gestión el usuario decide cancelarlo, la diferencia fundamental entre ambos es que en el segundo caso hay que devolver el importe pagado por el pedido al socio que lo ha comprado.

Las transiciones entre estados se producen por llamadas a procedimientos en todos los casos, no intervienen cambios de estado o el tiempo, ni señales.

El diagrama quedaría de la siguiente manera:

Diagrama de estados. Cuenta con los siguientes estados: En creación que tiene como acción añadirArtículo, pendiente que tiene como acción de entrada revisarArticulosDisponibles, acción añadirRuta y acción de salida disminuirStock, cancelado con la acción eliminar pedido que cuenta con el código body= si [pedido=pendiente] devolverDinero; eliminarLineaPedido; eliminarPedido; y los estados almacén y servido. Las transiciones entre estados son del nodo inicial a en creación, con la signatura /crearPedido, de en creación a sí mismo con la signatura Seleccionar artículo/ añadirArtículo, de enCreación a cancelado con la signatura Seleccionar cancelar pedidoBotonCancelar.click() / cancelarPedido, de en creación a pendiente con la signatura Seleccionar confirmación botonConfirmar.click() [Datos correctos]/confirmarPedido(), de pendiente a cancelado con la signatura Seleccionar cancelar pedidoBotonCancelar.click() / cancelarPedido, de pendiente a almacén con la signatura Artículos empaquetados botonEnviarALmacen.click() [artículos disponibles] / cumplimentarPedido(), y de almacén a servido  con la signatura Pedido enviado a ruta dejar en almacén / enviarRuta. De almacén y de cancelado se pasa al nodo final.

En las transiciones se ha incluido el nombre de la transición, el evento que la dispara (normalmente hacer clic en algún botón de la interfaz), si existe condición de guarda se pone entre corchetes y la acción a realizar para llegar al siguiente estado junto al símbolo /. En todos los casos el evento de disparo es de tipo llamada (incluye la llamada a una función o pulsar un botón de la interfaz), salvo en el caso de pedido enviado que se controla por una señal que se envía cuando el transporte abandona el almacén.

A los estados se les ha añadido la acción a realizar, apartado do/ y en algunos casos la acción de entrada, por ejemplo en el caso del estado pendiente, se debe revisar que los artículos a enviar tengan disponibilidad y la de salida, en el ejemplo disminuir el stock.

Nota: para incluir las condiciones de guarda en el diagrama debes rellenar el apartado "Guard" de la especificación, si necesitas añadir alguna acción puedes hacerlo rellenando el apartado "Effect". Los eventos de disparo.

4.4.- Ejercicio resuelto 2 ("RELOJ")(Elaboración de un diagrama de estados).

Ejercicio Propuesto

La siguiente figura muestra un reloj digital cuyo comportamiento se describe a continuación:

Reloj digital con forma de rectángulo con las esquinas redondeadas y color morado. En su interior tiene 5 rectángulos, dos de ellos de color azul en los que pone Horas y Minutos y tres de ellos rojos donde pone A, B y C

El reloj se enciende y está visualizando las horas y minutos.

Funciones de reloj:

Pulsado de A durante tres segundos: parpadea la hora. Para evitar cambios de hora involuntarios, si el tiempo de pulsado es inferior a tres segundos no se activa la función.

El botón B no funciona, si no se ha pulsado antes el botón A durante 3 segundos.

De tal forma que si el reloj está en el estado en el que la hora está parpadeando:

  1. Si se pulsa el botón B incrementa la hora en una unidad.
  2. Si se pulsa el botón A, pasará al estado de poder cambiar los minutos. Los minutos parpadearán. No se precisa mantener pulsado el botón porque se entiende que se está modificando la hora de forma voluntaria.

Si está el reloj en el estado de poder cambiar los minutos:

  1. Pulsado del botón B: cada pulsación del botón B incrementa los minutos en una unidad
  2. Si pulsamos el botón A, finaliza el modo configuración y vuelve a mostrar la hora.

Pulsado de C: apaga del reloj sin tener en consideración el estado en el que se encuentre.

Cuando el reloj está en modo configuración de horas o minutos, tras 10 segundos de inactividad abandona la configuración y pasa a modo funciones de reloj. 

4.5.- Ejercicio resuelto 3 ("VIDA LABORAL")(Elaboración de un diagrama de estados).

Ejercicio Propuesto

Crea un diagrama de estados que muestre la evolución de un empleado a lo largo de su vida laboral.

Se considera que el proceso transcurre entre los 16 y 65 años de edad y se plantean los siguientes estados:

  • Preempleado. Anterior a los 16 años. Se considera el estado inicial.
  • Aprendiz. Es el periodo comprendido entre los 16 y 18 años para aquellas personas que han decidido no continuar sus estudios.
  • Activo. El trabajador se encuentra en activo y con contrato en vigor.
  • Parado. El trabajador ha perdido el empleo, su tarea principal es la búsqueda de un nuevo trabajo.
  • Prejubilado. El trabajador solicita dejar de estar activo, pero no ha alcanzado la edad de 65 años. Desde el estado de parado no se considera la opción de solicitar la prejubilación.
  • Jubilado. El trabajador ha cumplido los 65 años y pasa a disfrutar de un merecido descanso. Se considera el estafo final.

5.- Diagramas de actividad.

Caso práctico

Primer plano de un chico joven, de unos veinte años, de frente, con una leve sonrisa, pelo moreno y corto, viste camiseta amarilla con un dibujo.

Por el momento el equipo de BK no ha tenido problema en seguir lo que Ada les cuenta sobre los diagramas UML. Antonio, que está verdaderamente interesado en el tema hace a Ada la siguiente pregunta:

-¿Que pasaría si quisiera representar sólo las acciones que tienen lugar, prescindiendo de quien las genera, solo el flujo de la actividad del sistema, qué pasa primero, qué ocurre después y qué cosas pueden hacerse al mismo tiempo?

-Pasaría que tendrías que hacer un diagrama de actividad.

El diagrama de actividad es una especialización del diagrama de estados, organizado en torno a las acciones en lugar de los objetos, que se compone de una serie de actividades y representa como se pasa de unas a otras. Las actividades se enlazan por transiciones automáticas, es decir, cuando una actividad termina se desencadena el paso a la siguiente.

El diagrama de actividades resulta útil cuando se quiere representar sólo las acciones que tienen lugar, prescindiendo de quien las genera. ¿Qué pasa primero, qué ocurre después y qué cosas pueden hacerse al mismo tiempo?·
      
Se utilizan fundamentalmente para modelar el flujo de control entre actividades en el que se puede distinguir cuales ocurren secuencialmente a lo largo del tiempo y cuales se pueden llevar a cabo concurrentemente. Permite visualizar la dinámica del sistema desde otro punto de vista que complementa al resto de diagramas.

Un diagrama de actividades es un grafo conexo en el que los nodos son estados, que pueden ser de actividad o de acción y los arcos son transiciones entre estados.

Que se realiza de forma simultánea.

Reflexiona

¿Por qué decimos que el diagrama de actividades visualiza el comportamiento desde otro punto de vista del resto de diagramas?

5.1.- Elementos del diagrama de actividad.

Caso práctico

Primer plano de un chico joven, de unos veinte años, de frente, con una leve sonrisa, pelo moreno y corto, viste camiseta amarilla con un dibujo.

-Vale estoy preparado, ¿qué necesito para tener un diagrama de actividad?

Normalmente los diagramas de actividades contienen:

  • Estados de actividad y estados de acción.
    • Estado de actividad: Elemento compuesto cuyo flujo de control se compone de otros estados de actividad y de acción.
    • Estado de acción: Estado que representa la ejecución de una acción atómica, que no se puede descomponer ni interrumpir, normalmente la invocación de una operación. Generalmente se considera que su ejecución conlleva un tiempo insignificante.
    • Pueden definirse también otro tipo de estados:
      • Inicial.
      • Final.
        Nodos inicial y final de un diagrama de actividad. De izquierda a derecha se ve un círculo negro del que parte una flecha hacia un rectángulo con las esquinas redondeadas con el rótulo acción inicial, y a su derecha otro rectángulo con los bordes redondeados y el rótulo acción final del que sale una flecha a un círculo negro rodeado de una circunferencia negra.
  • Transiciones: Relación entre dos estados que indica que un objeto en el primer estado realizará ciertas acciones y pasará al segundo estado cuando ocurra un evento específico y satisfaga ciertas condiciones. Se representa mediante una línea dirigida del estado inicial al siguiente. Podemos encontrar diferentes tipos de transacciones:
    • Secuencial o sin disparadores: Al completar la acción del estado origen se ejecuta la acción de salida y, sin ningún retraso, el control sigue por la transición y pasa al siguiente estado.
    • Bifurcación(Decision node): Especifica caminos alternativos, elegidos según el valor de alguna expresión booleana. Las condiciones de salida no deben solaparse y deben cubrir todas las posibilidades (puede utilizarse la palabra clave else). Pueden utilizarse para lograr el efecto de las iteraciones.
      Diagrama de actividad con los siguientes nodos de izquierda a derecha: nodo inicial en forma de círculo negro, del que parte una flecha a un rombo azul, de la esquina superior sale una flecha con el rótulo Condición verdadera a una acción en forma de rectángulo con las esquinas redondeadas con el rótulo acción verdadero. De la esquina inferior del rombo sale otra flecha con el rótulo Condición falsa hacia una acción con el rótulo acción falso, de las acciones verdadero y falso surgen flechas que terminan en un rombo de color azul del que parte otra flecha hacia el nodo final en forma de círculo negro rodeado de una circunferencia negra.
    • Fusión (Merge node): Redirigen varios flujos de entrada en un único flujo de salida. No tiene tiempo de espera ni sincronización.
    • División (Fork node): Permiten expresar la sincronización o ejecución paralela de actividades. Las actividades invocadas después de una división son concurrentes.
      Diagrama de actividad con los siguientes nodos de izquierda a derecha: nodo inicial en forma de círculo negro, del que parte una flecha a una línea corta vertical muy gruesa, de la parte de arriba sale una flecha a una acción en forma de rectángulo con las esquinas redondeadas con el rótulo acción concurrente 1. De la parte de abajo de la linea sale otra flecha hacia una acción con el rótulo acción concurrente 2, de las acciones surgen flechas que terminan en otra linea vertical corta y gruesa de la que parte otra flecha hacia el nodo final en forma de círculo negro rodeado de una circunferencia negra.
    • Unión (Join node): Por definición, en la unión los flujos entrantes se sincronizan, es decir, cada uno espera hasta que todos los flujos de entrada han alcanzado la unión.
  • Objetos: Manifestación concreta de una abstracción o instancia de una clase. Cuando interviene un objeto no se utilizan los flujos de eventos habituales sino flujos de objetos (se representan con una flecha de igual manera) que permiten mostrar los objetos que participan dentro del flujo de control asociado a un diagrama de actividades. Junto a ello se puede indicar cómo cambian los valores de sus atributos, su estado o sus roles.
    Acción en forma de rectángulo con las esquinas redondeadas con el rótulo emitir factura, de la que sale una flecha a un rectángulo de color azul con el rótulo factura, del que a su vez sale otra flecha a otra acción con el rótulo Pagar factura.

Se utilizan carriles o calles para ver QUIENES son los responsables de realizar las distintas actividades, es decir, especifican qué parte de la organización es responsable de una actividad.

  • Cada calle tiene un nombre único dentro del diagrama.
  • Puede ser implementada por una o varias clases.
  • Las actividades de cada calle se consideran independientes y se ejecutan concurrentemente a las de otras calles.

Autoevaluación

Pregunta

Los diagramas de actividades, a diferencia del resto, permiten incluir la concurrencia en la representación del diagrama.

Respuestas

Verdadero.

Falso.

Retroalimentación

5.2.- Ejemplo de un diagrama de actividad.

Diagrama de actividad:

El siguiente diagrama de actividad representa el caso de uso "Generar pedido" del diagrama de casos de uso del ejercicio resuelto 1 "ZAPATERÍA TACÓN DE ORO" (en el punto 2 de "Los diagramas de casos de uso"), en el aparecen los elementos que hemos visto en las secciones anteriores.

  • En las bifurcaciones se ha añadido la condición que indica si se pasa a una acción o a otra.
  • Las acciones Seleccionar artículo y Seleccionar cantidad se han considerado concurrentes.

Diagrama de actividad con los siguientes elementos en la zona superior se halla el nodo inicial parte una flecha a una acción en forma de rectángulo con las esquinas redondeadas llamada comprar, de ésta parte otra flecha, rotulada con Se crea el pedido, pasa a estado “en construcción” hacia un rectángulo con el rótulo pedido:Pedido junto al que aparece una flecha gruesa de color rojo con el texto Flujo de objeto. De comprar también surge una flecha a un rectángulo negro estrecho y en sentido horizontal junto al que aparece una flecha gruesa de color rojo con el texto División. Del rectángulo negro salen dos flechas hacia las acciones seleccionar artículo y seleccionar cantidad que se dirigen a su vez a otro rectángulo negro similar al anterior. De este sale una flecha hacia la acción añadir artículo al pedido. De aquí salen dos flechas, una con el rótulo Se añade un artículo al pedido que va a un rectángulo azul con el rótulo pedido y la otra a un rombo junto al que hay una flecha roja con el texto Bifurcación. Del rombo surge una flecha a comprar con el rótulo no se ha terminado de añadir artículos y otra a la acción confirmar pedido con el rótulo Se ha terminado de añadir artículo. De confirmar pedido hay una flecha a Comprobar socio, y de esta a un rombo, del rombo flecha con el rótulo no es socio a la acción registrase y con el rótulo si es socio a comprobar datos bancarios. De registrarse también surge una flecha a Comprobar datos bancarios. De esta flecha a un rombo y del rombo dos flechas, una con el rótulo Datos incorrectos a rellenar datos bancarios y otra con el rótulo Datos bancarios correctos a Pagar pedido. De rellenar  datos bancarios surge otra bifurcación hacia Comprobar datos bancarios con el rótulo intentar corrección y hacia cancelar pedido, del que surge una flecha hacia el objeto pedido:Pedido con el rótulo El estado del pedido pasa a “cancelado” y también al nodo final. Por último de pagar pedido se pasa a Preparar pedido para almacén y de ahí al objeto pedido con el rótulo El estado pasa a “pendiente”  y al nodo final.

En este otro diagrama se simplifican las acciones a realizar y se eliminan los objetos para facilitar la inclusión de calles que indican quien realiza cada acción:

Diagrama dividido en tres rectángulos verticales con los rótulos Usuario, Sistema y Banca. En la calle Usuario encontramos las acciones Hacer pedido, confirmar pedido, registrarse, cancelar pedido y rellenar datos bancarios. En la calle sistema encontramos Comprobar socio y almacenar pedido y en Banca comprobar datos bancarios. La secuencia de acciones es: Nodo inicial, Hacer pedido, confirmar pedido, comprobar socio, del que surge una bifurcación hacia  registrarse y comprobar datos bancarios con los rótulos no es socio y es socio, de registrarse se continua por comprobar datos bancarios del que surge otra bifurcación hacia rellenar datos bancarios y rellenar pedido con los rótulo datos incorrectos y datos correctos. De rellenar datos bancarios surge otra bifurcación hacia cancelar pedido y comprobar datos bancarios. De almacenar pedido se pasa al nodo final.

Nota: Para añadir las calles en Visual Paradigm se utiliza la herramienta del panel "Vertical Swimlane".

Anexo I.- Licencias de recursos.

Recurso (1) Datos del recurso (1) Recurso (2) Datos del recurso (2)
Mujer de mediana edad vista de frente, se ve de cintura para arriba, sonriente, es morena con flequillo y lleva el pelo recogido.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Primer plano de un chico joven, de unos veinte años, de frente, con una leve sonrisa, pelo moreno y corto, viste camiseta amarilla con un dibujo.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Primer plano de una chica joven, de espresión seria, con el pelo largo y rizado, viste con una camisa de color gris.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Imagen de un chico joven con camisa de color marrón de espaldas tecleando ante la pantalla de un ordenador.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Primer plano de un hombre joven, de frente, de pelo corto y moreno, con expresión seria, camisa de rayas azules.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Monigote con cabeza azul redonda, y cuerpo, brazos y piernas hechos con palotes. Debajo aparece la palabra Actor.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Ovalo de color azul conlas palabras Caso de uso dentro.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Tabla en la que aparecen los elementos que describen un caso de uso. Tiene siete filas y dos columnas con los siguientes contenidos: Primera fila: Super use case y nada. Segunda fila:  Author y usuario. Tercera fila:  Date y 26-ago-2001 13:56:56. Cuarta fila:  Drief descripción y nada. Quinta fila:  Preconditions y nada. Sexta fila:  Post-conditions y nada. Séptima fila:  Flow of events y otra tabla de dos filas por tres columnas con los siguientes contenidos: en la primera fila nada,  Actor input y  System response y en la segunda fila 1, nada y nada.

Autoría: María José Navascués González.

Licencia: Uso Educativo no comercial.

Procedencia: Elaboración Propia.

Actor en forma de monigote con el nombre Usuario unido por una línea recta con un caso de uso, en forma de óvalo azul llamado Hacer pedido, dentro del óvalo debajo del nombre y separado por una linea horizontal aparece el rótulo Extension Points  Registrarse. Hacer pedido se une a otro caso llamado Registrarse, mediante una línea de puntos con una flecha en el extremo de Hacer pedido y el rótulo <<Extends >>. Debajo aparece otro actor llamado Socio unido por una línea recta con un caso de uso llamado Modificar datos personales. Los actores también están unidos por un línea recta con un triángulo blanco en el extremo de usuario.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor llamado Empleado de almacén unido a un caso de uso llamado Servir pedido seguido de tres interrogaciones y otro caso de uso llamado Consultar stock.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de casos de uso con los siguientes elementos de izquierda a derecha: Dos actores llamados Cliente y Administrador, colocados uno debajo de otro, a la derecha y de arriba a abajo los siguientes casos de uso: Sacar dinero, Realizar transferencias, Hacer ingreso y Administrar cajero. A la derecha otro actor llamado Sistema bancario. Sacar dinero, Realizar transferencias y Hacer ingreso se asocian con Cliente y Sistema bancario mediante líneas rectas, Administrar cajero se relaciona con Administrador. Los casos de uso están enmarcados en un rectángulo azul con el rótulo Cajero automático.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

En el diagrama aparecen cuatro instancias llamadas unSoci:Socio, <<system >>:sistema, miPedido:Pedido, y linea:LineaPedido, todas se forman con rectángulos azules, menos linea que se forma con dos rectángulos superpuestos. Se envían los siguientes mensajes en forma de flecha con los siguientes rótulos: de unSocio a sistema 1:iniciarPedido, un poco más abajo, de sistema a miPedido 1.1: crear. Debajo aparece un rectángulo horizontal que ocupa todo el ancho de la imagen, en la esquina superior izquierda aparece el rótulo loop  y un poco más abajo entre corchetes Repetir hasta completar pedido. Los mensajes que aparecen dentro del rectángulo de loop  son: de unSocio a sistema 2: cod = seleccionarArticulo() y de sistema a linea 2.1: crear(cod).

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de secuencia con las siguientes instancias: usuario en forma de monigote, unSocio:Socio en forma de rectángulo azul, <<system >>:sistema en forma de rectángulo azul, unPedido:Pedido en forma de rectángulo azul, linea:lineaPedido en forma de dos rectángulos superpuestos, articulo:Articulo en forma de rectángulo doble superpuesto azul y Banca en forma de monigote. Los mensajes que se envían entre instancias, en orden de arriba a abajo son: de usuario a sistema 1:hacerPedido(), de sistema a unPedido 1.1: crear. A continuación aparece un rectángulo de bucle que abarca desde la zona izquierda hasta artículo, en la zona superior izquierda aparece la etiqueta  loop  y debajo, entre corchetes, Repetir hasta completar pedido, debajo los mensajes  de usuario a sistema, 2:seleccionaArticulo: cod, de usuario a sistema 3: seleccionarCantidad(): cantidad, de sistema a linea 3.1: crear(cod, cant), de sistema a artículo obtenerPrecio():precio, de sistema a sistema, volviendo la flecha con dos giros, 3.3: actualizarTotal(precio, cantidad), en este punto termina el rectángulo del bucle. Continúan los siguientes mensajes de usuario a sistema 4:aceptarPedido, de sistema a socio 5: comprobarSocio: socio, se sistema a sistema 6: [Usuario no registrado] registrarSocio. Seguidamente aparece otro rectángulo de iteración que abarca desde la instancia sistema hasta Banca, con la condición entre corchetes    [Repetir hasta que los datos sean correctos o el usuario cancele la operación] y los mensajes 7: comprobarDatosBancarios(): datosBancarios y de sistema a sistema 8: [DatosBancarios erroneos] solicitarDatosBancarios, aquí termina el rectángulo de iteración. A continuación hay un rectángulo de condición con el rótulo alt en la esquina superior izquierda. Abarca todo el ancho de la imagen y está dividido en dos bandas horizontales separadas por una línea de puntos. En la banda superior encontramos la condición entre corchetes [Datos bancarios correctos] y los mensajes de usuario a Banca 9:pagarPedido y de sistema a pedido 10: establecer(“Pendiente”). En la banda inferior la condición entre corchetes [Operación cancelada por el usuario] y a continuación un rectángulo de iteración desde sistema a linea con la condición [Para todas las lineas de pedido] y el mensaje de sistema a linea 11: destruir y fuera de la iteración de sistema a pedido 12: destruir.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor con el nombre Iniciador del que parte una linea que lo conecta con un rectángulo que está a su derecha con el rótulo :C1, sobre la línea aparece una flecha corta de punta gruesa dirección desde Iniciador a :C1 y encima el mensaje 1:mensajeInicial. :C1 está conectado mediante una línea con otro rectángulo azul con el rótulo :C2, que está debajo, a la izquierda de la linea hay una flecha corta con unta gruesa en dirección de :C1 a :C2 y a la derecha de la linea los mensajes 2:mensaje1(parámetro) y 3:mensaje2():

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Cuatro rectángulos de color azul colocados uno debajo de otro con los siguientes rótulos: Clase, :objeto, :Clase y objeto: Clase.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Dos rectángulo azules uno debajo del otro con los rótulos :objeto1 y :objeto2 unidos por una línea recta.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Cinco instancias de objetos en forma de rectángulo azul. De arriba a abajo vemos: el objeto :ClaseA y el objeto :ClaseB unidos por una linea, debajo de la cual vemos una flecha corta con punta gruesa de :Clasea a :ClaseB y el mensaje 1:mensaje1(p1, p2):r1. Debajo, alineados con los de arriba aparecen los objetos :ClaseC y :ClaseD, están unidos entre si por un linea con una flecha de :Clase a :ClaseD y el mensaje 2:mensaje3(p3), :ClaseC está unido con :ClaseA sin mensajes y :ClaseB está unido con :ClaseD, con una flecha de :ClaseB :ClaseD y el mensaje 1.1: mensaje2(r1) y otra fecha en dirección contraria con el mensaje 2.1:mensaje4().  :ClaseD está unido a otro objeto llamado :ClaseE, que está debajo la flecha va de :ClaseE a :ClaseD con el mensaje mensaje5():r2.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Objeto llamado :OB1 unido por una linea continua a otro objeto a su derecha llamado :OB2, con una flecha de :OB1 a :OB2 y el mensaje 1a:[mensaje1(p)[condicion1]. Abajo hay otro objeto llamado :OB3 unido a :OB1 con la flecha de :OB1 a :OB3 y el mensaje 1b:mensaje2()[condicion2]

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Se parte de un conjunto central de objetos que son usuario, con forma de monigote, sistema con forma de rectángulo azul y Banca con forma de monigote. Están unidos por líneas rectas y continuas. Existe una línea que empieza y termina en sistema haciendo como un rectángulo y otra linea que pasa por la zona superior de Usuario a Banca. Debajo están los objetos artículo:Articulo, en forma de rectángulo doble superpuesto, pedido:Pedido en forma de rectángulo azul, socio:Socio en forma de rectángulo azul y linea:lineaPedido en forma de rectángulo doble superpuesto. Sistema se conecta por líneas continuas con todos estos objetos. A continuación se lista la secuencia del mensajes que se envían indicando el orden de secuencia, el objeto origen, el objeto destino y la signatura del mensaje: De Usuario a sistema 1:iniciarPedido(). De sistema a pedido 1.1:crear(). De usuario a sistema 1.2: *[mientras pedido incompleto]seleccionarArticulo() De usuario a sistema 1.3: *[mientras pedido incompleto]seleccionarCantidad() De sistema a linea 1.4: * [mientras pedido incompleto]crear(cod, cant) De sistema a artículo 1.5: * [mientras pedido incompleto]obtenerPrecio() De sistema a sistema 1.6: * [mientras pedido incompleto]actualizarTotal() De usuario a sistema 2: aceptarPedido(). De sistema a socio 3:comprobarSocio() De sistema a sistema 3.1 [Socio no encontrado] registrarSocio() De sistema a Banca 4: comprobarDatosBancarios() De sistema a sistema 4.1: * [Mientras datos bancarios incorrectos] solicitarDatosBancarios(). De Ususario a Banca 5a: [DatosBancarios correctos]pagarPedido(). De sistema a pedido 6a: [DatosBancarios correctos] establece(“pendiente”). De sistema a linea 5b:* [operación cancelada] destruir(). De sistema a pedido 6b:[operación cancelada] destruir().

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Dos objetos llamados :objeto1 y :objeto2 unidos por una linea recta continua con el siguiente mensaje de :objeto1 a :Objeto2 1:*[condicion]operacion(p).

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor de nombre Usuario, conectado con los casos de uso  Hacer pedido con punto de extensión Registrarse y Registrarse. Hacer pedido y Registrarse están unidos por una flecha de linea de puntos que termina en Hacer pedido.  Hay otro caso de uso llamado Recuperar información de artículo relacionado con Buscar artículo y Hacer pedido por flechas con líneas de puntos y rotuladas con <<include >>. A la derecha aparece otro caso de uso llamado Confirmar datos bancarios relacionado con una flecha de línea de puntos rotulada con <<include >> con Hacer pedido, a su vez se relaciona con otro actor llamado Banca.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de estados con los siguientes elementos de izquierda a derecha, parte del nodo inicial en forma de círculo negro del que surge una flecha con el rótulo Crear hacia un rectángulo con las esquinas redondeadas con el texto Abierta. De este parte una flecha con rótulo cerrar[paso.vacio] a otro rectángulo a la derecha con el texto Cerrada. De Cerrada vuelve una flecha a Abierta con el rótulo Abrir. De Cerrada sale otra flecha con el rótulo cerrar cerradura a otro rectángulo que está debajo con el texto Cerrada con llave de éste vuelve otra flecha con el texto abrir cerradura a Cerrada.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de estados. Cuenta con los siguientes estados: En creación que tiene como acción añadirArtículo, pendiente que tiene como acción de entrada revisarArticulosDisponibles, acción añadirRuta y acción de salida disminuirStock, cancelado con la acción eliminar pedido que cuenta con el código body= si [pedido=pendiente] devolverDinero; eliminarLineaPedido; eliminarPedido; y los estados almacén y servido. Las transiciones entre estados son del nodo inicial a en creación, con la signatura /crearPedido, de en creación a sí mismo con la signatura Seleccionar artículo/ añadirArtículo, de enCreación a cancelado con la signatura Seleccionar cancelar pedidoBotonCancelar.click() / cancelarPedido, de en creación a pendiente con la signatura Seleccionar confirmación botonConfirmar.click() [Datos correctos]/confirmarPedido(), de pendiente a cancelado con la signatura Seleccionar cancelar pedidoBotonCancelar.click() / cancelarPedido, de pendiente a almacén con la signatura Artículos empaquetados botonEnviarALmacen.click() [artículos disponibles] / cumplimentarPedido(), y de almacén a servido  con la signatura Pedido enviado a ruta dejar en almacén / enviarRuta. De almacén y de cancelado se pasa al nodo final.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de actividad con los siguientes elementos en la zona superior se halla el nodo inicial parte una flecha a una acción en forma de rectángulo con las esquinas redondeadas llamada comprar, de ésta parte otra flecha, rotulada con Se crea el pedido, pasa a estado “en construcción” hacia un rectángulo con el rótulo pedido:Pedido junto al que aparece una flecha gruesa de color rojo con el texto Flujo de objeto. De comprar también surge una flecha a un rectángulo negro estrecho y en sentido horizontal junto al que aparece una flecha gruesa de color rojo con el texto División. Del rectángulo negro salen dos flechas hacia las acciones seleccionar artículo y seleccionar cantidad que se dirigen a su vez a otro rectángulo negro similar al anterior. De este sale una flecha hacia la acción añadir artículo al pedido. De aquí salen dos flechas, una con el rótulo Se añade un artículo al pedido que va a un rectángulo azul con el rótulo pedido y la otra a un rombo junto al que hay una flecha roja con el texto Bifurcación. Del rombo surge una flecha a comprar con el rótulo no se ha terminado de añadir artículos y otra a la acción confirmar pedido con el rótulo Se ha terminado de añadir artículo. De confirmar pedido hay una flecha a Comprobar socio, y de esta a un rombo, del rombo flecha con el rótulo no es socio a la acción registrase y con el rótulo si es socio a comprobar datos bancarios. De registrarse también surge una flecha a Comprobar datos bancarios. De esta flecha a un rombo y del rombo dos flechas, una con el rótulo Datos incorrectos a rellenar datos bancarios y otra con el rótulo Datos bancarios correctos a Pagar pedido. De rellenar  datos bancarios surge otra bifurcación hacia Comprobar datos bancarios con el rótulo intentar corrección y hacia cancelar pedido, del que surge una flecha hacia el objeto pedido:Pedido con el rótulo El estado del pedido pasa a “cancelado” y también al nodo final. Por último de pagar pedido se pasa a Preparar pedido para almacén y de ahí al objeto pedido con el rótulo El estado pasa a “pendiente”  y al nodo final.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Acción en forma de rectángulo con las esquinas redondeadas con el rótulo emitir factura, de la que sale una flecha a un rectángulo de color azul con el rótulo factura, del que a su vez sale otra flecha a otra acción con el rótulo Pagar factura.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de actividad con los siguientes nodos de izquierda a derecha: nodo inicial en forma de círculo negro, del que parte una flecha a un rombo azul, de la esquina superior sale una flecha con el rótulo Condición verdadera a una acción en forma de rectángulo con las esquinas redondeadas con el rótulo acción verdadero. De la esquina inferior del rombo sale otra flecha con el rótulo Condición falsa hacia una acción con el rótulo acción falso, de las acciones verdadero y falso surgen flechas que terminan en un rombo de color azul del que parte otra flecha hacia el nodo final en forma de círculo negro rodeado de una circunferencia negra.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de actividad con los siguientes nodos de izquierda a derecha: nodo inicial en forma de círculo negro, del que parte una flecha a una línea corta vertical muy gruesa, de la parte de arriba sale una flecha a una acción en forma de rectángulo con las esquinas redondeadas con el rótulo acción concurrente 1. De la parte de abajo de la linea sale otra flecha hacia una acción con el rótulo acción concurrente 2, de las acciones surgen flechas que terminan en otra linea vertical corta y gruesa de la que parte otra flecha hacia el nodo final en forma de círculo negro rodeado de una circunferencia negra.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de estados que consta de los siguientes estados: Ocioso, Enfriando con la acción de entrada IniciarVentilador(), la acción enfriar() y la acción de salida apagarVentilador(), y Calentando con la acción de entrada IniciarCalentador(), la acción calentar() y la acción de salida apagarCalentador(). Las transiciones entre estados son: del nodo inicial a Ocioso, de Ocioso a Enfriando con el evento calor[Temp>TDeseada], de Enfriando a Ocioso con Temperatura OK[Temp=TDeseada], de Ocioso a Calentando con el evento frio[Temp<TDeseada] y de Calentando a Ocioso con Temperatura OK[Temp=TDeseada]. De Enfriando a Calentando con el evento frio[Temp<TDeseada] y de Calentando a Enfriando con el evento calor[Temp>TDeseada].

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor en forma de monigote con el nombre Cliente unido por una línea recta con un caso de uso, en forma de óvalo azul llamado Sacar dinero.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Flecha formada por líneas discontinuas con dirección a la izquierda.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Dos casos de usos (A y B) que se encuentran dentro de unos óvalos blancos que mediante una relación de inclusión dan lugar a un caso de uso C que también se encuentra dentro de un óvalo blanco, unido mediante flechas discontinuas.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

El caso de uso Sacar dinero que se encuentra dentro de un óvalo azul está unida al caso de uso Validar Pin que también se encuentra dentro de un óvalo azul, mediante una flecha discontinua sobre la que pone Include. En este caso se utiliza la relación de inclusión.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

El caso de uso Sacar dinero que se encuentra dentro de un óvalo azul está unida al caso de uso Imprimir ticket que también se encuentra dentro de un óvalo azul, mediante una flecha discontinua sobre la que pone Extends. En este caso se utiliza la relación de extensión.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor en forma de monigote con el nombre Usuario unido por una línea recta con un caso de uso, en forma de óvalo azul llamado Hacer pedido, dentro del óvalo debajo del nombre y separado por una linea horizontal aparece el rótulo Extension Points  Registrarse. Hacer pedido se une a otro caso llamado Registrarse, mediante una línea de puntos con una flecha en el extremo de Hacer pedido y el rótulo <<Extends >>. Debajo aparece otro actor llamado Socio unido por una línea recta con un caso de uso llamado Modificar datos personales. Los actores también están unidos por un línea recta con un triángulo blanco en el extremo de usuario.

Autoría: María José Navascués González.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actores en forma de monigote con el nombre Profesor y Alumno unido por una flecha en forma de T inversa a otro actor en forma de monigote con el nombre Persona.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

El caso de uso A que se encuentra dentro de un óvalo blanco está unido al caso de uso B que también se encuentra dentro de un óvalo blanco, mediante una flecha discontinua sobre la que pone Extends. En este caso se utiliza la relación de extensión.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

El caso de uso A que se encuentra dentro de un óvalo blanco está unida al caso de uso B que se encuentra dentro de un óvalo blanco, mediante una flecha discontinua sobre la que pone Include. En este caso se utiliza la relación de inclusión.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Línea recta horizontal azul.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Flecha recta horizontal azul formada por líneas continuas.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor de nombre Web Zapatería en forma de monigote, conectado con el caso de uso Consultar con forma de óvalo a través de una línea recta. Este a su vez está conectado al actor Usuario a través de una línea recta. A la derecha aparece otro actor llamado Usuario No Socio unido a Usuario por una flecha terminada en un triángulo blanco en Usuario. Debajo aparece otro actor llamado Socio unido a Usuario por una flecha terminada en un triángulo blanco en Usuario, que está asociado con los casos de uso Generar pedido y Visualizar pedido. Generar pedido está unido a los actores Productos y Pedidos con líneas rectas y a su vez, Visualizar pedido está unido con Pedido con una línea recta.  Por otro lado, Visualizar Pedido está unido a través de flechas discontinuas sobre las que pone Extends con sentido hacia los casos de uso Cancelar Pedido y Comprar Artículo. Por último, Comprar Artículo está unido con una flecha discontinua sobre la que pone Includes con sentido al caso de uso Pagar y debajo de Comprar Artículo aparece dos casos de uso llamados Comprar Zapato y Comprar Complemento unidos a Comprar Artículo por una flecha terminada en un triángulo blanco en Comprar Artículo.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor de nombre Web Zapatería en forma de monigote, conectado con el caso de uso Consultar con forma de óvalo a través de una línea recta a su izquierda. Este a su vez está conectado al actor Usuario a través de una línea recta a su izquierda también. A la derecha aparece otro actor llamado Usuario No Socio unido a Usuario por una flecha terminada en un triángulo blanco en Usuario. Debajo izquierda, en el centro del diagrama, aparece otro actor llamado Socio unido a Usuario por una flecha terminada en un triángulo blanco en Usuario, que está asociado con los casos de uso Generar pedido en un óvalo azul a su izquierda y Generar pedido en un óvalo blanco abajo a la derecha. Generar pedido blanco está unido a los actores Productos  y Pedido con líneas rectas.  Por otro lado, Generar pedido en un óvalo azul está unido a través de líneas rectas con el actor Pedido por debajo y con el actor inicial Web Zapatería por encima.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor de nombre Web Cliente en forma de monigote, conectado con los casos de uso Entrega Catálogo y Realizar Venta con formas de óvalos a través de una línea recta. Estos a su vez están conectados al actor Empleado Ventas a través de una línea recta. Debajo de esto, aparece un actor de nombre Consultora en forma de monigote, conectado con el caso de uso Comprobar Resultados con forma de óvalo a través de una línea recta. Este a su vez está conectado al actor Empleado Publicitario a través de una línea recta. A su vez, aparece otro actor llamado Empleado unido a Empleado Ventas  y Empleado Publicitario por unas flechas terminadas en un triángulo blanco en Empleado. A su derecha, aparece el caso de uso Recibir Formación. Por otro lado, debajo del caso de uso Comprobar Resultados está unido a través de una flecha discontinua sobre la que pone Extends con sentido hacia el caso de uso Analizar Mercado y este está unido con una flecha discontinua sobre la que pone Includes con sentido al caso de uso Lanzar Campaña. Por último, debajo de Lanzar Campaña aparecen dos casos de uso llamados Lanzar Radio y Lanzar Televisión unidos a Lanzar Campaña por una flecha terminada en un triángulo blanco en Lanzar Campaña.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor en forma de monigote con el nombre Consultora unido por una línea recta con un caso de uso, en forma de óvalo blanco llamado Promocionar Quijote. Este a su vez está unido a otro actor llamado Empleado.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor de nombre Propietario en forma de monigote, conectado con el caso de uso Gestión Inmueble con forma de óvalo a través de una línea recta. A su vez, Gestión Inmueble está unido a través de flechas discontinuas sobre las que pone Extends con sentido hacia los casos de uso Alta, Baja y Modificación. Por último, Gestión Inmueble también está unida con una flecha discontinua sobre la que pone Includes con sentido al caso de uso Identificación.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Actor de nombre Inquilino en forma de monigote, conectado con los casos de uso Alquilar y Consultar con formas de óvalos a través de una línea recta.  Por un lado, Consultar está unido a través de flechas discontinuas sobre las que pone Extends con sentido hacia él mismo, los casos de Consular Piso y Consultar Local. Por último, Consultar también está unido con una flecha discontinua sobre la que pone Includes con sentido al caso de uso Identificarse. Por otro lado, Alquilar está unido a través de flechas discontinuas sobre las que pone Extends con sentido hacia él mismo, los casos de Alquilar Piso y Alquilar Local. Alquilar Piso está unido con una flecha discontinua sobre la que pone Includes con sentido al caso de uso Facilitar email y  Alquilar Local está unido con una flecha discontinua sobre la que pone Includes con sentido al caso de uso Facilitar tlf. Por último, Alquilar también está unido con una flecha discontinua sobre la que pone Includes con sentido al caso de uso Identificarse.

Autoría: Elena Pérez Nebreda.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Objetos de un diagrama de secuencia. En la zona superior hay un rectángulo verde con el nombre del objeto: Objeto_1 de la Clase_1 y debajo Cualquier objeto de la Clase_2. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1 en uno y :Clase_2 en otro. De cada objeto parte una línea de puntos hacia abajo.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Objetos de un diagrama de secuencia. En la zona superior hay un rectángulo verde con el nombre del objeto: *Tiempos de activación y *Finalización del objeto. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1 en uno y :Clase_2 en otro. De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Objetos de un diagrama de secuencia. En la zona superior hay un rectángulo verde con el nombre del objeto: Ejemplos de métodos con/sin parámetros de entrada y valores devueltos. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1 en uno y :Clase_2 en otro. De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos. De los rectángulos sale una flecha de Objeto_1:Clase_1  a :Clase_2 con el rótulo val_ret=nombre_metiparam_lnl. Por otro lado, de :Clase_2 sale una flecha hacia Objeto_1:Clase_1 con el rótulo nombre_met2().

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

En la zona superior hay un rectángulo verde con el nombre del objeto: Ejemplos de maro de condición. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1, :Clase_2 y :Clase_3. Se envían los siguientes mensajes en forma de flecha con los siguientes rótulos: de Objeto_1:Clase_1 a: Clase_2 el rótulo val_ret=nombre_met(), un poco más abajo, de Objeto_1:Clase_1 a:Clase_3 el rótulo nombre_met2(). Debajo aparece un rectángulo horizontal que ocupa solamente el rótulo que va desde Objeto_1:Clase_1 a :Clase_3, en la esquina superior izquierda aparece el rótulo optional y un poco más abajo entre corchetes val_ret = true. De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

En la zona superior hay un rectángulo verde con el nombre del objeto: Ejemplos de maro de iteración. En la zona inferior aparecen dos rectángulos naranjas con los nombres: Objeto_1:Clase_1, :Clase_2 y :Clase_3. Se envían los siguientes mensajes en forma de flecha con los siguientes rótulos: de Objeto_1:Clase_1 a:Clase_2 el rótulo val_ret=nombre_met(), un poco más abajo, de Objeto_1:Clase_1 a:Clase_3 el rótulo nombre_met2(). Debajo aparece un rectángulo horizontal que ocupa todo el ancho de la imagen, en la esquina superior izquierda aparece el rótulo loop y un poco más abajo entre corchetes val_ret!= true. De cada objeto parte una línea de puntos hacia abajo con rectángulos muy finos hacia abajo a modo de columna ancha con dos aspas al final de las líneas de puntos.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

En la zona superior hay varios rectángulos naranjas con los nombres de los siguientes objetos: :Responsable, Uno:Puerta y Dos:Puerta. Debajo aparece un rectángulo verde claro horizontal que ocupa todo el ancho de la imagen, en la zona superior izquierda aparece la etiqueta Concurrence y de la que sale dos rótulos: de :Responsable a Uno:Puerta OkUno = apertura() y de :Responsable a Dos:Puerta OkDos = apertura(). Además, hay dos bandas de color verde oscuro dentro del rectángulo verde claro. En la banda superior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo cierre() que va desde  :Responsable a Uno:Puerta.  En la banda inferior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo activarAcceso() que va desde  :Responsable a Dos:Puerta.  Por último, debajo del rectángulo verde claro, hay un recuadro gris en el que pone el siguiente mensaje: Observa como los métodos apertura no son bloqueantes.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

En la zona superior hay varios rectángulos naranjas con los nombres de los siguientes objetos: 1..n:Aficionado, :Responsable, Uno:Puerta y Dos:Puerta. Debajo aparecen dos rectángulos verdes claros horizontales que ocupan, el primero desde :Responsable hasta Dos:Puerta y el segundo todo el ancho de la imagen. Por un lado, en la zona superior izquierda del primer rectángulo verde aparece la etiqueta Concurrence y de la que salen dos rótulos: de :Responsable a Uno:Puerta OkUno = apertura() y de :Responsable a Dos:Puerta OkDos = apertura(). Además, hay dos bandas de color verde oscuro dentro del rectángulo verde claro. En la banda superior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo cierre() que va desde  :Responsable a Uno:Puerta.  En la banda inferior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo activarAcceso() que va desde  :Responsable a Dos:Puerta.  Por otro lado, en la zona superior izquierda del segundo rectángulo verde aparece la etiqueta Loop y de la que sale el rótulo entOk = validarEntrada () de Dos:Puerta a 1..n:Aficionado, y en la zona inferior aparece abajo entre corchetes por cada aficionado. Además, hay dos bandas de color verde oscuro dentro del rectángulo verde claro. En la banda superior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo accesoAficionado[] que va desde  Dos:Puerta a 1..n:Aficionado, y aparece entre corchetes EntOk. En la banda inferior, en la zona superior izquierda aparece la etiqueta Optional y aparece el rótulo avisoEntradaFalsa() que va desde  Dos:Puerta a :Responsable, y aparece entre corchetes ¡EntOk. Por último, debajo de los dos rectángulos verdes claros aparece el rótulo  cierre() que va desde Uno:Puerta a Dos:Puerta.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

En la zona superior hay varios rectángulos naranjas con los nombres de los siguientes objetos: :Discoteca, :Reloj, :Ropero y 1..n:Cliente.  Al principio, encontramos dos rótulos: rop=servicioRop() de :Discoteca hasta él mismo y [rop]abrirRopero() de :Discoteca a :Ropero. Debajo aparecen dos rectángulos verdes claros horizontales que ocupan, el primero desde :Ropero hasta 1..n:Cliente  y el desde :Reloj hasta 1..n:Cliente  . Por un lado, en la zona superior izquierda del primer rectángulo verde aparece la etiqueta Loop y de la que salen tres rótulos: de 1..n:Cliente  hasta él mismo atr=abrigo[] y de 1..n:Cliente a :Ropero ropAb=ropAbierto() y [ropAb&&abr]depAbierto(), y aparece entre corchetes por cada cliente. Por otro lado, en la zona superior izquierda del segundo rectángulo verde aparece la etiqueta Loop y de la que salen dos rótulos: hora=conHora() de :Ropero a :Reloj y [hora<4:00]entAbrigo() de :Ropero a 1…n:Cliente, y en la zona inferior aparece abajo entre corchetes por cada abrigo.  Por último, debajo de los dos rectángulos verdes claros aparece el rótulo [rop]cerrarRopero() que va desde :Discotecta a :Ropero.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

De izquierda a derecha se ve un círculo negro que marca el estado de acción inicial, un círculo negro rodeado de una circunferencia negra que marca el estado de acción final y un rectángulo

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

De izquierda a derecha se ven 3 rectángulos con las esquinas redondeadas. En el primero pone Abierta (estado), el segundo se divide en dos y en la parte de arriba pone Precaución (estado)  y en la parte de abajo Parpadear luz (acción) y en el tercero pone Vigilando (estado) con un par de rectángulos pequeños unidos con una línea en la esquina inferior izquierda (subestados).

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de estados con los siguientes elementos de izquierda a derecha, parte del nodo inicial en forma de círculo negro del que surge una flecha hacia un rectángulo con las esquinas redondeadas con el texto Pare.  De este parte una flecha con rótulo after 30 sec/Poner verde a otro rectángulo a la derecha con el texto Circule. De Circule sale una flecha a Precaución en la parte de arriba y Parpadear Luz en la parte de abajo con el rótulo after 30 sec[si peatón pulsa]/Poner naranja. De Precaución sale otra flecha con el rótulo after 30 sec/Poner rojo que vuelve a Pare.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de estados en el que en la zona izquierda se halla el nodo inicial parte una flecha a un estado en forma de rectángulo con las esquinas redondeadas llamada Funciones reloj, de ésta parten dos flechas: la 1º rotulada con Pulsado A/ [<3seg] pasa al mismo estado y la 2º rotulada con Pulsado A/ [>3seg]  pasa al estado Configurando hora y la acción 10 seg inactividad. De Configurando hora sale una flecha con rótulo Pulsando B/ hacia el estado Cambiando horas y la acción Incremento hora, que a su vez vuelve al estado Configurando hora. Además, de configurando hora también surgen dos flechas: una flecha hacia Funciones reloj y otra, con una flecha con rótulo Pulsando A/ al estado Configurando minutos y acción 10 seg inactividad.  De Configurando minutos sale una flecha con rótulo Pulsando B/ hacia el estado Cambiando minutos y la acción Incremento minuto, que a su vez vuelve al estado Configurando minutos. Además, de Configurando minutos también surgen dos flechas hacia Funciones reloj, una flecha normal y otra con rótulo Pulsando A/.  Por último, todo el diagrama anteriormente comentado se encuentra dentro de un rectángulo. De este rectángulo sale al nodo final con el rótulo Pulsando C/.  Al lado del nodo final hay un recuadro rosa que pone: Final tras pulsar C, independientemente del estado en el que se encuentre el reloj.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Diagrama de estados en el que en la zona superior se halla el nodo inicial, del que parten dos flechas: la 1º con el rótulo 16 años [si no estudia]/  hacia el estado Aprendiz  y la 2º con el rótulo 18 años/ hacia el estado Activo. Del estado Aprendiz salen dos flechas hacia Activo con rótulo 18 años/ y hacia Parado y acción Busca trabajo con rótulo Pierde trabajo/. Del estado Parado salen tres flechas hacia Aprendiz con rótulo Encuentra tarabajo [<18 años]/, hacia Activo con rótulo Encuentra tarabajo [>18 años]/ y hacia el nodo final con el rótulo 65 años/. Del estado Activo salen dos flechas hacia Prejubilado con rótulo [<65 años] / solicita prejubilación y hacia el nodo final con el rótulo 65 años/. Del estado Prejubilación sale una flecha hacia el nodo final con el rótulo 65 años/. Por último, al lado del nodo final hay un recuadro rosa que pone: Estado final jubilado.

Autoría: Ministerio de Educación.

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación con el proceso de creación de un diagrama de casos de uso frontera para el problema que se ha dado.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.

Presentación en la que se describe como se elabora el diagrama de secuencia.

Autoría: Ministerio de Educación

Licencia: Uso educativo no comercial.

Procedencia: Elaboración propia.