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