软件生命周期模型选择及WBS分解指南
- 格式:docx
- 大小:248.55 KB
- 文档页数:18
软件生命周期模型选择及WBS分解指南一、概述同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为“软件生命周期”。
软件生命周期模型,通俗说就是,软件开发过程中所遵循的模式,即把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。
软件生命周期模型和项目开发过程有非常紧密关系,它是经过多次实践总结出来适合于不同项目使用的经典、有效的软件开发方法,它按照软件生命周期的各个阶段划分任务,依照一定的规则和步骤,有效地进行软件开发。
选用恰当的软件生命周期模型进行软件开发,可以提高产品质量;降低项目管理难度;缩短开发进度;便于项目状态跟踪;为过程改进和度量提供基线;改善组织级的过程弱势,提高过程能力成熟度级别。
为了便于分类汇总和统计各种生命周期模型的指标和数据,结合公司软件开发过程的实际,我们选择了常用的几种基本模型进行了描述,项目开发小组在进行项目策划时,可以根据模型的适用前提、优缺点和项目的实际需要进行选择,并在《项目实施计划》中,参加评审。
二、软件生命周期模型常用的软件生命周期模型有:瀑布模型、迭代模型、增量模型、原型模型等。
以上所提到的件生命周期模型病不存在孰优孰劣的问题,每一种模型在实际工作中都有所应用。
只要选择了最适合的,并按照此模型的流程来开发软件,都会取得成功。
需要强调的是,不管采用什么模型,项目实施中有四项活动是必不可少的——需求、设计、编码和测试。
不管是有意识还是无意识,这些活动都会出现在项目过程中。
这也是最重要的四项活动,其他的活动其实都是为这些活动服务的,不管是配置管理、风险管理,还是评审等等。
以下对各种常用的软件生命周期模型的设计思想、WBS划分(Work Breakdown Structure,即工作分解结构)、优缺点、使用范围进行分析。
1、瀑布模型(1)基本思想瀑布模型(Waterfall Model)是最基本也最常用的一种生命周期模型,又称线性模型。
软件生命周期模型选择及WBS分解指南引言:在软件开发过程中,选择合适的软件生命周期模型对于项目的成功实施和交付至关重要。
同时,编制合理的工作分解结构(Work Breakdown Structure, WBS)也是项目管理的关键一环。
本文将为您提供一些关于软件生命周期模型选择和WBS分解的指南,希望能够帮助您在软件开发项目中取得更好的成果。
一、软件生命周期模型选择指南:1.需求的稳定性:如果项目需求相对稳定不易改变,可以选择传统的瀑布模型。
而如果需求较为不稳定,可能需要采用迭代或增量模型来适应变化。
2.时间和成本要求:如果项目有严格的时间和成本要求,并且对风险承担能力要求较低,可以选择瀑布模型。
如果项目对时间和成本要求有一定的弹性,并且可以承担一定的风险,可以选择敏捷或增量模型。
3.项目规模和复杂度:如果项目规模较小且较简单,可以选择敏捷模型或增量模型。
而对于较大且较复杂的项目,可以选择瀑布模型或融合多种模型的混合模型。
4.团队成熟度和经验:如果项目团队对软件开发过程较为熟悉,并且具有较丰富的经验,可以选择敏捷模型。
而对于缺乏经验和技术实力较弱的团队,可以选择瀑布或增量模型,以确保项目的可控性。
5.客户合作度:如果项目需要与客户密切合作,并根据客户的反馈进行及时调整,可以选择敏捷模型。
而对于客户合作度较低的项目,可以选择瀑布模型或增量模型。
二、WBS分解指南:WBS是将项目工作分解为可管理和控制的小块的过程,是项目管理的基本工具之一、下面是一些关于WBS分解的指南:1.确定项目的总目标:首先需要明确项目的总目标和范围,以便将其分解为具体的工作包。
2.定义阶段和子阶段:将项目分解为不同的阶段和子阶段,以便更好地管理和控制项目进展。
3.确定工作包:将每个阶段和子阶段分解为具体的工作包,每个工作包应该具有明确的可交付成果和工作范围。
4.确定工作包的工作内容:将每个工作包进一步分解为可以被分配给团队成员的具体工作任务,确保每个任务都具有可测量和可跟踪的成果。
软件工程软件生命周期模型在软件工程领域,软件生命周期模型是一种重要的框架,用于指导软件开发的过程。
它为软件开发团队提供了一种结构化的方法,以确保软件的开发能够高效、高质量地完成。
软件生命周期模型就像是一张地图,指引着开发人员从项目的启动到最终的交付。
它涵盖了软件从概念形成到退役的整个过程,包括一系列的阶段、活动和任务。
常见的软件生命周期模型有瀑布模型、快速原型模型、增量模型、螺旋模型和敏捷模型等。
瀑布模型是最早出现的软件生命周期模型之一。
它将软件开发过程分为明确的几个阶段,如需求分析、设计、编码、测试和维护。
每个阶段都必须在前一个阶段完成且经过评审后才能开始。
这种模型的优点是流程清晰,文档规范。
但它的缺点也很明显,如果在后期发现前期的错误,修改成本会很高,而且不适应需求的频繁变更。
快速原型模型则是在获取基本需求后,快速构建一个原型系统。
用户通过使用原型来进一步明确需求,开发人员根据反馈进行修改和完善。
这个模型的好处是能够快速获得用户的反馈,尽早发现问题。
但由于原型往往不够完善,可能会给用户造成误解。
增量模型是把软件系统逐步分解为多个增量构件,每个构件分别开发和交付。
这样可以在较短的时间内交付部分功能,让用户逐步看到成果。
但它对软件的架构设计要求较高,需要很好地规划各个增量之间的接口。
螺旋模型则是将瀑布模型和快速原型模型结合起来,并加入了风险分析。
它沿着螺旋线不断迭代,每一轮迭代都包括制定计划、风险分析、实施工程和客户评估等步骤。
这种模型适用于大型、复杂且高风险的项目,但管理成本相对较高。
近年来,敏捷模型在软件开发中越来越受欢迎。
敏捷开发强调团队的快速响应和持续交付,通过短周期的迭代来不断完善软件。
常见的敏捷方法有 Scrum 和 Kanban 等。
敏捷模型注重人与人之间的沟通和协作,能够更好地适应需求的变化,但对团队成员的素质和自组织能力要求较高。
在选择软件生命周期模型时,需要考虑多个因素。
首先是项目的特点,比如项目的规模、复杂度、需求的稳定性等。
软件开发生命周期模型的选择在软件开发中,生命周期模型是一种用于描述软件开发过程的框架。
不同的生命周期模型为软件开发提供了不同的指导方针和步骤,从而有助于开发团队在项目执行期间遵循规范和有效地组织开发过程。
但是,不同的开发项目具有不同的特点和需求,因此选择合适的生命周期模型是非常重要的。
本文将对软件开发生命周期模型进行探讨,并讨论在选择过程中需要考虑的因素。
一、生命周期模型概述生命周期模型是软件开发中的一个重要概念,其目的是为软件开发过程提供一种组织方法,使得软件开发流程变得更加明确可控。
常见的生命周期模型主要有瀑布模型、迭代模型、螺旋模型、敏捷方法等。
瀑布模型是软件生命周期模型中最经典的模型,其具有层次分明、逐步推进,且每个阶段都有明确定义的文档和交付成果的特点。
瀑布模型适合开发复杂性低、需求稳定的软件项目,但当需求发生变更时,会导致大幅度返工,增加项目延误和成本。
迭代模型强调快速、迭代式的开发环节,通过不断迭代,逐步完善系统,具有灵活性和应变能力,适合于需求不稳定的软件开发项目。
螺旋模型是一种风险驱动的生命周期模型,强调对开发过程中出现的风险进行管理,并在开发周期的各个阶段不断调整和完善计划。
该模型适用于需要高度可靠性、安全性和稳定性的软件项目。
敏捷方法是一种应对快速变化的软件开发方法,其主要特点是将软件开发过程分解为较短的周期(通常为2至4周),每个周期内的成果可以及时交付和评估。
因此,敏捷方法适用于需要快速响应市场、客户需求的软件开发项目。
以上介绍的生命周期模型仅是其中的一部分,根据项目的不同特点和需求,开发团队可以选择不同的生命周期模型。
二、选择生命周期模型的考虑因素在选择软件开发生命周期模型时,需要考虑多种因素,包括以下几个方面:1. 项目特点不同的项目具有不同的特点,例如项目复杂度、需求稳定性、风险程度等。
在选择生命周期模型时,应根据项目特点选择合适的模型。
如果项目需求稳定、复杂度低,则瀑布模型适合;如果项目需求变化较快,则可以考虑采用迭代模型或敏捷方法。
软件开发生命周期与模型选择在当今数字化时代,软件开发已经成为了各个行业的核心竞争力之一。
无论是金融、医疗、零售还是制造业,软件的开发与运维都扮演着至关重要的角色。
然而,软件开发并非一蹴而就的过程,而是需要经历一个完整的生命周期。
本文将探讨软件开发生命周期的各个阶段,并介绍不同的开发模型,以帮助读者更好地选择适合自己项目的开发模型。
软件开发生命周期可以被分为几个阶段,包括需求分析、设计、编码、测试和维护。
在需求分析阶段,开发团队与客户紧密合作,明确软件的功能和性能要求。
这一阶段的重点是确保团队对客户需求的准确理解,以避免后续开发过程中的误解和偏差。
接下来是设计阶段,开发团队将根据需求分析的结果,设计出软件的整体架构和模块划分。
这一阶段的目标是确保软件的可扩展性和可维护性,以便在后续的开发和维护过程中更加高效地进行。
编码阶段是将设计文档转化为实际可执行代码的过程。
开发团队将根据设计文档中的指导,使用合适的编程语言和工具,逐步实现软件的各个功能模块。
这一阶段需要开发团队具备良好的编码能力和团队协作能力,以确保代码质量和开发进度。
测试阶段是整个软件开发生命周期中至关重要的一环。
开发团队将对已经编写好的代码进行全面的测试,包括功能测试、性能测试和安全测试等。
通过不同的测试手段,可以及早发现和修复潜在的问题,确保软件的质量和稳定性。
最后一个阶段是维护阶段,也是软件开发生命周期中最长的一个阶段。
在软件交付给客户后,开发团队需要持续关注软件的运行情况,并及时修复和升级软件。
这一阶段的目标是确保软件的稳定性和可用性,以满足客户的需求。
除了软件开发生命周期的不同阶段,选择合适的开发模型也是软件开发过程中的重要决策之一。
常见的开发模型包括瀑布模型、迭代模型和敏捷模型等。
瀑布模型是一种线性的开发模型,适用于需求明确、变化较少的项目。
在瀑布模型中,每个阶段的工作都是按照顺序进行的,一旦进入下一个阶段,就很难回到上一个阶段。
浅议软件项目生命周期模型与选择作者:李霞来源:《中国新技术新产品》2012年第22期摘要:本文介绍了软件项目生命周期模型及选用原则,以指导项目组根据项目具体情况进行活动和任务安排,规范项目过程,保证项目质量和开发效率。
关键词:软件项目;生命周期模型;选择中图分类号::TP311.52 文献标识码:A正确的选择生命周期模型是软件开发成功的第一步。
软件项目经理在对项目进行策划时,首先需要考虑选择适用的软件生命周期模型。
合适的项目周期模型使得项目开发过程流程化、易于管理,同时能够提高开发速度和产品质量,更好的满足客户的要求。
1软件项目生命周期模型介绍1.1标准生命周期模型1.1.1标准生命周期模型将项目分成5个阶段,分别为构思阶段、计划阶段、开发阶段、稳定阶段和部署阶段,每个阶段定义了主要的工作目标和活动,每个阶段的结束以完成各自的里程碑为标记。
1.1.2模型图图 1 标准生命周期模型图通过使用分阶段和里程碑驱动的方式,使整个项目过程的可预见性和可管理性增强,项目质量可以得到有效的控制和提高。
每个阶段的结束包括一个里程碑,里程碑表示某个时间点,在这个时间点上,应该完成一组预先指定的交付成果。
里程碑的设立,可以帮助团队成员定期同步工作成果;产物经过正式评审,还可以确保项目进展方向的正确性,保证不偏离预定的业务目标。
在模型图中定义的里程碑为阶段里程碑(也称为主里程碑),在每个阶段的进行中,也可以在阶段内部定义其他中间里程碑(也称为次里程碑),如完成系统架构设计的里程碑等。
中间里程碑将一个阶段内的工作分成便于管理的几部分,由项目组根据项目情况制定,生命周期模型中对中间里程碑不做硬性要求。
此外,标准生命周期模型还是一个迭代方法,通过把一个大项目分为几个版本将风险减至最小。
在软件项目开发中,一般可先开发、测试和部署那些核心的、基本的功能,然后在后续的版本中添加其他功能。
使用多版本的方法,可以将复杂的大项目分解成几个较小的项目,使它们更便于管理。
修改记录目录1目的 (1)2软件开发生命周期选择指南 (1)2.1工程特征: (1)1目的软件开发生命周期选择指南的目的:就是指导工程组初步选择适用本工程的软件开发生命周期模型,以便根据软件工程自身特点裁剪公司标准软件开发生命周期过程,用于定义软件工程过程PDSP。
2软件开发生命周期选择指南这一节描述了工程的特性,这些特性被用来作为选择适宜的LC模型的标准。
共有11种特性。
每一种规那么都有一个对它是如何影响对模型的选择和它使用指导的描述。
在XXXX-TOSSP的工程中,总共有7种推荐的模型。
两张表格详细描述了7种模型以及规那么的适宜值。
●表格1按照正规性递减的顺序提供了根本的瀑布模型–标准V 瀑布, 4阶段V 瀑布和3阶段V 瀑布。
●表格2包括了大部。
●表格3提供了标准软件开发生命周期模型的工程特性的总结。
●在表格4中列出了一个真实工程对生命周期选择的例子来说明对表格3的使用。
●使用这节为你的工程选择和简短列出适宜的生命周期模型。
使用工程的特征和给出的值来作为指导。
工程的适应性矩阵或记录方案〔POR〕可以影响对适宜LC的最终选择。
同其他在PDSP中规定的选择模型的规那么一起,捕获你的工程的特征以及生命周期的选择。
在XXXX-TOSSP中,这个数据被周期性地用来对特征作重新校准。
●利用下一节所详细描述的模型,有适应或裁剪地最终选出最适宜的模型。
2.1 工程特征工作量:大: 工作量> 30 工程月(EM)中: 工作量在15-30 EM之间小: 工作量在6-15 EM之间非常小: 工作量< 6 EM团队规模:数量的团队规模。
一般来说,越是大的团队要使用越是严格和正规的LC模型,以便通过增加互相依赖和沟通来应付风险。
大: >30中: 10 到30小: 3 到10非常小: <3周转时间:多: > 12月中: 6-12 月少: 3-6 月非常少: < 3 月以下对工程特征的分类为高、中和低。
生命周期模型选择指南生命周期模型选择指南目录1.目的 (1)2.范围 (1)3.项目生命周期 (1)3.1.瀑布模型 (3)3.1.1.V字模型 (4)3.1.2.中等简化V字模型 (6)3.1.3.最简化V字模型 (7)3.2.原型模型 (9)3.3.螺旋模型 (10)3.4.增量模型 (12)3.5.迭代模型 (13)1.目的1)根据项目类型和实际情况,从公司认可的生命周期模型选择合适的生命周期模型;2)根据所选择的生命周期模型,裁剪和细化标准过程,使裁剪后的过程符合项目的特点和实际情况。
2.范围本文件适用于公司所有类型的项目。
3.项目生命周期生命周期模型是从项目需求定义直至经使用后废弃为止,跨越整个生存期的系统开发、运作和维护所实施的全部过程、活动和任务的结构框架。
生命周期模型一般分为:瀑布模型、原型模型、迭代模型、增量模型。
软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。
目前软件开发实践中使用的各种生命周期模型,都是下面各阶段的不同排列与组合。
∙系统需求∙需求分析∙设计(概要设计和详细设计)∙编码实现∙测试∙使用与维护各阶段主要工作、应完成的文档、质量控制手段见下表。
该生命周期模型适合于所有项目。
一个完整的开发类项目生命周期一般分为:需求分析、设计、编码、测试、发布、实施以及运行维护阶段。
3.1.瀑布模型1)特点●阶段间具有顺序性和依赖性:必须等前一阶段的工作完成之后,才能开始后一阶段的输入。
对本阶段工作进行评审,若得到确认,则继续下阶段工作,否则返回前一阶段,甚至更前阶段。
只有前一阶段输出正确,后一阶段才能正确;●推迟实现的观点:在编码之前,设置了需求分析与设计的各个阶段,分析与设计阶段的根本任务规定在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现;●质量保证的观点是每个阶段都坚持两个做法:规定文档,没有文档就没有完成该段任务;每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题,改正错误。
软件生命周期模型选择及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 迭代模型的思想示意图说明:迭代模型沿着螺线进行若干次迭代,图中的四个象限代表了以下活动:①制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;②风险分析:分析评估所选方案,考虑如何识别和消除风险;③实施工程:实施软件开发和验证;④客户评估:评价开发工作,提出修正建议,制定下一步计划。
迭代模型由风险驱动,强调可选方案和约束条件从而支持软件的重用,有助于将软件质量作为特殊目标融入产品开发之中。
使用迭代模型进行软件开发,项目活动包含以下几个阶段:①初始阶段初始阶段有时也称先启阶段。
初始阶段的目标是为系统建立商业案例并确定项目的边界。
为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。
本阶段具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。
对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。
②细化阶段细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。
为了达到该目的,必须在理解整个系统的基础上,对体系结构做出决策,包括其范围、主要功能和诸如性能等非功能需求。
同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。
③构造阶段在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。
从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。
④交付阶段交付阶段的重点是确保软件对最终用户是可用的。
交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。
在生命周期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。
图3 迭代模型的几个阶段(2)WBS划分实际采用迭代模型中,项目阶段仍可参考瀑布执行。
迭代模型实施重要的关键点是架构设计(概要设计)、制定迭代开发计划。
(3)优缺点与传统的瀑布模型相比较,迭代模型具有以下优点:①降低了在一个增量上的开支风险。
如果开发人员重复某个迭代,那么损失只是这一个开发有误的迭代的花费;②降低了产品无法按照既定进度进入市场的风险。
通过在开发早期就确定风险,可以尽早来解决而不至于在开发后期匆匆忙忙;③加快了整个开发工作的进度。
因为开发人员清楚问题的焦点所在,他们的工作会更有效率;④由于用户的需求并不能在一开始就做出完全的界定,它们通常是在后续阶段中不断细化的。
因此,迭代过程这种模式使适应需求的变化会更容易些。
迭代模型的缺点:①风险管理成本较高:迭代模型本身强调风险,但风险管理本身也存在成本问题;如果风险管理成本过大,将会严重影响项目的利润;②对项目组成员的要求非常高:在风险分析、进度管理等方面,需要有较高层次的人员配置及丰富的项目管理和项目实施的经验。
这对于开发队伍技术力量较弱或缺乏经验的团队很难实施。
(4)适用范围①在项目开发早期需求可能有所变化;②分析设计人员对应用领域很熟悉;③高风险项目;④用户可不同程度地参与整个项目的开发过程;⑤使用面向对象的语言或统一建模语言(Unified Modeling Language,UML);⑥使用CASE(Computer Aided Software Engineering,计算机辅助软件工程)工具,如Rose(Rose 是非常受欢迎的物件软体开发工具);⑦具有高素质的项目管理者和软件研发团队。
3、增量模型(1)基本思想增量模型是通过对用户需求的判断,在定义了用户要求和系统需求,进行总体构架设计后,采用序列化地创建产品的方法进行开发的过程。
每一个线性序列产生软件的一个可发布的“增量”,第一个建立的增量完成预计功能/性能的一部分(往往包含了核心功能,即实现了基本的需求),下一个增量实现另外的部分,增加更多的功能/性能,然后与前面实现的增加进行集成,如此循环,直到系统完全实现。
增量模型的特点是引进了增量包的概念,无须等到所有需求都出来,只要某个需求的增量包出来即可进行开发。
虽然某个增量包可能还需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。
其实现过程简图如下所示:图4 增量模型的思想示意图说明:在策划阶段,项目经理需要与客户协商确定增量的数目、规模、每一增量发布的时间表,在概要设计阶段需要考虑各增量集成的顺序、接口等问题,制定集成策略。
增量循环的循环体可以根据项目的实际情况进行控制。
增量模型本质上是迭代的,但其强调每一个增量均发布一个可操作产品。
早期的增量是最终产品的“可拆卸”版本,但提供了为用户服务的功能,并且为用户提供了评估的平台。
(2)WBS划分(3)优缺点该模型的优点:①在达到初始需求之前可降低成本:采用增量模型可以灵活分配人员,刚开始不用投入大量人力资源。
如果核心产品很受欢迎,则可增加人力实现下一个增量;②可快速生产出可使用的系统:它提供了一种先推出核心产品的途径,这样即可先发布部分功能给客户,对客户起到镇静剂的作用;③能够有计划地管理技术风险。
该模型的缺点:①系统集成难度大:由于各个构件是逐渐并入已有的软件体系结构中的,各增量的集成难度增大,所以在概要设计阶段需要制定详细的集成策略;②项目管理风险加大:在开发过程中,需求的变化是不可避免的,增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。
(4)适用范围①用户核心需求非常清楚;②项目人员不足;③产品可以分割成不同的阶段分别完成。