【软件工程】软件工程知识点提纲6

1. 软件维护的含义、分类

  • 含义
    所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
  • 分类
  • 改正性维护
    交付给用户使用的软件,即使通过严格的测试,仍可能有一些潜在的错误在用户使用的过程中发现和修改。诊断和改正错误的过程称为改正性维护。
  • 适应性维护
    随着计算机的飞速发展,新的硬件系统和外部设备时常更新和升级,一些数据库环境、数据输入/输出方式、数据存储介质等也可能发生变换。为了使软件适应这些环境变化而修改软件的过程叫做适应性维护。
  • 完善性维护
    在软件投入使用过程中,用户可能还会有新的功能和性能要求,可能会提出增加新功能、修改现有功能等要求。为了满足这类要求而进行的维护称为完善性维护
  • 预防性维护
    为了改进软件未来的可维护性或可靠性,或者为了给未来的改进奠定更好的基础而进行的修改,称为预防性维护。

2. 软件维护的特点

  • 结构化维护与非结构化维护差别巨大
  • 非结构化维护:软件配置的唯一成分是代码,维护从评价程序代码开始,对软件结构、数据结构、系统接口、设计约束等常产生误解,不能进行回归测试,维护代价大。
  • 结构化维护:有完整的软件配置,维护从评价设计文档开始,确定软件结构、性能和接口特点,现修改设计,接着修改代码,再进行回归测试。
  • 维护的代价高昂
  • 当看来合理的有关改错或修改的要求不能及时满足时将引起用户不满
  • 由于维护时的改动,在软件中引入了潜伏的错误,从而降低了软件的质量
  • 当必须把软件工程师调去从事维护工作时,将在开发过程中造成混乱
  • 维护的问题很多
  • 理解别人写的程序通常非常困难,而且困难程度随着软件配置成分的减少而迅速增加
  • 需要维护的软件往往没有合格的文档,或者文档资料显著不足
  • 当要求对软件进行维护时,不能指望由开发人员给人们仔细说明软件
  • 绝大多数软件在设计时没有考虑将来的修改
  • 软件维护不是一项吸引人的工作

3. 软件可维护性的含义

决定软件可维护性的因素

  • 可理解性:外来者理解软件的结构、功能、接口和内部处理过程的难易程度
  • 可测试性:诊断和测试的容易程度取决于软件容易理解的程度
  • 可修改性
  • 可移植性:把程序从一种计算环境(硬件配置和操作系统)转移到另一种计算环境的难易程度
  • 可重用性:同一事物不做修改或稍加改动就在不同环境中多次重复使用