软件生存周期及其模型幻灯片.ppt
软件生存周期及其模型第1页,共44页,编辑于2022年,星期三2.1 2.1 软件工程过程与软件生存期软件工程过程与软件生存期 为为了了克克服服软软件件危危机机,人人们们从从其其他他产产业业的的工工业业化化生生产产得得到到启启示示,于于是是在在68年年北北大大西西洋洋公公约约的的软软件件可可靠靠性性会会议议(NATO)上上,首首次次提提出出了了“软软件件工工程程”的的概概念念。提提出出了了在在软软件件生生产产中中采采用用工工程程化化的的方方法法,采采用用一一系系列列科科学学的的、现现代代化化的的方方法法技技术术来来开开发发软软件件。这这种种工工程程化化的的思思想想贯贯穿穿到软件开发和维护的全过程。到软件开发和维护的全过程。第2页,共44页,编辑于2022年,星期三是是指指在在软软件件工工具具的的支支持持下下,所所进进行行的的一一系系列列软软件件开开发和进化的活动。发和进化的活动。通常包括以下四类基本过程:通常包括以下四类基本过程:1 1、软件规格说明:、软件规格说明:规定软件的功能及其运行环境。规定软件的功能及其运行环境。2 2、软件开发:、软件开发:产生满足规格说明的软件。产生满足规格说明的软件。3 3、软件确认:、软件确认:确认软件能够完成客户提出的要求。确认软件能够完成客户提出的要求。4 4、软软件件演演进进:为为满满足足客客户户的的变变更更要要求求,软软件件必必须须在在使使用用的的过程中演进。过程中演进。软件工程过程软件工程过程(Software engineering process)第3页,共44页,编辑于2022年,星期三软件工程过程软件工程过程(Software engineering process)规程与规程与规程与规程与方法方法方法方法工具工具和设备和设备有技能经过培有技能经过培训的开发人员训的开发人员过程过程第4页,共44页,编辑于2022年,星期三软件工程三要素软件工程三要素软件工程软件工程过程过程方法方法工具工具软件工程釆用层次化的方法软件工程釆用层次化的方法,每个层次都包括过程、方每个层次都包括过程、方法、工具三要素。法、工具三要素。第5页,共44页,编辑于2022年,星期三软件生存周期 软件的生存周期是指一个软件从提出开发要求直到该软件软件的生存周期是指一个软件从提出开发要求直到该软件软件的生存周期是指一个软件从提出开发要求直到该软件软件的生存周期是指一个软件从提出开发要求直到该软件报废为止的整个时期。报废为止的整个时期。报废为止的整个时期。报废为止的整个时期。软件的生存周期一次划分为若干阶段,生存阶段划分软件的生存周期一次划分为若干阶段,生存阶段划分时应遵循的基本原则是各阶段的任务尽可能相对独立,时应遵循的基本原则是各阶段的任务尽可能相对独立,同一阶段各项任务的性质尽可能相同,每一阶段都有同一阶段各项任务的性质尽可能相同,每一阶段都有明确的任务。明确的任务。第6页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:4.4.详细设计详细设计3.3.3.3.概要设计概要设计概要设计概要设计2.2.2.2.需求分析需求分析需求分析需求分析1.1.可行性研究和项目开发计划可行性研究和项目开发计划第7页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:1.1.可行性研究和项目开发计划可行性研究和项目开发计划可行性研究和项目开发计划可行性研究和项目开发计划2.2.需求分析需求分析需求分析需求分析3.3.概要设计概要设计概要设计概要设计4.详细设计详细设计基本任务:要解决的问题是什么?该问题有行得通的解决办法吗?若有,则需要多少费用、资源、时间等?结束标准:提出书面可行性研究报告;若问题值得去解决,制定项目开发计划。第8页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:1.1.1.1.可行性研究和项目开发计划可行性研究和项目开发计划可行性研究和项目开发计划可行性研究和项目开发计划2.2.2.2.需求分析需求分析需求分析需求分析3.3.概要设计概要设计4.4.4.4.详细设计详细设计详细设计详细设计基本任务:为了解决问题,目标系统必须做什么?确定目标系统的功能。结束标准:给出软件需求说明书第9页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:1.1.1.1.可行性研究和项目开发计划可行性研究和项目开发计划可行性研究和项目开发计划可行性研究和项目开发计划2.2.2.2.需求分析需求分析需求分析需求分析3.3.概要设计概要设计4.4.4.4.详细设计详细设计详细设计详细设计基本任务:概括地说,应如何解决这个问题?把确定的各项功能需求转换成需要的体系结构。设计软件的结构,确定程序由哪些模块组成及模块间的关系,同时设计该项目的总体数据结构和数据库结构。结束标准:给出概要设计文档第10页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:1.1.可行性研究和项目开发计划可行性研究和项目开发计划2.2.2.2.需求分析需求分析需求分析需求分析3.3.3.3.概要设计概要设计概要设计概要设计4.4.详细设计详细设计基本任务:应怎样具体地实现这个系统?为每个模块完成的功能进行具体描述,把功能描述转变为精确的、结构化的过程描述。结束标准:设计出程序的详细规格说明书第11页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:7.7.软件维护软件维护软件维护软件维护6.6.测试测试5.5.5.5.编码编码第12页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:5.5.编码编码6.测试测试测试测试7.软件维护软件维护软件维护软件维护基本任务:把每个模块的控制结构转换成计算机可接受的程序代码。程序应是结构好、清晰易读,并且与设计一致。结束标准:以某种程序设计语言表示的源程序清单。第13页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:5.编码编码6.测试测试测试测试7.软件维护软件维护软件维护软件维护基本任务:为保证软件的质量,在设计测试用例的基础上检验软件的各个组成部分,是否达到预定要求。结束标准:软件合格,能交付用户使用。第14页,共44页,编辑于2022年,星期三典型的软件生存周期包括以下阶段:典型的软件生存周期包括以下阶段:5.编码编码编码编码6.6.测试测试7.7.软件维护软件维护软件维护软件维护基本任务:通过各种必要的维护活动使系统持久地满足用户需要,是软件生存周期中时间最长的阶段。结束标准:以某种程序设计语言表示的源程序清单。第15页,共44页,编辑于2022年,星期三技术审查和管理复审 技术审查是从技术角度进行审查,是保证软件质量和降低软件技术审查是从技术角度进行审查,是保证软件质量和降低软件技术审查是从技术角度进行审查,是保证软件质量和降低软件技术审查是从技术角度进行审查,是保证软件质量和降低软件成本的重要措施。成本的重要措施。成本的重要措施。成本的重要措施。技术审查通常由专家组成的审查小组来承担审查工作。技术审查通常由专家组成的审查小组来承担审查工作。技术审查通常由专家组成的审查小组来承担审查工作。技术审查通常由专家组成的审查小组来承担审查工作。管理复审的主要任务实在软件生存周期的每个重要里程碑,对管理复审的主要任务实在软件生存周期的每个重要里程碑,对管理复审的主要任务实在软件生存周期的每个重要里程碑,对管理复审的主要任务实在软件生存周期的每个重要里程碑,对工程项目的成本、实际花费的经费、投资回收的前景、项目的工程项目的成本、实际花费的经费、投资回收的前景、项目的工程项目的成本、实际花费的经费、投资回收的前景、项目的工程项目的成本、实际花费的经费、投资回收的前景、项目的进度等经济因素从管理角度进行审查。进度等经济因素从管理角度进行审查。进度等经济因素从管理角度进行审查。进度等经济因素从管理角度进行审查。第16页,共44页,编辑于2022年,星期三2.2 软件生存周期模型软件生存周期模型是描述软件开发过程中各种活动软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。如何执行的模型。软件生存周期模型的选择受软件规模、种类、开发软件生存周期模型的选择受软件规模、种类、开发方式、开发环境以及开发使用的方法等因素影响。方式、开发环境以及开发使用的方法等因素影响。软件生存周期模型一旦确定,软件开发过程就应该按软件生存周期模型一旦确定,软件开发过程就应该按照模型严格执行,不可随意更改。照模型严格执行,不可随意更改。第17页,共44页,编辑于2022年,星期三开发开发时期时期运行运行时期时期计划时计划时期期(目标与范围说明书目标与范围说明书)(可行性论证论告可行性论证论告)(维护报告维护报告)(测试报告测试报告)(源程序清单源程序清单)(设计文档设计文档)(需求说明书需求说明书)软件生命周期(软件生命周期(SDLD)瀑布模型瀑布模型瀑布模型第18页,共44页,编辑于2022年,星期三常用的软件开发模型软软件件开开发发模模型型是是描描述述软软件件开开发发过过程程中中各各种种活活动动如如何何执执行行的的模模型。因此又称为型。因此又称为软件过程模型软件过程模型。软件过程模型是对软件开发实际过程的抽象和简化。软件过程模型是对软件开发实际过程的抽象和简化。目前典型的软件开发模型有:目前典型的软件开发模型有:瀑布模型、增量模型、原型模型、螺旋模型、喷泉瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。模型、变换模型和基于知识的模型等。不同的开发方法有不同的软件过程模型。不同的开发方法有不同的软件过程模型。第19页,共44页,编辑于2022年,星期三软件过程模型软件过程模型软件过程模型是软件开发全过程、软件开发活动软件过程模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架以及它们之间关系的结构框架软件项目的管理提供里程碑和进度表软件项目的管理提供里程碑和进度表为软件开发提供原则和方法为软件开发提供原则和方法第20页,共44页,编辑于2022年,星期三1.以软件需求完全确定为前提的以软件需求完全确定为前提的瀑布模型瀑布模型2.在软件开发初期只能提供基本需求所采用的在软件开发初期只能提供基本需求所采用的渐进式开发模型如渐进式开发模型如原型模型、螺旋模型、增原型模型、螺旋模型、增量模型、并发开发模型量模型、并发开发模型3.以形式化开发方法为基础的以形式化开发方法为基础的变换模型变换模型4.基于构件的开发过程基于构件的开发过程5.敏捷开发过程敏捷开发过程-统一软件开发过程统一软件开发过程RUP五类软件开发过程模型五类软件开发过程模型第21页,共44页,编辑于2022年,星期三瀑布模型瀑布模型开发开发时期时期运行运行时期时期计划计划时期时期(目标与范围说明书目标与范围说明书)(可行性论证论告可行性论证论告)(维护报告维护报告)(测试报告测试报告)(程序程序)(设计文档设计文档)(需求说明书需求说明书)瀑布模型第22页,共44页,编辑于2022年,星期三瀑布模型主要思想瀑布模型主要思想 软件开发过程与软件生命周期是一致的软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系相邻二阶段之间存在因果关系需对阶段性产品进行评审需对阶段性产品进行评审第23页,共44页,编辑于2022年,星期三瀑布模型的优点瀑布模型的优点软件生命周期模软件生命周期模型型,使软件开发过程可以在分使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;析、设计、编码、测试和维护的框架下进行;软件开发过程具有系统性、可控性,克服了软件开发过程具有系统性、可控性,克服了软件开发的随意性软件开发的随意性。第24页,共44页,编辑于2022年,星期三瀑布模型的缺点瀑布模型的缺点项目开始阶段用户很难精确的提出产品需求,由于技术项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员采用线性模型组织项目开发经常发生开发小组人员“堵堵塞状态塞状态”,特别是项目的开始和结束。,特别是项目的开始和结束。第25页,共44页,编辑于2022年,星期三增量模型增量模型(incremental model)(incremental model)增增量量模模型型是是一一种种非非整整体体开开发发的的模模型型。是是一一种种进进化化式的开发过程。式的开发过程。根据增量的方式和形式的不同,分为:根据增量的方式和形式的不同,分为:基于瀑布模型的渐增模型基于瀑布模型的渐增模型基于原型的快速原型模型基于原型的快速原型模型该该模模型型具具有有较较大大的的灵灵活活性性,适适合合于于软软件件需需求求不不明明确确、设计方案有一定风险的软件项目。设计方案有一定风险的软件项目。增量模型和瀑布模型之间的本质区别是什么?增量模型和瀑布模型之间的本质区别是什么?增量模型和瀑布模型之间的本质区别是什么?增量模型和瀑布模型之间的本质区别是什么?第26页,共44页,编辑于2022年,星期三增量模型特点增量模型特点增量增量小而可用的软件小而可用的软件特点特点在前面增量的基础上开发后面的增量在前面增量的基础上开发后面的增量每个增量的开发可用瀑布或快速原型模型每个增量的开发可用瀑布或快速原型模型迭代的思路迭代的思路第27页,共44页,编辑于2022年,星期三 为为为为了了了了描描描描述述述述软软软软件件件件开开开开发发发发过过过过程程程程中中中中可可可可能能能能的的的的回回回回溯溯溯溯,尤尤尤尤其其其其是是是是维维维维护护护护阶阶阶阶段段段段往往要经历上述各个阶段。采用循环模型描述。往往要经历上述各个阶段。采用循环模型描述。往往要经历上述各个阶段。采用循环模型描述。往往要经历上述各个阶段。采用循环模型描述。需求分析需求分析设计设计编码编码测试测试运行运行评价评价计划计划循环模型循环模型第28页,共44页,编辑于2022年,星期三 速速成成原原型型的的工工作作模模型型是是一一个个循循环环的的模模型。型。1.1.快快速速分分析析 快快速速确确定定软软件件系系统统的的基基本本要要求求,确确定定原原型型所所要要体体现现的的特特征征(界界面面,总体结构,功能,性能总体结构,功能,性能)2.2.构构造造原原型型 考考虑虑主主要要特特征征,快快速速构构造造一一个个可可运运行行的的系系统统。有有三三类类原原型型:用用户户界界面面原型,功能原型,性能原型。原型,功能原型,性能原型。3.3.运行和评价原型运行和评价原型 4.4.修改与改进修改与改进原型的工作模型运行运行评价评价构造构造快速分析修改快速分析修改第29页,共44页,编辑于2022年,星期三软件开发方法软件开发方法软软件件开开发发的的目目标标是是要要在在规规定定的的投投资资和和时时间间内内,开开发发出出符符合合用用户户的的需需求求,高高质质量量的的软软件件,为为此此需需要要有有成成功功的的开开发发方法。方法。软件开发方法可分为两大类:软件开发方法可分为两大类:面向过程(结构化)的开发方法面向过程(结构化)的开发方法 面向对象的开发方法面向对象的开发方法第30页,共44页,编辑于2022年,星期三结构化开发方法结构化开发方法(Structured Developing MethodStructured Developing Method)是是现现有有的的软软件件开开发发方方法法中中最最成成熟熟,应应用用最最广广泛泛的的方方法法,主主要特点是快速,自然和方便。要特点是快速,自然和方便。结结构构化化方方法法总总的的指指导导思思想想自自顶顶向向下下、逐逐步步求求精精。它它的的基基本本原原则则是功能的分解与抽象。是功能的分解与抽象。一、结构化开发方法的组成一、结构化开发方法的组成 结构化程序设计方法结构化程序设计方法 SP法(法(Structured Program)结构化设计方法结构化设计方法 SD法(法(Structured Design)结构化分析方法结构化分析方法 SA法(法(Structured Analysis)SA,SD,SP 法相互衔接,形成了法相互衔接,形成了一整套开发方法。一整套开发方法。结构化方法及瀑布模型结构化方法及瀑布模型第31页,共44页,编辑于2022年,星期三什么是原型化方法什么是原型化方法(Prototyping MethodPrototyping Method)原型化方法及其工作模型原原型型是是软软件件的的一一个个早早期期可可可可运运运运行行行行的的版版本本,它它反反映映了了最终系统的部分重要特性。最终系统的部分重要特性。原原型型化化方方法法的的基基本本思思想想是是花花费费少少量量代代价价建建立立一一个个可可运运行行的系统,使用户及早获得学习的机会。的系统,使用户及早获得学习的机会。原原 型型 化化 方方 法法 又又 称称 速速 成成 原原 型型 法法(Rapid Prototyping)。)。第32页,共44页,编辑于2022年,星期三YYYYNNNNYYNN细化的快速原型模型图图2 2 细化的快速原型模型细化的快速原型模型快速分析或修改快速分析或修改评价评价构造构造运运 行行第33页,共44页,编辑于2022年,星期三原型模型的优点原型模型的优点原型模型支持软件需求开发,帮助用户和开发人员理原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。解需求,是软件需求工程的关键。它产生的正式需求文挡,是软件开发的基础。它产生的正式需求文挡,是软件开发的基础。如果开发的原型是可运行的,它的若干高质量的程如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。序片段和开发工具可用于工作程序的开发。原型的开发和评审是系统分析员和用户原型的开发和评审是系统分析员和用户/客户共同参予的客户共同参予的迭代过程,每个迭代循环都是线性过程。迭代过程,每个迭代循环都是线性过程。第34页,共44页,编辑于2022年,星期三 对对大大型型软软件件,需需要要多多个个原原型型描描述述系系统统的的生生存存期期,螺螺旋旋模模型型将将瀑布模型与原型化模型结合起来瀑布模型与原型化模型结合起来,并加入了风险分析。并加入了风险分析。螺旋模型螺旋模型 螺旋模型将开发过程分为螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期几个螺旋周期,每个螺旋周期可分为可分为4 4个工作步骤:个工作步骤:第一,确定目标、方案和第一,确定目标、方案和限制条件;限制条件;第二,评估方案、标识第二,评估方案、标识风险和解决风险;风险和解决风险;第三,开发确认产品;第三,开发确认产品;第四,计划下一周期工作。第四,计划下一周期工作。第35页,共44页,编辑于2022年,星期三螺旋模型的使用螺旋模型的使用软件工程项目从螺旋中心开始启动,沿顺时针方软件工程项目从螺旋中心开始启动,沿顺时针方向前进。向前进。第一圈第一圈 产生产品规格说明;产生产品规格说明;第二圈第二圈 产生一个用于开发的原型;产生一个用于开发的原型;第三圈第三圈 产生软件产品的初始版本;产生软件产品的初始版本;第四圈第四圈 产生软件产品比较完善的新版本产生软件产品比较完善的新版本 。第36页,共44页,编辑于2022年,星期三螺旋模型的优点螺旋模型的优点符合人们认识现实世界和软件开发的客覌规律;符合人们认识现实世界和软件开发的客覌规律;支持软件整个生命周期;支持软件整个生命周期;保持瀑布模型的系统性、阶段性;保持瀑布模型的系统性、阶段性;利用原型评估降低开发风险;利用原型评估降低开发风险;开发者和用户共同参与软件开发,尽早发现软件中的错开发者和用户共同参与软件开发,尽早发现软件中的错误;误;不断推出和完善软件版本,有助于需求变化,获取不断推出和完善软件版本,有助于需求变化,获取用户需求,加强对需求的理解。用户需求,加强对需求的理解。第37页,共44页,编辑于2022年,星期三 面面 向向 对对 象象 方方 法法 (OOSD(Object-Oriented Software Development)是是80年年代代推推出出的的一一种种全全新新的的软软件件开开发发方方法法。非非常常实实用用而而强强有有力力,被被誉誉为为90年年代代软软件件的核心技术之一。的核心技术之一。面向对象方法及其工作模型 其其基基本本思思想想是是:对对问问题题领领域域进进行行自自然然的的分分割割,以以更更接接近近人人类类通通常常思思维维的的方方式式建建立立问问题题领领域域的的模模型型,以以便便对对客客观观的的信信息息实实体体进进行行结结构构和和行行为为的的模模拟拟,从从而而使使设设计计的的软软件件更更直直接接地地表表现现问问题题的的求求解解过过程程。面面向向对对象象的的开开发发方方法法以以对对象象作为最基本的元素,是分析和解决问题的核心。作为最基本的元素,是分析和解决问题的核心。第38页,共44页,编辑于2022年,星期三面向对象开发方法的组成 OOSD由三部分组成:由三部分组成:OOA(Object-Oriented Analysis)面向对象的分析面向对象的分析 OOD(Object-Oriented Design)面向对象的设计面向对象的设计 OOP(Object-Oriented Program)面向对象的程序设计面向对象的程序设计OOAOOA强调的是对一个系统中的对象特征和行为强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。的定义。建立系统的三类模型。OODOODOOD与与OOAOOA密切配合顺序实现对现实世界的进一步密切配合顺序实现对现实世界的进一步建模。建模。OOPOOPOOP是面向对象的技术中发展最快的,使用面是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。向对象的程序设计语言,进行编码。第39页,共44页,编辑于2022年,星期三喷泉模型分分 析析系统系统 设计设计软件软件 设计设计实实 现现喷泉模型该模型是由该模型是由B.H.Sollers和和J.M.Edwards于于1990年提出的一种年提出的一种新的开发模型。它克服了瀑布模型不支持软件重用和多项开发活动集新的开发模型。它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。成的局限性,喷泉模型使开发过程具有迭代性和无间隙性。其特点如下:其特点如下:.开发过程有分析、系统设计、软件设计和开发过程有分析、系统设计、软件设计和实现实现4个阶段。个阶段。.各阶段相互重叠,它反映了软件过程并各阶段相互重叠,它反映了软件过程并行性的特点。行性的特点。.以分析为基础,资源消耗成塔型。以分析为基础,资源消耗成塔型。.反映了软件过程迭代性的自然特性,从高反映了软件过程迭代性的自然特性,从高层返回低层无资源消耗。层返回低层无资源消耗。.强调增量开发,整个过程是一个迭代的强调增量开发,整个过程是一个迭代的逐步提炼的过程。逐步提炼的过程。第40页,共44页,编辑于2022年,星期三面向对象的方法的代表性成果有:面向对象的方法的代表性成果有:1.B.Henderson-sellers 和和 J.m.Edwards提出的面向对象软件生存期喷提出的面向对象软件生存期喷泉模型及面向对象的系统开发方法。泉模型及面向对象的系统开发方法。2.G.Booch提出的面向对象的开发方法。提出的面向对象的开发方法。3.P.Coad和和E.Yourd提出的提出的OOA和和OOD法。法。4.J.Rumbaugh等人提出的对象建模技术等人提出的对象建模技术(OMT)。5.Jacobson 提出的面向对象的软件工程提出的面向对象的软件工程(OOSE)。6.G.booch J.Rumbough Jacobson等人在等人在Booch方法、方法、OMT和和OOSE的基础上推出了统一建模语言的基础上推出了统一建模语言UML。第41页,共44页,编辑于2022年,星期三2.3 生存周期模型的选择和剪裁选择软件生存周期模型时,应综合考虑:选择软件生存周期模型时,应综合考虑:模型应符合软件本身的性质,如规模、复杂性等模型应符合软件本身的性质,如规模、复杂性等模型应符合软件本身的性质,如规模、复杂性等模型应符合软件本身的性质,如规模、复杂性等 模型应满足软件应用系统整体开发进度要求模型应满足软件应用系统整体开发进度要求模型应满足软件应用系统整体开发进度要求模型应满足软件应用系统整体开发进度要求模型应有可能控制并消除软件开发风险模型应有可能控制并消除软件开发风险模型应有可用的计算机辅助工具的支持模型应有可用的计算机辅助工具的支持模型应与用户和软件开发人员的知识和技能相匹模型应与用户和软件开发人员的知识和技能相匹配配模型应有利于软件开发的管理与控制模型应有利于软件开发的管理与控制第42页,共44页,编辑于2022年,星期三生存周期模型的选择面向过程方法:面向过程方法:瀑布模型、增量模型和螺旋模型瀑布模型、增量模型和螺旋模型瀑布模型、增量模型和螺旋模型瀑布模型、增量模型和螺旋模型面向数据方法:面向数据方法:瀑布模型、增量模型瀑布模型、增量模型瀑布模型、增量模型瀑布模型、增量模型面向对象方法:面向对象方法:喷泉模型、迭代模型、原型模型喷泉模型、迭代模型、原型模型第43页,共44页,编辑于2022年,星期三生存周期模型的剪裁结合自身的开发经验和行业特点,制定适合结合自身的开发经验和行业特点,制定适合的的“生存周期模型剪裁指南生存周期模型剪裁指南”。有针对性的对原模型中定义的内容进行增、有针对性的对原模型中定义的内容进行增、改、删,去掉不适用的内容。改、删,去掉不适用的内容。第44页,共44页,编辑于2022年,星期三