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

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

软件演化的特性

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

软件维护

软件维护的概念

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

      软件维护的特点

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

      软件维护的过程

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

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

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

软件再工程

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

时间: 2024-07-30 13:08:02

《软件工程》总结——第十一章的相关文章

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

软件演化是软件进入使用期对软件的维护和升级,本章主要讲了软件演化的特性.软件维护和软件再工程. 软件演化的特性包括软件维护是必然的.软件的不断修改会导致软件退化.在早期开发建立起来.软件开发效率与投入的资源无关及软件升级是对软件缺陷的修补. 软件维护讲了软件维护的概念是软件运行或维护阶段对软件产品所进行的修改,可分为三个类型改正性维护.适应性维护和完善性维护.软件维护的特点是软件维护受开发过程影响大.软件维护困难多和软件维护成本高.软件维护过程主要包括建立维护组织.报告与评估维护申请.实施维护流

《软件工程》第十一章

本章主要讲解软件的维护.软件维护是一个必要的过程.软件维护是指在软件运行或维护阶段对软件产品所进行的修改.软件维护可根据不同的原因,分成三种类型:改正性维护,适应性维护,完善性维护.软件维护有几大特点:受开发过程影响大,困难多,维护成本高.软件维护工作包括建立维护组织,报告与评估维护申请,实施维护流程等步骤. 软件再工程以系统理解为基础,结合逆向工程,重构和正向工程等方法,将现有的系统重新构造为新的形势,主要包括,对象选择,反向工程,文档重构,代码重构,数据重构和正向工程等活动.

软件工程概论第十一章概括

软件演化其实就是对于软件的维护. 在软件达到使用期,各种各样的问题还是会出现,这些问题可能是改正软件之中的错误,也可以是适应新生的要求,大致分为三种类型:改正性维护.适应性维护.完善性维护. 软件的维护无异于建造一个工程,需要耗费的东西特别多,软件的建造过程直接影响到软件后期的维护,在维护的过程中其大致程序和构造软件的过程其实是差不多的,所以维护人员一定要负起自己的责任,下面对本章的几个维护类型做了详细的介绍. 软件再工程指的是利用先进的软件技术对15年前或者更早的软件进行维护,因为这些软件包含

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

根据软件维护的不同原因,软件维护可分为:改正性维护.适应性维护.完善性维护. 软件维护的特点:软件维护受开发过程影响大.软件维护困难多.软件维护成本高. 软件维护工作包括建立维护组织.报告与评估维护申请.实施维护流程等步骤.遗留系统通常对组织的核心业务提供关键性支持,因此需要采用先进的软件工程方法对整个软件或软件中的一部分重新进行设计.编写.测试,以提高软件的可维护性和可靠性,保证系统的正常运行,这就是软件再工程. 典型的软件再工程包括:对象选择.反向工程.文档重构.代码重构.数据重构.正向工程

软件工程概论第十一章

软件的演化 首先要明白软件演化的特性1 软件维护是一个必然的过程 2软件的不断修改会导致软件的退化3 软件系统的演化特性是在早期开发阶段建立起来的4 软件开发的效率和投入 的资源无关 5软件系统添加新的功能不可避免的会产生新的缺陷. 软件的维护有如下几种类型,1改正性维护,2适应性维护 3完善性维护.软件维护有如下的特点1 软件维护受开发过程影响大2 软件维护困难多 3软件维护的成本高. 原来的系统遗留下来使其再应用起来还要进行软件再工程,它主要包括对象的选择,反向工程,文档重构,代码重构,数据

软件工程第一章至十一章汇总

第一章软件软件是计算机程序,规程及运行计算机系统可能需要的文档和数据.软件分为通用软件和定制软件.软件的特性:1.复杂性2.不可见性3.不断变化4.大多数软件仍然是定制的,而不是通过已有的构件组装而成.软件于二十世纪50~60年代,70年代,80年代,90年代至今进行发展.在此过程中遇到一些危机:1.软件的开发成本和进度难以估计,延迟交付甚至取消项目的现象屡见不鲜.2.软件存在着错误多,性能低,不可靠,不安全等质量问题.3.软件的成本在计算机系统的整个成本中所占的比例越来越大.4.软件的维护极其

软件工程——理论方法与实践(段落概述第一章至第十一章)

第一章软件软件是计算机程序,规程及运行计算机系统可能需要的文档和数据.软件分为通用软件和定制软件.软件的特性:1.复杂性2.不可见性3.不断变化4.大多数软件仍然是定制的,而不是通过已有的构件组装而成.软件于二十世纪50~60年代,70年代,80年代,90年代至今进行发展.在此过程中遇到一些危机:1.软件的开发成本和进度难以估计,延迟交付甚至取消项目的现象屡见不鲜.2.软件存在着错误多,性能低,不可靠,不安全等质量问题.3.软件的成本在计算机系统的整个成本中所占的比例越来越大.4.软件的维护极其

现代软件工程 第十一章 练习与讨论

1  如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? DCR Tell mode vs. Ask mode设计变更 在项目早期,如果大家觉得要做一个设计变更,便可以采用告知模式(Tell-mode)的形式,也就是说,修改方必须通告所有关系人:“我在这里修改了某某界面, 我在某个API 增加了一个参数.”但是修改方不必取得其他关系人(或者模块)的事先同意,就是说可以先行设计并编码.当然,如果其他关系人不同意,修改还是不能签入. 当项目进行到稳定阶段,例如达到了代码完成(CC)阶段,

软件工程——理论、方法与实践 第十一章

第十一章.软件演化      第十一章   主要讲 1.软件演化的特性,软件维护是一个必然的过程,软件的不断修改会导致软件的退化,软件系统的演化特性是在早期的开发阶段建立起来的,软件开发的效率与投入的资源无关,在软件系统中添加新的功能不可避免地会产生新的缺陷: 2.软件的维护,软件维护是指在软件运行或维护阶段对软件产品进行的修改:分为改正型维护.适应性维护.完善性维护:并介绍了维护的特点和过程: 3.软件再工程,软件再工程以系统理解为基础,结合逆向工程.重构和正向工程等方法,讲现有系统重新构造成

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

 第十一章 软件演化 软件演化的特性: 1.软件维护是一个必然的过程. 2.软件的不断修改会导致软件的退化. 3.软件系统的演化特性是在早期的开发阶段建立起来的. 4.软件开发的效率与投入的资源无关. 5.在软件系统中添加新的功能不可避免地产生新的缺陷,因此在一个发布的新版本中有较大的功能增量将会意味着需要发布下一个版本,该版本中的新增功能较少,而主要是修补这些新产生的软件缺陷. 软件维护 软件维护是指在软件运行或维护阶段对软件产品所进行的修改. 1.改正性维护 2.适应性维护 3.完善性维护