一.软件维护

1.概念:在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。

2.目的:通过必要的维护工作使得系统持久的满足用户的需要。

维护的分类

(1)改正性维护:在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护 。

(2)适应性维护:在使用过程中,外部环境(新的硬、软件配置)数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化 。

(3)完善性维护:在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为满求了足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

(4)预防性维护:采用先进的软件采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。

各类维护活动的根本目的是: 延长软件生存期

维护的重要特点

结构化维护与非结构化维护的对比

维护的成本

  维护工作的劳动包括生产性活动和非生产性活动

维护工作量的模型   M = p + Ke^(c - d)- = +

M是维护中消耗的总工作量

p是上面描述的生产性工作量

K是一个经验常数

c是因缺乏好的设计和文档而导致复杂性的度量

d是对软件熟悉程度的度量

维护的问题

•别人的程序很难读懂

•文档与代码不一致

•开发人员往往不参加维护

•大多数软件在设计时没有考虑将来的修改

二.维护的过程

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

  1. 可维护性的度量

软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修 改、扩充或压缩的容易程度。 n

可维护性、可使用性、可靠性是衡量软件质量的主要质量特性

  1. 衡量可维护性的软件特性

可理解性 可使用性 可测 试 性 可移植性 可修改性 效率 可靠性

  1. 文档 ——可维护性的决定因素
  1. 逆向过程与再工程

逆向工程是指分析已有的程序,寻求比源代码高级的抽象式更高一级的抽象形式。 再生工程,也称为修复和改造工程,它是在逆向工程所获信息的基础上修改或再 生 已有的系统,产生系统的一个新版本。

  1. 逆向工程恢复信息的级别

实现级:程序的抽象语法树、符号表等信息

结构级:如调用图、结构图

功能级:反映程序段功能和段间关系的信息

领域级:反映程序分量与应用领域概念间对应关系的信息

  1. 逆向工程的方法

反汇编、反编译

程序分析技术: 程序结构分析工具

程序功能分析工具

软件工程——软件维护总结相关推荐

  1. 国家标准计算机软件测试文档范文,软件测试相关国家标准.doc

    软件测试相关国家标准.doc 软件工程国家标准目录序号国家标准编号年代标准名称1GB/T15261989信息处理数据流程图.程序流程图.系统流程图.程序网络图和系统资源图的文件编制符号及约定2GB/T ...

  2. 软件测试的国家标准及链接,软件测试相关国家标准.doc

    <软件测试相关国家标准.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<软件测试相关国家标准.doc>文档请在天天文库搜索. 1.软件工程国家标 ...

  3. AS3的数据结构知识(参考Nshen的文章)

    http://www.nshen.net/dataStructure/2011/08/25/AS3-DataStructure.html 上面是nshen原文的链接,由于本人是软件工程软件维护方向,所 ...

  4. (软件工程复习核心重点)第七章软件维护习题

    选择题 填空题 软件维护有哪几类 改正性维护 适应性维护 完善性维护 预防性维护 软件可维护的因素 可理解性 可测试性 可修改性 可移植性 可重用性 名词解释 软件维护:软件维护是在软件已经交付使用后 ...

  5. 软件工程复习笔记——第六章 软件维护

    第六章 软件维护 6.1 软件维护的类型 软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程. 一.软件维护的分类 按照不同的维护目的,维护工作可分为4类: 完善性维护50% ...

  6. 清览云题库--软件工程 ---第9章结构化实现及软件维护练习

    第一个体现结构化编程思想的程序设计语言是 [1] 答案 Pascal 2 . 困难 (3分) 汇编语言也是[1]的低级语言 答案 面向机器 3 . 普通 (3分) 超高级语言一般由[1]和[2]支持 ...

  7. (软件工程复习核心重点)第七章软件维护-第一节:软件维护的概念和特点

    文章目录 一:软件维护的概念 (1)定义 (2)分类 二:软件维护的特点 (1)结构化维护和非结构化维护差别巨大 (2)维护的代价高昂(了解) (3)维护存在很多问题(了解) 一:软件维护的概念 (1 ...

  8. (软件工程复习核心重点)第七章软件维护-第三节:软件可维护性

    文章目录 一:定义 二:决定软件可维护性的因素 (1)可理解性 A:定义 B:影响因素 (2)可测试性 A:影响因素 B:要求 C:衡量标准 (3)可修改性 (4)可移植性 A:定义 B:提高可移植性 ...

  9. 软件工程导论 08章软件维护

    1.软件维护是指在软件已经交付使用后,为了改正错误或者满足新的需求而修改软件的过程. 2.软件维护分为四类 ①改正性维护(修改诊断隐藏的错误) ②适应性维护(适应环境变化而修改软件) ③完整性维护(扩 ...

  10. 软件工程导论——软件维护

    1.软件维护的定义 定义:所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程. 分类 改正性维护:软件中肯定隐藏着某些未被发现的错误,在使用过程中发现了隐藏的错误后,诊 ...

最新文章

  1. C# Image 学习总结
  2. 802.11b标准简介
  3. 用VS2017开发安卓应用
  4. YbtOJ#593-木棍问题【费用流】
  5. 欢乐纪中某B组赛【2019.1.25】
  6. 1-3 交换变量(算法竞赛入门经典)
  7. javascript时间戳和日期字符串相互转换
  8. c语言指针++_C ++此指针| 查找输出程序| 套装1
  9. JS/jQuery获取input的值和清空input的value值
  10. MyBatis 简介、 环境搭建、数据库连接池、查询方式
  11. vnpy通过jqdatasdk初始化实时数据及历史数据下载
  12. transform 的副作用
  13. git “errno=Connection refused”
  14. 关于折半查找的细节思考
  15. SPSS 卡方检验(图文+数据集)【SPSS 019期】
  16. Excel用数据透视表制作日历
  17. android 应用市场图尺寸,【干货】最新App应用市场截图尺寸大全
  18. Failed to resolve:问题的解决方法
  19. URLDownloadToFile缓存问题
  20. 工资管理系统/c语言期末大作业学习经历

热门文章

  1. 电感电容串联起什么作用
  2. vue + d3.js(v6) 绘制【树状图/思维导图】
  3. JAVA 如何反编译JAR文件
  4. 微信美食菜谱小程序系统毕业设计毕设(6)开题答辩PPT
  5. 腾讯云短信(个人记录)
  6. 华东师范大学 计算机 博士 毕业论文,【学位】华东师范大学博士、硕士学位论文基本格式要求...
  7. linux 查看链接文件,Linux下的链接文件详解
  8. 决策树应用实例③——银行借贷模型
  9. 【有限元】最简单fluent流体分析实例-2D模型中带障碍物计算流体流速与压力分布
  10. 北京市中小学信息学竞赛汇总 徐于铃