Content deleted Content added
Borgendorf (talk | contribs) m Correcting link to PDF (didn't test the last one correctly) |
m Reverted edits by 81.77.108.90 (talk): not providing a reliable source (WP:CITE, WP:RS) (HG) (3.4.13) |
||
(37 intermediate revisions by 10 users not shown) | |||
Line 1:
{{Short description|Software development methodology}}
{{More citations needed|date=September 2018}}
[[File:Systems Engineering Process II.svg|thumb|upright=2|The V-model of the Systems Engineering Process
{{Software development process}}
In [[software development]], the '''V-model'''<ref>[[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.</ref> represents a [[software development process|development process]] that may be considered an extension of the [[waterfall model]]
== Project definition phases ==
Line 10:
=== Requirements analysis ===
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 (computing)|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 ===
Line 20:
[[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 structure]]s etc. It may also hold example business scenarios, sample windows, and reports to aid understanding. Other technical documentation like entity diagrams, and data
=== Architecture design ===
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 (computer science)|interface]] relationships, [[Coupling (computer science)|dependencies]], [[database]] [[Table (database)|tables]], architecture diagrams, technology details, etc. The integration testing design is carried out in the particular phase.<ref>
[http://istqbexamcertification.com/what-is-v-model-advantages-disadvantages-and-when-to-use-it/ What is V model - Advantages, disadvantages and when to use it]</ref>
Line 30:
The [[modularity (programming)|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
* database tables, with all elements, including their type and size
Line 42:
== Validation phases ==
In the V-model, each stage of
=== Unit testing ===
In the V-Model, Unit Test Plans (UTPs) are developed during the module design phase. These UTPs are executed to eliminate bugs at the code level or unit level. A unit is the smallest entity
=== Integration testing ===
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 the customer's team.
=== System testing ===
System Tests Plans are developed during the System Design Phase. Unlike Unit and Integration Test Plans, System Test Plans are composed by the client's business team. System Test ensures that expectations from the 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 ===
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 the delivered system meets the user's requirement and the system is ready for use in real
== Criticism ==
The V-Model has been criticized by [[Agile software development|Agile]] advocates and others as an inadequate model of software development for numerous reasons.<ref>[
# 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.
Line 73:
== Current state ==
Supporters of the V-Model argue that it has evolved
== See also ==
|