软件工程第十三章 软件维护

时间:2024-03-17 18:41:59

什么是软件维护

软件维护(software maintenance)是指在软件产品在交付之后,为改正错误、改进性能或其他属性,或者为了适应变化了的环境而对软件产品所进行的修改活动。

为什么要进行软件维护

1.可以在运行中发现在测试阶段未能发现的潜在软件错误和设计缺陷;

2.根据实际情况,需要改进软件设计,以增强软件的功能,提高软件的性能;

3.要求在某环境下已运行的软件能适应特定的硬件、软件、外部设备和通信设备等新的工作环境,或是要求适应已变动的数据或文件;

4.为使运行软件的应用范围得到必要的扩充等

如何理解可维护性属性

软件的可维护性是衡量软件(产品)维护容易程度的一种软件质量属性

软件可维护性定义为软件的可理解、可测试、可修改性的难易程度

软件维护的类型有那些

1.纠错性维护(Corrective Maintenance):对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。纠错性维护占整个维护工作的21%。

2.完善性维护(Perfective Maintenance):为了满足这些日益增长的新要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性等。完善性维护所占的比重最大,大约占总维护量的50%以上。

3.适应性维护:为了适应计算机的飞速发展,使软件适应外部新的硬件和软件环境或者数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)发生的变化,而进行修改软件的过程。适应性维护占整个维护工作的25%。

3.预防性维护(Preventive Maintenance):为了提高软件的可维护性和可靠性等,主动为以后进一步维护软件打下良好基础的维护活动。大约占总维护量的5%。 把今天的方法学用于昨天的系统,以满足明天的需要

软件维护的流程是怎样的

维护申请

制定维护计划

进行维护活动

建立维护文档

复审/评价维护

如何提高可维护性

1.结构化维护: 存在软件开发各阶段的文档,这对于理解和掌握软件的功能、性能、结构、数据、接口和约束有很大帮助。

       从需求文档弄清系统功能、性能的改变。

       从设计文档检查和修改设计。

       根据设计改动源代码,并从测试文档的测试用例进行回归测试。

       减少维护人员的精力和花费,提高软件维护效率。

2.技术途径: 建立完整的文档,文档与产品演化具有一致性

      明确质量标准

      采用易于维护的技术和工具

      加强可维护性复审