fbpx
Wikipedia

V-model (software development)

In software development, the V-model[2] represents a development process that may be considered an extension of the waterfall model, and is an example of the more general V-model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. The horizontal and vertical axes represent time or project completeness (left-to-right) and level of abstraction (coarsest-grain abstraction uppermost), respectively.

The V-model of the Systems Engineering Process.[1]

Project definition phases edit

Requirements analysis edit

In the requirements analysis phase, the first step in the verification process, the requirements of the system are collected by analyzing the needs of the user(s). This phase is concerned with establishing what the ideal system has to perform. However it does not determine how the software will be designed or built. Usually, the users are interviewed and a document called the user requirements document is generated.

The user requirements document will typically describe the system's functional, interface, performance, data, security, etc. requirements as expected by the user. It is used by business analysts to communicate their understanding of the system to the users. The users carefully review this document as this document would serve as the guideline for the system designers in the system design phase. The user acceptance tests are designed in this phase. See also Functional requirements.

There are different methods for gathering requirements of both soft and hard methodologies including; interviews, questionnaires, document analysis, observation, throw-away prototypes, use case and static and dynamic views with users.

System design edit

Systems design is the phase where system engineers analyze and understand the business of the proposed system by studying the user requirements document. They figure out possibilities and techniques by which the user requirements can be implemented. If any of the requirements are not feasible, the user is informed of the issue. A resolution is found and the user requirement document is edited accordingly.

The software specification document which serves as a blueprint for the development phase is generated. This document contains the general system organization, menu structures, data structures etc. It may also hold example business scenarios, sample windows and reports to aid understanding. Other technical documentation like entity diagrams, data dictionary will also be produced in this phase. The documents for system testing are prepared.

Architecture design edit

The phase of the design of computer architecture and software architecture can also be referred to as high-level design. The baseline in selecting the architecture is that it should realize all which typically consists of the list of modules, brief functionality of each module, their interface relationships, dependencies, database tables, architecture diagrams, technology details etc. The integration testing design is carried out in the particular phase.[3]

Module design edit

The module design phase can also be referred to as low-level design. The designed system is broken up into smaller units or modules and each of them is explained so that the programmer can start coding directly. The low level design document or program specifications will contain a detailed functional logic of the module, in pseudocode:

  • database tables, with all elements, including their type and size
  • all interface details with complete API references
  • all dependency issues
  • error message listings
  • complete input and outputs for a module.

The unit test design is developed in this stage.

Validation phases edit

In the V-model, each stage of verification phase has a corresponding stage in the validation phase.[4] The following are the typical phases of validation in the V-Model, though they may be known by other names.

Unit testing edit

In the V-Model, Unit Test Plans (UTPs) are developed during module design phase. These UTPs are executed to eliminate bugs at code level or unit level. A unit is the smallest entity which can independently exist, e.g. a program module. Unit testing verifies that the smallest entity can function correctly when isolated from the rest of the codes/units.

Integration testing edit

Integration Test Plans are developed during the Architectural Design Phase. These tests verify that units created and tested independently can coexist and communicate among themselves. Test results are shared with customer's team.

System testing edit

System Tests Plans are developed during System Design Phase. Unlike Unit and Integration Test Plans, System Test Plans are composed by client's business team. System Test ensures that expectations from application developed are met. The whole application is tested for its functionality, interdependency and communication. System Testing verifies that functional and non-functional requirements have been met. Load and performance testing, stress testing, regression testing, etc., are subsets of system testing.

User acceptance testing edit

User Acceptance Test (UAT) Plans are developed during the Requirements Analysis phase. Test Plans are composed by business users. UAT is performed in a user environment that resembles the production environment, using realistic data. UAT verifies that delivered system meets user's requirement and system is ready for use in real time.

Criticism edit

The V-Model has been criticized by Agile advocates and others as an inadequate model of software development for numerous reasons.[5][6][7] Criticisms include:

  1. It is too simple to accurately reflect the software development process, and can lead managers into a false sense of security. The V-Model reflects a project management view of software development and fits the needs of project managers, accountants and lawyers rather than software developers or users.
  2. Although it is easily understood by novices, that early understanding is useful only if the novice goes on to acquire a deeper understanding of the development process and how the V-Model must be adapted and extended in practice. If practitioners persist with their naive view of the V-Model they will have great difficulty applying it successfully.
  3. It is inflexible and encourages a rigid and linear view of software development and has no inherent ability to respond to change.
  4. It provides only a slight variant on the waterfall model and is therefore subject to the same criticisms as that model. It provides greater emphasis on testing, and particularly the importance of early test planning. However, a common practical criticism of the V-Model is that it leads to testing being squeezed into tight windows at the end of development when earlier stages have overrun but the implementation date remains fixed.
  5. It is consistent with, and therefore implicitly encourages, inefficient and ineffective approaches to testing. It implicitly promotes writing test scripts in advance rather than exploratory testing; it encourages testers to look for what they expect to find, rather than discover what is truly there. It also encourages a rigid link between the equivalent levels of either leg (e.g. user acceptance test plans being derived from user requirements documents), rather than encouraging testers to select the most effective and efficient way to plan and execute testing.
  6. It lacks coherence and precision. There is widespread confusion about what exactly the V-Model is. If one boils it down to those elements that most people would agree upon it becomes a trite and unhelpful representation of software development. Disagreement about the merits of the V-Model often reflects a lack of shared understanding of its definition.

