本章的主要内容是软件演化

软件演化的特性

1985 年,Lehman 和 Belady 总结了软件在更改过程中演化的特性:1. 软件维护是一个必然的过程;2. 软件的不断修改会导致软件的退化;3. 软件系统的演化特性是在早起的开发阶段建立起来的。4. 软件开发的效率与投入的资源无关;5. 在软件系统中添加新功能无可避免的会产生新的缺陷。对于软件变更引起的各种问题,人们通常采用不同的策略进行处理:软件维护和软件再工程。

软件维护

软件维护的概念

软件维护是指在软件运行或维护阶段对软件产品所进行的修改,这些修改可能是改正软件中的错误,也可能是增加新的功能以适应新的需求,但是一般不包括软件系统结构上的重大改变,根据软件维护的不同原因,软件维护可以分成三种类型:改正性维护、适应性维护和完善性维护。

      软件维护的特点

1. 软件维护受开发过程影响大;2. 软件维护困难多;3. 软件维护成本高。

      软件维护的过程

1. 改正性维护:首先应该评价软件错误的严重程度,对于十分严重的错误,维护人员应该立即实施维护;对于一般性的错误,维护人员可以将有关的维护工作与其他开发任务一起进行规划。在有些情况下,有的错误非常严重,以致不得不临时放弃正常的维护控制工作程序,即不对修改可能带来的负作用作出评价,也不对文档作相应的更新,而是立刻进行代码的修改。这是一种救火式的改正性维护,只有在非常紧急的情况下才使用,这种维护在全部维护中只占一小部分比例。应当说明的是,救火式不是取消,只是推迟了维护所需要的控制盒评价。一旦危机取消,这种控制和评价活动必须进行,以确保当前的修改不会增加更为重要的问题。

2. 适应性维护:首先应该确定软件维护的优先次序,再与其他开发任务一起进行规划。

3. 完善性维护:考虑到商业上的需要和软件的发展趋势,有些完善性维护可能不会被接受。杜宇被接受的维护申请,应该确定其优先次序并规划其开发工作。

软件再工程

软件再工程以系统理解为基础,结合逆向工程、重构和正向工程等方法,将现有系统重新构造成为新的形式。形象的说,就是”把今天的方法学用于昨天的系统以满足明天的需要“。典型的软件再工程过程,主要包括:对象选择、反向工程、文档重构、代码重构、数据重构和正向工程等活动。

转载于:https://www.cnblogs.com/zchenjian/p/4300892.html

