维护软件维护的定义维护的特点维护过程可维护性0102030405060708090第一季度第二季度第三季度第四季度东部西部北部软件维护的定义维护是指在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程改正性维护诊断和改正错误——约占全部维护活动的17~20%适应性维护为了和变化了的环境(如软\硬件升级、新数据库等)适当地配合而修改软件,约占全部维护活动的18~25%软件维护的定义完善性维护为了增加新功能、修改已有功能、改造界面、增加HELP等而修改软件,约占全部维护活动的50~66%预防性维护为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件,与其它维护活动共占总维护的4%左右。维护的特点结构化维护与非结构化维护的对比维护的代价维护的问题软件结构、系统接口、约束条件……???不知道!结构化维护与非结构化维护的对比维护要求软件配置只有代码评价代码重编程序复查完整配置评价设计文档估计改动影响,计划实施途径修改设计重编程序复查交付使用维护的特点维护的特点维护的代价有形代价一般为10%-70%,部分项目的费用已上升至总预算的80%无形代价占用资源以致延误开发修改不及时引起用户不满维护引入新错误,降低了软件质量维护的特点维护的问题别人的程序很难读懂文档与代码不一致开发人员往往不参加维护大多数软件在设计时没有考虑将来的修改维护过程维护组织维护报告维护的事件流保存维护记录评价维护活动维护过程——本质上是修改和压缩了的软件定义和开发过程维护组织在维护活动开始之前就明确维护责任是十分必要的,这样可以大大减少维护过程中可能出现的混乱。要求维护维护管理员系统管理员客户要求任务评价任务评价变化授权人钱太少不干!维护报告维护申请报告所有软件维护申请报告要按规定方式提出,该报告也称软件问题报告。由用户填写的外部文件,提供错误情况说明(输入数据,错误清单等),或修改说明书等软件修改报告所需修改变动的性质申请修改的优先级为满足某个维护申请报告,所需的工作量预计修改后的状况用户类型估计错误严重程度计划改正进度错误改正目录分析问题严重维护任务复审修改后的软件配置评价优先度开始分析开发目录完善适应低高复审后供使用的软件配置维护过程维护的事件流维护过程保存维护记录评价维护活动维护的副作用由于维护或在维护过程中其他一些不期望的行为引入的错误称为维护的副作用。维护中,因误删除一个标识符而引起的错误是编码副作用.其他还有文档副作用、数据副作用等可维护性决定软件可维护性的因素文档可维护性复审可维护性维护人员理解、改正、改动和改进这个软件的难易程度。决定软件可维护性的因素改正性维护运行性维护完善性维护1.可理解性2.可测试性3.可修改性4.可靠性5.可移植性6.可使用性7.效率可维护性决定软件可维护性的因素可理解性是指由文档代码理解功能运行的容易程度。好程序的特征:模块化、结构化、代码与设计风格一致,高级语言实现度量方法:90-10Test——读源程序10分钟,能否默写出90%?可测试性是指论证程序正确性的容易程度好程序的特征:可理解、可靠、简单度量方法:程序复杂度可修改性是指程序容易修改的程度。好程序的特征:可理解、简单、通用度量方法:CAD其中:D=修改难度;A=要修改的模块的复杂度;C=所有模块的平均复杂度。D1表示修改很困难。可靠性已讨论可移植性是指程序被移到一个新环境的容易程度。好程序的特征:结构好,不特别依赖于某一具体的计算机或操作系统。可使用性(已讨论)效率(Efficiency)是指程序能执行预定功能,而又不浪费机器资源(包括内存、外存、通道容量、执行时间等等)的程度。可维护性文档影响可维护性的决定因素,比代码更重要用户文档功能描述——说明系统能做什么安装文档——说明安装系统的方法及适应特定的硬件配置的方法使用手册——说明使用方法以及错误挽救方法参考手册——详尽描述用户可使用的所有系统设施以及它们的使用方法;给出错误信息注解表操作员指南(如果需要有系统操作员的话)——说明操作员处理使用中出现的各种情况的方法系统文档即软件生产过程中每一步产生的文档可维护性可维护性复审分析设计编码测试验收配置复审可靠性可移植性可用性可理解性可修改性可测试性可理解性可修改性可移植性效率可靠性效率完整性一致性可理解性