Current state edit

Supporters of the V-Model argue that it has evolved over time and supports flexibility and agility throughout the development process.[8] They argue that in addition to being a highly disciplined approach, it promotes meticulous design, development, and documentation necessary to build stable software products. Lately, it is being adopted by the medical device industry.[9][10]

See also edit

References edit

  1. ^ Clarus Concept of Operations. 2009-07-05 at the Wayback Machine Publication No. FHWA-JPO-05-072, Federal Highway Administration (FHWA), 2005
  2. ^ Kevin Forsberg and Harold Mooz, "The Relationship of System Engineering to the Project Cycle", in Proceedings of the First Annual Symposium of National Council on System Engineering, October 1991: 57–65.
  3. ^ What is V model - Advantages, disadvantages and when to use it
  4. ^ DeSpautz, Joseph; Kenneth S. Kovacs; Gerhard Werling (11 March 2008). . Pharmaceutical Processing. Archived from the original on 8 May 2012. Retrieved 28 February 2012.
  5. ^ "The Death of the V-Model", accessed January 6, 2013
  6. ^ , archived version from September 15, 2019
  7. ^ "New Models for Test Development", accessed January 6, 2013
  8. ^ "Toward Agile Systems Engineering Processes", accessed August 9, 2022
  9. ^ "Barriers to Adopting Agile Practices When Developing Medical Device Software"
  10. ^ "A Software Process Development, Assessment and Improvement Framework, for the Medical Device Industry "

Further reading edit

  • Roger S. Pressman:Software Engineering: A Practitioner's Approach, The McGraw-Hill Companies, ISBN 0-07-301933-X
  • Mark Hoffman & Ted Beaumont: Application Development: Managing the Project Life Cycle, Mc Press, ISBN 1-883884-45-4
  • Boris Beizer: Software Testing Techniques. Second Edition, International Thomson Computer Press, 1990, ISBN 1-85032-880-3



