Introduction to Software Engineering/Process/V-Model - Wikibooks, open books for an open world (2024)

The V-model represents a software development process (also applicable to hardware development) which may be considered an extension of the waterfall 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 represents time or project completeness (left-to-right) and level of abstraction (coarsest-grain abstraction uppermost), respectively.

Contents

  • 1 Verification 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.3.1 Reasons for system test
    • 2.4 User Acceptance Testing
      • 2.4.1 Procedures
  • 3 References
  • 4 Further reading
  • 5 External links

Verification Phases

[edit | edit source]

Requirements analysis

[edit | edit source]

In the Requirements analysis phase, the requirements of the proposed system are collected by analyzing the needs of the user(s). This phase is concerned about 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 cases and status and dynamic views with users.

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, reports for the better understanding. Other technical documentation like entity diagrams, data dictionary will also be produced in this phase. The documents for system testing are prepared in this phase. V model is also similar with waterfall model.

Architecture Design

[edit | edit source]

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.

Module Design

[edit | edit source]

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 | edit source]

In computer programming, unit testing is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual function or procedure. Unit tests are created by programmers or occasionally by white box testers. The purpose is to verify the internal logic code by testing every possible branch within the function, also known as test coverage. Static analysis tools are used to facilitate in this process, where variations of input data are passed to the function to test every possible case of execution.

Integration Testing

[edit | edit source]

In integration testing the separate modules will be tested together to expose faults in the interfaces and in the interaction between integrated components. Testing is usually black box as the code is not directly checked for errors.

System Testing

[edit | edit source]

System testing will compare the system specifications against the actual system.After the integration test is completed, the next test level is the system test. System testing checks if the integrated product meets the specified requirements. Why is this still necessary after the component and integration tests? The reasons for this are as follows:

Reasons for system test

[edit | edit source]

  1. In the lower test levels, the testing was done against technical specifications, i.e., from the technical perspective of the software producer. The system test, though, looks at the system from the perspective of the customer and the future user. The testers validate whether the requirements are completely and appropriately met.
    • Example: The customer (who has ordered and paid for the system) and the user (who uses the system) can be different groups of people or organizations with their own specific interests and requirements of the system.
  2. Many functions and system characteristics result from the interaction of all system components, consequently, they are only visible on the level of the entire system and can only be observed and tested there.

User Acceptance Testing

[edit | edit source]

Acceptance testing is the phase of testing used to determine whether a system satisfies the requirements specified in the requirements analysis phase. The acceptance test design is derived from the requirements document. The acceptance test phase is the phase used by the customer to determine whether to accept the system or not.

Acceptance testing helps

  • to determine whether a system satisfies its acceptance criteria or not.
  • to enable the customer to determine whether to accept the system or not.
  • to test the software in the "real world" by the intended audience.

Purpose of acceptance testing:

  • to verify the system or changes according to the original needs.

Procedures

[edit | edit source]

  1. Define the acceptance criteria:
    • Functionality requirements.
    • Performance requirements.
    • Interface quality requirements.
    • Overall software quality requirements.
  2. Develop an acceptance plan:
    • Project description.
    • User responsibilities.
    • Acceptance description.
    • Execute the acceptance test plan.

References

[edit | edit source]

  1. Clarus Concept of Operations. Publication No. FHWA-JPO-05-072, Federal Highway Administration (FHWA), 2005

Further reading

[edit | edit source]

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

External links

[edit | edit source]

Introduction to Software Engineering/Process/V-Model - Wikibooks, open books for an open world (2)

Wikimedia Commons has media related to: V-models

Introduction to Software Engineering/Process/V-Model - Wikibooks, open books for an open world (2024)

FAQs

What is the V model system engineering process? ›

The V-Model consists of two major branches. The left side of the V represents the planning, design, and development phases, including requirements gathering, system design, detailed design, manufacturing, and assembly. Each of these phases corresponds to a specific verification activity on the right side of the V.

