60
Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Fragmentos Combinados: caminos alternativos 1

Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

  • Upload
    domien

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y

Computación

Diagramas de secuencia

Fragmentos Combinados:

caminos alternativos

1

Page 2: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

• Vamos a continuar con el ejemplo del Cinema y el modelamiento del

comportamiento del caso de uso “Crear Película”

2

Page 3: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo• De acuerdo con el análisis que hicimos en la lección previa, la clase

Cinema es la responsable de crear una nueva película.

• Estamos suponiendo en nuestro ejemplo que la película se crea con

su nombre que es lo que la identifica de manera única.

3

Page 4: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

EjemploDespués de nuestro análisis llegamos al diagrama de interacción que se muestra en la figura.

El objeto multiplex recibe el mensaje de creación, crea el objeto película y lo agrega la película a la cartelera.

4

Page 5: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

¿Qué pasaría si la película que se va a crear ya existe?

5

Page 6: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Según el diagrama de secuencias propuesto, habría duplicaciones de

películas y ese es un comportamiento que no queremos tener.

6

Page 7: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Para evitar las duplicaciones, el objeto multiplex es responsable de verificar

primero si el nombre de la película que ingresa como argumento del método

crearPelicula ya existe en su cartelera.

7

Page 8: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Para esto invoca a su método buscarPelicula(nombre) con el fin de buscar

si existe una película con el mismo nombre.

8

Page 9: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

EjemploAquí hay dos alternativas:

1. La película no existe en la cartelera y en este caso hay que crearla

2. La película ya existe y en este caso decidimos que no vamos a hacer nada

9

Page 10: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• Para poder representar alternativas o

ejecuciones condicionales en los

diagramas de secuencia debemos recurrir

a los fragmentos combinados.

10

Page 11: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje11

Un fragmento combinado es un agrupamiento lógico, representado por un rectángulo que contiene la estructura condicional que afecta el flujo de los mensajes.

En la figura podemos observar la sintaxis básica que es el rectángulo que delimita el alcance del fragmento.El tipo del fragmento se escribe en la parte superior izquierda.

Operador de interacción

Guardas o Condiciones

Fragmento Combinado

Fragmento Combinado

Operandos de

interacción

Page 12: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

12

Los fragmentos combinados sirven para representar secuencias de interacción que dependen de que una condición o guarda se cumpla.

Sirven para denotar caminos alternativos, secuencias que se pueden ejecutar en paralelo, secuencias en orden estricto, ciclos de ejecución y varios más.

En esta lección vamos a estudiar solamente los fragmentos combinados para representar caminos alternativos o condicionales y ciclos.

Por favor remitirse a las referencias si quiere conocer más sobre este tema.

Page 13: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

13

Vamos a precisar la definición de un fragmento combinado alternativo con el ejemplo de la creación de la película.

De acuerdo con lo planteado, queremos expresar que sólo crearemos la película en la cartelera si esta no existe.

Page 14: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Necesitamos poder expresar que lo que está señalado en la figura se

ejecutará únicamente si la película no existe

14

Page 15: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Para representar lo anterior en la sintaxis de los diagramas de secuencia, usamos un

fragmento combinado con operador de interacción alt (por alternativo)

15

Page 16: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Adicionamos una guarda o

condición que pregunta si el

resultado del método

buscarPelicula es igual a null

( lo que implicará que la

película no existe en la

cartelera)

16

Page 17: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

17

Sólo si la condición es

verdadera es posible crear un

nuevo objeto de tipo Película.

Note que la interacción para

la creación está ahora dentro

del rectángulo que define el

fragmento combinado.

Page 18: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo

Si la película existe la interacción de secuencia omite este paso, evitando duplicaciones de películas.

18

Page 19: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y

Computación

Diagramas de secuencia

Fragmentos Combinados: ciclos

19

Page 20: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

• Para continuar la explicación de los

fragmentos combinados vamos a retomar

el ejemplo de Universidad para modelar

un caso de uso más complejo.

20

Page 21: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo - Universidad

• Suponga que tenemos un diagrama de clases simple sobre una Universidad

21

Page 22: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo - Universidad

• Este diagrama modela los elementos básicos de la realidad, en donde una

Universidad se compone de programas, estudiantes, profesores y cursos.

22

Page 23: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

Departamento de Ingeniería de Sistemas y Computación - Universidad de los Andes | Nivelatorio de Modelaje

