Una vez hemos podido construir nuestros casos de uso, es el momento de intentar explicar comos se desarrollan los eventos en el tiempo, eso lo haremos describiendo algunos flujos

FL-000 – Navegación

  1. Usuario: llega a la pagina
  2. Sistema: presenta la pagina de bienvenida con opciones para:
    1. registrarse (FL-001)
    2. ver los artículos por grupo (FL-002)
    3. ver los productos por categorías(FL-003)
    4. ver el carrito de la compra (si hay una compra pendiente, deberá aparecer allí el importe.)(FL-004)
    5. enviar una petición de información(FL-005)
    6. una vista de los productos mas vendidos de la semana(FL-006)
    7. una vista resumen de los últimos artículos (FL-007)
  3. Usuario: Selecciona la acción que desea

FL-001 – Registrarse

  1. Usuario: llega a la pagina
  2. Sistema: Comprueba si lo puede identificar. Los siguientes pasos, solo si la respuesta es NO
  3. Sistema: Añade al menú la opción de registrarse
  4. Usuario: selecciona registrarse
  5. Sistema ofrece un formulario de registro
  6. Usuario rellena el formulario y lo envía
  7. Sistema: Valida el formulario, guarda el usuario como registrado, y envía un correo electrónico a la dirección facilitada
  8. Usuario: Cuando recibe el correo electrónico, vuelve a la pagina para confirmarlo
  9. Sistema: Busca entre registrados y lo marca como activo

Excepciones: Paso 7: Si el formulario no es valido, se informa al usuario del problema, y se vuelve al paso 5, con la información facilitada hasta el momento Paso 9: Si en un plazo de tiempo establecido, (1 semana) no se recibe la confirmación, el registro se borra

FL-002 – Ver los artículos por grupo

Este flujo lo inicia el usuario en FL-000 cuando selecciona la opción B

  1. Sistema: Presenta todos los grupos de articulo, indicando el numero de artículos que hay en cada grupo
  2. Usuario: Indica el grupo que desea revisar
  3. Sistema: Presenta todos los artículos de dicho grupo (solo Título y 500 primeros caracteres)
  4. Usuario: Selecciona el articulo que desea leer
  5. Sistema: Presenta el articulo seleccionado a pantalla completa.

Excepciones: El flujo no es obligatorio, el usuario puede interrumpirlo en cualquier momento, utilizando el flujo FL-000 – Navegación

FL-003 – ver los productos por categorías

Este flujo lo inicia el usuario en FL-000 cuando selecciona la opción C

  1. Sistema: Presenta todas las categorías de productos, indicando el numero de productos que hay en cada categoría
  2. Usuario: Indica la categoría que desea revisar
  3. Sistema: Presenta todos los productos de dicha categoría(solo Título y 500 primeros caracteres)
  4. Usuario: Selecciona el producto del que desea mas información
  5. Sistema: Presenta el producto seleccionado a pantalla completa.
  6. Usuario: Pulsa para comprar (FL-008), o decide ver otras zonas (FL-000)

Excepciones: El flujo no es obligatorio, el usuario puede interrumpirlo en cualquier momento, utilizando el flujo FL-000 – Navegación Paso 4 – Usuario puede pulsar para comprar el producto (FL-008)

FL-004 – Ver carrito compra

Este flujo lo inicia el usuario en FL-000 cuando selecciona la opción D

  1. Sistema: Presenta la lista de productos seleccionados con cantidad y precio
  2. Usuario: [Opción] seleccionar una cantidad para cambiarla
  3. Sistema: Pide nueva cantidad
  4. Usuario: Entra nueva cantidad
  5. Sistema: Guarda la modificación, recalcula precio y lo muestra
  6. Usuario: [Opción] Marca linea
  7. Sistema: Borra la linea marcada, recalcula total y lo muestra
  8. Usuario: [Opción] Selecciona «Continuar comprando»
  9. Sistema: Presenta pantalla en la que estaba cuando se pidió «Ver Carrito»
  10. Usuario: [Opción] Selecciona «Hacer pedido»
  11. Sistema: Inicia el flujo de compra. (Desarrollo en la fase 2)

Excepciones:  El usuario puede iniciar los pasos 2 y 6 cuantas veces desee, finalizando el sistema en el paso 1

FL-005 – Enviar Petición de información

Este flujo lo inicia el usuario en FL-000 cuando selecciona la opción E

  1. Sistema: Presenta formulario de petición de información
    1. Nombre Usuario
    2. dirección Correo Electrónico
    3. Asunto
    4. Texto
    5. Captcha
  2. Usuario: introduce la información solicitada
  3. Sistema: Comprueba la validez del Captcha y Correo Electrónico, y que existan datos en los demás campos
  4. Sistema: Envía mensaje al administrador de la pagina
  5. Sistema: presenta pantalla de agradecimiento al usuario

FL-006 – Productos mas vendidos

Este flujo lo inicia el usuario en FL-000 cuando selecciona la opción F

  1. Sistema: Presenta una lista de productos clasificados por cantidad vendida, descendente
  2. Enlaza con flujo FL-000

FL-007 – Últimos Artículos

Este flujo lo inicia el usuario en FL-000 cuando selecciona la opción G

  1. Sistema: Presenta una lista de los últimos artículos publicados, clasificados por fecha, descendente
  2. Enlaza con flujo FL-000

Y hasta aqui hemos llegando, en la siguiente entrega, establecemos los objetos que vamos a utilizar (clases)

3 comentarios sobre “Yii2-Desarrollando una aplicación. Flujos”

  1. Excelente artículo!…me ha sido de gran utilidad.

    Aprovecho esta instancia para hacer una consulta vinculada con Yii (2 específicamente). Espero me puedan orientar. Mi duda es sobre la herencia de modelos en yii. No logro resolver ese tipo de situaciones. A que me refiero. Por ejemplo:

    Tengo el model Personas y tengo varios modelos que heredan de el, entre ellos Empleados. Mi pregunta es cómo logro resolver ese tipo de cuestiones con yii? Quiero crear un Empleado y lo que actualmente hago es lo siguiente: creo las instancias de los modelos (Personas, Empleados) en el controller. Luego renderizo ambos modelos en la views (en un formulario). Luego de completarlo realizo un save (ya habiendo indicado que deseo crear un Empleado aunque la persona no existe aún). Por último en el controller create manejo la lógica para que primero se guarde la Persona y posteriormente el empleado (todo en una transaction).

    Esto me permite realizar lo que deseo, pero desde mi humilde opinión; creo que no es lo correcto. Espero me puedan ayudar. Si me pueden recomendar un artículo se los agradezco.

    Saludos

    1. Ante todo, disculpa la tardanza, pero tu comentario fue movido a SPAM y hasta hoy no lo he visto.
      Respecto a la pregunta, creo que tienes una idea equivocada sobre la herencia (por lo menos en Java). El heredar de una clase implica conseguir otra clase completa; tu lo que estás haciendo es guardar la información en dos tablas relacionadas. Eso es correcto, si eso es lo que quieres. EN PHP puedes simular la herencia por medio de la inclusión del fichero que define una clase, en la subclase, de tal forma que se comportará como un objeto único con la información y métodos de los dos objetos.
      Espero haber podido aclararte algo.
      Un saludo
      Miguel

      1. Gracias miguel…y estas en lo correcto. Por momentos me «enrolle» y olvide conceptos básicos como la herencia. Te comento que pude resolver mi duda tal cual lo indicas.

        Saludos y gracias.

        Bruno

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.