《软件工程》总结——第十一章相关推荐

  1. 软件工程复习提纲——第十一章

    软件工程复习提纲,期末.考研的学霸笔记 第十一章--软件项目管理 第十一章 软件项目管理 事件4的最早时刻为:EET=max{2+3,6+0}: 事件9的最迟时刻为: LET=21-1=20: 事件8 ...

  2. 第十一章.软件工程(下)

    目录 第十一章.软件工程 第九节.面向对象设计 面向对象(OAA)的基本概念 面向对象开发各阶段划分及任务 OOA 设计原则 OOA - UML OOA 设计模式的概念 OOA 设计模式的分类 创建型 ...

  3. 【软考软件评测师】第十一章 软件工程之系统维护

    [软考软件评测师]第十一章 软件工程之系统维护 第十一章 软件工程之系统维护 [软考软件评测师]第十一章 软件工程之系统维护 第一部分 知识点集锦 1.可维护性 2.可用性可靠性 3.可伸缩性 4.改 ...

  4. 《管理学》第十一章 创新

    <管理学>第十一章 创新 前言 写一下<管理学>笔记.内容分为两个部分,一个是书本笔记:一个是MOOC笔记: 因为之前提前预习了沟通的内容,所以课本笔记就直接复制下面的那部分笔 ...

  5. [swift 进阶]读书笔记-第十一章:互用性 C11P1 实践:封装 CommonMark

    第十一章:互用性 Interoperability 前言: swift 的最大优点就是与C 或者 OC 混编的时候稳的一匹 本章主要讲了swift和C之间的一些知识点. 11.1 实践:封装 Comm ...

  6. 【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Considerations)

    概述 本文为 WebSocket 协议的第十一章,本文翻译的主要内容为 WebSocket 的 IANA 相关注意事项. IANA 注意事项(协议正文) 11.1 注册新 URI 协议 11.1.1 ...

  7. java语言仅支持单重继承_java语言程序设计基础篇习题_复习题_第十一章

    java语言程序设计基础篇习题_复习题_第十一章 11.1 下面说法是真是假?一个子类是父类的子集. 11.2 使用什么关键字来定义一个子类 11.3 什么是单一继承?什么是多重继承?java支持多重 ...

  8. 《javascript设计模式》笔记之第十章 和 第十一章:门面模式和适配器模式

    第十章:门面模式 一:门面模式的作用 简化已有的api,使其更加容易使用 解决浏览器的兼容问题 二:门面模式的本质 门面模式的本质就是包装已有的api来简化操作   三:门面模式的两个简单例子 下面这 ...

  9. 计算机网络离不开光缆,九年级物理全册 第二十一章 第四节 越来越宽的信息之路习题课件 新人教版.ppt...

    九年级物理全册 第二十一章 第四节 越来越宽的信息之路习题课件 新人教版.ppt 第二十一章信息的传递,第四节越来越宽的信息之路,1微波的性质更接近光波,大致沿_______传播,需要每隔_____k ...

  10. 开发日记-20190915 关键词 汇编语言王爽版 第十一章

    第十一章 标志寄存器 CPU内部的寄存器中,有一种特殊的寄存器(对于不同的处理器,个数和结构都可能不同)具有以下三种作用. (1)用来存储相关的指令的某些执行结果 (2)用来为CPU执行相关的指令提供 ...

最新文章

  1. 超棒的jQuery矢量地图生成插件 - JQVAMP
  2. SVN 版本服务器搭配全过程详解(含服务端、客户端)
  3. mysql pom依赖关系_常用的POM依赖
  4. Maven Filter
  5. [C++学习笔记](double*)malloc(n * sizeof(double));
  6. AAAI 2021 | 从语义关系建模的角度进行句子语义关系匹配
  7. k均值例子 数据挖掘_人工智能、数据挖掘、机器学习和深度学习的关系
  8. PAT乙级 1006 换个格式输出整数
  9. druid 多数据源_SpringBoot+Mybatis+Druid+PageHelper 实现多数据源并分页
  10. 网上照片之博客照片与网店照片拍摄心得
  11. 进制转化(北理乐学编程题目)
  12. lisp 读取样条曲线座标点_autolisp绘制样条曲线
  13. 英语语法特殊句型刷题总结
  14. 使用Unity实现时光倒流
  15. 周浩正:写给编辑人的信 编务报告书 一个实例
  16. MLY -- 13.Error analysis:look at dev set examples to evaluate ideas
  17. 千万别吃着别人,骂着别人
  18. x265编码H265
  19. 小扎不要「脸」了?Facebook正式改名Meta!买它,满仓元宇宙
  20. 什么是css sprites?

热门文章

  1. python基础知识面试题-深入解答关于Python的11道基本面试题
  2. python篮球-用Python让蔡徐坤在我的命令行里打篮球!|附完整代码
  3. python读取本地文件-python解析本地HTML文件
  4. python画动态图代码-Python使用matplotlib画动态图
  5. python表白源代码-python浪漫表白源码
  6. 上海python培训比较好的机构-上海python培训机构哪个好?
  7. 为什么说python是世界上最好的语言-python是世界上最好的语言
  8. python处理excel视频-从零基础开始用Python处理Excel数据 视频教程
  9. python真的那么火吗-现在为什么 Python 这么火?
  10. python培训班排行榜-西安排名前十的python开发培训学校排行榜