从管理的角度,即从业务和经济的角度来看,软件的生命周期包括四个主要阶段 [1] :起始阶段-- 有一个好的想法:具体构想出终于产品的设想和它的业务案例,确定项目的范围 。细化阶段--计划必要的活动和所需资源,具体确定功能并设计构架 。构建阶段(Ctruction)-- 构建产品, 发展初的设想、构架和计划,直到一个能够交付给用户的产品(完毕后的设想)完毕。移交阶段(Transition)-- 将产品移交用户使用,包含:制造、交付、培训、支持、维护,直到用户惬意。
从技术的角度来 看,软件开发能够视为一连串的迭代过程,通过这些迭代被开发的软件得以增量演进。 每次迭代都以一个可运行的产品的公布而结束, 该产品可能是完整版本号的一个子集,但从project的或用户的角度来看是实用的。 每次公布都伴随一些支持性工件:版本号描写叙述、用户文档和计划等。一次迭代包含下面活动: 计划、分析、设计、实施和测试。 依据迭代在开发周期中所处位置的不同,这些活动分别占不同的比例。管理角度和技术角度之间是协调的, 并且各个阶段的结束还和各次迭代的结束保持同步。换句话说,每一个阶段能够分为一次或多次迭代过程。
对于不同的项目而言,每一个阶段的侧重点,入口和出口准则,一个开发周期的各个工件,以及各次迭代的数目和长度都会不同。这主要取决于作为过程判别式的的四个主要项目特征。依照影响程度降序排列,它们是:业务环境契约性工作,开发人员基于给定的客户规格说明仅仅为该客户开发软件。猜测性开发或商业开发,开发人员开发软件以推向市场。内部项目, 开发人员和客户在同一个机构中。