Modelos y procesos de ingeniería de requerimientos
En el ámbito de la informática , la ingeniería de requerimientos es la disciplina que permite identificar, documentar y gestionar las necesidades de los usuarios y del negocio. Este curso…

Si el cliente solicita que el sistema esté disponible 99.9% del tiempo, ¿qué tipo de requerimiento está describiendo?
Durante la elicitación, ¿cuál de las siguientes técnicas es más adecuada para descubrir requisitos implícitos de un grupo de usuarios expertos?
En Scrum, ¿quién es responsable de priorizar los ítems del Product Backlog?
Un requisito que describe que el sistema debe generar un informe mensual de ventas pertenece a qué categoría?
Al definir el alcance del proyecto, ¿qué elemento NO forma parte del límite del sistema según la teoría de sistemas?
Si un proyecto utiliza el modelo iterativo, ¿cuál es la principal ventaja respecto al modelo en cascada?
Durante una entrevista, ¿qué tipo de pregunta es más eficaz para validar una afirmación específica del usuario?
En la clasificación de usuarios, ¿qué criterio se basa en la frecuencia con la que el sistema es utilizado?
¿Cuál es la diferencia esencial entre un objetivo 'Achievable' y uno 'Realistic'?
Modelos y procesos de ingeniería de requerimientos
En el ámbito de la informática, la ingeniería de requerimientos es la disciplina que permite identificar, documentar y gestionar las necesidades de los usuarios y del negocio. Este curso está estructurado a partir de preguntas típicas de un quiz, y aborda los conceptos clave que todo profesional debe dominar para diseñar sistemas robustos y alineados con los objetivos del cliente.
1. El modelo en V y sus fases de prueba
El modelo en V es una variante del modelo en cascada que enfatiza la correspondencia entre las fases de desarrollo y sus actividades de verificación y validación. Cada fase de diseño tiene una fase de prueba asociada:
- Especificación de requisitos ↔ Pruebas de aceptación
- Diseño de alto nivel ↔ Pruebas de sistema
- Diseño detallado ↔ Pruebas de integración
- Implementación (código) ↔ Pruebas unitarias
Por lo tanto, la prueba de integración del módulo de gestión de usuarios se asocia a la fase de desarrollo del mismo módulo, donde se combinan los componentes individuales para validar su interacción.
2. Requerimientos funcionales vs. no funcionales
Los requerimientos se clasifican en dos grandes grupos:
- Funcionales: describen qué debe hacer el sistema (p. ej., generar un informe mensual).
- No funcionales: establecen cómo debe comportarse el sistema (p. ej., disponibilidad, rendimiento, seguridad).
Cuando el cliente indica que el sistema debe estar disponible el 99.9 % del tiempo, está definiendo un requerimiento no funcional de disponibilidad, que constituye una restricción de calidad del servicio.
3. Técnicas de elicitación de requisitos
La elicitación es la fase inicial donde se descubren las necesidades del cliente. Dependiendo del tipo de información que se busca, se eligen distintas técnicas:
- Observación directa: ideal para capturar requisitos implícitos y comportamientos cotidianos de usuarios expertos.
- Entrevistas estructuradas o semiestructuradas: útiles para obtener respuestas específicas.
- Encuestas y cuestionarios: permiten recopilar datos de gran número de usuarios.
- Brainstorming y workshops: fomentan la generación de ideas en grupos.
Para descubrir requisitos implícitos de un grupo de usuarios expertos, la observación directa es la técnica más adecuada, ya que permite percibir acciones que los usuarios realizan sin articularlas explícitamente.
4. Gestión del Product Backlog en Scrum
Scrum es un marco ágil que organiza el trabajo en ciclos cortos llamados sprints. El Product Owner es la persona responsable de definir y priorizar los ítems del Product Backlog, alineando las funcionalidades con los intereses del cliente y los objetivos de negocio. El Scrum Master facilita el proceso, pero no decide la prioridad; el Development Team ejecuta las tareas, y la dirección del proyecto no interviene directamente en la priorización.
5. Clasificación de requisitos
Un requisito que indica que "el sistema debe generar un informe mensual de ventas" pertenece a la categoría de requerimiento funcional, ya que describe una interacción concreta del sistema con su entorno (producción de un informe). Otros tipos de requisitos incluyen:
- Requerimientos de calidad (p. ej., precisión de datos).
- Requerimientos no funcionales (p. ej., rendimiento, disponibilidad).
- Requerimientos de seguridad (p. ej., control de acceso).
6. Definición del alcance del proyecto y teoría de sistemas
Según la teoría de sistemas, el límite del sistema incluye:
- Los procesos internos que el sistema ejecuta.
- Los datos de entrada provenientes del entorno.
- Los usuarios externos que interactúan con el sistema.
En cambio, los componentes de hardware del entorno del cliente no forman parte del límite del sistema; son parte del entorno físico y no del propio sistema de software que se está desarrollando.
7. Modelo iterativo vs. modelo en cascada
El modelo iterativo permite desarrollar el producto en ciclos repetidos, incorporando retroalimentación y cambios de requisitos a medida que avanza el proyecto. La ventaja principal frente al modelo en cascada es la flexibilidad para adaptar los requisitos sin necesidad de rehacer fases completas. En contraste, el modelo en cascada sigue una secuencia rígida donde cada fase debe completarse antes de iniciar la siguiente, lo que dificulta la incorporación de cambios tardíos.
8. Técnicas de entrevista para validar afirmaciones
Durante una entrevista, la elección del tipo de pregunta depende del objetivo:
- Preguntas abiertas fomentan la exploración y la descripción de procesos.
- Preguntas cerradas (sí/no) son útiles para validar afirmaciones específicas y obtener respuestas concretas.
- Preguntas indirectas o de hipótesis pueden explorar escenarios, pero no son la mejor opción para validar hechos concretos.
Por lo tanto, para confirmar una afirmación del usuario, la pregunta cerrada es la más eficaz.
9. Buenas prácticas para la documentación de requerimientos
Una documentación clara y estructurada facilita la comunicación entre stakeholders y el equipo de desarrollo. Algunas recomendaciones incluyen:
- Utilizar un lenguaje sin ambigüedades y definir términos clave.
- Separar claramente los requerimientos funcionales de los no funcionales.
- Incluir criterios de aceptación que permitan verificar cada requisito.
- Mantener un registro de cambios y versiones para rastrear la evolución de los requerimientos.
10. Resumen y próximos pasos
Este curso ha cubierto los conceptos esenciales de la ingeniería de requerimientos, desde la relación entre fases del modelo en V hasta la priorización en Scrum, pasando por la clasificación de requisitos y la elección de técnicas de elicitación y entrevista. Para consolidar el aprendizaje, se recomienda:
- Practicar la elaboración de un Documento de Requerimientos del Software (SRS) usando los criterios aprendidos.
- Simular una sesión de observación directa con usuarios reales para identificar requisitos implícitos.
- Aplicar la priorización del Product Backlog en un proyecto ágil ficticio.
Dominar estos conceptos permitirá diseñar sistemas que cumplan con las expectativas del cliente, sean adaptables a cambios y mantengan altos estándares de calidad.
