El proceso de recopilar, analizar y verificar las necesidades del cliente para un sistema es llamado Ingeniería de Requerimientos. La meta de la ingeniería de requerimientos (IR) es entregar una especificación de requisitos de software correcta y completa. Los requerimientos deben ser: Especificados por escrito. Como todo contrato o acuerdo entre dos partes posibles de probar o verificar. Si un requerimiento no se puede comprobar, entonces ¿cómo sabemos si cumplimos con él o no? Descritos como una característica del sistema a entregar. Esto es: que es lo que el sistema debe de hacer (y no como debe de hacerlo) Lo más abstracto y conciso posible. Para evitar malas interpretaciones Durante el proceso de REVISION de requerimientos, se deben llevar acabo verificaciones sobre requerimientos en el documento de requerimientos. Estas verificaciones comprenden: 1. Verificaciones de validez: Un usuario puede pensar que se necesitan un sistema para llevar acabo ciertas funciones. sin embargo el razonamiento y el análisis pueden identificar que se requieren funciones adicionales o diferentes. 2. Verificaciones de consistencia: Los requerimientos en el documento no deben contradecirse. Esto es, no deben haber restricciones propuestas por el usuario del sistema. 3. Verificaciones de completitud: El documento de requerimientos debe incluir requerimientos que definan todas las funciones y restricciones propuestas por el usuario del sistema. 4. Verificación del realismo: Utilizando el conocimiento de la tecnología existente, los requerimientos deben verificarse para asegurar que se pueden implementar. Estas verificaciones también deben tener en cuenta el presupuesto y la confección de agendas para el desarrollo del sistema. 5. Verificabilidad: Para reducir la posibilidad de discusiones entre el cliente y el contratista, los requerimientos del sistema siempre deben redactarse de tal forma que seas verificables. Esto significa que debe poder escribir un conjunto de pruebas que demuestren que el sistema a entregar cumple cada uno de los requerimientos especificados. En la revisión formal de requerimientos, el equipo de desarrollo debe <<conducir >> al cliente a través de los requerimientos del sistema, explicándolo las implicaciones de cada requerimiento. El equipo de revisión deba cada requerimiento para la consistencia además de verificar los requerimientos como un todo para la completitud.