Recuerde que: “La parte más difícil en la construcción de sistemas software es decidir precisamente qué construir… ninguna otra parte es tan ardua como establecer los requisitos, ninguna otra parte perjudica tanto el resultado, ninguna otra parte es tan difícil de rectificar posteriormente” (Brooks, 1995)
La ingeniería de requisitos (IR) es quizás la etapa más importante en el desarrollo de software, y una de las más descuidadas. La mayoría de personas involucradas en el desarrollo de software consideran que generar documentos, saber escribir, interpretar y plasmar las necesidades de los clientes es un trabajo trivial que no requiere personal especializado para realizar la tarea. Lo cierto es que esta disciplina va adquiriendo relevancia cuando se examinan los indicadores frente a fracasos de proyectos por la ineficiente educción de requisitos.
La Ingeniería de Requisitos según Loucopoulos (Loucopoulos et al., 1989) y la IEEE (IEEE, 1990) es un proceso cuyo objetivo final es plasmar en un documento las necesidades reales que clientes/usuarios esperan satisfacer con la construcción de un sistema. De otro lado, Zave y Jackson (Zave et al., 1997) la definen como una rama de la Ingeniería de software que apoya al analista de sistemas en su tarea de traducir los objetivos del mundo real a funciones, restricciones y requisitos de manera que dicha traducción sea consistente con las necesidades de los clientes, y que no se obtengan resultados equivocados o de mala calidad.
Una de las principales dificultades que afronta el ingeniero de requisitos está relacionada con el establecimiento de la comunicación con clientes y usuarios, que en muchas ocasiones conlleva a malas interpretaciones de sus necesidades, tal como se muestra en la siguiente figura:
Posterior a esta breve conceptualización en el tema, es preciso abordar con mayor detalle cada una de las fases de este proceso para conocer las actividades, roles y artefactos entregados. En este blog se amplía la fase de captura (también llamada elicitación o educción de requisitos) que es quizás la más crítica y difícil de realizar ya que permite al analista buscar, investigar y ayudar a los clientes y usuarios a documentar sus necesidades. Específicamente usted podrá encontrar un conjunto de recursos de soporte para el aprendizaje de labores relacionadas con la captura de requisitos.
En la fase de captura de requisitos se hacen tareas como:
- Identificar fuentes de información y stakeholders acorde al desarrollo de software planeado
- Recolectar información de las fuentes seleccionadas.
- Procesar datos consultados y recopilados.
- Hacer retroalimentación con las fuentes de información consultadas.
En las siguientes entradas se presentan algunos materiales relevantes.