IV&V Services Overview
What is Verification and Validation?
Verification answers the question, “Are we building the product right?” Verification is the process of determining whether or not the software products of a given phase of the SDLC fulfill the established requirements for that phase.
Validation answers the question, “Are we building the right product?” Validation evaluates the software products throughout the SDLC to ensure those products meet the mission and customer’s needs.
What is Independence?
IEEE defines independence in IV&V as three parameters: technical independence, managerial independence, and financial independence.
- Technical independence is achieved by IV&V practitioners who use their expertise to assess development processes and products independent of the developer.
- Managerial independence requires responsibility for the IV&V effort to be vested in an organization separate from the organization responsible for performing the system implementation. The IV&V effort independently selects the segments of the software and system to analyze and test, chooses the IV&V techniques, defines the schedule of IV&V activities, and selects the specific technical issues and problems to act upon. Most projects view V&V as sufficient and do not recognize the added value the independence brings.
- Financial independence requires that the IV&V budget be vested in an organization independent from the development organization. NASA’s IV&V Program is funded from NASA’s Mission Support Directorate (MSD). Projects may directly fund services.
What is Software IV&V?
Software IV&V is a systems engineering process employing rigorous methodologies for evaluating the correctness and quality of the software product throughout the SDLC. Software IV&V is adapted to the characteristics of the project.
- Higher confidence that delivered products are error free and meet the user needs.
- An increased likelihood of uncovering high-risk errors early in the development lifecycle.
- Allows time for the design team to evolve a comprehensive solution rather than forcing them into a makeshift fix to accommodate deadlines
- Delivery of ongoing status indicators and performance reporting to decision makers (e.g. program managers).
- The customer is provided an incremental preview of system performance with the chance to make early adjustments.
- Reduction of the need for rework from the developing contractor thereby reducing total costs to programs and projects.
- Facilitation of the transfer of system and software engineering best practices.