Skip to main content

¿Qué es la ingeniería de requisitos?

Los grandes sistemas de hardware o software, como una nave espacial, tienen requisitos complejos. Los requisitos son una especificación de lo que debe construirse, cómo debe comportarse el sistema o restricciones en el proceso de construcción del sistema. La ingeniería de requisitos es el uso de buenas prácticas de ingeniería para comprender los requisitos antes de construir un sistema. Asume importancia porque las partes interesadas del sistema no son claras acerca de sus necesidades y tienen necesidades divergentes.

Un sistema complejo puede tener muchas partes interesadas, como las personas que encargan el sistema, los usuarios que usan uno o más aspectos del sistema y las personas que se benefician del sistema. También es posible que las partes interesadas incluyan miembros del público afectados por ciertas peculiaridades del sistema. Las partes interesadas tienen sus propias necesidades especiales. Por otro lado, las personas que desarrollan el sistema pueden ser técnicamente capaces, pero pueden no comprender completamente el punto de vista de las partes interesadas. La ingeniería de requisitos es la capacidad esencial que conecta estos lados.

Formalmente, la actividad de ingeniería de requisitos se divide en desarrollo de requisitos y gestión de requisitos. El desarrollo de requisitos se compone de obtención, análisis, especificación y verificación. La gestión de requisitos es el control de todo el proceso de requisitos, especialmente, el manejo de cualquier cambio en los requisitos. Algunos profesionales, por el contrario, simplemente llaman a toda la actividad como análisis de requisitos.

La obtención de los requisitos por parte de las partes interesadas se hace necesaria porque las partes interesadas a menudo no especifican completamente sus necesidades y no entienden las implicaciones del nuevo sistema. Las partes interesadas pueden no abrirse, ya que podrían temer el impacto en sus trabajos actuales. La obtención, por lo tanto, es un proceso cuidadoso y, posiblemente, largo, donde se necesita empatía y psicología sutil. Hay que tener cuidado de que las diferencias culturales entre los diferentes interesados, así como los desarrolladores, se unan.

Se utilizan varias técnicas para obtener requisitos. Los requisitos podrían obtenerse mediante entrevistas individuales, reuniones grupales y la observación de personas en sus tareas. Las técnicas que pueden generar requisitos incluyen grupos focales, creación de listas priorizadas, creación de prototipos y comparación con otros sistemas en funcionamiento. Los requisitos para obtener incluyen las necesidades comerciales del sistema, los procesos comerciales de los usuarios a medida que usan el sistema y las características funcionales del sistema. Además, se deben obtener los requisitos no funcionales, como el tiempo de respuesta, la disponibilidad del sistema y la facilidad de uso.

El paso de análisis en la ingeniería de requisitos forma requisitos de bajo nivel que satisfarán los requisitos originales de alto nivel. Esto incluye la creación de modelos conceptuales y prototipos para determinar la integridad de los requisitos. Los conflictos en las necesidades de las diferentes partes interesadas se encuentran con mayor frecuencia en modelos y prototipos que en una simple lista de requisitos. Los analistas deben agregar a los requisitos las características deseables del sistema, como seguridad, flexibilidad y facilidad de mantenimiento.

Los requisitos se especifican en un documento para facilitar la comprensión de todos los interesados. En el campo del software, el documento se llama SRS, que significa Especificación de requisitos de software. Los requisitos son verificados por los principales interesados. Esto es principalmente a través de presentaciones y el documento de especificación, pero también a veces con casos de prueba que corresponden a los requisitos.

La ingeniería de requisitos es principalmente una comunicación, una actividad más que técnica. Necesita habilidades multidisciplinarias. La ingeniería de requisitos ayuda a las partes interesadas y desarrolladores a resolver conflictos y los une en sus objetivos; Esto lleva a un sistema robusto.