model, software, development, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged, removed, find, sources, model, software, development, news, ne. This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources V model software development news newspapers books scholar JSTOR September 2018 Learn how and when to remove this template message In software development the V model 2 represents a development process that may be considered an extension of the waterfall model and is an example of the more general V model Instead of moving down in a linear way the process steps are bent upwards after the coding phase to form the typical V shape The V Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing The horizontal and vertical axes represent time or project completeness left to right and level of abstraction coarsest grain abstraction uppermost respectively The V model of the Systems Engineering Process 1 Contents 1 Project definition phases 1 1 Requirements analysis 1 2 System design 1 3 Architecture design 1 4 Module design 2 Validation phases 2 1 Unit testing 2 2 Integration testing 2 3 System testing 2 4 User acceptance testing 3 Criticism 4 Current state 5 See also 6 References 7 Further readingProject definition phases editRequirements analysis edit In the requirements analysis phase the first step in the verification process the requirements of the system are collected by analyzing the needs of the user s This phase is concerned with establishing what the ideal system has to perform However it does not determine how the software will be designed or built Usually the users are interviewed and a document called the user requirements document is generated The user requirements document will typically describe the system s functional interface performance data security etc requirements as expected by the user It is used by business analysts to communicate their understanding of the system to the users The users carefully review this document as this document would serve as the guideline for the system designers in the system design phase The user acceptance tests are designed in this phase See also Functional requirements There are different methods for gathering requirements of both soft and hard methodologies including interviews questionnaires document analysis observation throw away prototypes use case and static and dynamic views with users System design edit Systems design is the phase where system engineers analyze and understand the business of the proposed system by studying the user requirements document They figure out possibilities and techniques by which the user requirements can be implemented If any of the requirements are not feasible the user is informed of the issue A resolution is found and the user requirement document is edited accordingly The software specification document which serves as a blueprint for the development phase is generated This document contains the general system organization menu structures data structures etc It may also hold example business scenarios sample windows and reports to aid understanding Other technical documentation like entity diagrams data dictionary will also be produced in this phase The documents for system testing are prepared Architecture design edit The phase of the design of computer architecture and software architecture can also be referred to as high level design The baseline in selecting the architecture is that it should realize all which typically consists of the list of modules brief functionality of each module their interface relationships dependencies database tables architecture diagrams technology details etc The integration testing design is carried out in the particular phase 3 Module design edit The module design phase can also be referred to as low level design The designed system is broken up into smaller units or modules and each of them is explained so that the programmer can start coding directly The low level design document or program specifications will contain a detailed functional logic of the module in pseudocode database tables with all elements including their type and size all interface details with complete API references all dependency issues error message listings complete input and outputs for a module The unit test design is developed in this stage Validation phases editIn the V model each stage of verification phase has a corresponding stage in the validation phase 4 The following are the typical phases of validation in the V Model though they may be known by other names Unit testing edit In the V Model Unit Test Plans UTPs are developed during module design phase These UTPs are executed to eliminate bugs at code level or unit level A unit is the smallest entity which can independently exist e g a program module Unit testing verifies that the smallest entity can function correctly when isolated from the rest of the codes units Integration testing edit Integration Test Plans are developed during the Architectural Design Phase These tests verify that units created and tested independently can coexist and communicate among themselves Test results are shared with customer s team System testing edit System Tests Plans are developed during System Design Phase Unlike Unit and Integration Test Plans System Test Plans are composed by client s business team System Test ensures that expectations from application developed are met The whole application is tested for its functionality interdependency and communication System Testing verifies that functional and non functional requirements have been met Load and performance testing stress testing regression testing etc are subsets of system testing User acceptance testing edit User Acceptance Test UAT Plans are developed during the Requirements Analysis phase Test Plans are composed by business users UAT is performed in a user environment that resembles the production environment using realistic data UAT verifies that delivered system meets user s requirement and system is ready for use in real time Criticism editThe V Model has been criticized by Agile advocates and others as an inadequate model of software development for numerous reasons 5 6 7 Criticisms include It is too simple to accurately reflect the software development process and can lead managers into a false sense of security The V Model reflects a project management view of software development and fits the needs of project managers accountants and lawyers rather than software developers or users Although it is easily understood by novices that early understanding is useful only if the novice goes on to acquire a deeper understanding of the development process and how the V Model must be adapted and extended in practice If practitioners persist with their naive view of the V Model they will have great difficulty applying it successfully It is inflexible and encourages a rigid and linear view of software development and has no inherent ability to respond to change It provides only a slight variant on the waterfall model and is therefore subject to the same criticisms as that model It provides greater emphasis on testing and particularly the importance of early test planning However a common practical criticism of the V Model is that it leads to testing being squeezed into tight windows at the end of development when earlier stages have overrun but the implementation date remains fixed It is consistent with and therefore implicitly encourages inefficient and ineffective approaches to testing It implicitly promotes writing test scripts in advance rather than exploratory testing it encourages testers to look for what they expect to find rather than discover what is truly there It also encourages a rigid link between the equivalent levels of either leg e g user acceptance test plans being derived from user requirements documents rather than encouraging testers to select the most effective and efficient way to plan and execute testing It lacks coherence and precision There is widespread confusion about what exactly the V Model is If one boils it down to those elements that most people would agree upon it becomes a trite and unhelpful representation of software development Disagreement about the merits of the V Model often reflects a lack of shared understanding of its definition Current state editSupporters of the V Model argue that it has evolved over time and supports flexibility and agility throughout the development process 8 They argue that in addition to being a highly disciplined approach it promotes meticulous design development and documentation necessary to build stable software products Lately it is being adopted by the medical device industry 9 10 See also editProduct lifecycle management Systems development life cycleReferences edit Clarus Concept of Operations Archived 2009 07 05 at the Wayback Machine Publication No FHWA JPO 05 072 Federal Highway Administration FHWA 2005 Kevin Forsberg and Harold Mooz The Relationship of System Engineering to the Project Cycle in Proceedings of the First Annual Symposium of National Council on System Engineering October 1991 57 65 What is V model Advantages disadvantages and when to use it DeSpautz Joseph Kenneth S Kovacs Gerhard Werling 11 March 2008 GAMP Standards For Validation of Automated Systems Pharmaceutical Processing Archived from the original on 8 May 2012 Retrieved 28 February 2012 The Death of the V Model accessed January 6 2013 The Dangerous amp Seductive V Model archived version from September 15 2019 New Models for Test Development accessed January 6 2013 Toward Agile Systems Engineering Processes accessed August 9 2022 Barriers to Adopting Agile Practices When Developing Medical Device Software A Software Process Development Assessment and Improvement Framework for the Medical Device Industry Further reading editRoger S Pressman Software Engineering A Practitioner s Approach The McGraw Hill Companies ISBN 0 07 301933 X Mark Hoffman amp Ted Beaumont Application Development Managing the Project Life Cycle Mc Press ISBN 1 883884 45 4 Boris Beizer Software Testing Techniques Second Edition International Thomson Computer Press 1990 ISBN 1 85032 880 3 nbsp Wikimedia Commons has media related to V models Retrieved from https en wikipedia org w index php title V model software development amp oldid 1173552339, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.