3. Ingeniería de requerimientos: concepto, objetivos y actividades

3.1 Introducción

La ingeniería de requerimientos es el conjunto de actividades que permite descubrir, analizar, documentar, validar y gestionar los requerimientos de un sistema de software. Su propósito es lograr que el equipo comprenda qué debe construirse y por qué.

No se trata únicamente de preguntar al cliente qué quiere. En muchos proyectos, las necesidades no están expresadas con claridad, los interesados tienen expectativas distintas, existen restricciones ocultas y algunas reglas de negocio se conocen solo por la experiencia diaria de los usuarios.

Por eso, la ingeniería de requerimientos organiza el trabajo necesario para transformar información dispersa en requerimientos útiles, verificables y acordados.

3.2 Concepto de ingeniería de requerimientos

Podemos definir la ingeniería de requerimientos de esta forma:

La ingeniería de requerimientos es la disciplina que estudia y aplica métodos, técnicas y prácticas para obtener, analizar, especificar, validar y administrar los requerimientos de un sistema de software.

Esta definición muestra que los requerimientos no aparecen completos de una sola vez. Deben trabajarse mediante actividades ordenadas que permitan comprender el problema, registrar acuerdos y mantener los requerimientos actualizados cuando el proyecto cambia.

3.3 ¿Por qué se habla de ingeniería?

Se habla de ingeniería porque el trabajo con requerimientos requiere método, criterio, análisis y control. No alcanza con tomar notas en una reunión. Hay que seleccionar técnicas adecuadas, distinguir información relevante, detectar conflictos, evaluar factibilidad y producir documentación útil para distintas personas.

Además, los requerimientos tienen consecuencias técnicas y económicas. Una mala definición puede afectar diseño, programación, pruebas, tiempos, costos y aceptación del producto. Por eso deben tratarse con rigor.

La ingeniería de requerimientos busca reducir la improvisación y aumentar la claridad en una etapa donde todavía hay mucha incertidumbre.

3.4 Objetivos principales

Los objetivos de la ingeniería de requerimientos pueden resumirse en los siguientes puntos:

  • Comprender el problema real que debe resolverse.
  • Identificar a los interesados y sus necesidades.
  • Definir el alcance del sistema y sus límites.
  • Descubrir requerimientos funcionales, no funcionales y restricciones.
  • Analizar la consistencia, completitud y factibilidad de los requerimientos.
  • Documentar los requerimientos en una forma clara y verificable.
  • Validar los requerimientos con usuarios, cliente y equipo técnico.
  • Gestionar cambios durante el proyecto.
  • Mantener trazabilidad entre necesidades, requerimientos, diseño, pruebas y entregas.

Estos objetivos apuntan a una idea central: construir una solución que responda a necesidades reales y que pueda ser aceptada por quienes la solicitaron.

3.5 Actividades principales

Aunque cada organización puede usar nombres diferentes, la ingeniería de requerimientos suele incluir cinco actividades principales:

Actividad Propósito Resultado esperado
Elicitación Obtener información desde usuarios, clientes, documentos, sistemas existentes y contexto de negocio. Necesidades, problemas, objetivos, reglas y restricciones iniciales.
Análisis Ordenar, clasificar, depurar y evaluar la información obtenida. Requerimientos más claros, conflictos detectados y prioridades iniciales.
Especificación Documentar los requerimientos en una forma comprensible y verificable. Documento, lista, historias, criterios de aceptación, modelos o artefactos equivalentes.
Validación Confirmar que los requerimientos reflejan las necesidades reales y son aceptables. Requerimientos revisados, corregidos y aprobados.
Gestión Controlar cambios, versiones, prioridades y trazabilidad durante el proyecto. Requerimientos actualizados y cambios administrados con impacto conocido.

3.6 Elicitación de requerimientos

La elicitación consiste en descubrir y obtener información relevante. No siempre se usa la palabra "captura" porque los requerimientos rara vez están listos esperando a ser recogidos. Muchas veces deben descubrirse, aclararse y construirse mediante conversación y análisis.

Algunas técnicas habituales son entrevistas, cuestionarios, observación del trabajo real, talleres, análisis de documentos, revisión de sistemas existentes y prototipos.

