3 软件生存周期模型.ppt





《3 软件生存周期模型.ppt》由会员分享,可在线阅读,更多相关《3 软件生存周期模型.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 软件工程软件工程 第三讲第三讲 软件生存周期模型软件生存周期模型2.2软件生存周期模型软件生存周期模型)基本概念基本概念 软件生存周期模型软件生存周期模型IEEEStandard12207.0-1996把一个软件生存周期模型描述为:一个包括软件产品开把一个软件生存周期模型描述为:一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止。系统的需求定义到系统的使用终止。中国计算机科学与技术百科全书中国计算机科学与技术百科全书称软件生存周期模型为称软件生存周期模型为“软件开发模型软件开发模型”,并
2、把它定义为:,并把它定义为:软件过程、活动、任务的结构框架。软件过程、活动、任务的结构框架。系统需求系统需求软件需求软件需求需求分析需求分析设设计计编编码码测测试试运运行行归纳逻辑:归纳逻辑:P P Q Q P P Q Q )瀑布模型瀑布模型1970年,年,W.RoyceThe basis for mostcurrent practice and hasmany variations.Its namecome from the progressionof activities based on theoutputofonephase“falling”as input to thefollowi
3、ngphase.Itisdrivenby the needs to scheduleprojectmilestoneswhichareprovidedbythecompletionofdocumentsateachlevelorphase.()()项目的开发依次经过:需求、设计、编码和单元测试、项目的开发依次经过:需求、设计、编码和单元测试、集成以及维护集成以及维护 这一基本路径。这一基本路径。()在每一阶段提交以下产品:软件需求规约、设计文档、()在每一阶段提交以下产品:软件需求规约、设计文档、实际代码、测试用例、最终产品等。工作产品(又称可实际代码、测试用例、最终产品等。工作产品(又称可提
4、提交交的的产产品品,DeliverablesDeliverables)流流经经“正正向向”开开发发的的基基本本步步骤路径。骤路径。()“反反向向”步步骤骤流流表表示示对对前前一一个个可可提提交交产产品品的的重重复复变变更更(又(又称为称为“返工返工”(Rework)(Rework))。由于所有开发活动的非确定性,因此是否需要重复变由于所有开发活动的非确定性,因此是否需要重复变更,这仅在下一个阶段或更后的阶段才能认识到。更,这仅在下一个阶段或更后的阶段才能认识到。返工不仅在以前阶段的某一地方需要,而且对当前正返工不仅在以前阶段的某一地方需要,而且对当前正在进行的工作也是需要的。在进行的工作也是需
5、要的。关于瀑布模型的几点说明关于瀑布模型的几点说明()瀑布模型的优点)瀑布模型的优点 虽然瀑布模型是一个比较虽然瀑布模型是一个比较“老老”的、甚至过时的开发模型,的、甚至过时的开发模型,但其优点为:但其优点为:在决定系统怎样做之前,存在一个需求阶段,鼓励对系在决定系统怎样做之前,存在一个需求阶段,鼓励对系 统统“做什么做什么”进行规约(即设计之前的规约)。进行规约(即设计之前的规约)。在建造构件之前,存在一个设计阶段,鼓励规划系统结在建造构件之前,存在一个设计阶段,鼓励规划系统结 构(即编码之前的设计)。构(即编码之前的设计)。在每一阶段结束时进行复审,允许获取方和用户的参与。在每一阶段结束时
6、进行复审,允许获取方和用户的参与。允许基线和配置早期接受控制。允许基线和配置早期接受控制。前一步工作产品可作为下一步被认可的、文档化的基线。前一步工作产品可作为下一步被认可的、文档化的基线。()()瀑布模型存在的不足瀑布模型存在的不足 客户必须能够完整、正确和清晰地表达他们的需求;开发客户必须能够完整、正确和清晰地表达他们的需求;开发 人员一开始就必须理解其应用。人员一开始就必须理解其应用。在开始的两个或三个阶段中,很难评估真正的进度状态在开始的两个或三个阶段中,很难评估真正的进度状态;设计、编码和测试阶段都可能发生延期。设计、编码和测试阶段都可能发生延期。在一个项目的早期阶段,过分地强调了基
7、线和里程碑处在一个项目的早期阶段,过分地强调了基线和里程碑处 的文档的文档;可能要花费更多的时间,用于建立一些用处不可能要花费更多的时间,用于建立一些用处不 大的文档。大的文档。当接近项目结束时,出现了大量的集成和测试工作。当接近项目结束时,出现了大量的集成和测试工作。直到项目结束之前,都不能演示系统的能力。直到项目结束之前,都不能演示系统的能力。(3)瀑布模型适用的情况瀑布模型适用的情况在开发中,向下、渐进的路径占支配地位。也就是说,在开发中,向下、渐进的路径占支配地位。也就是说,需求已被很好地理解;并且需求已被很好地理解;并且 过程设计人员也很清楚:开发组织非常熟悉为实现这一模过程设计人员
8、也很清楚:开发组织非常熟悉为实现这一模 型所需要的过程(或经过培训后,熟悉什么时候来支持这型所需要的过程(或经过培训后,熟悉什么时候来支持这 一项目,以实现这一模型所需要的过程)。一项目,以实现这一模型所需要的过程)。因此为了避免产生过多因此为了避免产生过多的反复迭代工作,增加开发成本,的反复迭代工作,增加开发成本,一般在准备采用瀑布模型一般在准备采用瀑布模型(也包括其他模型也包括其他模型)时,需要考虑以下时,需要考虑以下2个问题:第一个问题是,过程设计人员必须对初始产品个问题:第一个问题是,过程设计人员必须对初始产品(通常通常是软件需求规约,是软件需求规约,SRS)的不确定性进行评估。的不确
9、定性进行评估。另一个问题是,组织是否具有熟练实施每个活动和另一个问题是,组织是否具有熟练实施每个活动和任务的历史经验。任务的历史经验。13259101167121384增量增量1 1 1,2,5,9 1,2,5,9 增量增量2 2 3 3,6,7,4,10,11,6,7,4,10,11 增量增量3 3 8 8,12,13,12,13 管理管理增量规约增量规约增量设计增量设计纠错性分析纠错性分析增量实现增量实现增量1增量2增量33)增量模型增量模型该模型有一个假设,即需求可以分段,成为一系列增该模型有一个假设,即需求可以分段,成为一系列增量产品,每一增量可以分别地开发。量产品,每一增量可以分别地
10、开发。关于增量模型的几点说明:关于增量模型的几点说明:(1(1)增量模型的优点)增量模型的优点 作为瀑布模型的第一个变体,具有瀑布模型的所有优点。作为瀑布模型的第一个变体,具有瀑布模型的所有优点。此外,它还有以下优点:此外,它还有以下优点:第一个可交付版本所需要的成本和时间是很少的;第一个可交付版本所需要的成本和时间是很少的;开发由增量表示的小系统所承担的风险是不大的;开发由增量表示的小系统所承担的风险是不大的;由于很快发布了第一个版本,因此可以减少用户需求由于很快发布了第一个版本,因此可以减少用户需求 的变更;的变更;允许增量投资,即在项目开始时,可以仅对一个或两允许增量投资,即在项目开始时
11、,可以仅对一个或两 个增量投资。个增量投资。()缺点:)缺点:如果增量模型不适于某些项目,或使用有误,则有如果增量模型不适于某些项目,或使用有误,则有以下缺点:以下缺点:如果没有对用户的变更要求进行规划,那么产生的初始如果没有对用户的变更要求进行规划,那么产生的初始 增量可能会造成后来增量的不稳定;增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增如果需求不像早期思考的那样稳定和完整,那么一些增 量就可能需要重新开发,重新发布;量就可能需要重新开发,重新发布;管理发生的成本、进度和配置的复杂性,可能会超出组管理发生的成本、进度和配置的复杂性,可能会超出组 织的能力
12、。织的能力。注:如果采用增量投资方式,那么客户就可以对一些增量进注:如果采用增量投资方式,那么客户就可以对一些增量进行招标。然后,开发人员按提出的截止期限进行增量开发,这行招标。然后,开发人员按提出的截止期限进行增量开发,这样客户就可以用多个契约来管理组织的资源和成本。样客户就可以用多个契约来管理组织的资源和成本。()该模型的适用情况)该模型的适用情况 在在开开始始开开发发时时,需需求求很很明明确确,且且产产品品还还可可被被适适当当地地分分解解为为一一些些独独立立的的、可可交交付付的的软软件件(构构造造增增量量:Build Build incrementsincrements如如果果一一个个增
13、增量量并并不不需需要要交交付付给给客客户户的的话话,那那么么这这样样的的增增量量通通常常称称为为一一个个“构构造造”(Build)。如如果果增增量量被被交交付付,那那么么它它们们就就被被认认为为是发布版本是发布版本(Releasedversion)。););在开发中,期望尽快提交其中的一些增量产品。在开发中,期望尽快提交其中的一些增量产品。例如:例如:一个数据库系统,它必须通过不同的用户界面,为不同类型的一个数据库系统,它必须通过不同的用户界面,为不同类型的用户提供不同的功能。在这一情况下,首先实现完整的数据库用户提供不同的功能。在这一情况下,首先实现完整的数据库设计,并把一组具有高优先级的用
14、户功能和界面作为一个增量;设计,并把一组具有高优先级的用户功能和界面作为一个增量;以后,陆续构造其它类型用户所需求的增量。以后,陆续构造其它类型用户所需求的增量。附:微软附:微软“同步同步-稳定的产品开发模型稳定的产品开发模型”将项目分为若干个里程碑阶段将项目分为若干个里程碑阶段 定义稳定、灵活的体系结构,并为构件定义稳定、灵活的体系结构,并为构件 和子系统的开发提供统一的接口和子系统的开发提供统一的接口 开发构件,维持一个可发布的系统版本开发构件,维持一个可发布的系统版本 可以准确把握项目进展情况可以准确把握项目进展情况 增强开发人员的信心和成就感增强开发人员的信心和成就感 可以随时根据市场
15、情况及时作出调整可以随时根据市场情况及时作出调整需求需求设计设计编码编码测试测试集成集成需求需求设计设计编码编码测试测试集成集成开开发发反反馈馈开开发发反反馈馈.核核心心系系统统开开发发第第二二次次迭迭代代)演化模型(演化模型(Evolutionary modelEvolutionary model)是一种有弹性的过程模式,由一些小的开发步组成,每一是一种有弹性的过程模式,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增步历经需求分析、设计、实现和验证,产生软件产品的一个增量。通过这些迭代,完成最终软件产品的开发。量。通过这些迭代,完成最终软件产品的开发。针对事
16、先不能完整地定义需求针对事先不能完整地定义需求 针对用户的核心需求针对用户的核心需求,开发核心系统开发核心系统 根据用户的反馈根据用户的反馈,实施活动的迭代实施活动的迭代关于演化模型的几点说明关于演化模型的几点说明(1(1)主要特征)主要特征 该模型显式地把增量模型扩展到需求阶段。由图可以看出,该模型显式地把增量模型扩展到需求阶段。由图可以看出,为了第二个构造增量,使用了第一个构造增量来精化需求。为了第二个构造增量,使用了第一个构造增量来精化需求。这一精化可以有多个来源和路径。这一精化可以有多个来源和路径。首先,如果一个早期的增量已向用户发布,那么用户会以变首先,如果一个早期的增量已向用户发布
17、,那么用户会以变更要求的方式提出反馈,以支持以后增量的需求开发。更要求的方式提出反馈,以支持以后增量的需求开发。第二,通过实实在在地开发一个构造增量,为以前还没有认第二,通过实实在在地开发一个构造增量,为以前还没有认识到的问题提供了可见性,以便实际地开始这一增量的工作。识到的问题提供了可见性,以便实际地开始这一增量的工作。(2(2)与瀑布模型的关系)与瀑布模型的关系 在在演演化化模模型型中中,仍仍然然可可以以使使用用瀑瀑布布模模型型来来管管理理每每一一个个演演化化的的增增量量。一一旦旦理理解解了了需需求求,就就可可以以像像实实现现瀑瀑布布模模型型那那样样开开始始设设计计阶阶段和编码阶段。段和编
18、码阶段。(3(3)使用演化模型应注意的问题)使用演化模型应注意的问题 不不能能弱弱化化需需求求分分析析阶阶段段的的工工作作。其其原原因因是是:在在项项目目开开始始时时,考考虑虑所所有有需需求求来来源源的的重重要要性性和和风风险险,对对这这些些来来源源的的可可用用性性进进行行评评估估。只只有有采采用用这这一一方方法法,才才能能识识别别和和界界定定不不确确定定的的需需求求,并并识识别别第一个增量中所包含的需求。第一个增量中所包含的需求。(4(4)演化模型的长处和不足)演化模型的长处和不足 演化模型还具有以下优点:与增量模型是类似的。特别地,演化模型还具有以下优点:与增量模型是类似的。特别地,在需求
19、不能予以规约时,可以使用这一演化模型。在需求不能予以规约时,可以使用这一演化模型。用户可以通过运行系统的实践,对需求进行改进。用户可以通过运行系统的实践,对需求进行改进。与瀑布模型相比,需要更多用户与瀑布模型相比,需要更多用户/获取方的参与。获取方的参与。缺点有:缺点有:演化模型的使用仍然处于探索阶段,因此具有较大演化模型的使用仍然处于探索阶段,因此具有较大 的风险,需要有力的管理。的风险,需要有力的管理。演化模型的使用很容易成为不编写需求或设计文档的借口,演化模型的使用很容易成为不编写需求或设计文档的借口,即使很好地理解了需求或设计。即使很好地理解了需求或设计。用户用户/获取方不易理解演化模
20、型的自然属性,因此当结果不获取方不易理解演化模型的自然属性,因此当结果不 够理想时,可能产生抱怨。够理想时,可能产生抱怨。演化演化维护维护确认确认实现实现设计设计分析分析)喷泉模型喷泉模型 特征:迭代特征:迭代无缝无缝 与面向对象技术与面向对象技术的关系的关系)螺旋模型螺旋模型 该模型是由该模型是由Dr.Barry Boehm Boehm 1988Dr.Barry Boehm Boehm 1988开发的。开发的。该模型将软件生存周期的活动分为四个可重复的阶段:该模型将软件生存周期的活动分为四个可重复的阶段:规划、风险分析、开发和评估:规划、风险分析、开发和评估:项目的进度是项目的进度是“螺旋螺
21、旋”式的。式的。riskanalysisstageDevelopmentstagePlanningstageEvaluationstagestartResourceuse其中:其中:评估和风险分析阶段都可作出一个决策:项目是否继续。评估和风险分析阶段都可作出一个决策:项目是否继续。螺旋循环的次数指示了已消耗的资源;螺旋循环的次数指示了已消耗的资源;在规划阶段、风险分析阶段和开发阶段均进行需求规约活在规划阶段、风险分析阶段和开发阶段均进行需求规约活动;动;在早期螺旋循环中,为了为最终的实现给出一些指导性决在早期螺旋循环中,为了为最终的实现给出一些指导性决策,经常使用原型构造;策,经常使用原型构造
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件生存周期模型 软件 生存 周期 模型

限制150内