[软件工程导论(第六版)]第8章 维护(复习笔记)

简介: [软件工程导论(第六版)]第8章 维护(复习笔记)
  • 维护的基本任务:保证软件在一个相当长的时期能够正常运行
  • 软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。

8.1 软件维护的定义

  1. 定义
  • 软件维护是在软件已经交付使用后,为了改正错误或满足新的需要而修改软件的过程。
  1. 分类
  • (1)改正性维护;
  • (2)适应性维护;
  • (3)完善性维护;
  • (4)预防性维护。

8.2 软件维护的特点

  • 结构化维护与非结构化维护差别巨大
  • 结构化维护(有一个完整的软件配置)
  • 非结构化维护(内部文档不足)
  • 维护的代价高昂
  • 软件维护中无形的代价有:
  • (1)软件维护的费用高昂。
  • (2)因为可用的资源必须供维护任务使用,以致耽误甚至丧失了开发的良机。
  • (3)生产率的大幅度下降。
  • 维护的问题很多
  • (1)理解别人写的程序非常困难,而且困难程度随着软件配置成分的减少而迅速增加。
  • (2)需要维护的软件往往没有合格的文档,或者文档资料显著不足。
  • (3)当要求对软件进行维护时,不能指望由开发人员给人们仔细说明软件。
  • (4)绝大多数软件在设计时没有考虑将来的修改。
  • (5)软件维护不是一项吸引人的工作。

8.3 软件维护过程

  • 定义
  • 维护过程本质上是修改和压缩了的软件定义和开发过程。
  • 具体过程
  • (1)建立维护组织;
  • (2)书写维护报告;
  • (3)规定维护的事件流;
  • (4)保存维护记录;
  • (5)评价维护活动。

8.4 软件的可维护性

  • 定义
  • 可维护性指的是维护人员理解、改正、改动或改进这个软件的难易程度。
  • 决定软件可维护性的因素
  • (1)可理解性;
  • (2)可测试性;
  • (3)可修改性;
  • (4)可移植性;
  • (5)可重用性。
  • 文档
  • (1)重要性
  • 文档是影响软件可维护性的决定因素,文档比程序代码更重要。
  • 只有和程序代码完全一致的文档才是真正有价值的文档。
  • (2)分类
  • 软件系统的文档可以分为用户文档和系统文档两类。

8.5 预防性维护

  • 定义
  • 预防性维护指的是把今天的方法学应用到昨天的系统上,以支持明天的需求。
  • 实质
  • 预防性维护实质上是软件再工程。

8.6 软件再工程过程

  • 典型软件再工程模型
  • 典型的软件再工程过程模型如图所示。
  • 【注意】在某些情况下这些活动以线性顺序发生,但也并非总是这样。
  • 六类活动
  • (1)库存目录分析;
  • (2)文档重构;
  • (3)逆向工程:分析程序,在高于源代码的抽象层次上表示程序的过程。;
  • (4)代码重构;
  • (5)数据重构;
  • (6)正向工程:不仅从现有程序中恢复设计信息,而且使用革新和改造使用信息去改变或重构现有系统。
相关文章
|
算法 程序员 Go
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
[软件工程导论(第六版)]第6章 详细设计(复习笔记)
|
7月前
|
IDE Linux 开发工具
IntelliJ IDEA最新版安装下载教程及安装教程(附安装包)
本文介绍IDEA的下载与安装教程,包含获取下载地址、安装步骤及激活方法。需注意安装路径为英文目录,运行激活脚本时需管理员权限。按指引操作即可完成激活并使用。
13453 0
|
算法 图计算
[软件工程导论(第六版)]第6章 详细设计(课后习题详解)
[软件工程导论(第六版)]第6章 详细设计(课后习题详解)
|
存储 前端开发 中间件
『软件工程10』结构化系统分析:数据流图和字典案例分析
该文章通过具体案例分析了在软件工程中如何运用数据流图和数据字典来进行结构化系统分析,帮助明确系统的信息流程和数据定义。
『软件工程10』结构化系统分析:数据流图和字典案例分析
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
1876 1
|
算法 数据挖掘 数据库
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
[软件工程导论(第六版)]第5章 总体设计(复习笔记)
|
机器学习/深度学习 算法 安全
【博士每天一篇文献-综述】2024机器遗忘最新综述之一:An overview of machine unlearning
本文提供了机器遗忘的全面定义、问题方程、精确与近似遗忘的概念,并分类总结了机器遗忘方法,讨论了其在联邦学习和终身学习中的应用,提出了未来研究方向,为机器遗忘研究领域奠定了理论基础并指出了实际应用的潜力与挑战。
1364 5
【博士每天一篇文献-综述】2024机器遗忘最新综述之一:An overview of machine unlearning
|
测试技术 BI uml
[软件工程导论(第六版)]第9章 面向对象方法学引论(课后习题详解)
[软件工程导论(第六版)]第9章 面向对象方法学引论(课后习题详解)
|
算法 数据库 开发者
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
[软件工程导论(第六版)]第3章 需求分析(复习笔记)
|
应用服务中间件 程序员
IntelliJ IDEA 乱码:全网最全 4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题
IntelliJ IDEA 乱码:全网最全 4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题
2407 0
IntelliJ IDEA 乱码:全网最全 4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题

热门文章

最新文章

下一篇
开通oss服务