《[软件工程]CH8.ppt》由会员分享,可在线阅读,更多相关《[软件工程]CH8.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程软件工程软件工程刘迎春刘迎春软件工程第八章第八章 软件维护软件维护可行否?可行否?否否是是终止项目终止项目计划时期计划时期开发时期开发时期(SA,SD,SP)p主要内容主要内容n8.1软件维护的概念软件维护的概念n8.2软件维护的代价软件维护的代价 n8.3维护过程维护过程n8.4可维护性可维护性n8.5维护的副作用维护的副作用 运行时期运行时期维护维护8.1软件维护的概念软件维护的概念p【软件维护软件维护】n在软件已经交付用户使用之后,为了在软件已经交付用户使用之后,为了改正错误改正错误或或满满足新的需求足新的需求而进行而进行修改软件的过程修改软件的过程。p【软件维护分类软件维护分类
2、】n改正性维护改正性维护(Corrective Maintenance)n适应性维护适应性维护(Adaptive Maintenance)n完善性维护完善性维护(Perfective Maintenance)n预防性维护预防性维护(Preventive Maintenance)8.1软件维护的概念软件维护的概念p【软件维护分类软件维护分类】p改正性维护改正性维护(Corrective Maintenance)n定义:定义:p运行时期诊断、改正错误的过程。运行时期诊断、改正错误的过程。n原因:原因:p开发时期测试是不彻底的,会有部分隐藏的错误遗开发时期测试是不彻底的,会有部分隐藏的错误遗留到运行
3、时期。留到运行时期。n目的:目的:p识别和改正软件错误;识别和改正软件错误;p改正软件性能和功能上的缺陷改正软件性能和功能上的缺陷8.1软件维护的概念软件维护的概念p【软件维护分类软件维护分类】p适应性维护适应性维护(Adaptive Maintenance)n定义:定义:p为使软件适应变化而修改软件的过程。为使软件适应变化而修改软件的过程。n原因:原因:n在软件运行过程中,在软件运行过程中,p外部环境外部环境新的硬、软件配置。新的硬、软件配置。p数据环境数据环境n数据库数据库n数据输入数据输入/输出方式输出方式n数据存储介质数据存储介质n可能发生变化。可能发生变化。8.1软件维护的概念软件维
4、护的概念p【软件维护分类软件维护分类】p完善性维护完善性维护(Perfective Maintenance)n定义:定义:p为了满足这些要求,需要修改或再开发软件,以为了满足这些要求,需要修改或再开发软件,以扩扩充软件功能充软件功能、增强软件性能增强软件性能、提高软件的可维护性提高软件的可维护性。p这种情况下进行的维护活动叫做这种情况下进行的维护活动叫做完善性维护完善性维护。n原因:原因:p在软件的使用过程中,在软件的使用过程中,用户往往会对软件提出新的用户往往会对软件提出新的功能与性能要求功能与性能要求。8.1软件维护的概念软件维护的概念p【软件维护分类软件维护分类】p预防性维护预防性维护(
5、Preventive Maintenance)n定义:定义:p采用先进的软件工程方法对需要维护的软件或软件采用先进的软件工程方法对需要维护的软件或软件中的某一部分中的某一部分(重新)进行设计、编码和测试(重新)进行设计、编码和测试。n目的:目的:p了提高软件的可维护性、可靠性等;了提高软件的可维护性、可靠性等;p为以后进一步改进软件打下良好基础。为以后进一步改进软件打下良好基础。8.1软件维护的概念软件维护的概念p【软件维护分类软件维护分类】改正性维护改正性维护(Corrective Maintenance)适应性维护适应性维护(Adaptive Maintenance)完善性维护完善性维护(
6、Perfective Maintenance)预防性维护预防性维护(Preventive Maintenance)50%不一定是救火式的紧急维修,不一定是救火式的紧急维修,而是有计划、有预谋的一种再开发活动。而是有计划、有预谋的一种再开发活动。8.1软件维护的概念软件维护的概念p软件维护的工作占整个生存期工作量的软件维护的工作占整个生存期工作量的70%以上以上软软件件生生命命周周期期问题定义问题定义可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计编码编码测试测试运行与维护运行与维护70%以上以上8.2软件维护的代价软件维护的代价p1.费用代价(有形)费用代价(有形)n197
7、0年年 35%40%n1980年年40%60%n1990年年70%80%p2.其它(无形)其它(无形)n不能及时满足用户合理的修改要求,引起用户不满;不能及时满足用户合理的修改要求,引起用户不满;n引入了新的潜伏的故障,降低了软件的质量;引入了新的潜伏的故障,降低了软件的质量;n抽调开发者去从事维护,使得开发造成混乱。抽调开发者去从事维护,使得开发造成混乱。8.2软件维护的代价软件维护的代价p【维护工作量维护工作量】用于维护工作的劳动。用于维护工作的劳动。n生产性活动生产性活动n非生产性活动非生产性活动p【维护工作量的模型维护工作量的模型】pM:维护用的总工作量:维护用的总工作量pP:生产性活
8、动工作量:生产性活动工作量pK:维护人员经验系数:维护人员经验系数pC:复杂程度(非结构化设计和缺少文档都会增:复杂程度(非结构化设计和缺少文档都会增加软件的复杂程度)加软件的复杂程度)pD:维护人员对软件熟练程度:维护人员对软件熟练程度8.2软件维护的代价软件维护的代价p【影响维护代价的非技术因素影响维护代价的非技术因素】n应用域的复杂性应用域的复杂性p需求分析工作比较完善需求分析工作比较完善代价低代价低。n开发人员的稳定性开发人员的稳定性p开发者维护自己的程序开发者维护自己的程序代价低代价低;n软件的生命周期软件的生命周期p软件生命周期越长软件生命周期越长代价越高代价越高;n商业操作模式变
9、化对软件的影响商业操作模式变化对软件的影响p商业操作模式变化越频繁商业操作模式变化越频繁代价越高;代价越高;p如,财务制度改变如,财务制度改变财务软件修改财务软件修改8.2软件维护的代价软件维护的代价p【影响维护代价的技术因素影响维护代价的技术因素】n软件对运行环境的依赖性软件对运行环境的依赖性n编程语言编程语言n编程风格编程风格p风格好风格好可理解性好可理解性好代价越高代价越高;n测试与改错工作测试与改错工作n文档的质量文档的质量p清晰、正确和完整的文档清晰、正确和完整的文档降低维护的代价降低维护的代价美国空军用的美国空军用的XP版本版本p美国空军在劝说微软美国空军在劝说微软CEO鲍尔默鲍尔
10、默为他们提为他们提供更安全的系统供更安全的系统Windows XP系统配置,系统配置,此举将使得该部门节省此举将使得该部门节省下下1亿美元的合约开支,亿美元的合约开支,以及大量的维护时间。以及大量的维护时间。p该系统将加入更多安全该系统将加入更多安全特性,包括全新的密码特性,包括全新的密码管理机制等,超过管理机制等,超过600个参数被禁止修改个参数被禁止修改 8.3维护过程维护过程p为了有效地进行软件维护,应事先做好组织工作。为了有效地进行软件维护,应事先做好组织工作。n建立维护的组织建立维护的组织n为每一个维护申请规定标准的处理步骤为每一个维护申请规定标准的处理步骤系统管理员系统管理员变化授
11、权人变化授权人维护管理员维护管理员8.3维护过程维护过程p【维护申请表维护申请表】n软件维护人员通常给用户提供空白的维护申请表软件维护人员通常给用户提供空白的维护申请表(软件问题报告表)。(软件问题报告表)。n维护申请表由申请维护的用户填写;维护申请表由申请维护的用户填写;p改正性维护:改正性维护:n完整地描述导致出现该错误的环境完整地描述导致出现该错误的环境,包括:,包括:n输入数据、全部输出数据,以及其他有关的信息输入数据、全部输出数据,以及其他有关的信息p适应性维护,完善性维护:适应性维护,完善性维护:n仅需提出仅需提出一个简要的需求说明一个简要的需求说明。维护过程维护过程用户用户区分区
12、分维护类维护类型型评价评价优先级优先级适应性适应性要求要求完善性完善性要求要求 评价错误评价错误严重性严重性改正的错误改正的错误维护维护 申请申请安排安排维护任务维护任务不严重错误不严重错误维护任务目录维护任务目录问题分析问题分析严重错误严重错误 维护任务维护任务复审复审维护维护 计划计划改正后改正后 的软件的软件问题分析问题分析高优先级高优先级维护维护计划计划 低优先级低优先级维护维护任务任务维护过程维护过程修改软件设计修改软件设计设计评审设计评审代码修改代码修改单元测试单元测试集成测试集成测试确认测试确认测试修改需求说明修改需求说明8.3维护过程维护过程p为了有效地进行软件维护,应事先做好
13、组织工作。为了有效地进行软件维护,应事先做好组织工作。n建立维护的组织建立维护的组织n为每一个维护申请规定标准的处理步骤为每一个维护申请规定标准的处理步骤n明确明确维护申请的评价过程,评审标准维护申请的评价过程,评审标准系统管理员系统管理员变化授权人变化授权人维护管理员维护管理员8.3维护过程维护过程系统管理员系统管理员变化授权人变化授权人维护管理员维护管理员系统管理员系统管理员系统管理员系统管理员维护申请维护申请评价评价8.3维护过程维护过程p为了有效地进行软件维护,应事先做好组织工作。为了有效地进行软件维护,应事先做好组织工作。n建立维护的组织建立维护的组织n为每一个维护申请规定标准的处理
14、步骤为每一个维护申请规定标准的处理步骤n明确明确维护申请的评价过程,评审标准维护申请的评价过程,评审标准n建立维护活动的登记制度建立维护活动的登记制度系统管理员系统管理员变化授权人变化授权人维护管理员维护管理员8.3维护过程维护过程p【维护评价维护评价】n用于每一类维护活动的总人时数;用于每一类维护活动的总人时数;n不同维护类型所占的百分比。不同维护类型所占的百分比。n维护每种语言平均花费的人时数;维护每种语言平均花费的人时数;n一张维护申请表的平均周转时间;一张维护申请表的平均周转时间;n平均每个程序平均每个程序、每种维护类型每种维护类型所做的程序变动数;所做的程序变动数;n维护过程中维护过
15、程中增加或删除一个源语句平均花费的人时增加或删除一个源语句平均花费的人时数;数;n每次程序运行平均失效的次数;每次程序运行平均失效的次数;8.4可维护性可维护性p【可维护性可维护性】n维护人员理解,改正,改动和改进软件的难易程度。维护人员理解,改正,改动和改进软件的难易程度。p【影响因素影响因素】n1.可理解性可理解性n2.可修改性可修改性n3.可测试性可测试性8.4可维护性可维护性p【影响因素影响因素】1.可理解性可理解性n维护者并不是软件的开发者,而读懂别人写的程序维护者并不是软件的开发者,而读懂别人写的程序是困难的。是困难的。n结构化结构化、模块化模块化、详细的设计文档详细的设计文档、源
16、代码内部的源代码内部的注释说明注释说明和良好的高级程序和良好的高级程序设计语言设计语言等,都对改进等,都对改进软件的可理解性有重要的贡献软件的可理解性有重要的贡献n如果文档不全,或仅有程序而无文档,降低软件的如果文档不全,或仅有程序而无文档,降低软件的可维护性。可维护性。8.4可维护性可维护性p【影响因素影响因素】2.可修改性可修改性n可修改性表明程序容易修改的程度。可修改性表明程序容易修改的程度。n模块设计时的模块设计时的内聚内聚、耦合耦合、作用范围作用范围/控制范围控制范围等因等因素都会影响软件的素都会影响软件的可修改性可修改性。n在修改的过程中,可能引入新的错误。在修改的过程中,可能引入
17、新的错误。n可修改性好的程序,在修改时出错的概率也小一些。可修改性好的程序,在修改时出错的概率也小一些。8.4可维护性可维护性p【影响因素影响因素】3.可测试性可测试性n可测试性代表一个软件容易被测试的程度可测试性代表一个软件容易被测试的程度n要求程序要求程序有良好的可理解性有良好的可理解性和和较低的结构复杂度较低的结构复杂度n要求要求有齐全的测试文档有齐全的测试文档p开发时期用过的测试用例与结果,以便进行回归测试开发时期用过的测试用例与结果,以便进行回归测试 8.5维护的副作用维护的副作用p【维护的副作用维护的副作用】n因修改软件而造成的错误或其它不希望发生的情况。因修改软件而造成的错误或其
18、它不希望发生的情况。p【三种副作用三种副作用】n修改代码的副作用修改代码的副作用n修改数据的副作用修改数据的副作用n修改文档的副作用修改文档的副作用8.5维护的副作用维护的副作用p【三种副作用三种副作用】修改文档的副作用修改文档的副作用n软件文档包括:软件文档包括:p用户文档:用户文档:描述系统功能及使用方法描述系统功能及使用方法n1.功能描述:说明系统能做什么功能描述:说明系统能做什么n2.安装文档:如何安装,适应特点的硬件配置安装文档:如何安装,适应特点的硬件配置n3.使用手册:如何使用,举例说明,出错如何处理。使用手册:如何使用,举例说明,出错如何处理。n4.参考手册:名词的解释参考手册
19、:名词的解释.p系统文档:系统文档:系统的分析、设计、编码、测试系统的分析、设计、编码、测试n需求分析报告需求分析报告n概要设计概要设计/详细设计报告详细设计报告n源程序清单源程序清单n测试报告测试报告8.5维护的副作用维护的副作用p【三种副作用三种副作用】修改文档的副作用修改文档的副作用n如果如果源代码的修改没有反映在设计文档、用户手册源代码的修改没有反映在设计文档、用户手册中,就会出现文档的副作用。中,就会出现文档的副作用。n如:如:p维护人员单纯地阅读这些文档会导致对软件特性的维护人员单纯地阅读这些文档会导致对软件特性的不正确理解和评价不正确理解和评价n不能正确反映软件当前状态的文档可能比完全没有不能正确反映软件当前状态的文档可能比完全没有文档更坏文档更坏瀑布模型总结瀑布模型总结客户客户订购订购问题定义问题定义可行性研究可行性研究可行性研究可行性研究报告报告需求分析需求分析概要设计概要设计概要设计报告概要设计报告详细设计详细设计详细设计报告详细设计报告编码编码测试测试源程序清单源程序清单测试报告测试报告需求分析报告需求分析报告