El resultado de la elicitación suele ser información todavía incompleta o desordenada. Por eso debe pasar por análisis antes de convertirse en requerimientos definitivos.

3.7 Análisis de requerimientos

El análisis permite estudiar la información obtenida para detectar problemas, clasificar requerimientos y mejorar su calidad. En esta etapa se revisa si hay ambigüedades, contradicciones, omisiones, duplicaciones o requerimientos poco factibles.

También se identifican prioridades y dependencias. Por ejemplo, un requerimiento puede depender de una integración externa, de una regla legal o de otro requerimiento que debe implementarse antes.

El análisis ayuda a pasar de pedidos generales a requerimientos más precisos y útiles para el proyecto.

3.8 Especificación de requerimientos

La especificación consiste en documentar los requerimientos. La forma de documentación puede variar: un documento formal, una lista priorizada, historias de usuario, criterios de aceptación, diagramas, prototipos o una combinación de varios artefactos.

Lo importante es que la especificación sea comprensible para sus destinatarios. Un cliente necesita entender qué está aceptando; el equipo técnico necesita información suficiente para diseñar y construir; el equipo de pruebas necesita criterios para verificar el resultado.

Una especificación útil no es necesariamente la más extensa, sino la que comunica con claridad lo necesario para construir y validar el sistema.

3.9 Validación de requerimientos

La validación busca responder una pregunta clave: ¿estos requerimientos representan realmente lo que los interesados necesitan?

Validar no es lo mismo que revisar ortografía o formato. Implica confirmar contenido, alcance, reglas, prioridades, restricciones y criterios de aceptación. Participan usuarios, cliente, analistas, equipo técnico y, cuando corresponde, otras áreas como seguridad, legal o auditoría.

Algunas técnicas de validación son revisiones guiadas, inspecciones, prototipos, simulación de escenarios, pruebas de aceptación tempranas y lectura conjunta de requerimientos.

3.10 Gestión de requerimientos

La gestión de requerimientos se ocupa de mantener los requerimientos bajo control durante el proyecto. Esto incluye registrar cambios, evaluar impacto, mantener versiones, actualizar prioridades y conservar la relación entre requerimientos y otros elementos del proyecto.

La gestión es necesaria porque los requerimientos cambian. Un cambio puede ser válido, pero debe analizarse. Si se acepta sin revisar impacto, puede afectar costos, tiempos, pruebas, diseño o compromisos ya asumidos.

Gestionar requerimientos no significa impedir cambios; significa decidirlos con información suficiente.

3.11 La trazabilidad como apoyo

La trazabilidad permite relacionar un requerimiento con su origen, con otros requerimientos, con elementos de diseño, con pruebas y con entregas. Esto ayuda a entender por qué existe un requerimiento y qué partes del proyecto se ven afectadas si cambia.

Por ejemplo, si cambia una regla de cálculo de descuentos, la trazabilidad puede indicar qué pantallas, servicios, pruebas y documentos deben revisarse.

Aunque la trazabilidad se estudiará con más profundidad en temas posteriores, conviene reconocer desde ahora que es una herramienta de control y comunicación.

3.12 Actividades iterativas, no lineales

Las actividades de ingeniería de requerimientos se presentan por separado para estudiarlas mejor, pero en la práctica no siempre ocurren en línea recta. Es común elicitar información, analizarla, escribir requerimientos, validarlos y luego volver a preguntar porque apareció una duda o un conflicto.

En enfoques ágiles e iterativos, los requerimientos se refinan progresivamente. En proyectos más formales, puede existir una especificación inicial más completa. En ambos casos, el objetivo sigue siendo el mismo: mantener claridad suficiente para avanzar con criterio.

La ingeniería de requerimientos es un proceso de aprendizaje: el equipo aprende sobre el problema, los usuarios, el contexto y las condiciones de aceptación.

3.13 Roles involucrados