Ejemplo - Universidad

• Suponga que ahora nos interesa modelar la interacción de los

objetos en este sistema para describir el desarrollo del siguiente

caso de uso:– Calcular el número total de mujeres inscritas en un curso, dado su código de un

programa dado.

23

Page 24: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

24

Vamos a empezar a modelar el caso de uso “calcular el número de mujeres

inscritas en un curso, dado su código, de un programa dado”

Lo primero es que de acuerdo con el diagrama de clases, podemos replantear

el caso de uso de la siguiente forma:

“Calcular el número de estudiantes cuyo género es Femenino y que estén

inscritas en un curso, dado su código, de un programa dado su nombre.”

Page 25: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

25

Hay varias preguntas que debemos hacernos.

1. Quién es responsable de saber el género de un estudiante?

2. Quién es responsable de saber cuántos estudiantes con

genero femenino hay en un curso?

3. Quién es responsable de encontrar el curso que

corresponde a un código dado?

4. Quién es responsable de encontrar el programa que

corresponde a un nombre dado?

5. Quién es el responsable de recibir del actor externo la

información del nombre del programa y del código curso

sobre el que se quiere saber cuántas mujeres hay?

Page 26: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

26

Vamos a utilizar el patrón experto para responder estas preguntas.Para responder la primera pregunta: Quién es responsable de saber el género de un estudiante? Utilizando el patrón experto la respuesta es fácil:Es el estudiante quien tiene esa información.

Como consecuencia agregamos el método: darGenero() a la clase Estudiante.

Page 27: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

27

Para responder la segunda pregunta: “Quién es responsable de saber cuántos estudiantes con genero femenino hay en un curso?”Lo primero que hay que notar es que los estudiantes inscritos en un curso están modelados en el diagrama por una asociación compartida entre las clases Curso y Estudiante

Page 28: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

28

Siguiendo de nuevo el patrón experto, es el curso quién sabe cuáles son sus estudiantes inscritos y por lo tanto puede dar el número de mujeres que hay en esa colección.Agregamos entonces el método darNumeroMujeres() a la clase curso

Page 29: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

29

Para responder la tercera pregunta: “Quién es responsable de encontrar el curso que corresponde a un código dado? “Hay que notar que, de acuerdo con el diagrama propuesto, cada curso le pertenece a un programa.

Page 30: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

30

De acuerdo con el patrón experto, es el programa quién puede encontrar el objeto curso correspondiente a un código dado.

Page 31: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

31

Así, agregamos el método buscarCurso(código) a la clase Programa.

Page 32: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

32

Aquí podríamos cuestionarnos y en ese caso verificar con el experto del dominio de la Universidad, si los cursos en realidad le pertenecen a los programas o si le pertenecen a la universidad.

Page 33: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

33

Si, después de validar, encontráramos que los cursos le pertenecen a la universidad y que tienen un código único, tendríamos que cambiar nuestro diagrama de clases por el que se muestra en la figura.

Page 34: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

34

Hay una nueva asociación de composición que indica que la universidad es la dueña de los cursos.

Page 35: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

35

La asociación de composición entre Programa y Curso cambió por una asociación compartida.

Page 36: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

36

Note que en este caso el diagrama es más acoplado porque ahora hay una nueva relación entre dos clases. Sin embargo, para resolver este caso de uso no tendríamos que interactuar con los objetos programa lo que puede significar ser más eficiente. La decisión dependerá entonces del caso concreto de la universidad que estemos modelando.

Page 37: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

37

Para seguir con nuestro ejemplo, no vamos a cambiar el diagrama de clases y vamos a contestar la siguiente pregunta:“Quién es responsable de encontrar el programa que corresponde a un nombre dado?”

37

Page 38: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

38

38

Como la universidad es la dueña de los programas, siguiendo con el patrón experto

Page 39: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

39

agregamos el método buscarPrograma(nombre) a la clase Universidad.

Page 40: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

40

Nos falta contestar la pregunta:” Quién es el responsable de recibir del actor externo la información del nombre del programa y del código del curso sobre el que se quiere saber cuántas mujeres hay inscritas?”

Page 41: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

41

El responsable es la universidad quien está jugando el rol del controlador del sistema y recibe las peticiones de los actores externos. Para esto agregamos el método:darNumeroMujeres(nombrePrograma, código)

Page 42: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

42

Ahora vamos a construir un diagrama de secuencia para modelar el comportamiento del caso de uso.

