Software Verification and Validation Activities
What is V and V model? Explain its advantages and disadvantages over other models.
What is V and V model?- This model is an extension of the waterfall model.
- V – V model is also known as Verification and Validation model.
- This model is based on the association of the testing phase for each corresponding development stage.
- It determines the complex relationship between each phase of the software development is associated with testing.
How V – V model works?- Every single phase in the software development life cycle, there is directly associated testing phase.
- This is a complete ordered model where next phase starts only after completion of the previous phase.
Objectives of V – V model1. Reduce the Risks.
2. Ensure software product quality.
3. Reduce cost of system development process.
4. Assessment of whether or not the system is useful and usable.
- In the above V – V model diagram, it defines the different phases in V – V model of SDLC.
- At this model, the testing phases of the development phase is panned in parallel. There are verification phases on one side and Validation phases on the other side of the V – V model.
- The left side (Verification) analyzes and determines the requirements of the software to be developed and the right side (Validation) includes the testing activities. Both the left and right branches work concurrently and also established a relationship.
Advantages of V – V model- The processes are completed one at a time.
- This model is easy to understand and simple to use.
- This model is also working well for smaller software project, where requirements are understood very well.
- Each phase has specific deliverables and a review process.
- It covers all functional areas.
- It contains instructions and recommendations, which provide a detailed explanation of the problems involved.
Disadvantages of V – V model- In this model, there is a possibility of high risk and uncertainty.
- This model is not useful for long and ongoing projects.
- It is not suitable for the projects where requirements are at a moderate to high risk of changing.
- This model is not good for complex and object oriented projects.
Write a short note on Cleanroom software engineering.
What is Cleanroom software engineering?- It is a software development process which produces software with a certifiable level of reliability.
- It is a theory-based team-oriented process for development and certification of high-reliability software systems under statistical quality control.
- The main objective of Cleanroom process is the development of software that exhibits zero failures in use.
- It is developed by Harlan Mills and several of his colleagues, including Alan Hevner at IBM in 1970.
- It combines mathematically based methods of software specification, design and correctness verification with usage-based testing to certify software for use.
Why is Cleanroom software engineering important?- In software engineering, it takes too much time and money to handle errors and for debugging.
- Using the Cleanroom approach these factors are removed or limited for efficient development.
Why are Cleanroom techniques not widely used?- Some people believe Cleanroom techniques are too theoretical, mathematical and radical for use in software development and also it differs from other formal methods.
Strategies of Cleanroom software engineering1. Formal Specification
2. Incremental Development
3. Structured Programming
4. Static Verification
5. Statistical Testing
1. Formal Specification- The software should be formally specified. A state transition model which shows the system responses to stimuli is used to express the specification.
2. Incremental Development- The software is partitioned into increments which are developed and validated separately using the Cleanroom process.
3. Structured Programming- Only a limited number of control and data abstraction constructs are used.
- These constructs are used to apply the correctness preserving transformations to the specification to create the program code.
4. Static Verification- The developed software is statically verified using software inspections. There is no unit or module testing process for code components.
5. Statistical Testing- The integrated software increment is tested statistically, to determine its reliability. These statistical tests are based on an operational profile which is developed in parallel with the system specification.
In the above figure, it shows how these essential strategies are integrated. It avoids software defects by using formal methods of development and inspection process. The defects are avoided by manufacturing in an ultra-clean atmosphere. The main objective of the Cleanroom process of software development is zero-defect software.
Advantages of Cleanroom software engineering- It reduces the failures in the program execution.
- It has short development cycles and used incremental strategy.
- It helps to keep a product life longer.
- It helps to prevent defect during fabrication.
- It mostly focuses on defect prevention rather than defect removal.