The V model is a variant of the waterfall approach to software development. It consists of four phases: descending, base, ascending, and across the gap. In the descending phase, requirements are specified and designs are developed. In the base, code modules are produced. The ascending phase involves testing at various levels from module to integration to system. Finally, the "across the gap" phase uses the descending artifacts to develop test plans and criteria to test the software and ensure it meets requirements.