V-model

Last updated
The V-model of the systems engineering process. Systems Engineering Process II.svg
The V-model of the systems engineering process.

The V-model is a graphical representation of a systems development lifecycle. It is used to produce rigorous development lifecycle models and project management models. The V-model falls into three broad categories, the German V-Modell, a general testing model, and the US government standard. [2]

Contents

The V-model summarizes the main steps to be taken in conjunction with the corresponding deliverables within computerized system validation framework, or project life cycle development. It describes the activities to be performed and the results that have to be produced during product development.

The left side of the "V" represents the decomposition of requirements, and the creation of system specifications. The right side of the "V" represents an integration of parts and their validation. [3] [4] [5] [6] [7] However, requirements need to be validated first against the higher level requirements or user needs. Furthermore, there is also something as validation of system models. This can partially be done on the left side also. To claim that validation only occurs on the right side may not be correct. The easiest way is to say that verification is always against the requirements (technical terms) and validation is always against the real world or the user's needs. The aerospace standard RTCA DO-178B states that requirements are validated—confirmed to be true—and the end product is verified to ensure it satisfies those requirements.

Validation can be expressed with the query "Are you building the right thing?" and verification with "Are you building it right?"

Types

There are three general types of V-model.

V-Modell

"V-Modell" is the official project management method of the German government. It is roughly equivalent to PRINCE2, but more directly relevant to software development. [8] The key attribute of using a "V" representation was to require proof that the products from the left-side of the V were acceptable by the appropriate test and integration organization implementing the right-side of the V. [9] [10] [11]

General testing

Throughout the testing community worldwide, the V-model is widely seen as a vaguer illustrative depiction of the software development process as described in the International Software Testing Qualifications Board Foundation Syllabus for software testers. [12] There is no single definition of this model, which is more directly covered in the alternative article on the V-Model (software development).

US government standard

The US also has a government standard V-model which dates back about 20 years[ when? ] like its German counterpart. Its scope is a narrower systems development lifecycle model, but far more detailed and more rigorous than most UK practitioners and testers would understand by the V-model. [13] [14] [3] [4] [15] [16]

Validation vs. verification

It is sometimes said that validation can be expressed by the query "Are you building the right thing?" and verification by "Are you building it right?" In practice, the usage of these terms varies.

The PMBOK guide, also adopted by the IEEE as a standard (jointly maintained by INCOSE, the Systems engineering Research Council SERC, and IEEE Computer Society) defines them as follows in its 4th edition: [17]

Objectives

The V-model provides guidance for the planning and realization of projects. The following objectives are intended to be achieved by a project execution:

V-model topics

Systems engineering and verification. Systems Engineering and Verification.jpg
Systems engineering and verification.

Systems engineering and verification

The systems engineering process (SEP) provides a path for improving the cost-effectiveness of complex systems as experienced by the system owner over the entire life of the system, from conception to retirement. [1]

It 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 requirements (system verification), measuring its effectiveness in addressing goals (system validation), on-going operation and maintenance, system upgrades over time, and eventual retirement. [1] [3] [4] [7]

The process emphasizes requirements-driven design and testing. All design elements and acceptance tests must be traceable to one or more system requirements and every requirement must be addressed by at least one design element and acceptance test. Such rigor ensures nothing is done unnecessarily and everything that is necessary is accomplished. [1] [3]

The two streams

Specification stream

The specification stream mainly consists of:

  • User requirement specifications
  • Functional requirement specifications
  • Design specifications

Testing stream

The testing stream generally consists of:

  • Installation qualification (IQ)
  • Operational qualification (OQ)
  • Performance qualification (PQ)

The development stream can consist (depending on the system type and the development scope) of customization, configuration or coding.

Applications

Off-Core alternatives (illustrating upward and downward iterations and Time and Maturity dimension). Source - K. Forsberg and H. Mooz 2004 VPM3e Vee with detail.gif
Off-Core alternatives (illustrating upward and downward iterations and Time and Maturity dimension). Source - K. Forsberg and H. Mooz 2004

The V-model is used to regulate the software development process within the German federal administration. Nowadays[ when? ] it is still the standard for German federal administration and defense projects, as well as software developers within the region.

The concept of the V-model was developed simultaneously, but independently, in Germany and in the United States in the late 1980s:

It has now found widespread application in commercial as well as defense programs. Its primary use is in project management [3] [4] and throughout the project lifecycle.

One fundamental characteristic of the US V-model is that time and maturity move from left to right and one cannot move back in time. All iteration is along a vertical line to higher or lower levels in the system hierarchy, as shown in the figure. [3] [4] [7] This has proven to be an important aspect of the model. The expansion of the model to a dual-Vee concept is treated in reference. [3]

As the V-model is publicly available many companies also use it. In project management it is a method comparable to PRINCE2 and describes methods for project management as well as methods for system development. The V-model, while rigid in process, can be very flexible in application, especially as it pertains to the scope outside of the realm of the System Development Lifecycle normal parameters.

