软件工程第八章———维护

一、概述

软件维护是软件生命周期的最后一个阶段。总体来说软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需的工作量,降低软件系统的总成本。因此软件维护过程不可或缺。

 

 


二、软件维护定义

软件维护:就是软件已交付使用之后,为了改正错误或满足新的需要而修改的过程。

软件维护活动通常有四类:

  • (50%~66%)完善性维护:在使用软件过程中用户提出增加新功能或修改已有功能的建议
  • (18%~25%)适应性维护:为了适应外部环境变化而进行的
  • (17%~21%)改正性维护:为了纠正在使用过程中暴露出来的错误而进行改正
  • (4%左右)预防性维护:为了给未来的改进奠定更好的基础而修改软件

预防性维护方法是由Miller提出来的,他把这种方法定义为:“把今天的方法学应用到昨天的系统上,以支持明天的需求”

 

 


三、软件维护特点

—>软件两种维护差别巨大。

两种类型:

(1)非结构化维护(需要付出很大代价)

软件配置的唯一成分是程序代码,此时的维护活动从艰苦地评价程序代码开始,由于程序内部文档不足而使评价困难;对于软件结构、全程数据结构、系统接口、性能和设计约束等理解往往出现偏差;且对程序代码所做的改动后果也难以估量。

因此这种维护方式是 没有使用良好定义的方法学开发出来的软件的必然结果(没有文档)

(2)结构化维护

如果有一个完整的软件配置存在,那么维护工作从评价设计文档开始,确定软件结构特点、性能特点以及接口特点等。

 

—>软件维护的代价高昂。

—>软件维护的问题很多。

 

 


四、软件维护过程

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

一套复审标准

  1. 维护组织
  2. 维护报告
  3. 维护的事件流
  4. 保存维护记录
  5. 评价维护活动

 

 


五、软件的可维护性

1、可以把软件的可维护性定义为:维护人员理解、改正、改动或改进这个软件的难以程度。

❗️决定软件可维护性的因素:

  • 可理解性:是指外来读者理解软件结构、功能、接口和内部处理过程之难易度
  • 可测试性:是指诊断和测试的容易程度取决于软件容易理解的程度。

对于程序模块来说,可以用程序复杂度衡量它的可测试性。

  • 可修改性:耦合、内聚、信息隐藏、局部化等都影响可修改性。
  • 可移植性:是指把程序从一种计算机环境 转移到 另一种计算机环境(硬件配置和操作系统)的难易程度。
  • 可重用性:是指同一事物不做修改或稍加改动就在不同环境中多次重复使用。

2、文档

文档是影响软件可维护性的决定因素。 

文档分为两类:

  • 用户文档(是用户了解系统的第一步,应使用户获得准确的初步印象

其至少具备五方面内容:1⃣️功能描述 2⃣️安装文档 3⃣️使用手册 4⃣️参考手册 5⃣️操作员指南

  • 系统文档

所谓系统文档指从问题定义、需求说明到验收测试计划这样一系列和系统实现有关的文档。

3、可维护性复审

 

 


六、软件再工程过程

基本概括为六类活动:

  • 库存目录分析
  • 文档重构
  • 逆向工程(恢复设计结果的过程
  • 代码重构

重构并不修改整体的程序体系结构,仅关注个体模块的设计细节以及在模块中定义的局部结构

  • 数据重构

与代码重构不同,数据重构发生在相当低的抽象层次上,是一种全范围的再工程活动

  • 正向工程(革新或改造的过程

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值