第十三章:系统维护
维护活动类型:
- 改正性: 维护对日常的系统功能的控制
- 适应性: 维护对系统修改的控制
- 完善性: 完善现有系统
- 预防性: 防止系统性能下降到不可接受的程度
软件再生
- 文档重构: 对原代码进行静态分析,给出更多的信息
- 重组: 改变代码结构
- 逆向工程: 根据代码重新创建设计和规格说明信息
- 再工程: 对现有工程进行逆向工程,接着再改变规格说明和设计以完成逻辑模型;然后,根据修改的规格说明和设计生成新的系统
文档重构:
- 第一步是将代码提交给一个分析工具
- 输出可能包括:
构建调用关系
类层次
数据接口表
数据字典信息
数据流表或数据流图
控制流表或控制流图
伪代码
测试路径
构件和变量的交叉引用
重组:
- 解释源代码以及用内部形式表示源代码
- 利用转换规则来简化内部表示
- 重新生成结构化的代码
逆向工程:
- 尽量基于软件规格说明和设计方法恢复工程性信息
- 逆向工程被广泛使用,仍然存在一些主要的障碍:实时系统的问题;极端复杂系统
再工程:
- 是扩展的逆向工程:在不改变整个系统功能的前提下,生产新的软件源代码
- 再工程步骤
- 系统进行逆向工程
- 修改并完成软件系统模型
- 生成新系统