Independent software verification and validation
Encyclopedia
ISVV stands for Independent Software Verification and Validation. ISVV is targeted at safety-critical software systems and aims to increase the quality of software products, thereby reducing risks and costs through the operational life of the software. ISVV provides assurance that software performs to the specified level of confidence and within its designed parameters and defined requirements.

ISVV activities are performed by independent engineering teams, not involved in the software development process, to assess the processes and the resulting products. The ISVV team independency is performed at three different levels: financial, managerial and technical.

ISVV goes far beyond “traditional” verification and validation techniques, applied by development teams. While the latter aim to ensure that the software performs well against the nominal requirements, ISVV is focused on non-functional requirements such as robustness and reliability, and on conditions that can lead the software to fail. ISVV results and findings are fed back to the development teams for correction and improvement.

ISVV History

ISVV derives from the application of IV&V (Independent Verification and Validation) to the software. Early ISVV application (as known today) dates back to the early 1970s when the U.S. Army sponsored the first significant program related to IV&V for the Safeguard Anti-Ballistic Missile
Anti-ballistic missile
An anti-ballistic missile is a missile designed to counter ballistic missiles .A ballistic missile is used to deliver nuclear, chemical, biological or conventional warheads in a ballistic flight trajectory. The term "anti-ballistic missile" describes any antimissile system designed to counter...

 System.

By the end of the 1970s IV&V was rapidly becoming popular. The constant increase in complexity, size and importance of the software lead to an increasing demand on IV&V applied to software (ISVV).

Meanwhile IV&V (and ISVV for software systems) gets consolidated and is now widely used by organisations such as the DoD, FAA, NASA and ESA. IV&V is mentioned in [DO-178B], [ISO/IEC 12207] and formalised in [IEEE 1012].

Initially in 2004-2005, a European consortium led by the European Space Agency
European Space Agency
The European Space Agency , established in 1975, is an intergovernmental organisation dedicated to the exploration of space, currently with 18 member states...

, and composed by DNV(N), Critical Software SA(P), Terma(DK) and CODA Scisys(UK) created the first version of a guide devoted to ISVV, called "ESA Guide for Independent Verification and Validation" with support from other organizations, eg SoftWcare SL (E) , etc.

In 2008 the European Space Agency released a second version, being SoftWcare SL was the supporting editor having received inputs from many different European Space ISVV stakeholders. This guide covers the methodologies applicable to all the software engineering phases in what concerns ISVV.

ISVV Methodology

ISVV is usually composed by five principal phases, these phases can be executed sequentially or as results of a tailoring process.

ISVV Planning
  • Planning of ISVV Activities
  • System Criticality Analysis: Identification of Critical Components through a set of RAMS activities (Value for Money)
  • Selection of the appropriate Methods and Tools


Requirements Verification
  • Verification for: Completeness, Correctness, Testability


Design Verification
  • Design adequacy and conformance to Software Requirements and Interfaces
  • Internal and External Consistency
  • Verification of Feasibility and Maintenance


Code Verification
  • Verification for: Completeness, Correctness, Consistency
  • Code Metrics Analysis
  • Coding Standards Compliance Verification


Validation
  • Identification of unstable components/functionalities
  • Validation focused on Error-Handling: complementary (not concurrent!) validation regarding the one performed by the Development team (More for the Money, More for the Time)
  • Compliance with Software and System Requirements
  • Black box testing
    Black box testing
    Black-box testing is a method of software testing that tests the functionality of an application as opposed to its internal structures or workings . Specific knowledge of the application's code/internal structure and programming knowledge in general is not required...

     and White box testing
    White box testing
    White-box testing is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality...

     techniques
  • Experience based techniques

See also

  • Independent verification systems
    Independent verification systems
    Independent verification systems or Independent Dual Verification are voting machines that produce multiple independent auditable records of votes where the second record is used to check the first. To be considered "independent" at least one of the records must not be editable by the voting...

  • Software testing
    Software testing
    Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

  • Software engineering
    Software engineering
    Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

  • Software quality
    Software quality
    In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context:...

  • Static code analysis
    Static code analysis
    Static program analysis is the analysis of computer software that is performed without actually executing programs built from that software In most cases the analysis is performed on some version of the source code and in the other cases some form of the object code...

  • Formal verification
    Formal verification
    In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of intended algorithms underlying a system with respect to a certain formal specification or property, using formal methods of mathematics .- Usage :Formal verification can be...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK