软件工程概论总结第十一章

 第十一章 软件演化

软件演化的特性:

1.软件维护是一个必然的过程。

2.软件的不断修改会导致软件的退化。

3.软件系统的演化特性是在早期的开发阶段建立起来的。

4.软件开发的效率与投入的资源无关。

5.在软件系统中添加新的功能不可避免地产生新的缺陷,因此在一个发布的新版本中有较大的功能增量将会意味着需要发布下一个版本,该版本中的新增功能较少,而主要是修补这些新产生的软件缺陷。

软件维护

软件维护是指在软件运行或维护阶段对软件产品所进行的修改。

1.改正性维护

2.适应性维护

3.完善性维护

软件维护的特点

1.软件维护受开发过程影响大

2.软件维护困难多

(1)读懂别人的程序是很困难的,而文档的不足更增加了这种难度。

(2)文档的不一致性是软件维护困难的又一个因素。

(3)软件开发和软件维护人员在人员和时间上存在差异。

(4)软件维护不是一件吸引人的工作。

3.软件维护成本高

M=P+K*exp(C-D)

其中,M表示维护工作的总工作量,P表示生产性活动的工作量,K表示经验常数,C表示复杂性程度,D表示维护人员对软件的熟悉程度。

软件维护的过程

软件维护工作包括建立维护组织、报告与评估维护申请、实施维护流程等步骤。

软件再工程

软件再工程的过程模型

时间: 2024-12-22 09:18:14

软件工程概论总结第十一章的相关文章

《软件工程概论》第十一章 软件演化

软件演化特性 1.软件维护是一个必然的过程 2.软件的不断修改会导致软件的退化 3.软件系统的演化特性是在早期的开发阶段建立起来的 4.软件开发的效率与投入的资源无关 5.在软件系统中添加新的功能不可避免地会产生新的缺陷. 软件维护的概念: 1.改正性维护 2.适应性维护 3.完善性维护 软件维护的特点: 1.软件维护受开发过程影响大 2.软件维护困难多 (1)读懂别人的程序是很困难的 (2)文档的不一致性是软件维护困难的又一个因素 (3)软件开发和软件维护在人员和时间上存在差异 (4)软件维护

软件工程概论总结第五章

第五章  软件工程中的形式化方法 形式化方法基本概念 形式规约 当规格说明用非形式化方法描述时,可称之为“规格说明”,当规格说明用形式化方法描述时,可称之为“形式规约”. 形式证明与验证 形式证明与验证技术主要包括模型检测和定理证明.模型检测是一种基于有限状态模型并检验该模型的性质的技术.定理证明采用逻辑公式来表示系统规约及其性质. 程序求精 程序求精是将自动推理和形式化方法相结合,从抽象的形式规约推演出具体的面向计算机的程序代码的全过程.程序求精的基本思想是用一个抽象程度低.过程性强的程序去代

软件工程概论总结第七章

第七章  面向对象分析  分析类   在分析对象模型中,分析类是概念层次上的内容,用于描述系统中较高层次的对象. 实体类:表示系统存储和管理的永久信息: 边界类:表示参与者与系统之间的交互: 控制类:表示系统在运行过程中的业务控制逻辑. 分析活动  需求分析的重点在于理解系统本身,它将需求获取阶段产生的用例和场景转换成分析模型. 识别分析类 识别边界类 通常,一个参与者与一个用例之间的交互或通信关联对应一个边界类.边界类收集来自参与者的信息,这些信息可以被实体类和控制类使用. 识别控制类  控制

《软件工程》总结——第十一章

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

《软件工程概论》第六章 面向对象基础

面向对象方法概述:面向对象=对象+类+继承+通信 面向对象技术的发展历史: 初始阶段——20世纪60年代末 发展阶段——20世纪80年代中期到90年代 成熟阶段——20世纪90年代后 面向对象的软件工程方法: 面向对象分析 面向对象设计 面向对象编程 面向对象测试 面向对象维护 面向对象基本概念: 对象 类 封装 继承 消息 关联 聚合 多态性 软件建模的重要性: 软件系统越来越大 没有参加开发的人员无法直接理解程序代码 人们需要一种描述复杂系统的简单方法 UML概念模型: 视图 图 模型元素

《软件工程概论》第四章核心内容

结构化设计方法是在模块化.自顶向下逐步细化及结构华程序设计技术基础之上发展起来的.结构化设计方法可以分为两类,一类是根据系统的数据流进行设计,称为面向数据流设计或称过程驱动设计:另一类是根据系统的数据结构进行设计,成为面向数据结构设计,或称数据驱动设计.  软件设计过程包括一套原理.概念和实践,可以指导高质量的系统或产品开发.  软件设计的原则:分而治之.模块独立性(耦合和内聚).提高抽象层次.复用性设计.灵活性性设计(降低耦合提高内聚.建立抽象.不要将代码写死.抛出异常.使用并创建可复用代码)

《软件工程概论》第六章核心内容

软件测试是在软件投入生产性运行之前,对软件需求分析.设计规格说明和编码的最终复审,是软件质量控制的关键步骤.  软件测试的对象:需求分析.概要设计.详细设计及程序编码等阶段所得的文档资料,包括需求规格说明.概要设计规格说明.详细设计规格说明以及源程序.  确认是一系列的活动和过程,目的在于证实在一个恰当的外部环境中软件的逻辑正确性,分为静态确认和动态确认.  验证是试图证明在软件生存期各个阶段以及阶段间的逻辑协调性.完备性和正确性.确认与测试都属于软件测试.  黑盒测试:已知产品的功能设计规格,

《软件工程概论》第五章总结

模态逻辑是经典命题逻辑和一阶谓词逻辑的拓展形式. 一阶线性时态逻辑(FOLTL)是一阶谓词逻辑的扩展. 计算树逻辑(CTL)是一种离散.分支时间.命题时态逻辑. Z语言为系统建立基于状态的模型.模型的三个主要组成部分是输入,输出和状态. Z语言表示抽象的要素总体上可分为两类:基于集合理论的集合.关系.函数.序列和包,以及Z独有的模式. Z语言中,自由类型用于递归定义新类型. 自由类型::=常量1|...|常量n|函数1<输入对象1>|...|函数m<输入对象m> Petri网分为位

《软件工程概论》第七章 面向对象分析

分析类: 实体类:用于描述必须存储的信息及其相关行为. 边界类:用于描述外部参与者与系统之间的交互. 控制类:用于描述一个用例所具有的事件流控制行为. 分析活动: 需求分析的重点在于理解系统本身,它将需求获取阶段产生的用例和场景转换成分析模型. 识别分析类: 识别边界类 识别控制类 识别实体类 定义交互行为:顺序图 建立分析类图: 定义关系和属性 应用分析模式 评审分析模型