Ingenieria de Requisitos (Gestión de Requisitos)

¿Qué se entiende por Ingeniería de Requisitos (IR)?

La Ingeniería de Requisitos es definida como: La disciplina de la Ingeniería de Software que trata con actividades y intenta comprender las necesidades exactas de los usuarios del sistema software, para traducir tales necesidades en instrucciones precisas y no ambiguas las cuales podrían ser posteriormente utilizadas en el desarrollo del sistema. (Loucopoulos,1995).
Ingeniería de Requerimientos es el proceso en el cual se transforman los requerimientos declarados por los clientes , ya sean hablados o escritos, a especificaciones precisas, no ambiguas, consistentes y completas del comportamiento del sistema, incluyendo funciones, interfaces, rendimiento y limitaciones. Es el proceso mediante el cual se intercambian diferentes puntos de vista para recopilar y modelar lo que el sistema va a realizar. (Richard, 1997).

Ingeniería de Requisitos (IR). Sus Características

La Ingeniería de Requisitos en una disciplina de la Ingeniería de Software, en ésta, se identifica el propósito del sistema, dirección y alcance. Abarca un conjunto de actividades y transformaciones que pretenden comprender las necesidades de un sistema software y convertir la declaración de estas necesidades en una descripción completa, precisa y documentada siguiendo un determinado estándar.
La Ingeniería de Requerimientos cumple un papel primordial en el proceso de producción de software, ya que enfoca un área fundamental: la definición de lo que se desea producir. Su principal tarea consiste en la generación de especificaciones correctas que describan con claridad, sin ambigüedades, en forma consistente y compacta, el comportamiento del sistema; de esta manera, se pretende minimizar los problemas relacionados al desarrollo de sistemas. El proceso de Ingeniería de Requisitos tiene como objetivos, descubrir, modelar, validar y mantener un documento de requisitos, utilizando una combinación de métodos, herramientas y actores.

Actividades de la Ingeniería de Requerimientos

Las actividades de la Ingeniería de Requisitos más comunes son:

Estudio de Viabilidad

Elicitación de Requisitos

Análisis de Requisitos

Especificación de Requisitos(ERS)

Validación de Requisitos

Gestión de Requisitos


Estudio de viabilidad: El estudio de viabilidad permite decidir si el sistema propuesto es conveniente. Es un estudio rápido y orientado a conocer. Además tiene en cuenta si el sistema contribuye a los objetivos de la organización, si el sistema se puede realizar con la tecnología actual y con el tiempo y el coste previsto, y si el sistema puede integrarse con otros existentes.

Elicitación de requisitos: Elicitación (o extracción o determinación) de requisitos, es el proceso mediante el cual los usuarios descubren, revelan, articulan y comprenden los requisitos que desean. En esta etapa, se trata de descubrir los requisitos y personal técnico trabaja con los clientes y usuarios para descubrir el dominio de la aplicación, los servicios que se deben proporcionar y las restricciones. Puede implicar a usuarios finales, encargados, ingenieros implicados en el mantenimiento, expertos del dominio, etc. Son los llamados participantes (stakeholders).

Análisis de requisitos: El proceso de razonamiento sobre los requisitos obtenidos en la etapa anterior, detectando y resolviendo posibles inconsistencias o conflictos, coordinando los requisitos relacionados entre sí, etc.

Especificación de Requisitos (ERS):La especificación de requisitos de software es la actividad en la cual se genera el documento, con el mismo nombre, que contiene una descripción completa de las necesidades y funcionalidades del sistema que será desarrollado; describe el alcance del sistema y la forma en como hará sus funciones, definiendo los requerimientos funcionales y los no funcionales. En la SRS se definen todos los requerimientos de hardware y software, diagramas, modelos de sistemas y cualquier otra información que sirva de soporte y guía para fases posteriores.

Validación de requisitos: El proceso de confirmación, por parte de los usuarios, de que los requisitos especificados son válidos, consistentes, y completos.

Validación de Requisitos La validación es la actividad de la IR que permite demostrar que los requerimientos definidos en el sistema son los que realmente quiere el cliente; además revisa que no se haya omitido ninguno, que no sean ambiguos, inconsistentes o redundantes.
En este punto es necesario recordar que la ERS debe estar libre de errores, por lo tanto, la validación garantiza que todos los requerimientos presentes en el documento de especificación sigan los estándares de calidad. No debe confundirse la actividad de evaluación de requerimientos con la validación de requerimientos. La evaluación verifica las propiedades de cada requerimiento, mientras que la validación revisa el cumplimiento de las características de la especificación de requisitos. Durante la actividad de validación pueden hacerse preguntas en base a cada una de las características que se desean revisar. La validación de requerimientos es importante pues de ella depende que no existan elevados costos de mantenimiento para el software desarrollado.

Gestión de Requisitos: Es el proceso de manejar los requisitos que cambian durante el desarrollo del sistema.
El proceso de Ingeniería de Requisitos se adapta a los diferentes modelos de procesos de Ingeniería de Software como pueden ser, de cascada, espiral, prototipazo, transformacional, etc.

Personal involucrado en la Ingeniería de Requerimientos

Realmente, son muchas las personas involucradas en el desarrollo de los requerimientos de un sistema. Es importante saber que cada una de esas personas tienen diversos intereses y juegan roles específicos dentro de la planificación del proyecto; el conocimiento de cada papel desempeñado, asegura que se involucren a las personas correctas en las diferentes fases del ciclo de vida, y en las diferentes actividades de la IR.
No conocer estos intereses puede ocasionar una comunicación poco efectiva entre clientes y desarrolladores, que a la vez traería impactos negativos tanto en tiempo como en presupuesto. Los roles más importantes pueden clasificarse como sigue:

Usuario final: Son las personas que usarán el sistema desarrollado. Ellos están relacionados con la usabilidad, la disponibilidad y la fiabilidad del sistema; están familiarizados con los procesos específicos que debe realizar el software, dentro de los parámetros de su ambiente laboral. Serán quienes utilicen las interfaces y los manuales de usuario.

Usuario Líder: Son los individuos que comprenden el ambiente del sistema o el dominio del problema en donde será empleado el software desarrollado. Ellos proporcionan al equipo técnico los detalles y requerimientos de las interfaces del sistema.

Personal de Mantenimiento: Para proyectos que requieran un mantenimiento eventual, estas personas son las responsables de la administración de cambios, de la implementación y resolución de anomalías. Su trabajo consiste en revisar y mejorar los procesos del producto ya finalizado.

Analistas y programadores: Son los responsables del desarrollo del producto en sí; ellos interactúan directamente con el cliente.

Personal de pruebas: Se encargan de elaborar y ejecutar el plan de pruebas para asegurar que las condiciones presentadas por el sistema son las adecuadas. Son quienes van a validar si los requerimientos satisfacen las necesidades del cliente.

Otras personas que pueden estar involucradas, dependiendo de la magnitud del proyecto, pueden ser: administradores de proyecto, documentadores, diseñadores de base de datos, entre otros.

Comments