V-Model
- Snippet from Wikipedia: V-model (software development)
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 linearly, 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.
<svg xmlns=“http://www.w3.org/2000/svg” xmlns:xlink=“http://www.w3.org/1999/xlink” xmlns:ev=“http://www.w3.org/2001/xml-events”
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="7.50745in" height="4.90025in" viewBox="0 0 540.536 352.818" xml:space="preserve" color-interpolation-filters="sRGB" class="st13"> <v:documentProperties v:langID="1053" v:metric="true" v:viewMarkup="false"/>
<style type="text/css"> <![CDATA[ .st1 {stroke:#4bacc6;stroke-linecap:round;stroke-linejoin:round;stroke-width:3} .st2 {visibility:visible} .st3 {fill:#000000;fill-opacity:0.4;filter:url(#filter_2.6666667461395);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0.4} .st4 {fill:#ebf1df;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} .st5 {fill:#000000;font-family:Arial;font-size:1.00001em} .st6 {fill:#eeeaf2;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} .st7 {font-size:1em} .st8 {fill:#fcebdd;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} .st9 {fill:#fff2cc;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} .st10 {marker-end:url(#mrkr13-60);marker-start:url(#mrkr13-58);stroke:#4bacc6;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.25} .st11 {fill:#4bacc6;fill-opacity:1;stroke:#4bacc6;stroke-opacity:1;stroke-width:0.090252707581227} .st12 {fill:#ffffff;stroke:none;stroke-linecap:butt;stroke-width:7.2} .st13 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} ]]> </style>
<defs id="Markers"> <g id="lend13"> <path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"/> </g> <marker id="mrkr13-58" class="st11" v:arrowType="13" v:arrowSize="2" v:setback="31.8" refX="31.8" orient="auto" markerUnits="strokeWidth" overflow="visible"> <use xlink:href="#lend13" transform="scale(11.08) "/> </marker> <marker id="mrkr13-60" class="st11" v:arrowType="13" v:arrowSize="2" v:setback="33.24" refX="-33.24" orient="auto" markerUnits="strokeWidth" overflow="visible"> <use xlink:href="#lend13" transform="scale(-11.08,-11.08) "/> </marker> </defs> <defs id="Filters"> <filter id="filter_2.6666667461395"> <feGaussianBlur stdDeviation="2.6666667461395"/> </filter> </defs> <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> <title>Page-1</title> <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" v:shadowOffsetY="-8.50394"/> <g id="shape1-1" v:mID="1" v:groupContext="shape" transform="translate(346.177,-219.107) rotate(51.141)"> <title>Sheet.1</title> <path d="M0 352.82 L330.82 352.82" class="st1"/> </g> <g id="shape2-4" v:mID="2" v:groupContext="shape" transform="translate(751.583,209.613) rotate(125.996)"> <title>Sheet.2</title> <path d="M0 352.82 L318.4 352.82" class="st1"/> </g> <g id="shape3-7" v:mID="3" v:groupContext="shape" transform="translate(2.25368,-297.499)"> <title>Sheet.3</title> <desc>Business Needs</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="75.1571" cy="326.286" width="150.32" height="53.0653"/> <g id="shadow3-8" v:groupContext="shadow" v:shadowOffsetX="2.12132" v:shadowOffsetY="-2.12132" v:shadowType="1" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st2"> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st3"/> </g> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st4"/> <text x="31.8" y="329.89" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Business Needs</text> </g> <g id="shape4-13" v:mID="4" v:groupContext="shape" transform="translate(383.726,-297.499)"> <title>Sheet.4</title> <desc>User acceptance test</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="75.1571" cy="326.286" width="150.32" height="53.0653"/> <g id="shadow4-14" v:groupContext="shadow" v:shadowOffsetX="2.12132" v:shadowOffsetY="-2.12132" v:shadowType="1" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st2"> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st3"/> </g> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st4"/> <text x="18.79" y="329.89" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>User acceptance test</text> </g> <g id="shape5-19" v:mID="5" v:groupContext="shape" transform="translate(43.7654,-213.611)"> <title>Sheet.5</title> <desc>High-level design System specification</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="75.1571" cy="326.286" width="150.32" height="53.0653"/> <g id="shadow5-20" v:groupContext="shadow" v:shadowOffsetX="2.12132" v:shadowOffsetY="-2.12132" v:shadowType="1" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st2"> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st3"/> </g> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st6"/> <text x="29.13" y="322.69" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>High-level design<v:newlineChar/><tspan x="20.47" dy="1.2em" class="st7">System specification</tspan></text> </g> <g id="shape6-26" v:mID="6" v:groupContext="shape" transform="translate(351.223,-213.611)"> <title>Sheet.6</title> <desc>System tests Integrations tests</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="75.1571" cy="326.286" width="150.32" height="53.0653"/> <g id="shadow6-27" v:groupContext="shadow" v:shadowOffsetX="2.12132" v:shadowOffsetY="-2.12132" v:shadowType="1" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st2"> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st3"/> </g> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st6"/> <text x="40.81" y="322.69" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>System tests<v:newlineChar/><tspan x="29.46" dy="1.2em" class="st7">Integrations tests</tspan></text> </g> <g id="shape7-33" v:mID="7" v:groupContext="shape" transform="translate(99.1144,-129.722)"> <title>Sheet.7</title> <desc>Low level design Design & construction</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="75.1571" cy="326.286" width="150.32" height="53.0653"/> <g id="shadow7-34" v:groupContext="shadow" v:shadowOffsetX="2.12132" v:shadowOffsetY="-2.12132" v:shadowType="1" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st2"> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st3"/> </g> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st8"/> <text x="30.79" y="322.69" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Low level design<v:newlineChar/><tspan x="16.79" dy="1.2em" class="st7">Design </tspan>& construction</text> </g> <g id="shape8-40" v:mID="8" v:groupContext="shape" transform="translate(306.673,-129.722)"> <title>Sheet.8</title> <desc>Unit tests</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="75.1571" cy="326.286" width="150.32" height="53.0653"/> <g id="shadow8-41" v:groupContext="shadow" v:shadowOffsetX="2.12132" v:shadowOffsetY="-2.12132" v:shadowType="1" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st2"> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st3"/> </g> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st8"/> <text x="50.15" y="329.89" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Unit tests</text> </g> <g id="shape9-46" v:mID="9" v:groupContext="shape" transform="translate(203.842,-39.8918)"> <title>Sheet.9</title> <desc>Code</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="75.1571" cy="326.286" width="150.32" height="53.0653"/> <g id="shadow9-47" v:groupContext="shadow" v:shadowOffsetX="2.12132" v:shadowOffsetY="-2.12132" v:shadowType="1" transform="matrix(1,0,0,1,2.12132,2.12132)" class="st2"> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st3"/> </g> <rect x="0" y="299.753" width="150.314" height="53.0653" class="st9"/> <text x="60.81" y="329.89" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Code</text> </g> <g id="shape10-52" v:mID="10" v:groupContext="shape" transform="translate(152.568,-329.215)"> <title>Sheet.10</title> <desc>Meets the need?</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="115.579" cy="352.818" width="231.16" height="0"/> <path d="M7.95 352.82 L8.31 352.82 L222.85 352.82" class="st10"/> <rect v:rectContext="textBkgnd" x="70.8799" y="345.618" width="89.3979" height="14.4001" class="st12"/> <text x="70.88" y="356.42" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Meets the need?</text> </g> <g id="shape11-63" v:mID="11" v:groupContext="shape" transform="translate(194.08,-245.83)"> <title>Sheet.11</title> <desc>Is correct built?</desc> <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> <v:textRect cx="77.0526" cy="352.818" width="154.11" height="0"/> <path d="M7.95 352.82 L8.31 352.82 L145.8 352.82" class="st10"/> <rect v:rectContext="textBkgnd" x="36.3702" y="345.618" width="81.3647" height="14.4001" class="st12"/> <text x="36.37" y="356.42" class="st5" v:langID="1033"><v:paragraph v:horizAlign="1"/><v:tabList/>Is correct built?</text> </g> </g>
</svg>