Ingeniería de requisitos

Área ING_REQ

La ingeniería de requisitos es el conjunto de actividades y tareas del proceso de desarrollo de sistemas software que tiene como objetivos:

  • Definir, con la mejor calidad posible, las características de un sistema software que satisfaga las necesidades de negocio de clientes y usuarios y que se integre con éxito en el entorno en el que se explote. La definición de dicho sistema se realiza mediante lo que se conoce como una especificación de requisitos.
  • Gestionar las líneas base y las peticiones de cambios que se vayan produciendo en la especificación de requisitos, manteniendo la trazabilidad entre los requisitos y otros productos del desarrollo.

MADEJA recoge la ingeniería de requisitos como pieza clave para proporcionar un sistema de información con calidad. Esta calidad debe entenderse como la satisfacción del usuario ante el sistema de información proporcionado, que cubre las expectativas, deseos y necesidades que los usuarios manifestaron y que se supieron recoger e implementar.

El resultado de esta tarea o actividad no es estático, ya que a lo largo del proyecto pueden aparecer nuevos requisitos, ampliaciones, incluso eliminaciones o modificaciones de los existentes. Cuanto más tarde descubramos requisitos nuevos o haya desviaciones entre los requisitos y el producto, mucho mayor impacto tendrá en tiempo y coste.

Desde este punto de vista, se tiene que considerar la trazabilidad de los requisitos como aspecto fundamental en la gestión de un proyecto. Es decir, actualizar los requisitos del proyecto conforme se vayan produciendo tales cambios, pero sin olvidar la actualización , el impacto y la coherencia de la documentación asociada al mismo: análisis del sistema, diseño, pruebas de validación, etc. A continuación se muestra un gráfico que refleja las dependencias que se establecen entre la definición de requisitos y su gestión de proyectos, el desarrollo del mismo y la documentación de soporte que se genera.

 

La Ingeniería de Requisitos es una de las partes cruciales en el éxito de todo proyecto software. La aparición de errores o carencias durante la recogida de requisitos implica un descenso en la productividad del proceso de desarrollo y, por lo tanto, un incremento del coste del mismo. Incluir una adecuada ingeniería de requisitos en el ciclo de vida del software minimizará la posibilidad de que esto ocurra. La Ingeniería de Requisitos se convierte en pieza clave para poder medir la calidad de un sistema informático al poder iniciar la definición de la batería de pruebas que el sistema debe pasar, garantizando que éstas satisfacen los requisitos establecidos y por lo tanto el sistema es válido y funcionalmente es correcto.

Tener herramientas y mecanismos que recojan las necesidades de los usuarios y que se alimenten de las opiniones de los mismos, así como integrar los requisitos en todo el proceso de desarrollo, son parte de los objetivos que cubrimos en estos apartados dentro del proyecto MADEJA.

De forma estructurada, se presentan los objetivos, responsabilidades y productos de esta área.

Objetivos:

  • Fomentar la realización de una ingeniería de requisitos de acuerdo a los principios de calidad y eficiencia en el desarrollo establecida por MADEJA
  • Trasmitir la importancia de la ingeniería de requisitos y la trazabilidad de los requisitos como aspecto de un impacto directo en la calidad del sistema de información.

Responsabilidades:

  • Definir y establecer pautas que ayuden a estandarizar el desarrollo de procesos y actividades relacionadas con la ingeniería de requisitos de acuerdo a las buenas prácticas propuestas por MADEJA. Establecer recursos que faciliten la integración de estas buenas prácticas dentro del desarrollo común de aplicaciones
  • Facilitar herramientas que ayuden en la automatización, adopción y mantenimiento de las buenas practicas establecidas por MADEJA para el conjunto de actividades y procesos relacionadas
  • Facilitar la plantilla del documento de Especificación de Requisitos del Sistema (ERS).

Actividades:

  • Identificar las necesidades de negocio de clientes y usuarios
  • Desarrollar los requisitos de un sistema software que satisfaga las necesidades de negocio
  • Gestionar los requisitos del sistema software a desarrollar

La metodología de ingeniería de requisitos de MADEJA define una serie de pautas y procedimientos.

Como conceptos básicos en la Ingeniería de Requisitos se dispone de un modelo de roles que intervienen en el procedimiento general a realizar para seguir las actividades de la Ingeniería de Requisitos.

La aplicación de una metodología que guíe la Ingeniería de Requisitos es esencial para una adecuada realización de esta fase del desarrollo de software. Las contribuciones e influencias en la realización de esta metodología son las siguientes:

Influencias en la propuesta metodológica de Madeja
La propuesta de contenido que se hace en Madeja está basada principalmente en las siguientes fuentes: la metodología Métrica versión 3; el Capability Maturity Model Integration para desarrollo en su versión 1.2 (CMMI-DEV 1.2); las normas ISO/IEC-12207 e ISO/IEC-9126; los trabajos previos de los Drs. Amador Durán y Beatriz Bernárdez del Dpto. de Lenguajes y Sistemas Informáticos de la Universidad de Sevilla; y las recomendaciones del personal del proyecto del área de ingeniería Madeja (Rosa María Torres de Paz) de la Consejería de Economía, Innovación y Ciencia de la Junta de Andalucía, en especial las relativas a arquitecturas orientadas a servicios.

Objetivos

  • Definir, con la mejor calidad posible, las características de un sistema software que satisfaga las necesidades de negocio de clientes y usuarios y que se integre con éxito en el entorno en el que se explote. La definición de dicho sistema se realiza mediante lo que se conoce como una especificación de requisitos.
  • Gestionar las líneas base y las peticiones de cambios que se vayan produciendo en la especificación de requisitos, manteniendo la trazabilidad entre los requisitos y otros productos del desarrollo.

Subáreas 

Desarrollo de requisitos de un sistema que satisfaga las necesidades de negocio

A continuación se van a presentar las pautas y procedimientos que deben de seguirse para elaborar los requisitos de un sistema software que pueda satisfacer las necesidades de negocio que se establezcan por parte del cliente.

Gestión de requisitos del sistema software a desarrollar

La gestión de los requisitos es un aspecto fundamental dentro de la ingeniería de requisitos. Los objetivos que se busca con una gestión del cambio al nivel de requisitos. Es especialmente importante remarcar que esta gestión de cambio esta dirigida exclusivamente para los proyectos cerrados. Vamos a identificar que conseguimos con la gestión del cambio:

Identificación de las necesidades de negocio

El objetivo principal de un sistema a desarrollar se centra en el alineamiento de las necesidades de negocio del sistema, con las posibilidades técnicas reales. Una fase muy importante , por ende, es la identificación de las necesidades de negocio.