软件工程——软件维护总结

一.软件维护

1.概念:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

2.目的:通过必要的维护工作使得系统持久的满足用户的需要。

维护的分类 

(1)改正性维护:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护 。

(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化 。

(3)完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为满求了足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

(4)预防性维护:采用先进的软件采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。

各类维护活动的根本目的是: 延长软件生存期

维护的重要特点

结构化维护与非结构化维护的对比

 维护的成本

  维护工作的劳动包括生产性活动和非生产性活动

  维护工作量的模型   M = p + Ke^(c - d)- = +

M是维护中消耗的总工作量

p是上面描述的生产性工作量

K是一个经验常数

c是因缺乏好的设计和文档而导致复杂性的度量

d是对软件熟悉程度的度量

维护的问题

•别人的程序很难读懂

•文档与代码不一致   

•开发人员往往不参加维护

•大多数软件在设计时没有考虑将来的修改

二.维护的过程

本质:修改和压缩了的软件定义和开发过程

  1. 可维护性的度量

软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修 改、扩充或压缩的容易程度。 n

可维护性、可使用性、可靠性是衡量软件质量的主要质量特性

  1. 衡量可维护性的软件特性

可理解性 可使用性 可测 试 性 可移植性 可修改性 效率 可靠性

  1. 文档 ——可维护性的决定因素
  1. 逆向过程与再工程

逆向工程是指分析已有的程序,寻求比源代码高级的抽象式更高一级的抽象形式。 再生工程,也称为修复和改造工程,它是在逆向工程所获信息的基础上修改或再 生 已有的系统,产生系统的一个新版本。

  1. 逆向工程恢复信息的级别

  实现级:程序的抽象语法树、符号表等信息

结构级:如调用图、结构图

功能级:反映程序段功能和段间关系的信息

领域级:反映程序分量与应用领域概念间对应关系的信息

  1. 逆向工程的方法

  反汇编、反编译

程序分析技术: 程序结构分析工具

程序功能分析工具

 

 

猜你喜欢

转载自blog.csdn.net/chengtutu/article/details/81118881