1. Requerimientos del usuario
1.1. Deben describir los requerimientos funcionales y no funcionales de tal forma que sean compatibles para los usuarios del sistema sin conocimiento técnico detallado.
1.1.1. Pueden surgir diversos problemas cuando se redactan con frases de lenguaje natural en un documento de texto:
1.1.1.1. Falta de claridad
1.1.1.2. Confusión de requerimientos
1.1.1.3. Conjunción de requerimientos
2. Requerimientos de software
3. Requerimientos funcionales y no funcionales
3.1. Requerimientos funcionales
3.1.1. Son declaraciones de los servicios que debe proporcionar el sistema.
3.2. Requerimientos no funcionales
3.2.1. Son restricciones de los servicios o funciones ofrecidos por el sistema.
3.2.1.1. Tipos:
3.2.1.1.1. Requerimientos del producto
3.2.1.1.2. Requerimientos organizacionales
3.2.1.1.3. Requerimientos externos
3.2.1.2. Métricas para su especificación
3.2.1.2.1. Rapidez
3.2.1.2.2. Tamaño
3.2.1.2.3. Facilidad de uso
3.2.1.2.4. Fiabilidad
3.2.1.2.5. Robustez
3.2.1.2.6. Portabilidad
4. Requerimientos del sistema
4.1. Son versiones extendidas de los requerimientos del usuario.
4.1.1. Notaciones para la especialización de requerimientos
4.1.1.1. Lenguaje natural estructurado
4.1.1.2. Lenguajes de descripción de diseño
4.1.1.3. Notaciones gráficas
4.1.1.4. Especificaciones matemáticas
5. Especificación de la interfaz
5.1. Tipos:
5.1.1. Interfaces de procedimientos
5.1.1.1. Los programas o subsistemas existentes ofrecen variedad de servicios.
5.1.2. Estructuras de datos
5.1.2.1. Los modelos gráficos de datos son las mejores notaciones para este tipo de descripción.
5.1.3. Representaciones de datos
5.1.3.1. Estas interfaces son muy comunes en sistemas de tiempo real embebido.
6. El documento de requerimientos de software
6.1. Es la declaración oficial de qué debe implementar los desarrolladores del sistema.
6.1.1. Usuarios
6.1.1.1. Clientes del sistema
6.1.1.2. Administradores
6.1.1.3. Ingenieros de sistemas
6.1.1.4. Ingenieros probadores del sistema
6.1.1.5. Nuevo nodo
6.1.2. Estructura
6.1.2.1. Prefacio
6.1.2.2. Introducción
6.1.2.3. Glosario
6.1.2.4. Definición de requerimientos del usuario
6.1.2.5. Arquitectura del sistema
6.1.2.6. Especificación de requerimientos del sistema
6.1.2.7. Modelos del sistema
6.1.2.8. Evolución del sistema
6.1.2.9. Apéndices
6.1.2.10. índice
7. Procesos de la ingeniería de requerimientos
8. Estudios de viabilidad
8.1. Un estudio de viabilidad es un estudio corto y orientado a resolver varias cuestiones:
8.1.1. ¿Contribuye el sistema a los objetivos generales de la organización?
8.1.2. ¿Se puede implementar el sistema utilizando la tecnología actual y dentro de las restricciones de coste y tiempo?
8.1.3. ¿Puede integrarse el sistema con otros sistemas existentes en la organización?
9. Obtención y análisis de requerimientos
9.1. En esta actividad, los ingenieros de software trabajan con los clientes y los usuarios finales del sistema.
9.1.1. Las actividades del proceso son:
9.1.1.1. Descubrimiento de requerimientos
9.1.1.1.1. Es el proceso de recoger información sobre el sistema propuesto y los existentes y extraer los requerimientos del usuario y del sistema de esta información.
9.1.1.2. Clasificación y organización de requerimientos
9.1.1.2.1. Toma la recopilación no estructurada de requerimientos, grupos relacionados de requerimientos y los organiza en grupos coherentes.
9.1.1.3. Ordenación por prioridades y negociación de requerimientos
9.1.1.3.1. Se refiera a ordenar según las prioridades los requerimientos, y a encontrar y resolver los requerimientos en conflicto a través de la negociación.
9.1.1.4. Documentación de requerimientos
9.1.1.4.1. Se documentan los requerimientos y se entra en la siguiente vuelta de la espiral.
10. Validación de requerimientos
10.1. Verificaciones sobre requerimientos en el documento de requerimientos:
10.1.1. Verificación de validez
10.1.2. Verificaciones de consistencia
10.1.3. Verificación de completitud
10.1.4. Verificación de realismo
10.1.5. Verificabilidad
10.2. Técnicas de validación de requerimientos:
10.2.1. Revisión de requerimientos
10.2.1.1. Es un proceso manual que involucra personas tanto de la organización del cliente como la del contratista.
10.2.1.1.1. Los revisores también pueden comprobar la:
10.2.2. Construcción de prototipos
10.2.2.1. En este enfoque de validación, se muestra un modelo ejecutable del sistema a los usuarios finales y a los clientes.
10.2.3. Generación de casos de prueba
10.2.3.1. Los requerimientos deben poder probarse.
11. Gestión de requerimientos
11.1. Es el proceso de comprender y controlar los cambios en los requerimientos del sistema.
11.1.1. Requerimientos duraderos y volátiles
11.1.1.1. Requerimientos duraderos
11.1.1.1.1. Son requerimientos relativamente estables que se derivan de la actividad principal de la organización y que están relacionados directamente con el dominio del sistema.
11.1.1.2. Requerimientos volátiles
11.1.1.2.1. Son requerimientos que probablemente cambian durante el proceso de desarrollo del sistema o después de que éste se haya puesto en funcionamiento.
11.1.2. Planificación de la gestión de requerimientos
11.1.2.1. La identificación de requerimientos
11.1.2.1.1. Cada requerimiento se debe identificar de forma única.
11.1.2.2. Un proceso de gestión del cambio
11.1.2.2.1. Éste es el conjunto de actividades que evalúan el impacto y coste de los cambios.
11.1.2.3. Políticas de rastreo
11.1.2.3.1. Estas políticas definen las relaciones entro los requerimientos, y entre éstos y el diseño del sistema que se debe registrar y la manera en que estos registros se deben mantener.
11.1.2.4. Ayuda de herramientas CASE
11.1.2.4.1. Las herramientas que se pueden utilizar van desde sistemas de gestión de requerimientos especializados hasta hojas de cálculo y sistemas sencillos de bases de datos.
11.1.3. Gestión del cambio de requerimientos
11.1.3.1. Etapas:
11.1.3.1.1. Análisis del problema y especificación del cambio
11.1.3.1.2. Análisis del cambio y cálculo de costes
11.1.3.1.3. Implementación del cambio