What is SLC in software engineering? ›

The software life cycle (SLC) covers the time between product conception and end of life for the product [1]. Like all engineering disciplines, engineering high quality software requires process to guide a software process through the SLC.

What is the process engineering SDLC? ›

The software development lifecycle (SDLC) is the cost-effective and time-efficient process that development teams use to design and build high-quality software. The goal of SDLC is to minimize project risks through forward planning so that software meets customer expectations during production and beyond.

What is the software process model in software engineering? ›

In software engineering, a software process model is the mechanism of dividing software development work into distinct phases to improve design, product management, and project management. It is also known as a software development life cycle.

What is the V-model in short note? ›

V Model in Software testing is an SDLC model where the test execution takes place in a hierarchical manner. The execution process makes a V-shape. It is also called a Verification and Validation model that undertakes the testing process for every development phase.

How many steps are there in V-model? ›

The V-model can basically be divided into three phases. In the verification phase, the requirements are recorded and converted into a system analysis. These requirements become increasingly specific according to the top-down principle and represent the left-hand side of the V-model.

What is the difference between STLC and SLC? ›

SDLC is mainly related to software development. STLC is mainly related to software testing. Besides development other phases like testing is also included. It focuses only on testing the software.

How many models are in SDLC? ›

Today, there are more than 50 recognized SDLC models in use. None of them is perfect, and each brings its favorable aspects and disadvantages for a specific software development project or a team.

Is SDLC waterfall or agile? ›

Agile and Waterfall are both Software Development Lifecycle (SDLC) methodologies that have been widely adopted in the IT industry. The Waterfall framework was designed to enable a structured and deliberate process for developing high quality information systems within project scope.

What are the 5 stages of SDLC? ›

There are five secure SDLC phases: problem analysis and planning, designing, development, testing, and deployment.

Is SDLC a process or methodology? ›

The Software Development Life Cycle (SDLC) refers to a methodology with clearly defined processes for creating high-quality software. in detail, the SDLC methodology focuses on the following phases of software development: Requirement analysis. Planning.

Why is it difficult to improve a software process? ›

Lack of standardization: there were no established best practices or standards for software development, making it difficult to compare and improve different approaches.

Which model is best in software engineering? ›

Waterfall model is a famous and good version of SDLC(System Development Life Cycle) for software engineering. The waterfall model is a linear and sequential model, which means that a development phase cannot begin until the previous phase is completed. We cannot overlap phases in waterfall model.

What are the main reasons for software engineering processes? ›

Importance of Software Engineering
  • Reduces Complexity. Dealing with big Software is very complicated and challenging. ...
  • Handling Big Projects. Big projects need lots of patience, planning, and management, which you never get from any company. ...
  • To Minimize Software Costs. ...
  • To Decrease Time. ...
  • Effectiveness. ...
  • Reliable Software.
Jun 6, 2024

What is the V method in systems engineering? ›

The V-model is a widely used framework for systems engineering that describes the stages and activities of a system development lifecycle. It is called the V-model because it represents the relationships between the system requirements, design, verification, and validation in a V-shaped diagram.

What is the Vee system engineering process? ›

The Vee model involves early and comprehensive identification of goals, a concept of operations that describes user needs and the operating environment, thorough and testable system requirements, detailed design, implementation, rigorous acceptance testing of the implemented system to ensure it meets the stated ...

What is the V diagram of systems engineering? ›

As shown in the "V", the systems engineering approach defines project requirements before technology choices are made and the system is implemented. On the left side of the "V", the system definition progresses from a general user view of the system to a detailed specification of the system design.

What is the V-Model of system architecture? ›

The V-Model consists of two main phases, represented by the shape of a "V". The left side of the V represents the specification phase, while the right side represents the integration phase. Each phase consists of several stages, each representing different tasks and responsibilities within the project.

Top Articles
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated:

Views: 5948

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.