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