La ingeniería de requerimientos suele involucrar varios roles. Los nombres pueden cambiar según la organización, pero las responsabilidades principales son similares.

  • Analista de requerimientos: organiza el relevamiento, analiza información, documenta y facilita acuerdos.
  • Cliente o patrocinador: define objetivos de negocio y valida prioridades generales.
  • Usuarios: explican tareas, problemas, excepciones y necesidades del trabajo real.
  • Equipo técnico: evalúa factibilidad, riesgos, dependencias e impacto de implementación.
  • Equipo de pruebas: ayuda a formular criterios verificables y escenarios de aceptación.
  • Responsables de seguridad, legal o auditoría: aportan restricciones obligatorias cuando el contexto lo requiere.

La calidad de los requerimientos mejora cuando estos roles participan a tiempo y con objetivos claros.

3.14 Productos o artefactos habituales

Durante la ingeniería de requerimientos pueden generarse distintos artefactos. Algunos son formales y otros son más livianos, según el tipo de proyecto.

  • Lista de interesados.
  • Descripción del problema y objetivos del sistema.
  • Alcance y límites de la solución.
  • Requerimientos funcionales.
  • Requerimientos no funcionales.
  • Reglas de negocio.
  • Restricciones técnicas, legales u operativas.
  • Historias de usuario y criterios de aceptación.
  • Escenarios principales y alternativos.
  • Prototipos o bocetos de interfaz.
  • Matriz de trazabilidad.
  • Registro de cambios y decisiones.

No todos los proyectos necesitan todos estos artefactos. La documentación debe ser suficiente para comunicar, acordar, construir y verificar, sin convertirse en una carga innecesaria.

3.15 Ejemplo aplicado

Supongamos que una clínica quiere un sistema para gestionar turnos médicos. La ingeniería de requerimientos podría organizar el trabajo de esta manera:

Actividad Aplicación al ejemplo
Elicitación Entrevistar a recepcionistas, médicos, pacientes y administración; observar cómo se asignan turnos actualmente.
Análisis Distinguir turnos comunes, sobreturnos, cancelaciones, especialidades, horarios y reglas de prioridad.
Especificación Documentar funciones como solicitar turno, cancelar turno, consultar agenda y notificar recordatorios.
Validación Revisar con usuarios si los flujos cubren el trabajo real y si faltan excepciones importantes.
Gestión Registrar cambios cuando la clínica decide agregar turnos en línea para pacientes.

Este ejemplo muestra que la ingeniería de requerimientos no es un documento aislado, sino un conjunto de actividades conectadas.

3.16 Errores frecuentes

Al aplicar ingeniería de requerimientos pueden cometerse errores que reducen su valor:

  • Limitarse a copiar pedidos sin analizar necesidades reales.
  • Hablar solo con directivos y no con usuarios que realizan el trabajo diario.
  • Especificar soluciones técnicas antes de comprender el problema.
  • Documentar demasiado, pero sin claridad ni utilidad práctica.
  • No validar los requerimientos con las personas adecuadas.
  • No registrar cambios ni decisiones importantes.
  • Ignorar requerimientos no funcionales hasta el final.
  • No revisar contradicciones entre reglas de negocio.

Evitar estos errores requiere disciplina, comunicación y revisión continua.

3.17 Qué debes recordar de este tema

  • La ingeniería de requerimientos organiza el trabajo necesario para obtener requerimientos útiles.
  • Sus actividades principales son elicitación, análisis, especificación, validación y gestión.
  • Los requerimientos deben descubrirse, aclararse, documentarse y mantenerse actualizados.
  • La validación confirma que los requerimientos representan necesidades reales.
  • La gestión permite controlar cambios, versiones, prioridades y trazabilidad.
  • Las actividades no siempre ocurren en forma lineal; suelen repetirse y refinarse.
  • El objetivo final es reducir incertidumbre y orientar la construcción del producto correcto.

3.18 Conclusión

La ingeniería de requerimientos aporta orden y criterio a una de las partes más delicadas del desarrollo de software: entender qué se necesita construir. Su valor está en transformar información incompleta, dispersa o ambigua en requerimientos claros, verificables y gestionables.

Un buen proceso de ingeniería de requerimientos no garantiza que nunca habrá cambios, pero permite que esos cambios se comprendan y se administren mejor.

En el próximo tema estudiaremos con más detalle la diferencia entre necesidades, problemas, objetivos y requerimientos, una distinción esencial para evitar soluciones apresuradas y comprender el propósito real del sistema.