Advantages

These are the advantages V-model offers in front of other systems development models:

Limitations

The following aspects are not covered by the V-model, they must be regulated in addition, or the V-model must be adapted accordingly: [25] [26]

See also

Related Research Articles

<span class="mw-page-title-main">Acceptance testing</span> Test to determine if the requirements of a specification or contract are met

In engineering and its various subdisciplines, acceptance testing is a test conducted to determine if the requirements of a specification or contract are met. It may involve chemical tests, physical tests, or performance tests.

<span class="mw-page-title-main">Systems engineering</span> Interdisciplinary field of engineering

Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their life cycles. At its core, systems engineering utilizes systems thinking principles to organize this body of knowledge. The individual outcome of such efforts, an engineered system, can be defined as a combination of components that work in synergy to collectively perform a useful function.

Software testing is the act of examining the artifacts and the behavior of the software under test by verification and validation. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to:

<span class="mw-page-title-main">Configuration management</span> Process for maintaining consistency of a product attributes with its design

Configuration management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. The CM process is widely used by military engineering organizations to manage changes throughout the system lifecycle of complex systems, such as weapon systems, military vehicles, and information systems. Outside the military, the CM process is also used with IT service management as defined by ITIL, and with other domain models in the civil engineering and other industrial engineering segments such as roads, bridges, canals, dams, and buildings.

In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, including for example in systems engineering, software engineering, or enterprise engineering. It is a broad concept that could speak to any necessary function, attribute, capability, characteristic, or quality of a system for it to have value and utility to a customer, organization, internal user, or other stakeholder. Requirements can come with different levels of specificity; for example, a requirement specification or requirement "spec" refers to an explicit, highly objective/clear requirement to be satisfied by a material, design, product, or service.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

<span class="mw-page-title-main">Product lifecycle</span> Duration of processing of products from inception, to engineering, design & manufacture

In industry, product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from its inception through the engineering, design and manufacture, as well as the service and disposal of manufactured products. PLM integrates people, data, processes, and business systems and provides a product information backbone for companies and their extended enterprises.

In software project management, software testing, and software engineering, verification and validation (V&V) is the process of checking that a software system meets specifications and requirements so that it fulfills its intended purpose. It may also be referred to as software quality control. It is normally the responsibility of software testers as part of the software development lifecycle. In simple terms, software verification is: "Assuming we should build X, does our software achieve its goals without any bugs or gaps?" On the other hand, software validation is: "Was X what we should have built? Does X meet the high-level requirements?"

Requirements engineering (RE) is the process of defining, documenting, and maintaining requirements in the engineering design process. It is a common role in systems engineering and software engineering.

<span class="mw-page-title-main">Systems modeling language</span> General-purpose modeling language

The systems modeling language (SysML) is a general-purpose modeling language for systems engineering applications. It supports the specification, analysis, design, verification and validation of a broad range of systems and systems-of-systems.

<span class="mw-page-title-main">V-model (software development)</span> Software development methodology

In software development, the V-model 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, respectively.

Verification and validation are independent procedures that are used together for checking that a product, service, or system meets requirements and specifications and that it fulfills its intended purpose. These are critical components of a quality management system such as ISO 9000. The words "verification" and "validation" are sometimes preceded with "independent", indicating that the verification and validation is to be performed by a disinterested third party. "Independent verification and validation" can be abbreviated as "IV&V".

Software quality control is the set of procedures used by organizations to ensure that a software product will meet its quality goals at the best value to the customer, and to continually improve the organization’s ability to produce software products in the future.

Axiomatic Product Development Lifecycle (APDL) (also known as Transdisciplinary System Development Lifecycle (TSDL), and Transdisciplinary Product Development Lifecycle (TPDL) ) is a systems engineering product development model proposed by Bulent Gumus that extends the Axiomatic design (AD) method. APDL covers the whole product lifecycle including early factors that affect the entire cycle such as development testing, input constraints and system components.

Software requirements for a system are the description of what the system should do, the service or services that it provides and the constraints on its operation. The IEEE Standard Glossary of Software Engineering Terminology defines a requirement as:

  1. A condition or capability needed by a user to solve a problem or achieve an objective
  2. A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed document
  3. A documented representation of a condition or capability as in 1 or 2

In the United States military integrated acquisition lifecycle the Technical section has multiple acquisition "Technical Reviews". Technical reviews and audits assist the acquisition and the number and types are tailored to the acquisition. Overall guidance flows from the Defense Acquisition Guidebook chapter 4, with local details further defined by the review organizations. Typical topics examined include adequacy of program/contract metrics, proper staffing, risks, budget, and schedule.

Harold (Hal) Mooz is an American systems engineer, business consultant and founder and CEO of The Center for Systems Management, Inc., awarded the INCOSE Pioneer Award in 2001.

<span class="mw-page-title-main">Enterprise Architect (software)</span> Visual modeling and design tool

