复习重点搞错了,前几章用了太多不该用的时间,好卑鄙的软件工程

软件维护的定义

软件维护的定义和类型

软件维护就是在软件交付之后,为了修改错误或完善功能而重新修改软件的过程

软件类型:

  • 适应性维护

  • 改正性维护

  • 完善性维护

  • 预防性维护

image-20200809182658440

软件维护的特点

结构化维护与非结构化维护

结构化维护:有文档

非结构化维护:无文档

维护的代价

代价高昂

维护的问题

问题很多

软件维护过程

维护组织

维护报告

维护的事件流

软件的可维护性

软件可维护性的概念

软件的可维护性指维护人员理解、改正、改动或改进这个软件的难易程度

决定软件可维护性的因素

  • 可理解性
  • 可测试性
  • 可修改性
  • 可移植性
  • 可重用性

可维护性复审

  • 在需求分析的复审过程中应该对将来可能改进或修改的部分要加以备注和指明,应该讨论可移植性的问题和软件维护会影响到的系统界面

  • 在正式的和非正式的设计复审期间,应该从容易修改、模块化和功能独立的目标出发,评价软件的结构和过程;设计中应该对将来可能修改的部分预作准备

  • 代码复审应该强调编码风格和内部说明文档这两个影响可维护性的因素。

  • 设计和编码过程中尽量使用可重用的软件构件。

  • 在测试结束时进行最正式的可维护性复审,这个 复审称为配置复审。配置复审的目的是保证软件配置的所有成分是完整的、一致的和可理解的, 而且为了便于修改和管理已经编目归档了。

  • 在完成了每项维护工作之后,都应该对软件维护 本身进行仔细认真的复审

预防性维护

软件再工程过程

软件再工程的六个环节

image-20200809185704935

库存目录分析

文档重构

逆向工程

代码重构

数据重构

正向工程