《软件生存周期模型.ppt》由会员分享,可在线阅读,更多相关《软件生存周期模型.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 软件工程软件工程 第三讲第三讲 软件生存周期模型软件生存周期模型 朱建凯朱建凯上次课布置的阅读内容上次课布置的阅读内容问题:问题:什么是基本过程?什么是支持过程?什么是组什么是基本过程?什么是支持过程?什么是组织过程?织过程?软件开发过程的主要活动是什么?每个活动都软件开发过程的主要活动是什么?每个活动都有什么输出?有什么输出?基本过程:与软件生产直接相关的活动集;基本过程:与软件生产直接相关的活动集;支持过程:有关各方按他们的支持目标所从事的支持过程:有关各方按他们的支持目标所从事的一系列相关的活动集;一系列相关的活动集;组织活动:与软件生产组织有关的活动集。组织活动:与软件生产组织有关的
2、活动集。本次课程重点本次课程重点瀑布模型,其优缺点,适应范围(非常重要)瀑布模型,其优缺点,适应范围(非常重要)增量模型、演化模型,优缺点,适应范围(重要)增量模型、演化模型,优缺点,适应范围(重要)螺旋模型、喷泉模型(了解)螺旋模型、喷泉模型(了解)软件原型和软件重用的概念及其作用(重要)软件原型和软件重用的概念及其作用(重要)项目生存周期过程(了解)项目生存周期过程(了解)2.2软件生存周期模型软件生存周期模型基本概念基本概念 称软件生存周期模型为称软件生存周期模型为“软件开发模型软件开发模型”,并把它定义为:,并把它定义为:软件过程、活动、任务的结构框架。软件过程、活动、任务的结构框架。
3、系统需求系统需求软件需求软件需求需求分析需求分析设设计计编编码码测测试试运运行行瀑布模型瀑布模型关于瀑布模型的几点说明关于瀑布模型的几点说明()瀑布模型的优点)瀑布模型的优点 虽然瀑布模型是一个比较虽然瀑布模型是一个比较“老老”的、甚至过时的开发模型,的、甚至过时的开发模型,但其优点为:但其优点为:在决定系统怎样做之前,存在一个需求阶段,鼓励对系在决定系统怎样做之前,存在一个需求阶段,鼓励对系 统统“做什么做什么”进行规约(即设计之前的规约)。进行规约(即设计之前的规约)。在建造构件之前,存在一个设计阶段,鼓励规划系统结在建造构件之前,存在一个设计阶段,鼓励规划系统结 构(即编码之前的设计)。
4、构(即编码之前的设计)。在每一阶段结束时进行复审,允许获取方和用户的参与。在每一阶段结束时进行复审,允许获取方和用户的参与。允许基线和配置早期接受控制。允许基线和配置早期接受控制。前一步工作产品可作为下一步被认可的、文档化的基线。前一步工作产品可作为下一步被认可的、文档化的基线。()()瀑布模型存在的不足瀑布模型存在的不足 客户必须能够完整、正确和清晰地表达他们的需求;开发客户必须能够完整、正确和清晰地表达他们的需求;开发 人员一开始就必须理解其应用。人员一开始就必须理解其应用。在开始的两个或三个阶段中,很难评估真正的进度状态在开始的两个或三个阶段中,很难评估真正的进度状态;设计、编码和测试阶
5、段都可能发生延期。设计、编码和测试阶段都可能发生延期。在一个项目的早期阶段,过分地强调了基线和里程碑处在一个项目的早期阶段,过分地强调了基线和里程碑处 的文档的文档;可能要花费更多的时间,用于建立一些用处不可能要花费更多的时间,用于建立一些用处不 大的文档。大的文档。当接近项目结束时,出现了大量的集成和测试工作。当接近项目结束时,出现了大量的集成和测试工作。直到项目结束之前,都不能演示系统的能力。直到项目结束之前,都不能演示系统的能力。(3)瀑布模型适用的情况瀑布模型适用的情况在开发中,向下、渐进的路径占支配地位。也就是说,在开发中,向下、渐进的路径占支配地位。也就是说,需求已被很好地理解;并
6、且需求已被很好地理解;并且 过程设计人员也很清楚:开发组织非常熟悉为实现这一模过程设计人员也很清楚:开发组织非常熟悉为实现这一模 型所需要的过程(或经过培训后,熟悉什么时候来支持这型所需要的过程(或经过培训后,熟悉什么时候来支持这 一项目,以实现这一模型所需要的过程)。一项目,以实现这一模型所需要的过程)。因此为了避免产生过多因此为了避免产生过多的反复迭代工作,增加开发成本,的反复迭代工作,增加开发成本,一般在准备采用瀑布模型一般在准备采用瀑布模型(也包括其他模型也包括其他模型)时,需要考虑以下时,需要考虑以下2个问题:第一个问题是,过程设计人员必须对初始产品个问题:第一个问题是,过程设计人员
7、必须对初始产品(通常通常是软件需求规约,是软件需求规约,SRS)的不确定性进行评估。的不确定性进行评估。另一个问题是,组织是否具有熟练实施每个活动和另一个问题是,组织是否具有熟练实施每个活动和任务的历史经验。任务的历史经验。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增量模型增量模型该模型有一个假设,即需求可以分段,成为一系列增该模型有一个假设
8、,即需求可以分段,成为一系列增量产品,每一增量可以分别地开发。量产品,每一增量可以分别地开发。关于增量模型的几点说明:关于增量模型的几点说明:(1(1)增量模型的优点)增量模型的优点 作为瀑布模型的第一个变体,具有瀑布模型的所有优点。作为瀑布模型的第一个变体,具有瀑布模型的所有优点。此外,它还有以下优点:此外,它还有以下优点:第一个可交付版本所需要的成本和时间是很少的;第一个可交付版本所需要的成本和时间是很少的;开发由增量表示的小系统所承担的风险是不大的;开发由增量表示的小系统所承担的风险是不大的;由于很快发布了第一个版本,因此可以减少用户需求由于很快发布了第一个版本,因此可以减少用户需求 的
9、变更;的变更;允许增量投资,即在项目开始时,可以仅对一个或两允许增量投资,即在项目开始时,可以仅对一个或两 个增量投资。个增量投资。()缺点:)缺点:如果增量模型不适于某些项目,或使用有误,则有如果增量模型不适于某些项目,或使用有误,则有以下缺点:以下缺点:如果没有对用户的变更要求进行规划,那么产生的初始如果没有对用户的变更要求进行规划,那么产生的初始 增量可能会造成后来增量的不稳定;增量可能会造成后来增量的不稳定;如果需求不像早期思考的那样稳定和完整,那么一些增如果需求不像早期思考的那样稳定和完整,那么一些增 量就可能需要重新开发,重新发布;量就可能需要重新开发,重新发布;管理发生的成本、进
10、度和配置的复杂性,可能会超出组管理发生的成本、进度和配置的复杂性,可能会超出组 织的能力。织的能力。注:如果采用增量投资方式,那么客户就可以对一些增量进注:如果采用增量投资方式,那么客户就可以对一些增量进行招标。然后,开发人员按提出的截止期限进行增量开发,这行招标。然后,开发人员按提出的截止期限进行增量开发,这样客户就可以用多个契约来管理组织的资源和成本。样客户就可以用多个契约来管理组织的资源和成本。()该模型的适用情况)该模型的适用情况 在在开开始始开开发发时时,需需求求很很明明确确,且且产产品品还还可可被被适适当当地地分分解解为为一一些些独独立立的的、可可交交付付的的软软件件(构构造造增增
11、量量:Build Build incrementsincrements如如果果一一个个增增量量并并不不需需要要交交付付给给客客户户的的话话,那那么么这这样样的的增增量量通通常常称称为为一一个个“构构造造”(Build)。如如果果增增量量被被交交付付,那那么么它它们们就就被被认认为为是发布版本是发布版本(Releasedversion)。););在开发中,期望尽快提交其中的一些增量产品。在开发中,期望尽快提交其中的一些增量产品。例如:例如:一个数据库系统,它必须通过不同的用户界面,为不同类型的一个数据库系统,它必须通过不同的用户界面,为不同类型的用户提供不同的功能。在这一情况下,首先实现完整的数
12、据库用户提供不同的功能。在这一情况下,首先实现完整的数据库设计,并把一组具有高优先级的用户功能和界面作为一个增量;设计,并把一组具有高优先级的用户功能和界面作为一个增量;以后,陆续构造其它类型用户所需求的增量。以后,陆续构造其它类型用户所需求的增量。需求需求设计设计编码编码测试测试集成集成需求需求设计设计编码编码测试测试集成集成开开发发反反馈馈开开发发反反馈馈.核核心心系系统统开开发发第第二二次次迭迭代代演化模型(演化模型(Evolutionary modelEvolutionary model)是一种有弹性的过程模式,由一些小的开发步组成,每一是一种有弹性的过程模式,由一些小的开发步组成,每
13、一步历经需求分析、设计、实现和验证,产生软件产品的一个增步历经需求分析、设计、实现和验证,产生软件产品的一个增量。通过这些迭代,完成最终软件产品的开发。量。通过这些迭代,完成最终软件产品的开发。针对事先不能完整地定义需求针对事先不能完整地定义需求 针对用户的核心需求针对用户的核心需求,开发核心系统开发核心系统 根据用户的反馈根据用户的反馈,实施活动的迭代实施活动的迭代关于演化模型的几点说明关于演化模型的几点说明(1(1)主要特征)主要特征 该模型显式地把增量模型扩展到需求阶段。由图可以看出,该模型显式地把增量模型扩展到需求阶段。由图可以看出,为了第二个构造增量,使用了第一个构造增量来精化需求。
14、为了第二个构造增量,使用了第一个构造增量来精化需求。这一精化可以有多个来源和路径。这一精化可以有多个来源和路径。首先,如果一个早期的增量已向用户发布,那么用户会以变首先,如果一个早期的增量已向用户发布,那么用户会以变更要求的方式提出反馈,以支持以后增量的需求开发。更要求的方式提出反馈,以支持以后增量的需求开发。第二,通过实实在在地开发一个构造增量,为以前还没有认第二,通过实实在在地开发一个构造增量,为以前还没有认识到的问题提供了可见性,以便实际地开始这一增量的工作。识到的问题提供了可见性,以便实际地开始这一增量的工作。(2(2)与瀑布模型的关系)与瀑布模型的关系 在在演演化化模模型型中中,仍仍
15、然然可可以以使使用用瀑瀑布布模模型型来来管管理理每每一一个个演演化化的的增增量量。一一旦旦理理解解了了需需求求,就就可可以以像像实实现现瀑瀑布布模模型型那那样样开开始始设设计计阶阶段和编码阶段。段和编码阶段。(3(3)使用演化模型应注意的问题)使用演化模型应注意的问题 不不能能弱弱化化需需求求分分析析阶阶段段的的工工作作。其其原原因因是是:在在项项目目开开始始时时,考考虑虑所所有有需需求求来来源源的的重重要要性性和和风风险险,对对这这些些来来源源的的可可用用性性进进行行评评估估。只只有有采采用用这这一一方方法法,才才能能识识别别和和界界定定不不确确定定的的需需求求,并并识识别别第一个增量中所包
16、含的需求。第一个增量中所包含的需求。(4(4)演化模型的长处和不足)演化模型的长处和不足 演化模型还具有以下优点:与增量模型是类似的。特别地,演化模型还具有以下优点:与增量模型是类似的。特别地,在需求不能予以规约时,可以使用这一演化模型。在需求不能予以规约时,可以使用这一演化模型。用户可以通过运行系统的实践,对需求进行改进。用户可以通过运行系统的实践,对需求进行改进。与瀑布模型相比,需要更多用户与瀑布模型相比,需要更多用户/获取方的参与。获取方的参与。缺点有:缺点有:演化模型的使用仍然处于探索阶段,因此具有较大演化模型的使用仍然处于探索阶段,因此具有较大 的风险,需要有力的管理。的风险,需要有
17、力的管理。演化模型的使用很容易成为不编写需求或设计文档的借口,演化模型的使用很容易成为不编写需求或设计文档的借口,即使很好地理解了需求或设计。即使很好地理解了需求或设计。用户用户/获取方不易理解演化模型的自然属性,因此当结果不获取方不易理解演化模型的自然属性,因此当结果不 够理想时,可能产生抱怨。够理想时,可能产生抱怨。演化演化维护维护确认确认实现实现设计设计分析分析喷泉模型喷泉模型 特征:迭代特征:迭代无缝无缝 与面向对象技术与面向对象技术的关系的关系螺旋模型螺旋模型 该模型是由该模型是由Dr.Barry Boehm Boehm 1988Dr.Barry Boehm Boehm 1988开发
18、的。开发的。该模型将软件生存周期的活动分为四个可重复的阶段:该模型将软件生存周期的活动分为四个可重复的阶段:规划、风险分析、开发和评估:规划、风险分析、开发和评估:项目的进度是项目的进度是“螺旋螺旋”式的。式的。riskanalysisstageDevelopmentstagePlanningstageEvaluationstagestartResourceuse其中:其中:评估和风险分析阶段都可作出一个决策:项目是否继续。评估和风险分析阶段都可作出一个决策:项目是否继续。螺旋循环的次数指示了已消耗的资源;螺旋循环的次数指示了已消耗的资源;在规划阶段、风险分析阶段和开发阶段均进行需求规约活在规
19、划阶段、风险分析阶段和开发阶段均进行需求规约活动;动;在早期螺旋循环中,为了为最终的实现给出一些指导性决在早期螺旋循环中,为了为最终的实现给出一些指导性决策,经常使用原型构造;策,经常使用原型构造;设计和实现活动一般是在开发阶段进行;设计和实现活动一般是在开发阶段进行;V&V活动在开发阶段和评估阶段进行;活动在开发阶段和评估阶段进行;关于螺旋模型的几点说明:关于螺旋模型的几点说明:(1(1)该模型关注解决问题的基本步骤)该模型关注解决问题的基本步骤:标识问题标识问题;标识一些标识一些 可选方案,选择一个最佳方案可选方案,选择一个最佳方案;遵循动作步骤,并实施遵循动作步骤,并实施 后续工作。其中
20、只要完成了开发的一个迭代,开发的另后续工作。其中只要完成了开发的一个迭代,开发的另 一个迭代就开始。一个迭代就开始。(2(2)螺旋模型的一个特征是,实际上只有一个迭代过程真正)螺旋模型的一个特征是,实际上只有一个迭代过程真正 开发可交付的软件。因此开发可交付的软件。因此,如果如果 项目的开发风险很大,或项目的开发风险很大,或 客户不能确定系统需求,在更广泛的意义上来讲,还客户不能确定系统需求,在更广泛的意义上来讲,还 包括系统或系统类型的要求,包括系统或系统类型的要求,这时螺旋模型就是一个好的生存周期模型。这时螺旋模型就是一个好的生存周期模型。(3)(3)与其它模型的关系与其它模型的关系 与与
21、演演化化模模型型一一样样,螺螺旋旋模模型型也也使使用用瀑瀑布布模模型型作作为为一一个个嵌嵌入入的的过过程程-即即分分析析、设设计计、编编码码、实实现现和和维维护护的的瀑瀑布布过过程程,是是螺螺旋一周的组成部分。旋一周的组成部分。尽尽管管螺螺旋旋模模型型和和一一些些迭迭代代模模型型在在框框架架和和全全局局体体系系结结构构方方面面是等同的,但所关注的是等同的,但所关注的阶段阶段以及它们的以及它们的活动活动是不同的。是不同的。具具体体地地说说:标标识识客客户户想想要要的的是是一一个个什什么么样样的的系系统统;确确定定风风险险和和效效益益的的可可选选路路线线;选选择择最最优优方方案案;开开发发系系统统
22、;评评估完成情况等;估完成情况等;重新开始。重新开始。即即 螺螺旋旋模模型型扩扩展展了了增增量量模模型型的的管管理理任任务务范范围围。而而增增量量模模型型是是基基于于以以下下假假定定:需需求求是是最最基基本本的的、并并且且是是唯唯一一的的风风险险源源。而而在螺旋模型中,决策和降低风险的空间是相当广泛的。在螺旋模型中,决策和降低风险的空间是相当广泛的。7模型中的三个重要修饰模型中的三个重要修饰原型、并发、商业构件的复用。原型、并发、商业构件的复用。(1 1)原型与)原型与原型原型构造构造 何谓原型何谓原型 显式地规划如何使用一个或多个演化的增量,这作为一个显式地规划如何使用一个或多个演化的增量,
23、这作为一个明确的需求揭示工具明确的需求揭示工具,是生存周期模型的发展的必然。是生存周期模型的发展的必然。遵循其它工程领域所使用的术语,我们把这样的一个增量遵循其它工程领域所使用的术语,我们把这样的一个增量称为一个原型。称为一个原型。注:尽管原型可以由用户以某一受限的方式使用,但注:尽管原型可以由用户以某一受限的方式使用,但不能把原型看作是一个具有完备功能的增量。不能把原型看作是一个具有完备功能的增量。原型的作用原型的作用 揭示那些以后将在具有完备功能的、可交付的、可支持的揭示那些以后将在具有完备功能的、可交付的、可支持的增量中予以实现的需求。增量中予以实现的需求。可以用于为一个项目或一个项目的
24、某些部分,确定技术、可以用于为一个项目或一个项目的某些部分,确定技术、成本和进度的可能性。例如,原型有助于回答以下问题:成本和进度的可能性。例如,原型有助于回答以下问题:一个新的开发环境或工具,是否能够满足客户成本和进一个新的开发环境或工具,是否能够满足客户成本和进 度约束?度约束?一个被安装的、可用的软一个被安装的、可用的软/硬件基础设施,是否可以支持硬件基础设施,是否可以支持 客户新的性能和能力需求?客户新的性能和能力需求?是否能够创建这一产品,即这是可行的吗?是否能够创建这一产品,即这是可行的吗?原型构造原型构造 原型构造,有时它也被称为快速应用开发(原型构造,有时它也被称为快速应用开发
25、(Rapid Rapid ApplicationApplicationDevelopment,RADDevelopment,RAD)。)。适用范围:适用范围:对那些具有较多用户界面和数据库的系统开发中,可使对那些具有较多用户界面和数据库的系统开发中,可使用之用之 使用条件使用条件:需要相应需要相应RADRAD方法和工具的支持。方法和工具的支持。注:近年来,由于注:近年来,由于VBVB(Visual BasicVisual Basic)、)、DelphiDelphi、。、。NETNET等开发环境的出现,这一术语得到了广泛的应用,使用这些等开发环境的出现,这一术语得到了广泛的应用,使用这些工具几乎
26、可以无缝地建造原型和最终系统。工具几乎可以无缝地建造原型和最终系统。()生存周期模型中的并发()生存周期模型中的并发 问题的提出:问题的提出:当一个工作当一个工作程序程序经过其所选择的生存周期时,一些过程之经过其所选择的生存周期时,一些过程之间的重叠几乎是不可避免的,不论这一重叠是规划的还是没间的重叠几乎是不可避免的,不论这一重叠是规划的还是没有规划的。有规划的。例例如如,即即使使在在需需求求是是非非常常清清楚楚的的,出出于于对对成成本本和和进进度度的的考考虑虑,可可能能就就选选择择通通常常的的瀑瀑布布模模型型的的情情况况下下,表表面面上上看看,这这排排除除了了并并发发的的可可能能性性事事实实
27、上上这这是是非非常常困困难难的的。例例如如,如如果果一一个个子子系系统统的的详详细细设设计计在在另另一一个个子子系系统统之之前前完完成成,并并且且这这两两个个子子系系统统之之间间的的接接口口是是稳稳定定的的,那那么么就就可可以以提提前前对对已已完完成成详详细细设设计计的的那那个个子子系系统统进进行行编编码码,从从而而导导致致一一个个系系统统的的详详细细设设计计阶段和编码阶段的并发。阶段和编码阶段的并发。还要注意,在所有生存周期模型的反向流(即对已经完成的还要注意,在所有生存周期模型的反向流(即对已经完成的一个文档或其它产品必须要做的改变)中,也可能隐含地存在一个文档或其它产品必须要做的改变)中
28、,也可能隐含地存在 一些并发。一些并发。使用并发的基本要求使用并发的基本要求 -要求要求组织的管理必须有能力支持并发,包括进度安排、组织的管理必须有能力支持并发,包括进度安排、成本控制、状态跟踪和配置管理系统,包括技术复审机制成本控制、状态跟踪和配置管理系统,包括技术复审机制和任何设计工具。和任何设计工具。-如果两个子系统同时处在同样的开发阶段,那么就要求如果两个子系统同时处在同样的开发阶段,那么就要求严格监控这两个子系统之间的界面。严格监控这两个子系统之间的界面。使用中的问题使用中的问题围绕并发的使用,存在以下两个重要的问题:围绕并发的使用,存在以下两个重要的问题:并发程度。并发程度。并发的
29、程度可以并发的程度可以 从偶然的,只有少量反向改变的要求;从偶然的,只有少量反向改变的要求;到过分的,存在一个增量正在设计,而前面那个增量到过分的,存在一个增量正在设计,而前面那个增量正在集成。正在集成。注意:以上两种情况,对技术系统和管理系统的需求是非注意:以上两种情况,对技术系统和管理系统的需求是非 常不同的。常不同的。并发的管理。并发的管理。一旦出现并发,就要很好地进行规划。其中应重视由于使一旦出现并发,就要很好地进行规划。其中应重视由于使用并发所出现的这些问题。用并发所出现的这些问题。(3 3)商业构件的复用)商业构件的复用 问题的提出问题的提出 现代软件系统的创建趋势是,使用商业应用
30、框架和商业构现代软件系统的创建趋势是,使用商业应用框架和商业构件,或复用组织内部已开发的构件和框架,当然,也复用组件,或复用组织内部已开发的构件和框架,当然,也复用组织的实践和规程。这一趋势的出现,有以下三个原因:织的实践和规程。这一趋势的出现,有以下三个原因:(1 1).市场和成本的竞争压力;市场和成本的竞争压力;(2 2).交付环境的日趋复杂和标准化,例如交付环境的日趋复杂和标准化,例如InternetInternet;(3 3).产品线工程的出现,其中系统地规划和实施:产品线工程的出现,其中系统地规划和实施:多个相关软件产品的开发和演化;多个相关软件产品的开发和演化;那些可复用的设计和那
31、些可复用的设计和 实现;实现;用于产品线的所有产品。用于产品线的所有产品。重用软件构件的意义重用软件构件的意义(1 1)生产率:有效提高开发进度;)生产率:有效提高开发进度;(2 2)质量:软件质量能得到提高;)质量:软件质量能得到提高;(3 3)成本:节省人力资源。)成本:节省人力资源。使用中的问题使用中的问题重重用用包包含含两两个个方方面面:开开发发重重用用的的构构件件和和重重用用构构件件的的选选择择重用的制品是多方面的;重用的制品是多方面的;公司需要制定鼓励重用的政策。公司需要制定鼓励重用的政策。软件开发本质软件开发本质软软件件生生存存周周期期过过程程定义定义软软件件生生存存周周期期模模
32、型型软软件件工工程程生生存存周周期期过过程程支支持持过过程程方方向向(活活动动与与定定序序)的的建建立立形形成成软件开发方法学软件开发方法学 结构化方法结构化方法 面向对象方法面向对象方法 面向数据结构面向数据结构方法方法 维也纳开发方维也纳开发方法(法(VDM)给给出出实实现现开开发发过过程程的的途途径径支持支持/管理技术与方法管理技术与方法作用于作用于回答回答:如何建立一项软件工程的生存周期过程并管理之如何建立一项软件工程的生存周期过程并管理之.2.3 2.3 软件工程生存周期过程管理软件工程生存周期过程管理 1)1)引言引言 一个项目的一个项目的软件生存周期过程管理软件生存周期过程管理,
33、是该软件工程项目管是该软件工程项目管理的一个子集理的一个子集.何谓何谓一个项目的软件生存周期过程一个项目的软件生存周期过程?无无论论是是软软件件项项还还是是硬硬件件项项,在在其其开开发发上上的的演演化化一一般般被被称称 为该项的生存周期。为该项的生存周期。通常,一个项的开发往往始于一个通常,一个项的开发往往始于一个 想法,依其服务情况,不断地进行改进想法,依其服务情况,不断地进行改进。因此。因此,项目的项目的 生存周期可概括为生存周期可概括为:RecognitionofneedAcq.Decision&StrategySpecificationDesignAcceptanceNewRequir
34、ementsMaintenanceReleasetofieldImplementation在一个项目生存周期中,每一个任务在一个项目生存周期中,每一个任务(例如例如Design)都通过都通过一个或多个过程的方式来完成。在生存周期中所有这些相关一个或多个过程的方式来完成。在生存周期中所有这些相关过程的组合,称为项目的软件生存周期过程。过程的组合,称为项目的软件生存周期过程。注注:在这一定义中在这一定义中,关注开发产品所需要的工程技术和管理技关注开发产品所需要的工程技术和管理技术活动术活动,从规约从规约(Specification)一直到验收一直到验收(Acceptance).软件生存周期过程的管
35、理软件生存周期过程的管理管理的一般模型管理的一般模型:所谓软件生存周期过程的管理所谓软件生存周期过程的管理,即从需求规约到验收,对即从需求规约到验收,对 过程、过程、过程之间的关系以及过程之间的关系以及过程产品流进行定义和过程产品流进行定义和 控制控制.PADC具体地说,可分为具体地说,可分为4 4个主要阶段:个主要阶段:选选择择合合适适的的软软件件生生存存周周期期模模型型(the the Software Software Life Life Cycle Cycle Model,Model,SLCMSLCM),作作为为发发布布、支支持持产产品品所所需需要要的的一一个个全局过程网,作为完成其中
36、活动所需要的活动网。全局过程网,作为完成其中活动所需要的活动网。通通过过标标识识和和定定义义那那些些单单个个的的任任务务(例例如如需需求求),创创建建软软件生存周期(件生存周期(the Software Life Cycle,SLCthe Software Life Cycle,SLC)。)。建建立立组组织织上上和和技技术术上上的的软软件件生生存存周周期期过过程程(the the Software Life Cycle ProcessSoftware Life Cycle Process,SLCPSLCP)。)。在整个产品的生存周期中,管理该在整个产品的生存周期中,管理该SLCPSLCP。2)
37、软软件生存周期模型的件生存周期模型的选择选择在在实际实际工程中工程中,可供可供选择选择的四个主要的四个主要软软件生存周期模型件生存周期模型为为:(1)瀑布模型,()瀑布模型,(2)增量模型,)增量模型,(3)演化模型,()演化模型,(4)螺旋模型。)螺旋模型。(1)选择步骤选择步骤 在每一模型的优缺点评估完成之后,过程设计师必须为在每一模型的优缺点评估完成之后,过程设计师必须为指定的项目选择最合适的生存周期模型。指定的项目选择最合适的生存周期模型。(注:这是一项重要而复杂的任务注:这是一项重要而复杂的任务.).)IEEE Standard 1074-1997 IEEE Standard 107
38、4-1997列出了选择项目生存周期模型列出了选择项目生存周期模型的步骤的步骤(5(5步步).).标识开发项目可用的标识开发项目可用的SLCMsSLCMs。在所期望的最终系统和开发环境中,标识那些会影响在所期望的最终系统和开发环境中,标识那些会影响SLCMSLCM选选 择的属性。择的属性。标识为选择生存周期模型所需要的任何约束标识为选择生存周期模型所需要的任何约束,包括外部的包括外部的 或是内部的。例如,来自客户合同上的需求,或关键开发技能或是内部的。例如,来自客户合同上的需求,或关键开发技能 的缺乏,特别是客户强制的、具有里程碑的程序进度,以及使的缺乏,特别是客户强制的、具有里程碑的程序进度,
39、以及使 一个特定的应用框架或关键构件成为有用的一个策略决策。一个特定的应用框架或关键构件成为有用的一个策略决策。基于以往的经验和组织能力,评估第一步所选择的那几个基于以往的经验和组织能力,评估第一步所选择的那几个 SLCMSLCM。最后,选择最能满足项目属性和约束的最后,选择最能满足项目属性和约束的SLCMSLCM。3)3)生存周期过程的精化生存周期过程的精化 选择了一个软件生存周期模型之后,下一个任务就是将选择了一个软件生存周期模型之后,下一个任务就是将 相关的生存周期活动映射到该软件生存周期模型。相关的生存周期活动映射到该软件生存周期模型。-精化精化 IEEE Standard 1074-
40、1997IEEE Standard 1074-1997和和IEEE/EIA Standard 12207IEEE/EIA Standard 12207将活将活 动定义为组成一个过程的元素;把任务定义为一个活动中的动定义为组成一个过程的元素;把任务定义为一个活动中的 最小的工作单元。最小的工作单元。至于如何确定每一个任务,这是管理的责任,这涉及到成本至于如何确定每一个任务,这是管理的责任,这涉及到成本 和进度评估和管理,即必须考虑项目的完成时间和监控它们和进度评估和管理,即必须考虑项目的完成时间和监控它们 的状态。的状态。在确定任务的工作中,应注意:在确定任务的工作中,应注意:一般来说,任务是可
41、分配给项目组成员的、定义良好的工一般来说,任务是可分配给项目组成员的、定义良好的工 作。作。一些相关的工作通常组合在一起形成活动,通常称之为一些相关的工作通常组合在一起形成活动,通常称之为“工工 作包作包”。由此可见,创建生存周期过程的任务是,选择一些要实施的由此可见,创建生存周期过程的任务是,选择一些要实施的 任务及其所需要的方法、工具和能力。任务及其所需要的方法、工具和能力。4)项项目目软软件生存周期件生存周期过过程的程的实现实现 将将合合适适的的活活动动映映射射带带所所选选择择的的软软件件生生存存周周期期模模型型之之后后,就就完完成成了了一一个个完完整整生生存存周周期期的的精精化化.下下
42、一一个个任任务务是是将将组组织织的的过过程程资资产产应应用用到到将将精精化化的的生生存存周周期期中中,其其结结果果就就是是项项目目的的软软件件生生存存周期周期过过程的程的实现实现.组织组织的的过过程程资产资产一般包括:一般包括:l l政策;政策;l l标标准;准;l l规规程;程;l l已有的已有的SCLPs;l l度量;度量;l l工具;工具;l l方法学方法学5)5)软件生存周期过程的监控软件生存周期过程的监控 (1)(1)软件生存周期过程的软件生存周期过程的监查监查 在项目实施中在项目实施中,必须必须监查监查软件生存周期过程软件生存周期过程的执行情况,以的执行情况,以 确保软件开发是按规
43、划、高效进行的。确保软件开发是按规划、高效进行的。以下各任务中形成的数据,有助于过程的以下各任务中形成的数据,有助于过程的监查监查:进展与进度的跟踪。进展与进度的跟踪。这一跟踪可以揭示过程的偏离、不期望这一跟踪可以揭示过程的偏离、不期望 的过程范围增大、工具或资源等问题。的过程范围增大、工具或资源等问题。质量数据趋势的检查。质量数据趋势的检查。这一检查可以用于确定软件实现组是这一检查可以用于确定软件实现组是 否遵循期望的生存周期过程。否遵循期望的生存周期过程。设计、编码和测试计划复审记录和动作的检查。设计、编码和测试计划复审记录和动作的检查。这一检查这一检查 可以用于确定过程是否产生预期结果。
44、即给出正在实施的过可以用于确定过程是否产生预期结果。即给出正在实施的过 程是否有效?程是否有效?变更要求和测试异常报告趋势的检查。变更要求和测试异常报告趋势的检查。这些检查提供了过这些检查提供了过 程有效程度的深入了解,也能确定配置管理系统的负载是否程有效程度的深入了解,也能确定配置管理系统的负载是否 在可支持的范围内。在可支持的范围内。关键资源的有效使用。关键资源的有效使用。有时,这可以检测出计划中存在的有时,这可以检测出计划中存在的 隐性偏离。隐性偏离。与项目组成员的交谈。与项目组成员的交谈。与项目组成员进行正式或者非正式与项目组成员进行正式或者非正式 的对话,了解过程的运作情况。他们的观
45、点,一旦由描述的的对话,了解过程的运作情况。他们的观点,一旦由描述的 客观数据所支持,那么对发现过程问题、寻找过程改善的机客观数据所支持,那么对发现过程问题、寻找过程改善的机 会是非常有价值的。会是非常有价值的。而而且且,还还必必须须定定期期监监控控以以上上信信息息源源.由由于于生生存存周周期期的的监监控控必必然然带来额外的进度评估,因此应按基本的周期对进度进行修正。带来额外的进度评估,因此应按基本的周期对进度进行修正。一一个个一一般般的的原原则则是是,在在一一个个特特定定的的生生存存周周期期过过程程中中,每每当当进进展展到到其其进进度度的的10%10%或或者者2020,就就应应该该进进行行一
46、一次次检检查查。例例如如,对对一一个个中中等等规规模模的的产产品品来来说说,设设计计过过程程进进行行到到2020、4040和和6060时时,都都要要对对已已完完成成的的工工作作进进行行检检查查。原原因因是是如如果果完完成成的的工工作作少少于于2020,不不可可能能产产生生足足够够的的有有效效数数据据,但但是是如如果果超超过过了了6060,一一旦旦发发现现问问题题,改改变变设设计计过过程程已已经经太太晚晚了了,以以至至于于会会产产生生灾灾难难性错误。性错误。利利用用以以上上信信息息,软软件件程程序序管管理理者者和和过过程程设设计计师师应应能能确确定定是是否需要改变生存周期和所要求的过程。否需要改
47、变生存周期和所要求的过程。作作出出这这一一决决定定必必须须非非常常谨谨慎慎,因因为为对对生生命命周周期期过过程程的的一一个个不不合合适适的的改改变变,可可能能会会打打乱乱整整个个工工作作程程序序,影影响响技技术术工工作作和和人员情绪。人员情绪。另另一一方方面面,实实现现一一个个合合理理的的改改变变,只只有有当当项项目目组组成成员员都都认认识到这一需要,才能最终有助于开发工作。识到这一需要,才能最终有助于开发工作。(2)(2)生存周期过程改变所产生影响的评估生存周期过程改变所产生影响的评估 一一旦旦监监控控活活动动的的过过程程发发现现一一个个生生存存周周期期过过程程并并没没有有按按预预期期实实施
48、施,那那么么软软件件程程序序管管理理人人员员和和过过程程设设计计师师就就要要对对可可能能采采取取的的措措施施进进行行评估,这些措施包括:评估,这些措施包括:l l什么也不做。什么也不做。当改变的负面影响可能超过带来的好处时当改变的负面影响可能超过带来的好处时。l l强强化化过过程。程。如果只因初始培训不充分或组织制度不够严格,导致过程没如果只因初始培训不充分或组织制度不够严格,导致过程没 有按预期实施,那么这是一个正确的举措。有按预期实施,那么这是一个正确的举措。l l 调整过程。调整过程。如果过程需要进行少量调整(如,核对表的修订或同级复如果过程需要进行少量调整(如,核对表的修订或同级复 审
49、过程的调整),就可以修改过程,并调整员工的培训。审过程的调整),就可以修改过程,并调整员工的培训。l l过程替换。过程替换。如果一个过程根本就存在缺陷(如,只集成了系统的如果一个过程根本就存在缺陷(如,只集成了系统的10 10,但用于监控性能的工具集却消耗了但用于监控性能的工具集却消耗了9090的处理资源),那么的处理资源),那么 必须替换这一过程。必须替换这一过程。l l以上措施的某一组合。以上措施的某一组合。按以下几方面,评估以上进行的过程改变所造成的影响。按以下几方面,评估以上进行的过程改变所造成的影响。l l所要求的所要求的“返工返工”在在有有的的情情况况下下,一一个个改改变变只只影影
50、响响当当前前进进行行的的过过程程步步。而而很很多多时时候候,可可能能需需要要重重新新实实施施该该过过程程前前面面一一些些阶阶段段的的工工作作。无无论论是是哪一种情况,都要考虑一个过程改变对进度和成本的影响。哪一种情况,都要考虑一个过程改变对进度和成本的影响。l l资源需求资源需求 进进行行过过程程改改变变可可能能会会增增加加或或者者减减少少资资源源的的需需求求,包包括括人人员员、硬硬件件和和工工具具。必必须须考考虑虑由由生生存存周周期期过过程程的的改改变变所所产产生生的的全全部部成成本,以及为获得这些资源所需要的时间。本,以及为获得这些资源所需要的时间。l l实施时间实施时间 如如果果一一个个