04 - Ingeniería de requerimientos - Análisis

04 - Ingeniería de requerimientos - Análisis

¿Cómo se realiza el análisis de requerimientos en un sistema complejo?

Introducción al análisis de requerimientos

  • El ingeniero describe la complejidad del sistema, mencionando que hay mucha documentación pero falta claridad sobre por dónde empezar.

Contexto del sistema

  • La información obtenida durante el levantamiento de requerimientos es extensa y debe ser analizada para entender el contexto, la información utilizada, el procesamiento y el comportamiento esperado del sistema.
  • Se destaca que las aplicaciones de software no operan de manera aislada; interactúan con otros actores dentro de un sistema complejo, lo que se denomina "contexto del sistema".
  • Es crucial identificar otras aplicaciones y software en uso, así como registrar cuántas instancias existen y sus versiones.
  • Se debe prestar atención a la infraestructura de red existente o necesaria para asegurar una comunicación efectiva entre los sistemas.
  • La comprensión del hardware y dispositivos utilizados por los usuarios es esencial para tomar decisiones tecnológicas adecuadas.

Dominio de la información

  • Los conceptos de información varían según el dominio; por ejemplo, un "cliente" puede referirse a una persona en negocios o a un dispositivo en informática.
  • Es importante definir las entidades de información utilizadas en el software y sus relaciones basadas en el dominio específico donde operan los usuarios.
  • El análisis del dominio actúa como un diccionario que ayuda a entender qué significa cada concepto utilizado frecuentemente por los usuarios.

Procesamiento de la información

  • En este análisis, se deben definir claramente cómo y dónde ocurren las actividades relacionadas con el procesamiento de la información dentro del software.
  • Un ejemplo es cómo diferentes sistemas (como Facebook Login) utilizan la misma información del usuario para distintos propósitos sin intercambiarla entre ellos.

Comportamiento del sistema

Comportamiento del Sistema ante Errores y Excepciones

Manejo de Estados en el Sistema

  • Si la información es completa y el usuario solicita guardarla, el sistema debe transitar a un estado de éxito.
  • Si la información es incompleta, el sistema debe permanecer en el mismo estado y no permitir que se guarde.

Respuesta ante Eventos Críticos

  • Es crucial definir cómo debe comportarse el sistema ante alta demanda o ancho de banda limitado.
  • Por ejemplo, si un servidor tarda más de 20 segundos en completar una petición, el cliente debería cancelarla e iniciar una nueva.

Interacción del Usuario con la Aplicación

Comprensión del Comportamiento del Usuario

  • Es importante analizar cómo los usuarios interactúan con la aplicación, incluyendo personas, hardware y software.
  • Las acciones pueden incluir peticiones mediante texto, interfaces gráficas, carga y descarga de archivos.

Importancia de Claridad en Requerimientos

  • No debemos asumir que entendemos completamente las interacciones; es vital aclarar siempre con los usuarios.

Modelado de Requerimientos

Herramientas para Modelar Sistemas

  • El análisis de requerimientos permite entender el sistema a alto nivel sin entrar en descripciones detalladas.
  • Se pueden utilizar diagramas como:
  • Diagramas de flujo,
  • Diagramas de actividad,
  • Diagramas de secuencia,
  • Diagramas de clases.

Recomendaciones para Documentación

  • Evitar sobre-documentar; usar diagramas contextuales y diagramas específicos para representar información y comportamiento.

Especificación de Requerimientos

Establecimiento del Entendimiento Común

Video description

¡Hola! Bienvenido a la serie "Cómo deleitar a tus usuarios". En esta serie de videos hablaremos de Ingeniería de Requerimientos, un conjunto de actividades muy importantes, que nos permiten construir soluciones que deleitan a nuestros usuarios. Este cuarto video hablamos de cómo analizar la información para entender el modelo del sistema 👩‍🎓 ¡Entrénate con mis cursos en Udemy! 🔵 Fundamentos de requerimientos: https://www.udemy.com/course/mas-alla-de-las-user-stories-fundamentos-de-requerimientos/?couponCode=FEB_24 🔴 Análisis y recolección de requerimientos: https://www.udemy.com/course/analisis-y-recoleccion-agil-de-requerimientos-de-software/?couponCode=FEB_24 🟢 Estimación de proyectos de software: https://www.udemy.com/course/estimacion-de-proyectos-de-software-de-novato-a-ninja/?referralCode=FEB_24 📣 Ahora puedes adquirir mis guías para desarrollar requerimientos: 📘 Guía Breve para escribir User Stories de alto impacto. Cómprala en: https://leanpub.com/guiaparacrearuserstoriesdealtoimpacto 📙 Guía para recolectar requerimientos como profesional: https://leanpub.com/recolectarequerimientoscomoprofesional Aprende a diseñar una estrategia de recolección de requerimientos con técnicas como entrevistas, talleres, observaciones. 📚 Adquiere ambas a un precio especial: https://leanpub.com/b/requerimientosdesoftwaredeelite/ 📖 Plantillas y ejemplos gratuitos: https://www.edgarfernandez.com/plantilla-para-requerimientos-de-software/ La Ingeniería de Requerimientos (o de requisitos) es el conjunto de actividades que te permiten recolectar, analizar, especificar y validar los requisitos de un sistema de software. Estas actividades, cuando son bien realizadas, garantizan la satisfacción de los usuarios y el desarrollo de un software adecuado. Cuando no lo son, nos conducen a proyectos problemáticos, fricciones y disputas con los clientes y a llegar a la solución incorrecta. En la siguiente serie de videos, hablaremos de las actividades de requerimientos, su importancia, qué debes considerar para cada una y diferentes formas de conseguir el buen entendimiento de tus usuarios. Sigue mis redes: Facebook: https://www.facebook.com/SoftwareEngineeringCoach Twitter: https://twitter.com/EdgarTeamCoach Web: https://www.edgarfernandez.com