Overview
SDL: V-Model
By: Krystian Wojcicki, Bohan Jiang, Vincent Teng, Michael Kuang
Works Cited
"Dissecting the V Model." The Blogging Terrier Den Bloggande Terriern. Wordpress, 4 Apr. 2011. Web. 5 Feb. 2015. <https://jockeholm.wordpress.com/2011/04/04/dissecting-the-v-model/>.
Firesmith, Donald. "Using V Models for Testing." SEI Blog. Carnegie Mellon University, 11 Nov. 2013. Web. 4 Feb. 2015. <http://blog.sei.cmu.edu/post.cfm/using-v-models-testing-315>.
Rouse, Margaret. "V-Model (Vee-Model)." TechTarget. Tech Target. Web. 5 Feb. 2015. <http://searchsoftwarequality.techtarget.com/definition/V-Model>.
"The V Model." Compensationanalytics.com. Compensation Analytics, 1 Jan. 2006. Web. 5 Feb. 2015. <http://www.compensationanalytics.com/_resources/vtestingmodel.pdf>.
"V Model." Waterfall Model. Waterfall Model, n.d. Web. 04 Feb. 2015. <http://www.waterfall-model.com/v-model-waterfall-model/>.
"V- Model Design." Tutorialspoint. Tutorialspoint, n.d. Web. 03 Feb. 2015. <http://www.tutorialspoint.com/sdlc/sdlc_v_model.htm>.
"V-Model (software Development)." Wikipedia. Wikimedia Foundation. Web. 4 Feb. 2015. <http://en.wikipedia.org/wiki/V-Model_(software_development)>.
"What Is STLC V-Model?" Software Testing Help. SOFTWARE TESTING HELP. Web. 5 Feb. 2015. <http://www.softwaretestinghelp.com/what-is-stlc-v-model/>.
"What Is V-model- Advantages, Disadvantages and When to Use It?" ISTQB Exam Certification. Wordpress. Web. 4 Feb. 2015. <http://istqbexamcertification.com/what-is-v-model-advantages-disadvantages-and-when-to-use-it/>.
Overview
How the V-Model could be improved
- Put forth by Paul E. Brook in 1986
- Extension of the waterfall model
- Directly associated testing phase for each phase
Disadvantages
- Include users and other stakeholders, starting from their needs all the way to actual use of features
- De-emphasize phases; Instead, have work cycles with feedback to gradually refine the solution
- Include a phase or cycle that would allow for an early prototype of the project/software
- De-emphasize specialist roles and boundaries between them, instead, focus on teams working to optimize as a whole.
- Rigid, with little flexibility and adjusting scope is difficult and expensive.
- No early prototypes of the software are produced.
- Model does not provide a clear path for problems found during testing phases.
- It assumes that the requirements do not change.
- High risk and uncertainty.
- Poor model for complicated/object orientated projects
Overview
- Each phase reflects the previous phase
- Can only proceed once all objectives and testing of the phases are complete
- Validation phases are parallel to its corresponding verification phase
- Ensures verification phases meets its expectation
Advantages
+ Highly disciplined model w/
phase completed one at a time
+ Development of test plans early
on during the life cycle
+ Model is simplistic and ideal for
small projects where
specifications are easily
understood
+ Overall easy to manage
+ Each phase has specific
deliverables and a review process
Requirement Analysis
Verification Phase:
- Project function and features are decided
- General discussion between project personnel-A user requirement documentation will be put forth
- Document is required by the business analysts to convey the function of the system to the users
Three main objectives:
1. Broad requirements
2. Essential tests
3. Conditions that must be tested
- Divides responsibility into roles
- Increases divide instead of promoting collaboration
- Best utilized within small groups of designers and developers
Number of Designers
Type of Development Environments
Independence in:
- Methods and tools
- Rules and Regulations
Applied in small or medium sized projects
- Ample Technical Expertise
- Available Technical Resources
System Design
Verification Phase:
- Possible designs formulated
- Process done with requirement document
- in mind
- If design is compromised, user will be
- informed and changes will be made accordingly
- Diagrams and data dictionary are produced
if(designIsCompromised == true){
userInformed = true;
makeProperChanges();
}
Types of projects in which V-Model is used
V-Model is used when:
- Requirements are well defined, clearly documented and fixed.
- Product definition is stable.
- Technology is not dynamic and is well understood by the project team.
- There are no ambiguous or undefined requirements.
- The project is short.
Architecture Design
Validation Phase:
Validation Phase
- Realize the modules and the functionality of the modules which have to be incorporated
- Data transfer & communication between the internal modules and with the outside world (other systems) defined
- Integration tests designed and documented during this stage
- Units, called modules, can be decoded separately by the programmer
Unit Testing
- Tests for any bugs and eliminates them
Integration Testing or Interface Testing
- Test the coexistence and communication of the internal modules within the system
System Testing
- Checks the entire system's functionality and the communication of the system with external systems
Acceptance Testing
- Testing the product in user environment
Module Design
Validation Phases:
- Internal design for all the system modules is specified
- Architectural design is broken up into sub units to be studied and explained separately
- Broad requirements are heavily refined
- Moderate testing and verification
Coding Phase
- Coding of system modules
- Best suitable programming language decided upon
- Coding guidelines and standards
- Code is reviewed and optimized