Sparx Systems Enterprise Architect is a visual modeling and design tool based on the OMG UML. The platform supports: the design and construction of software systems; modeling business processes; and modeling industry based domains. It is used by businesses and organizations to not only model the architecture of their systems, but to process the implementation of these models across the full application development life-cycle.

Model-based systems engineering (MBSE), according to the International Council on Systems Engineering (INCOSE), is the formalized application of modeling to support system requirements, design, analysis, verification and validation activities beginning in the conceptual design phase and continuing throughout development and later life cycle phases. MBSE is a technical approach to systems engineering that focuses on creating and exploiting domain models as the primary means of information exchange, rather than on document-based information exchange. MBSE technical approaches are commonly applied to a wide range of industries with complex systems, such as aerospace, defense, rail, automotive, manufacturing, etc.

References

  1. 1 2 3 4 Clarus Concept of Operations Archived 2009-07-05 at the Wayback Machine , Publication No. FHWA-JPO-05-072, Federal Highway Administration (FHWA), 2005.
  2. "The Dangerous & Seductive V Model" Archived 2019-09-15 at the Wayback Machine , accessed January 9, 2013.
  3. 1 2 3 4 5 6 7 8 Forsberg, K., Mooz, H., Cotterman, H. Visualizing Project Management, 3rd edition, John Wiley and Sons, New York, NY, 2005. Pages 108-116, 242-248, 341-360.
  4. 1 2 3 4 5 International Council On Systems Engineering (INCOSE), Systems Engineering Handbook Version 3.1, August 2007, pages 3.3 to 3.8
  5. Forsberg, K., Mooz, H. (1998). "System Engineering for Faster, Cheaper, Better" (PDF). Center of Systems Management. Archived from the original (PDF) on April 20, 2003.{{cite journal}}: Cite journal requires |journal= (help)CS1 maint: multiple names: authors list (link)
  6. "The SE VEE". SEOR, George Mason University. Archived from the original on October 18, 2007. Retrieved May 26, 2007.
  7. 1 2 3 4 5 Forsberg, K. and Mooz, H., "The Relationship of Systems Engineering to the Project Cycle" Archived 2009-02-27 at the Wayback Machine , First Annual Symposium of the National Council On Systems Engineering (NCOSE), October 1991
  8. "V-Modell site (in German)", accessed July 10, 2020.
  9. German Directive 250, Software Development Standard for the German Federal Armed Forces, V-Model, Software Lifecycle Process Model, August 1992
  10. "Fundamentals of the V-Modell" . Retrieved 14 Apr 2016.
  11. "V-Modell XT, Part 1: Fundamentals of the V-Modell" (PDF). Retrieved 14 Apr 2016.
  12. "International Software Testing Qualifications Board – Foundation Level Syllabus", accessed January 9, 2013.
  13. "Systems Engineering for Intelligent Transportation Systems" (PDF). US Dept. of Transportation. p. 10. Retrieved June 9, 2007.
  14. "US Dept of Transportation, Federal Highway Administration. Systems Engineering Guidebook for ITS", accessed January 9, 2013.
  15. "BUILDING ON A LEGACY: RENEWED FOCUS ON SYSTEMS ENGINEERING IN DEFENSE ACQUISITION" (PDF). Retrieved 14 Apr 2016.
  16. "Using V Models for Testing". 10 November 2013. Retrieved 14 Apr 2016.
  17. IEEE Guide--Adoption of the Project Management Institute (PMI(R)) Standard a Guide to the Project Management Body of Knowledge (PMBOK(R) Guide)--Fourth Edition. June 2011. p. 452. doi:10.1109/IEEESTD.2011.6086685. ISBN   978-0-7381-6817-3 . Retrieved May 25, 2021.
  18. Systems Engineering Fundamentals. Defense Acquisition University Press, 2001.
  19. "V-Model Lifecycle Process Model". v-modell.iabg.de. Archived from the original on March 3, 2016. Retrieved December 24, 2015.
  20. "Sequential Thematic Organization of Publications (STOP)". Archived from the original on February 3, 2008. Retrieved December 24, 2015.
  21. Sobkiw, Walter (2008-01-01). Sustainable Development Possible with Creative System Engineering. Lulu.com. ISBN   978-0615216300.
  22. "A New Systems Engineering Model and an Old, Familiar Friend; Figure 2 V-9 Process Interactions" (PDF). Defense AT&L. Apr 2006. p. 51. Retrieved 7 Apr 2016.
  23. "Further Development of the V-Modell (broken link)". v-modell.iabg.de. Archived from the original on April 23, 2011. Retrieved December 24, 2015.
  24. "Overview of the Activity Model of the V-Modell (broken link)". v-modell.iabg.de. Archived from the original on July 19, 2011. Retrieved December 24, 2015.
  25. "Limits of the VModel". v-modell.iabg.de. Archived from the original on May 21, 2011. Retrieved December 24, 2015.
  26. Christian Bucanac, The V-Model