软件产品WBS分解指南(完整资料).doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【最新整理,下载后即可编辑】
软件产品WBS分解指南
一、概述
同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为“软件生命周期”。软件生命周期模型,通俗说就是,软件开发过程中所遵循的模式,即把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。
软件生命周期模型和项目开发过程有非常紧密关系,它是经过多次实践总结出来适合于不同项目使用的经典、有效的软件开发方法,它按照软件生命周期的各个阶段划分任务,依照一定的规则和步骤,有效地进行软件开发。
选用恰当的软件生命周期模型进行软件开发,可以提高产品质量;降低项目管理难度;缩短开发进度;便于项目状态跟踪;为过程改进和度量提供基线;改善组织级的过程弱势,提高过程能力成熟度级别。
为了便于分类汇总和统计各种生命周期模型的指标和数据,结合公司软件开发过程的实际,我们选择了常用的几种基本模型进行了描述,项目开发小组在进行项目策划时,可以根据模型的适用前提、优缺点和项目的实际需要进行选择,并在《项目实施计划》中,参加评审。
二、软件生命周期模型
常用的软件生命周期模型有:瀑布模型、迭代模型、增量模型、原型模
型等。
以上所提到的件生命周期模型病不存在孰优孰劣的问题,每一种模型在实际工作中都有所应用。只要选择了最适合的,并按照此模型的流程来开发软件,都会取得成功。
需要强调的是,不管采用什么模型,项目实施中有四项活动是必不可少的——需求、设计、编码和测试。不管是有意识还是无意识,这些活动都会出现在项目过程中。这也是最重要的四项活动,其他的活动其实都是为这些活动服务的,不管是配置管理、风险管理,还是评审等等。
以下对各种常用的软件生命周期模型的设计思想、WBS划分(Work Breakdown Structure,即工作分解结构)、优缺点、使用范围进行分析。
1、瀑布模型
(1)基本思想
瀑布模型(Waterfall Model)是最基本也最常用的一种生命周期模型,又称线性模型。
瀑布模型是一个项目开发架构,开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段,这也是瀑布模型名称的由来。瀑布模型可以应用于软件工程开发、企业项目开发、产品生产以及市场销售等领域。
瀑布模型的突出特征是文档驱动。从需求分析到系统维护,每一项活动
的工作成果就是此项活动所产生的工作文档,以及在此基础上形成的产品。
采用瀑布模型的项目依照该模型选定的阶段顺序进行,每一个阶段的工作产品都是下一个阶段工作的输入,每一个阶段只有在上一个阶段通过检查,确认完成后才开始新的阶段工作,所以项目必须有明确的阶段里程碑,在每个阶段结束时都要进行里程碑评审,以判定是否可以开始下一阶段的工作。例如:在项目策划没有完成时,需求分析和设计工作就不能进行,同样,在需求分析和设计没有完成时就不开始编码。瀑布模型中,每个阶段完成后,可以在下一个阶段修改上一个阶段的工作产品,但是必须按照基线变更进行管理,如果发生变更,需要回溯前面所有阶段的工作产品,以便使工作产品保持一致。
(2)WBS划分
图 1 瀑布模型的思想示意图
说明:
图中标记为的阶段为选定的里程碑,该阶段完成时需进行里程碑评审活动,并对其输出进行严格的变更控制。
(2)WBS划分
此表仅作为参考,需根据项目所选定的标准过程的活动和任务进一步细化。
(3)优缺点
该模型的优点:
①阶段分明、活动明确,为软件开发工作提供一种结构化、有序的方法;
②过程控制可见性较强:按照顺序开展每一个阶段的工作,每一阶段是
在上一阶段彻底完成的情况下才启动,可以保证每一个阶段的开发质量都有保证,减少了返工;
③开发过程中的各项文档降低了沟通的成本,有利于及早发现问题,降低项目的阶段成本;
④文档多,过程记录比较全,有利于后期维护。
该模型的缺点:
①不能回溯:项目从开始到发布可见的版本需要较长的周期,用户直到
项目开发晚期才能了解产品的真实面貌和质量,不易变更;如果必须回溯,则回溯成本很大。
②缺乏灵活性,不能跨阶段操作;
③文档多,花费较多成本。
(4)适用范围
①产品定义(或项目需求)和技术方案非常明确、用户的需求有很好的了解;
②对质量的要求高于对成本和进度的要求;
③工期相对较宽裕;
④开发队伍技术力量较弱或缺乏经验;
⑤维护项目。
2、迭代模型
(1)基本思想
迭代模型是RUP(Rational Unified Process,统一软件开发过程)推荐的周期模型。在RUP中,迭代被定义为:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:需求、分析设计、实施和测试工作流程。实质上,它类似小型的瀑布式项目。RUP 认为,所有的阶段都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。
图2 迭代模型的思想示意图
说明:
迭代模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:
①制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
②风险分析:分析评估所选方案,考虑如何识别和消除风险;
③实施工程:实施软件开发和验证;
④客户评估:评价开发工作,提出修正建议,制定下一步计划。
迭代模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
使用迭代模型进行软件开发,项目活动包含以下几个阶段:
①初始阶段
初始阶段有时也称先启阶段。初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。本阶段具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。