Requirements Engineering for Software and Systems

Requirements validation and verification involves review, analysis, and testing to ensure that a system complies with its requirements. Compliance pertains to both functional and nonfunctional requirements. But the foregoing definition does not readily distinguish between verification and validation and is probably too long in any case to be inspirational or to serve as a mission statement for the requirements engineer. Barry Boehm (1984) suggests the following to make the distinction between verification and validation:
requirements validation: "am I building the right product?"
requirements verification: "am I building the product right?"
In other words, validation involves fully understanding customer intent and verification involves satisfying customer intent.
There are terrific benefits to implementing a requirements verification and validation program. These include
early detection and correction of system anomalies
enhanced management insight into process and product risk
support for lifecycle processes to ensure conformance to program performance and budget
early assessment of software and system performance
ability to obtain objective evidence of software and system conformance to support process
improved system development and maintenance processes
improved and integrated systems analysis model (IEEE 1012)
Requirements validation involves checking that the system provides all of the functions that best support the customer's needs and that it does not provide the functions that the customer does not need or want. Additionally, validation should ensure that there are no requirements conflicts and that satisfaction of the requirements can actually be demonstrated. Finally, there is some element of sanity check in terms of time...