- Hierarchy: Indica que las tareas en el mismo nivel representan diferentes tareas que están bajo el mismo nivel de abstracción. Para más facilidad, esto se lee como “Para hacer la Tarea 1, yo necesito hacer la tarea 2 y/o la 3”.
- Enabling: Indica que la segunda tarea no puede iniciar hasta que la primera sea realizada. Ejemplo: Cuando te registras en la universidad, primero escoges los cursos que vas a tomar y luego te enlistas no?. No es que primero te enlistas en cursos y luego escoges en que cursos quieres estar. Un ejemplo más fácil, supongamos que estás comprando en Amazon…. Primero seleccionas un producto, y solo cuando haces la selección se habilita la opción para indicar la cantidad de productos a comprar.
- Enabling with information passing: La segunda tarea no puede ser realizada hasta que la primera tarea sea realizada. Y además, la información obtenida en la primera tarea es insumo o punto de entrada para la segunda. Ejemplo: En un sistema quieres hacer una consulta. El sistema presenta los resultados solo después de que tu hayas ingresado la consulta. Los datos que se presentan dependen de la consulta que escribiste.
- Choice: Especifica dos tareas habilitadas. Una vez que una haya iniciado, la otra no estará habilitada en el futuro. Ejemplo: Cuando se accede a un sitio web, es posible hacer dos cosas: o navegar por el sitio o acceder alguna información detallada.
- Concurrent tasks: Las tareas pueden ser realizadas en cualquier orden, o al mismo tiempo, incluyendo la posibilidad de iniciar una tarea antes de que la otra haya sido completada. Ejemplos:
- En un formulario, puedo ingresar el nombre primero y luego el apellido o al revés, el orden no importa. La tarea de ingresar el nombre e ingresar el apellido pueden ser realizadas en cualquier orden.
- Para verificar la carga de un conjunto de cursos, necesito considerar en qué términos se encuentran y cuánto trabajo representa cada curso.
- Concurrent communicating tasks: Aquí, las tareas pueden intercambiar información mientras se realizan concurrentemente. Un Ejemplo es una aplicación donde el sistema despliega un calendario y este a la vez que se despliega, se resaltan los eventos o citas que el usuario previamente había ingresado.
- Task Independency: Las tareas pueden ser realizadas en cualquier orden, pero cuando la una inicia…ésta tiene que finalizar antes de que la otra pueda iniciarse. Ejemplo: Cuando instalas un software, puedes primero registrarlo o ejecutar directamente la instalación. Pero si inicias el registro, entonces tienes que terminarlo para proceder con la instalación, y viceversa.
- Disabling: Esto es cuando la primera tarea (usualmente una tarea iterativa), es completamente interrumpida por la segunda tarea. Ejemplo: Cuando ingresas texto en formulario, que es un proceso iterativo, y luego envías el formulario. Una vez que lo envías, ya está deshabilitada la opción de ingresar datos en el formulario. En el restaurante, por ejemplo, seleccionas los platos que vas a comer, pero una vez que ya confirmas….la selección de platos está deshabilitada.
- Suspend-resume: La primera tarea puede ser interrumpida por la segunda y cuando la segunda termina, entonces la primera puede ser reactivada a partir del estado en el que se quedó. Ejemplo: Cuando estas editando el texto en Word y pones imprimir. El cuadro modal de impresión se abre interrumpiendo lo que estas editando. Cuando enviar de imprimir, se cierra el cuadro de dialogo y puedes seguir editando.
- El signo * indica que la tarea es recursiva, es decir, que se puede ejecutar una y otra vez.
- Los corchetes "[ ]" que encierran el nombre de la tarea indican que la tarea es opcional.