软件工程第9章软件维护.ppt
《软件工程第9章软件维护.ppt》由会员分享,可在线阅读,更多相关《软件工程第9章软件维护.ppt(36页珍藏版)》请在课桌文档上搜索。
1、软件维护,第 九 章,9,9.1 软件维护的基本概念,软件维护是指软件系统交付使用以后,为了改正错误或满足新的需求而修改软件的过程。软件维护工作处于软件生命期的最后阶段,维护阶段是软件生存期中最长的一个阶段,所花费的人力、物力最多,其花费高达整个软件生命期花费的约60-70。因为计算机程序总是会发生变化,对隐含错误的修改,新功能的加入,环境变化造成的程序变动等。因此,应该充分认识到维护工作的重要性和迫切性,提高软件的可维护性,减少维护的工作量和费用,延长已经开发软件的生命期,以发挥其应有的效益。,9.1.1 软件维护的目的,1.在运行中发现在测试阶段未能发现的潜在软件错误和设计缺陷;2.根据实
2、际情况,需要改进软件设计,以增强软件的功能,提高软件的性能;3.要求在某环境下已运行的软件能适应特定的硬件、软件、外部设备和通信设备等新的工作环境,或是要求适应已变动的数据或文件;4.为使投入运行的软件与其它相关的程序有良好的接口,以利于协同工作;5.为使运行软件的应用范围得到必要的扩充。,9.1.2 软件维护的类型,按照不同的维护目的,维护工作可分成4类。,完善性维护(Perfective Maintenance)扩充原有系统的功能,提高原有系统的性能,满足用户的实际需要。纠错性维护(Corrective Maintenance)对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的
3、测试、诊断、定位、纠错以及验证、修改的回归测试过程。,一、软件维护的类型,软件维护的类型,适应性维护(Adaptive Maintenance)要使运行的软件能适应运行环境的变动而修改软件的过程。预防性维护(Preventive Maintenance)为了进一步改善软件的可靠性和易维护性,或者为将来的维护奠定更好的基础而对软件进行修改。,四类软件维护的比例,9.1.3 软件维护的特性,1.时间长、工作量大、成本高 软件的维护过程是软件生存期中最长,并且相当困难的阶段,软件维护的工作量占整个软件生存期的70%以上,而且还在逐年增加。因此,如何减少软件维护的工作量,降低软件维护的成本,就成为提高
4、软件维护效率和质量的关键。2.维护的副作用(1)修改代码的副作用。在修改源代码时,由于软件的内在结构等原因,任何一个小的修改都可能引起的错误。因此在修改时必须特别小心。,9.1.3 软件维护的特性,(2)修改数据的副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件出错。数据副作用就是修改软件信息结构导致的结果。修改数据副作用可以通过详细的设计文档加以控制,此文档中描述了一种交叉作用,把数据元素、记录、文件和其他结构联系起来。(3)修改文档的副作用。对软件的数据流、软件结构、模块逻辑等进行修改时,必须对相关技术文档进行相应修改。但修改文档过程会产生新的错误,导致文档与程序
5、功能不匹配,缺省条件改变等错误,产生文档的副作用。为了控制因修改而引起的副作用,应该:按模块把修改分组;自顶向下的安排被修改模块的顺序;每次修改一个模块。,3、软件维护的困难读懂别人的程序困难。文档的不一致性。软件开发人员和软件维护人员在时间上的差异。软件维护工作是一项难出成果的工作。结构化维护 指软件开发过程是按照软件工程方法进行的,开发各阶段文档齐全,软件的维护过程,有一整套完整的方案、技术、审定过程。非结构化维护 只有源程序,缺乏必要的文档说明,难于确定数据结构、系统接口等特性。维护工作令人生畏,事倍功半。,9.1.4 软件维护的工作量及模型,1.软件维护的工作量 软件维护的费用在整个软
6、件开发费用的55%-70%,并且所占比例在逐年上升。而且维护中还可能产生新的潜在错误。例如1970 年维护费用约占软件开发费用的40%,到1990年维护费用所占比例就超过了70%。另外维护还包含了无形的资源占用,包括大量的使用很多硬件、软件和软件工程师等资源。在软件维护时,直接影响维护成本和工作量的因素很多,主要如下:(1)系统规模大小 系统规模大小直接影响维护工作量,系统规模越大,仅仅看懂理解就很困难,维护的工作量就更多。系统规模主要由源代码行数、程序模块数、数据接口文件数、使用数据库规模大小等因素衡量。,9.1.4 软件维护的工作量及模型,1.软件维护的工作量(2)程序设计语言 解决相同的
7、问题选择不同的程序设计语言,得到的程序的规模可能不同。(3)系统使用年限 使用年限长的老系统维护比新系统所需要的工作量更多。(4)软件开发新技术的应用 软件开发过程中,使用先进的分析和设计技术,以及程序设计技术,如:面向对象的技术、构件技术、可视化程序设计技术等,可以减少维护工作量。(5)设计过程中的技术 在具体对软件进行维护时,影响维护工作量的其他因素还有很多,例如设计过程中应用的类型、数学模型、任务的难度、开关与标记、IF 嵌套深度、索引或下标数等。,9.1.4 软件维护的工作量及模型,2.软件维护工作量模型 维护活动分为生产性活动和非生产性活动。生产性活动包括分析评价、修改设计和编写程序
8、代码等。非生产性活动包括理解程序代码,解释数据结构,接口特点和设计约束等。Belady 和Lehman 提出软件维护工作模型:M=P+K*EXP(C-D)其中:M维护总工作量P生产性活动K经验常数C程序复杂度(由非结构化维护引起的)D对维护软件熟悉程度的度量。上式可以发现,C 越大,D 越小,那么维护工作量就成指数的增加。C 增加主要因为软件采用非结构化设计,程序复杂性高;D 减小表示维护人员不是原来的开发人员,不熟悉程序,理解程序花费太多时间。,二、软件维护的代价,维护费用高达开发费用的55%70%,而且逐年上涨。维护中还可能引入新的潜在错误。Belady 和 Lehman 提出软件维护工作
9、模型:M=P+K*EXP(C-D)其中:M维护总工作量P生产性活动K经验常数C程序复杂度(由非结构化维护引起的)D对维护软件熟悉程度的度量。,结论,9.2 软件维护的过程,1.维护组织 除大的软件公司外,通常的在软件维护工作方面,并不保持一个正式的组织。在软件开发部门,确立一个非正式的维护组织即非正式的维护管理员来负责维护工作却是绝对必要的。,2、维护工作的流程,用户,维护人员,安排改正性维护,确认维护类型,维护实施,评价优先级,进行问题分析,复审,评价错误严重程度,进行问题分析,确定更改要求,维护要求,完 美 性,适 应 性,将安排好的工作量列入计划,低,高,纠错性,严重,不严重,将改正错误
10、列入计划,人 员 安排,人 员 安 排,交付使用的软件,理解分析程序,安排计划修改程序,测试程序,或,或,或,或,软件维护的工作流程图,修改过的软件,3、维护工作的组织管理,软件维护工作不仅是技术性的,它还需要大量的管理工作与之相配合,才能保证维护工作的质量。管理部门应对提交的修改方案进行分析和审查,并对修改带来的影响作充分的估计,对于不妥的修改予以撤销。需修改主文档时,管理部门更应仔细审查。软件维护的管理流程如图所示:,软件维护的管理流程,维护修改建议,分析修改建议,是否合理,提交管理部门审查,是否同意,修改,撤销,N,Y,N,Y,进行测试,提交管理部门审批,是否批准,更新主文档,Y,更新其
11、他文档,提交使用,修改,N,一、结构化维护与非结构化维护结构化维护 指软件开发过程是按照软件工程方法,软件的维护过程,有一整套完整的方案、技术、审定过程。非结构化维护 缺乏必要的文档说明,难于确定数据结构、系统接口等特性。维护工作令人生畏,事倍功半。,二、软件维护的代价,维护费用高达开发费用的55%70%,而且逐年上涨。维护中还可能引入新的潜在错误。Belady 和 Lehman 提出软件维护工作模型:M=P+K*EXP(C-D)其中:M维护总工作量P生产性活动K经验常数C程序复杂度(由非结构化维护引起的)D对维护软件熟悉程度的度量。,结论,9.3 软件维护的技术,在软件开发阶段用来减少错误,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 维护
链接地址:https://www.desk33.com/p-235732.html