Para simplificar, vamos a suponer que tenemos como condiciones iniciales, que el nombre del programa y el código del curso dados son válidos, es decir que ya existen en el sistema los objetos correspondientes a ese nombre y a ese código.

Page 43: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

43

Informalmente la secuencia de interacciones será:

1. Recibir la petición2. Encontrar el programa3. Delegar al programa la búsqueda de la respuesta4. El programa, debe encontrar el curso5. Y delegar en el curso la búsqueda de la respuesta

Page 44: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

44

1. Recibir la petición

Supondremos que ya hay en ejecución un objeto de la clase Universidad, que estamos llamando “u” , quien es el responsable de recibir la petición del actor externo

Page 45: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

45

2. Buscar el programa

El objeto “u” recibe en los argumentos el nombre del programa y el código del curso.

Este objeto es responsable de buscar el objeto Programa que corresponde al nombre dado. Recuerde que estamos suponiendo que el nombre es válido y que, por lo tanto, existe un objeto programa con ese nombre.

Page 46: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

46

Ahora que el objeto “u” ya tiene el objeto programa correspondiente con la petición, puede delegarle el resto de la interacción enviándole el mensaje darNumero Mujeres y enviándole como argumento el código del curso.

Page 47: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

47

3. Buscar el curso

El objeto programa es responsable de buscar el curso que corresponde al código dado. De nuevo, estamos suponiendo que existe un curso con ese código.

Page 48: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

48

Ahora que ya tiene le curso puede interactuar con él y delegarle la responsabilidad de calcular el número de mujeres que hay inscritas en ese curso.

Page 49: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

49

Vamos a modelar el comportamiento del método darMujeres() de la clase Curso en un nuevo diagrama de secuencia.

Page 50: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

50

Para calcular el número de mujeres debemos:1. iterar sobre toda la colección de los estudiantes inscritos en este curso 2. por cada uno preguntar el genero3. Si es femenino entonces sumar a la cuenta

Page 51: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

51

Vamos a introducir los fragmentos combinados para modelar una iteración o ciclo.

Igual que en el caso de los fragmentos combinados para los caminos alternativos, Debemos delimitar el alcance del ciclo con un rectángulo que tiene en la parte superior izquierda el tipo de fragmento, en este caso es un loop

Page 52: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

52

Para modelar un ciclo necesitamos los siguientes elementos:

1. La inicialización del ciclo

2. La guarda o condición del ciclo

3. El cuerpo del ciclo4. El avance en la

iteración

Veamos cómo se hace esto en el diagrama de secuencia

Page 53: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

53

En esta notación la forma de indicar que se está recorriendo la colección es utilizando la expresión:

*next() que retorna el próximo elemento de la colección

Entonces para inicializar el ciclo debemos utilizar esta expresión para señalar que tenemos el primer elemento. Esto se hace antes del rectángulo.estudiante = *next()

Page 54: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

54

Para la guarda del ciclo, la representamos con una condición que significa que si el valor es verdadero se ejecutarán la secuencia que sigue y que está dentro del rectángulo. Si la condición es falsa, se termina la ejecución del ciclo.En este ejemplo la guarda es (estudiante != null) aquí estamos utilizando la variable estudiante para recorrer la colección.

Page 55: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

55

En este ejemplo, el cuerpo del ciclo corresponde a la verificación de si el estudiante que se está procesando es mujer o no. Si lo es, debemos aumentar el numero de mujeres inscritas en ese curso. Sino, no hacemos nada

Page 56: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

56

Para modelar ese comportamiento, utilizamos un nuevo fragmento combinado de tipo alternativo o condicional

Page 57: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

57

Si existe un elemento en la colección estudiantes, se solicita el genero al objeto estudiante

genero = darGenero()

Page 58: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

58

Tenemos entonces la condición genero =‘F’ Que si es verdadera entonces incrementamos el número de mujeres. Si es falsa no haremos nada

Page 59: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

59

Una vez terminado el framento alt debemos avanzar en la iteración. Para esto de nuevo utilizamos:estudiante = *next()

Así queda completa la definición del ciclo.

Page 60: Fragmentos Combinados: caminos alternativos - Profesoresisis2603/dokuwiki/lib/... · Diagramas de secuencia ... • Suponga que tenemos un diagrama de clases simple sobre una Universidad

60

Con esto concluimos el ejemplo de ciclos con los fragmentos combinados