Los requerimientos para un sistema son las descripciones de los servicios que un sistema debería proveer y las restricciones en su operación. El proceso de encontrar, analizar, documentar y revisar estos servicios y restricciones es llamado ingeniería de requerimientos (por sus siglas en inglés, RE).
Los requerimientos pueden ser de dos tipos:
- Requerimientos de usuario: también conocidos como requerimientos de alto nivel; son declaraciones (statements) en un lenguaje natural más diagramas, de los servicios que se espera que el sistema brinde a los usuarios del sistema y las restricciones bajo las cuales debe operar.
- Requerimientos de sistema: son descripciones más detalladas de las funciones del sistema de software, servicios, y restricciones de operación. Estos suelen ser clasificados como requerimientos funcionales o requerimientos no funcionales (no necesariamente son independientes).
- Requerimientos funcionales: estos son declaraciones de servicios que el sistema debería proveer, como el sistema debería reaccionar a entradas particulares y como el sistema deberá comportarse en situaciones particulares.
- Requerimientos no funcionales: estos son restricciones en los servicios o funciones ofrecidas por el sistema. Ellos incluyen restricciones en el tiempo, en los procesos de desarrollo y restricciones impuestos por estantandares. La figura 1 muestra la clasificación de los requerimientos no funcionales.
Hay maneras fundamentales para la obtención de requerimientos:
- Entrevista, donde tú hablas con la gente sobre lo que ellos hacen.
- Observación o etnografía, donde tu ves a la gente haciendo su trabajo para ver que usan, cómo lo usan, etc.
- Aplicación de cuestionarios.
- Lluvia de ideas, donde un conjunto de personas aportan ideas de manera creativa y de forma ilimitada.
La especificación de requerimientos es el proceso de escribir los requerimientos del usuario y del sistema en un documento. Idealmente la especificación se hace de acuerdo al tipo de requerimiento.
- Los requerimientos de usuario:
- Son casi siempre escritos en lenguaje natural suplementados por diagramas y tablas en el documento de requerimientos. Tu deberías usar lenguaje natural con simples tablas, formularios y diagramas intuitivos.
- Los requerimientos de sistema:
- Lenguaje natural: son escritos usando sentencias enumeradas en un lenguaje natural, cada sentencia debería representar un requerimiento.
- Lenguaje natural estructurado: son escritos en un lenguaje natural en una forma estándar o con una plantilla.
- Notaciones gráficas: modelos gráficos, implementados por notacion de texto, son usados para definir los requerimientos funcionales por el sistema, UML (Unified Modeling Language), casos de uso y diagramas de secuencias son comúnmente usados.
- Especificaciones matemáticas: son basados en conceptos matemáticos como máquinas de estado o conjuntos.
El documento de requerimientos de software es una declaración oficial que los desarrolladores deberán implementar. Este incluye ambos requerimientos, los requerimientos de usuario y de sistema. Las metodologías ágiles argumentan que los requerimientos cambian tan rápidamente que el documento de requerimientos está fuera de fecha tan pronto como este fue escrito, así que el esfuerzo se desperdicia en gran medida. Más que un documento formal, las metodologías ágiles a menudo recopilan los requerimientos de los usuarios de forma incremental y los escriben en tarjetas o pizarras como historias cortas de usuarios.
Comentarios
Publicar un comentario