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