软件工程第十三章 软件维护
什么是软件维护
软件维护(software maintenance)是指在软件产品在交付之后,为改正错误、改进性能或其他属性,或者为了适应变化了的环境而对软件产品所进行的修改活动。
为什么要进行软件维护
1.可以在运行中发现在测试阶段未能发现的潜在软件错误和设计缺陷;
2.根据实际情况,需要改进软件设计,以增强软件的功能,提高软件的性能;
3.要求在某环境下已运行的软件能适应特定的硬件、软件、外部设备和通信设备等新的工作环境,或是要求适应已变动的数据或文件;
4.为使运行软件的应用范围得到必要的扩充等
如何理解可维护性属性
软件的可维护性是衡量软件(产品)维护容易程度的一种软件质量属性
软件可维护性定义为软件的可理解、可测试、可修改性的难易程度
软件维护的类型有那些
1.纠错性维护(Corrective Maintenance):对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。纠错性维护占整个维护工作的21%。
2.完善性维护(Perfective Maintenance):为了满足这些日益增长的新要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性等。完善性维护所占的比重最大,大约占总维护量的50%以上。
3.适应性维护:为了适应计算机的飞速发展,使软件适应外部新的硬件和软件环境或者数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)发生的变化,而进行修改软件的过程。适应性维护占整个维护工作的25%。
3.预防性维护(Preventive Maintenance):为了提高软件的可维护性和可靠性等,主动为以后进一步维护软件打下良好基础的维护活动。大约占总维护量的5%。 把今天的方法学用于昨天的系统,以满足明天的需要
软件维护的流程是怎样的
维护申请
制定维护计划
进行维护活动
建立维护文档
复审/评价维护
如何提高可维护性
1.结构化维护: 存在软件开发各阶段的文档,这对于理解和掌握软件的功能、性能、结构、数据、接口和约束有很大帮助。
从需求文档弄清系统功能、性能的改变。
从设计文档检查和修改设计。
根据设计改动源代码,并从测试文档的测试用例进行回归测试。
减少维护人员的精力和花费,提高软件维护效率。
2.技术途径: 建立完整的文档,文档与产品演化具有一致性
明确质量标准
采用易于维护的技术和工具
加强可维护性复审