《第2讲软件生命周期与软件过程模型优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第2讲软件生命周期与软件过程模型优秀PPT.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第2讲软件生命周期与软件过程模型1现在学习的是第1页,共54页提纲提纲软件生命周期软件生命周期 软件过程模型软件过程模型 瀑布模型瀑布模型瀑布模型瀑布模型 演化模型演化模型演化模型演化模型 增量模型增量模型增量模型增量模型 原型模型原型模型原型模型原型模型 螺旋模型螺旋模型螺旋模型螺旋模型 (风险分析风险分析风险分析风险分析)喷泉模型喷泉模型喷泉模型喷泉模型总结总结2现在学习的是第2页,共54页软件工程把整个软件开发过程视为一项工软件工程把整个软件开发过程视为一项工程,把整个工程分成若干个阶段,制定每程,把整个工程分成若干个阶段,制定每个阶段的计划,逐个实施。个阶段的计划,逐个实施。V模型模型
2、3现在学习的是第3页,共54页用户用户需求获取需求获取需求规需求规约约需需求求描描述述需求分析需求分析设计设计设计规设计规约约详细设计详细设计模块设模块设计书计书编码编码程序程序已测试已测试模块模块单元测试单元测试集成集成已集成已集成软件软件集成测试集成测试软件软件确认测试确认测试已已确确认认的的软件软件运行测试运行测试软件产软件产品品评评审审评评审审评评审审评评审审评评审审静静 态态 检检查查测试用例测试用例集成计划集成计划建立文档建立文档软件开发软件开发V模型模型评评审审评评审审评评审审4现在学习的是第4页,共54页制定计划制定计划确定要开发软件系统的确定要开发软件系统的总目标总目标给出给
3、出功能功能、性能性能、可靠性可靠性以及以及接口接口等方面等方面的要求的要求完成该软件任务的完成该软件任务的可行性研究可行性研究估计可利用的估计可利用的资源资源(硬件、软件、人力等硬件、软件、人力等)、成本成本、效益效益、开发进度开发进度制定出完成开发任务的制定出完成开发任务的实施计划实施计划,连同,连同可可行性研究报告行性研究报告,提交管理部门审查,提交管理部门审查5现在学习的是第5页,共54页需求分析和定义需求分析和定义对用户提出的要求进行分析并给出详细的定对用户提出的要求进行分析并给出详细的定义义编写编写软件需求说明书软件需求说明书或或系统功能说明书系统功能说明书及及初初步的系统用户手册步
4、的系统用户手册评审评审6现在学习的是第6页,共54页软件设计软件设计概要设计概要设计 把各项需求转换成把各项需求转换成软件的体系软件的体系结构结构。结构中每一组成部分都是意义明确的。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应。模块,每个模块都和某些需求相对应。详细设计详细设计 对每个模块要完成的工作进行对每个模块要完成的工作进行具体的描述,为源程序编写打下基础。具体的描述,为源程序编写打下基础。编写编写设计说明书设计说明书,提交,提交评审评审。7现在学习的是第7页,共54页程序编写程序编写(软件实现软件实现)把软件设计转换成计算机可以接受的程序代把软件设计转换成计算机可以
5、接受的程序代码,即写成以某一种特定程序设计语言表示码,即写成以某一种特定程序设计语言表示的的“源程序清单源程序清单”写出的程序应当结构良好、清晰易读,且与写出的程序应当结构良好、清晰易读,且与设计相一致设计相一致8现在学习的是第8页,共54页软件测试软件测试单元测试单元测试,查找各模块在功能和结构上存,查找各模块在功能和结构上存在的问题并加以纠正在的问题并加以纠正集成测试集成测试,将已测试过的模块按一定顺序,将已测试过的模块按一定顺序组装起来组装起来按规定的各项需求,逐项进行按规定的各项需求,逐项进行有效性测试有效性测试,决定已开发的软件是否合格,能否交付用决定已开发的软件是否合格,能否交付用
6、户使用户使用9现在学习的是第9页,共54页运行运行/维护维护改正性维护改正性维护 运行中发现了软件中的错误需运行中发现了软件中的错误需要修正要修正适应性维护适应性维护 为了适应变化了的软件工作环为了适应变化了的软件工作环境,需做适当变更境,需做适当变更完善性维护完善性维护 为了增强软件的功能需做变更为了增强软件的功能需做变更预防性维护预防性维护“把今天的方法学用于昨天的系把今天的方法学用于昨天的系统以满足明天的需要统以满足明天的需要”。为进一步改进软件。为进一步改进软件打基础打基础10现在学习的是第10页,共54页软件生命周期软件生命周期 教材教材教材教材P7P7软件有一个孕育、诞生、成长、成
7、熟、衰亡的生存软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生命周期。过程。这个过程即为计算机软件的生命周期。软件生命周期的六个步骤,即软件生命周期的六个步骤,即软件生命周期的六个步骤,即软件生命周期的六个步骤,即制定计划、需求分析、设制定计划、需求分析、设制定计划、需求分析、设制定计划、需求分析、设计、程序编码、测试计、程序编码、测试计、程序编码、测试计、程序编码、测试及及及及运行维护运行维护运行维护运行维护。11现在学习的是第11页,共54页软件过程软件过程12现在学习的是第12页,共54页软件过程模型软件过程模型软件过程模型软件过程模型 是制作软件产品的一组活
8、动是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完以及结果,这些活动主要由软件人员来完成。成。软件活动软件活动 主要有:主要有:软件描述软件描述软件描述软件描述 定义软件功能及使用的限制定义软件功能及使用的限制定义软件功能及使用的限制定义软件功能及使用的限制 软件开发软件开发软件开发软件开发 软件的设计和实现软件的设计和实现软件的设计和实现软件的设计和实现 软件有效性验证软件有效性验证 保证能够满足客户的需要保证能够满足客户的需要 软件进化软件进化软件进化软件进化 软件随着客户需求的变化不断的改进软件随着客户需求的变化不断的改进13现在学习的是第13页,共54页软件过程模型软件过程
9、模型瀑布模型瀑布模型演化模型:增量模型、原型模型、螺旋模型演化模型:增量模型、原型模型、螺旋模型喷泉模型喷泉模型统一过程模型统一过程模型敏捷开发敏捷开发14现在学习的是第14页,共54页瀑布模型瀑布模型 教材教材P18主要思想主要思想软件开发过程与软件生命周期是一致的软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系相邻二阶段之间存在因果关系需对阶段性产品进行评审需对阶段性产品进行评审15现在学习的是第15页,共54页16现在学习的是第16页,共54页瀑布模型在软件工程中占有重要的地位瀑布模型在软件工程中占有重要的地位局限性局限性 缺乏灵活性,如用户需求一开始很难确定缺乏灵活性,如用
10、户需求一开始很难确定 到最后阶段才能得到可运行的软件版本到最后阶段才能得到可运行的软件版本17现在学习的是第17页,共54页带有反馈的瀑布模型带有反馈的瀑布模型18现在学习的是第18页,共54页需求分析需求分析设计设计编码编码测试测试软件缺陷产生的原因软件缺陷产生的原因19现在学习的是第19页,共54页演化模型演化模型 教材教材教材教材P20两个概念两个概念原型原型软件演化软件演化(进化进化)20现在学习的是第20页,共54页演化模型之演化模型之 增量模型增量模型项目日历时间项目日历时间软软件件功功能能性性和和特特征征1 12 23 34 45 5第第2 2次增量发布次增量发布增量增量2 21
11、 12 23 34 45 5第第n n次增量发布次增量发布增量增量n n1 12 23 34 45 5第第1 1次增量发布次增量发布增量增量1 15 5部署(发布,反馈)部署(发布,反馈)4 4构造(编码,测试)构造(编码,测试)3 3建模(分析,设计)建模(分析,设计)2 2计划计划1 1交流交流21现在学习的是第21页,共54页演化模型之演化模型之 增量模型增量模型项目日历时间项目日历时间软软件件功功能能性性和和特特征征1 12 23 34 45 5第第2 2次增量发布次增量发布增量增量2 21 12 23 34 45 5第第n n次增量发布次增量发布增量增量n n1 12 23 34 4
12、5 5第第1 1次增量发布次增量发布增量增量1 15 5部署(发布,反馈)部署(发布,反馈)4 4构造(编码,测试)构造(编码,测试)3 3建模(分析,设计)建模(分析,设计)2 2计划计划1 1交流交流22现在学习的是第22页,共54页例如利用增量模型开发字处理软件例如利用增量模型开发字处理软件 第第第第1 1个增量中提供基本的文件管理、编辑和文档生成的个增量中提供基本的文件管理、编辑和文档生成的功能;功能;第第第第2个增量中提供复杂的编辑和文档生成功能;个增量中提供复杂的编辑和文档生成功能;第第3 3个增量中提供拼写和语法检查功能;个增量中提供拼写和语法检查功能;个增量中提供拼写和语法检查
13、功能;个增量中提供拼写和语法检查功能;第第4个增量中提供高级页面排版功能个增量中提供高级页面排版功能个增量中提供高级页面排版功能个增量中提供高级页面排版功能23现在学习的是第23页,共54页增量模型将软件的开发过程分成若干个日程时间交增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发错的线性序列,每个线性序列产生软件的一个可发布的布的“增量增量”版本,后一个版本是对前一版本的修版本,后一个版本是对前一版本的修改和补充,重复增量发布的过程,直至产生最终的改和补充,重复增量发布的过程,直至产生最终的完善产品。完善产品。增量模型融合了瀑布模型的基本成分(重复地应
14、用)增量模型融合了瀑布模型的基本成分(重复地应用)和演化模型的迭代特征和演化模型的迭代特征增量模型强调每一个增量都发布一个可运行的产品增量模型强调每一个增量都发布一个可运行的产品(第一个增量是核心产品)第一个增量是核心产品)24现在学习的是第24页,共54页增量模型特别适用于:增量模型特别适用于:需求经常变化的软件开发需求经常变化的软件开发 市场急需而开发人员和资金不能在设定的市场急需而开发人员和资金不能在设定的市场期限之前实现一个完善的产品的软件开市场期限之前实现一个完善的产品的软件开发发增量模型能有计划地管理技术风险,如早期增量模型能有计划地管理技术风险,如早期增量版本中避免采用尚未成熟的
15、技术增量版本中避免采用尚未成熟的技术25现在学习的是第25页,共54页演化模型之演化模型之 原型模型原型模型26现在学习的是第26页,共54页原型应该包括目标系统的关键问题和反映原型应该包括目标系统的关键问题和反映目标系统的大致面貌,展示目标系统的全目标系统的大致面貌,展示目标系统的全部或部分功能、性能部或部分功能、性能原型模型两个阶段原型模型两个阶段(1)原型开发阶段)原型开发阶段(2)目标软件开发阶段)目标软件开发阶段27现在学习的是第27页,共54页原型的使用策略:原型的使用策略:废弃(废弃(废弃(废弃(throw away)策略)策略 主要用于主要用于主要用于主要用于探索型探索型探索型
16、探索型和和和和实验型实验型实验型实验型原型的开发。这些原型关注原型的开发。这些原型关注原型的开发。这些原型关注原型的开发。这些原型关注于目标系统的某些特性,而不是全部特性,开发这些原型于目标系统的某些特性,而不是全部特性,开发这些原型于目标系统的某些特性,而不是全部特性,开发这些原型于目标系统的某些特性,而不是全部特性,开发这些原型时通常不考虑与探索或实验目的无关的功能、质量、结构时通常不考虑与探索或实验目的无关的功能、质量、结构时通常不考虑与探索或实验目的无关的功能、质量、结构时通常不考虑与探索或实验目的无关的功能、质量、结构等因素,这种原型通常被废丢,然后根据探索或实验的结等因素,这种原型
17、通常被废丢,然后根据探索或实验的结等因素,这种原型通常被废丢,然后根据探索或实验的结等因素,这种原型通常被废丢,然后根据探索或实验的结果用良好的结构和设计思想重新设计目标系统。果用良好的结构和设计思想重新设计目标系统。果用良好的结构和设计思想重新设计目标系统。果用良好的结构和设计思想重新设计目标系统。追加(追加(add onadd on)策略)策略 主要用于演化型原型的开发。这种原型通常是实现了目标主要用于演化型原型的开发。这种原型通常是实现了目标主要用于演化型原型的开发。这种原型通常是实现了目标主要用于演化型原型的开发。这种原型通常是实现了目标系统中已明确定义的特性的一个子集,通过对它的不断
18、修改和系统中已明确定义的特性的一个子集,通过对它的不断修改和系统中已明确定义的特性的一个子集,通过对它的不断修改和系统中已明确定义的特性的一个子集,通过对它的不断修改和扩充,逐步追加新的要求,最后使其演化成最终的目标系统。扩充,逐步追加新的要求,最后使其演化成最终的目标系统。扩充,逐步追加新的要求,最后使其演化成最终的目标系统。扩充,逐步追加新的要求,最后使其演化成最终的目标系统。28现在学习的是第28页,共54页使用原型法需注意:使用原型法需注意:(1 1)用户对系统模糊不清,无法准确回答目标系统的需)用户对系统模糊不清,无法准确回答目标系统的需)用户对系统模糊不清,无法准确回答目标系统的需
19、)用户对系统模糊不清,无法准确回答目标系统的需求求求求 (2 2)要有一定的开发环境和工具支持)要有一定的开发环境和工具支持(3 3)经过对原型的若干次修改,应)经过对原型的若干次修改,应收敛收敛收敛收敛到目标范围内,到目标范围内,到目标范围内,到目标范围内,否则可能失败否则可能失败否则可能失败否则可能失败(4 4)对大型软件而言,原型可能非常复杂而难以快速形)对大型软件而言,原型可能非常复杂而难以快速形)对大型软件而言,原型可能非常复杂而难以快速形)对大型软件而言,原型可能非常复杂而难以快速形成,若没有现成的,不应考虑采用该方法成,若没有现成的,不应考虑采用该方法成,若没有现成的,不应考虑采
20、用该方法成,若没有现成的,不应考虑采用该方法29现在学习的是第29页,共54页优点优点有助于获取用户需求,加强对需求的理解有助于获取用户需求,加强对需求的理解尽早发现软件中的错误尽早发现软件中的错误支持需求的动态变化支持需求的动态变化适合于需求动态变化、事先难以确定的系统适合于需求动态变化、事先难以确定的系统局限性局限性不能支持风险分析不能支持风险分析30现在学习的是第30页,共54页演化模型之演化模型之 螺旋模型螺旋模型基本思想基本思想螺旋模型是瀑布模型、原型模型的有机结合,螺旋模型是瀑布模型、原型模型的有机结合,同时增加了风险分析同时增加了风险分析31现在学习的是第31页,共54页32现在
21、学习的是第32页,共54页螺旋模型沿着螺线旋转,在四个象限上分别螺旋模型沿着螺线旋转,在四个象限上分别表达四个方面的活动表达四个方面的活动制定计划制定计划 确定软件目标,选定实施方案,弄清项目确定软件目标,选定实施方案,弄清项目确定软件目标,选定实施方案,弄清项目确定软件目标,选定实施方案,弄清项目开发的限制开发的限制开发的限制开发的限制 风险分析风险分析风险分析风险分析 分析所选方案,考虑如何识别和消除风分析所选方案,考虑如何识别和消除风险险实施工程实施工程 实施软件开发实施软件开发实施软件开发实施软件开发 客户评估客户评估客户评估客户评估 评价开发工作,提出修正建议评价开发工作,提出修正建
22、议33现在学习的是第33页,共54页优点优点有助于获取用户需求,加强对需求的理解有助于获取用户需求,加强对需求的理解尽早发现软件中的错误尽早发现软件中的错误支持需求的动态变化支持需求的动态变化支持风险分析,可降低或者消除软件开发风险支持风险分析,可降低或者消除软件开发风险适合于需求动态变化,事先难以确定并且适合于需求动态变化,事先难以确定并且开发风险较大的系统开发风险较大的系统34现在学习的是第34页,共54页螺旋模型出现了一些变种,它螺旋模型出现了一些变种,它可以有可以有可以有可以有3 3到到到到6 6个任务区个任务区域域。螺旋模型指引的软件项目开发沿着螺线自内向外旋转,螺旋模型指引的软件项
23、目开发沿着螺线自内向外旋转,螺旋模型指引的软件项目开发沿着螺线自内向外旋转,螺旋模型指引的软件项目开发沿着螺线自内向外旋转,每旋转一圈,表示开发出一个更为完善的新软件版本。每旋转一圈,表示开发出一个更为完善的新软件版本。每旋转一圈,表示开发出一个更为完善的新软件版本。每旋转一圈,表示开发出一个更为完善的新软件版本。如果发现风险太大,开发者和客户无法承受,则项如果发现风险太大,开发者和客户无法承受,则项目就可能因此而终止。目就可能因此而终止。多数情况下沿着螺线的活动会继续下去,自内向外,多数情况下沿着螺线的活动会继续下去,自内向外,逐步延伸,最终得到所期望的系统。逐步延伸,最终得到所期望的系统。
24、35现在学习的是第35页,共54页风险风险风险概念风险概念(1)风险涉及的是未来将要发生的事情)风险涉及的是未来将要发生的事情(2)风险涉及改变)风险涉及改变(3)风险涉及选择,具有不确定性)风险涉及选择,具有不确定性36现在学习的是第36页,共54页有关风险的几个例子:有关风险的几个例子:某项目已成功实施某项目已成功实施1 1个月,某天小谢突然告诉小王,他已个月,某天小谢突然告诉小王,他已个月,某天小谢突然告诉小王,他已个月,某天小谢突然告诉小王,他已办理好了去德国的签证,办理好了去德国的签证,办理好了去德国的签证,办理好了去德国的签证,2 2周后他会辞职离开公司前往德周后他会辞职离开公司前
25、往德周后他会辞职离开公司前往德周后他会辞职离开公司前往德国留学国留学国留学国留学 (人员人员)小谢的离开显然将会影响项目组的正常运作,影响项目的进度,小谢的离开显然将会影响项目组的正常运作,影响项目的进度,小谢的离开显然将会影响项目组的正常运作,影响项目的进度,小谢的离开显然将会影响项目组的正常运作,影响项目的进度,为此将会给项目的实施带来损失为此将会给项目的实施带来损失为此将会给项目的实施带来损失为此将会给项目的实施带来损失 可以想象,可以想象,可以想象,可以想象,2 2周以后小谢的离开将会带来一系列问题:谁来接替小周以后小谢的离开将会带来一系列问题:谁来接替小周以后小谢的离开将会带来一系列
26、问题:谁来接替小周以后小谢的离开将会带来一系列问题:谁来接替小谢的工作?在此之前谁来负责交接小谢的工作?如何尽可能的避谢的工作?在此之前谁来负责交接小谢的工作?如何尽可能的避谢的工作?在此之前谁来负责交接小谢的工作?如何尽可能的避谢的工作?在此之前谁来负责交接小谢的工作?如何尽可能的避免由此给项目组带来的损失免由此给项目组带来的损失免由此给项目组带来的损失免由此给项目组带来的损失(包括进度损失和工作损失等包括进度损失和工作损失等包括进度损失和工作损失等包括进度损失和工作损失等)尽管还没发生,但必须考虑如何避免问题的发生,以及一旦发尽管还没发生,但必须考虑如何避免问题的发生,以及一旦发尽管还没发
27、生,但必须考虑如何避免问题的发生,以及一旦发尽管还没发生,但必须考虑如何避免问题的发生,以及一旦发生后该采取得措施,以便将损失减少到最少生后该采取得措施,以便将损失减少到最少生后该采取得措施,以便将损失减少到最少生后该采取得措施,以便将损失减少到最少37现在学习的是第37页,共54页按照软件开发计划,需求分析应该在按照软件开发计划,需求分析应该在12月月31日之前完成,然而在软件项目实施过程中日之前完成,然而在软件项目实施过程中项目经理发现,由于原先对工作量估算过于项目经理发现,由于原先对工作量估算过于乐观,需求分析在乐观,需求分析在12月月31日之前已经不可日之前已经不可能完成能完成(计划计
28、划)显然,原先计划制定的不科学和不准确,导显然,原先计划制定的不科学和不准确,导致了实施过程中进度难以控制,如果强行按致了实施过程中进度难以控制,如果强行按照计划来执行显然是不可行的,为此,必须照计划来执行显然是不可行的,为此,必须对计划重新进行分析和调整对计划重新进行分析和调整38现在学习的是第38页,共54页在软件设计阶段,软件设计负责人老王发在软件设计阶段,软件设计负责人老王发现,用户需求中的某项需求现,用户需求中的某项需求(例如,将已有例如,将已有word文档的内容显示在文档的内容显示在Web页面上页面上)至今尚至今尚未找到解决的技术途径未找到解决的技术途径(技术技术)显然,该问题将直
29、接影响软件项目的后续开显然,该问题将直接影响软件项目的后续开发工作,影响到软件项目能否成功完成发工作,影响到软件项目能否成功完成39现在学习的是第39页,共54页在需求分析过程中,老王带领的需求分析小在需求分析过程中,老王带领的需求分析小组和用户在进行交流的过程中发生了矛盾,组和用户在进行交流的过程中发生了矛盾,出现了争吵,用户方说将不再配合需求分析出现了争吵,用户方说将不再配合需求分析小组的工作,而且他们确实没有配合开发方小组的工作,而且他们确实没有配合开发方的工作的工作(合作合作)显然,开发方和用户方出现这种状况显然是双显然,开发方和用户方出现这种状况显然是双方没有想到的方没有想到的这种状
30、况延续下去必将对软件项目的实施产生这种状况延续下去必将对软件项目的实施产生影响,影响软件项目的进度,甚至会导致项目影响,影响软件项目的进度,甚至会导致项目失败失败40现在学习的是第40页,共54页风险风险风险类型风险类型描述描述人员变动人员变动项目项目有经验的开发人员在项目未完成有经验的开发人员在项目未完成前离去前离去硬件不可用硬件不可用项目项目为项目实施而订购的关键硬件迟为项目实施而订购的关键硬件迟迟不能到位迟不能到位技术变更技术变更业务业务构建系统所需的新技术需还时间构建系统所需的新技术需还时间加以掌握加以掌握低估软件规低估软件规模模项目和产品项目和产品对软件的代码量和开发进度估计对软件的
31、代码量和开发进度估计的过乐观的过乐观产品竞争产品竞争业务业务在系统完成前已有同类的系统面在系统完成前已有同类的系统面世参加竞争世参加竞争需求变更需求变更项目和产品项目和产品比预期要多得多的需求变更比预期要多得多的需求变更41现在学习的是第41页,共54页沟通沟通策划策划 建模建模构建构建部署部署 交付 反馈开始分析 设计编码 测试项目估算 制定进度计划 风险分析42现在学习的是第42页,共54页喷泉模型喷泉模型43现在学习的是第43页,共54页 喷泉模型是一种支持面向对象开发的模型喷泉模型是一种支持面向对象开发的模型喷泉模型是一种支持面向对象开发的模型喷泉模型是一种支持面向对象开发的模型体现体
32、现迭代迭代和和和和无间隙无间隙无间隙无间隙特征特征 该模型认为软件开发过程自下而上周期的各阶段是该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。随时补充其他任何开发阶段中的遗漏。44现在学习的是第44页,共54页软件的某个部分通常被重复多次,相关对象在每次迭软件的某个部分通常被重复多次,相关对象在每次迭代
33、中随之加入渐进的软件成分。各活动之间无明显边代中随之加入渐进的软件成分。各活动之间无明显边界,例如设计和实现之间没有明显的边界,这也称为界,例如设计和实现之间没有明显的边界,这也称为“喷泉模型的无间隙性喷泉模型的无间隙性”。由于对象概念的引入,表。由于对象概念的引入,表达分析、设计及实现等活动只用对象类和关系,从而达分析、设计及实现等活动只用对象类和关系,从而可以较容易地实现活动的迭代和无间隙。可以较容易地实现活动的迭代和无间隙。45现在学习的是第45页,共54页喷泉模型不像瀑布模型那样,需要分析活动结束后才喷泉模型不像瀑布模型那样,需要分析活动结束后才开始设计活动,设计活动结束后才开始编码活
34、动。该开始设计活动,设计活动结束后才开始编码活动。该模型的各个阶段没有明显的界限,开发人员可以同步模型的各个阶段没有明显的界限,开发人员可以同步进行开发。进行开发。优点是可以提高软件项目开发效率,节省开发时间,优点是可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。适应于面向对象的软件开发过程。由于喷泉模型在各个开发阶段是重叠的,因此在开由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此发过程中需要大量的开发人员,因此不利于项目的不利于项目的管理管理。此外这种模型要求严格管理文档,使得此外这种模型要求严格管理文档,使得审核的难度审核的难度加大加大,
35、尤其是面对可能随时加入各种信息、需求与资,尤其是面对可能随时加入各种信息、需求与资料的情况。料的情况。46现在学习的是第46页,共54页起始起始起始起始细化细化细化细化构建构建构建构建转换转换转换转换软件增量软件增量生产生产生产生产发布发布发布发布沟沟沟沟 通通通通策策策策 划划划划建建建建 模模模模部部部部 署署署署构构构构 建建建建近年流行的近年流行的 统一过程模型统一过程模型47现在学习的是第47页,共54页基于构件的软件开发模型基于构件的软件开发模型 教材教材P24形式化方法模型形式化方法模型 教材教材P25 形式化方法是建立在严格数学基础上的一种软形式化方法是建立在严格数学基础上的一
36、种软件开发方法。软件开发的全过程中,从需求分析、件开发方法。软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成,规约、设计、编程、系统集成、测试、文档生成,直至维护等各个阶段,凡是采用严格的数学语言,直至维护等各个阶段,凡是采用严格的数学语言,具有具有精确的数学语义精确的数学语义的方法,都称为形式化方法。的方法,都称为形式化方法。48现在学习的是第48页,共54页软件过程模型总结:软件过程模型总结:瀑布模型瀑布模型瀑布模型瀑布模型建议线型流程的框架活动,这在软件世界里建议线型流程的框架活动,这在软件世界里通常与当代软件开发的现实情况不符通常与当代软件开发的现实情况不符(
37、例如,持续的变例如,持续的变例如,持续的变例如,持续的变更、演化的系统、紧迫的开发时间更、演化的系统、紧迫的开发时间更、演化的系统、紧迫的开发时间更、演化的系统、紧迫的开发时间)。但瀑布模型确实。但瀑布模型确实。但瀑布模型确实。但瀑布模型确实适用于需求定义清楚且稳定的软件开发。适用于需求定义清楚且稳定的软件开发。适用于需求定义清楚且稳定的软件开发。适用于需求定义清楚且稳定的软件开发。增量软件增量软件增量软件增量软件过程模型通过一系列的增量发布产生软件。过程模型通过一系列的增量发布产生软件。演化过程模型演化过程模型认识到大多数软件工程项目的迭代特性,认识到大多数软件工程项目的迭代特性,认识到大多
38、数软件工程项目的迭代特性,认识到大多数软件工程项目的迭代特性,其设计目的是为了适应变更。演化模型,例如原型开发及其设计目的是为了适应变更。演化模型,例如原型开发及其设计目的是为了适应变更。演化模型,例如原型开发及其设计目的是为了适应变更。演化模型,例如原型开发及螺旋模型,快速地产生增量的工作产品螺旋模型,快速地产生增量的工作产品螺旋模型,快速地产生增量的工作产品螺旋模型,快速地产生增量的工作产品(或是软件的工作或是软件的工作或是软件的工作或是软件的工作版本版本版本版本)。这些模型可以应用于所有的软件工程活动。这些模型可以应用于所有的软件工程活动从概念开发到长期的软件维护。从概念开发到长期的软件
39、维护。49现在学习的是第49页,共54页 统一过程模型统一过程模型统一过程模型统一过程模型是一种是一种“用例驱动、以体系结构为核心、用例驱动、以体系结构为核心、迭代增量迭代增量”的软件过程框架,由的软件过程框架,由UMLUML方法和工具支方法和工具支持。统一过程模型也是一种增量模型,定义了五个持。统一过程模型也是一种增量模型,定义了五个阶段阶段:起始阶段、细化阶段、构建阶段、转换阶段和起始阶段、细化阶段、构建阶段、转换阶段和起始阶段、细化阶段、构建阶段、转换阶段和起始阶段、细化阶段、构建阶段、转换阶段和生产阶段。生产阶段。生产阶段。生产阶段。50现在学习的是第50页,共54页51现在学习的是第51页,共54页52现在学习的是第52页,共54页53现在学习的是第53页,共54页谢谢大家!谢谢大家!54现在学习的是第54页,共54页