La ingeniería de software no es simplemente la programación de un sistema, sino la aplicación de métodos, principios y prácticas de ingeniería para construir software de calidad. En este maco, el análisis de requerimientos contituye una de las fases críticas del ciclo de vida del software. El objetivo principal de este es responder la pregunta: ¿Qué debe hacer el sistema?.
En esta etapa temprana, los errores son la principal causa del fracaso de los proyectos. La falta de requerimientos claros o la inestabilidad de los mismos suele resultar en sobrecostos, retrasos e incluso en la cancelación de los sistemas.
Ingeniería de Requerimientos
La ingeniería de requerimientos comprende a ese conjunto de actividades que son destinadas a descubrir, analizar, documentar y validar los servicios que debe ofrecer un sistema y las restricciones bajo las cuales debe operar.
Esta se puede estructurar en cuatro grandes actividades:
- Estudio de factibilidad: analiza la viabilidad técnica, económica y operacional del sistema.
- Obtención y análisis: recopila las necesidades de los usuarios. Además, resuelve conflictos o ambigüedades.
- Especificación: documentar los requerimientos en un formato estructurado, tal como el Documento de Requerimientos de Software (SRS).
- Validación: corroborar que los requerimientos reflejen con precisión los que los clinetes necesitan.
Tipos de Requerimientos
- Requerimientos Funcionales
- Requerimientos No Funcionales
Definen las propiedades de calidad y restricciones del sistema, más que sus funciones específicas. Tienden a aplicarse al sistema en su conjunto en lugar de centrarse en caracteristicas o servicios individuales.
Ejemplo: El tiempo de respuesta de la búsqueda de productos no debe superar los 2 segundos, incluso con alta concurrencia de usuarios.
Podemos ver que, si bien son distintos, ambos tipos estan interrelacionados. Un ejemplo de esto es: un requerimiento no funcional de seguridad ("el sistema debe proteger los datos de acceso") puede derviar en un requerimiento funcional ("implementar autenticación con usuario y contraseña").
Importancia de los Requerimientos No Funcionales
Mientras que los funcionales responden a la pregunta ¿qué hace el sistema?, los no funcionales responden cómo lo hace.
En la práctica, los requerimientos no funcionales suelen ser fundamental para determinar si un software será aceptado o no por los usuarios. Aspectos como el rendimiento, la seguridad o la fiabilidad son decisivos para la utilidad real de un sistema.
Estos se agrupan en:
- Del producto: rendimiento, seguridad, usabilidad, fiabilidad.
- De la organización: normas, metodologías, entorno de desarrollo.
- Externos: legales, éticos, regulatorios.
.png)
Comentarios
Publicar un comentario