版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 软件维护工程软件维护工程软件维护的概念软件维护的概念软件维护是在软件已交付给用户运用后,为软件维护是在软件已交付给用户运用后,为了矫正错误,或者满足用户新的需求而修正了矫正错误,或者满足用户新的需求而修正软件的过程。软件维护普通不包括艰苦体系软件的过程。软件维护普通不包括艰苦体系构造的修正。构造的修正。软件维护的缘由:软件维护的缘由:修正软件中的错误;修正软件中的错误;软件运转环境发生了变化;软件运转环境发生了变化;用户要求添加软件新的功能或提高软件的用户要求添加软件新的功能或提高软件的性能。性能。docin/sundae_meng软件维护分类n纠错性维护n顺应性维护n完善性维护
2、n预防性维护n 三类维护所占比例三类维护所占比例: :其它维护其它维护 5 % 5 %顺应性顺应性维维 护护 25% 25%矫正性矫正性维维 护护 20% 20%扩展与完扩展与完善性维护善性维护 50% 50%矫正性维护占全部维护量的比率已从矫正性维护占全部维护量的比率已从8080年代初年代初的的20%20%大幅度下降大幅度下降, 90, 90年代初一些公司的产品年代初一些公司的产品过失率已接近于零过失率已接近于零各类维护活动的根本目的是延伸软件生存期各类维护活动的根本目的是延伸软件生存期其它维护其它维护 4 % 4 %软件软件生存生存周期周期软件诞生软件诞生计计划划分分析析设设计计编编码码测
3、测试试运转和维护运转和维护( (简称维护简称维护) )改善期改善期 稳定期稳定期 陈旧期陈旧期1 1年年-10-10年年2 2个月个月-2-2年年重构重构软件工程周期软件工程周期软件维护过程软件维护过程 影响软件维护任务量的要素:系统的大小。程序设计言语。系统的年龄。数据库技术的运用。先进的软件开发技术。其他要素。例如,在程序中运用的数学模型、义务的难度、IF嵌套的深度开关和标志等等,都会对维护任务有影响。 MP+Ke e= =(c-d )(c-d )M : M : 维护任务总任务量维护任务总任务量P : P : 消费性任务量消费性任务量K : K : 阅历常数阅历常数c : c : 复杂度复
4、杂度d : d : 对该软件熟习程度对该软件熟习程度的度量的度量维护的本钱维护的本钱该模型阐明,假设没有一个好的软件开发途径,原来的开发人员不能参与维护任务,那么维护任务量将按指数级添加。 修正修正担任人担任人维护恳求维护恳求系统监视员系统监视员配置管理员配置管理员维护组织维护组织 维护人员维护人员维护管理员维护管理员维护恳求报告维护恳求报告 n内容:n1所需求修正的性质;n2恳求修正的优先级;n3为满足某一项维护恳求所需求的任务量;n4估计修正后的情况。 软件维护流程软件维护流程 n见教材图维护记录维护记录维护过程中作应记录的数据维护过程中作应记录的数据程序标识程序标识源程序语句数目源程序语
5、句数目机器代码指令条数机器代码指令条数.以搜集的数据为根底构造维护数据库以搜集的数据为根底构造维护数据库, ,供维护评价运用供维护评价运用. .软件维护评价软件维护评价 n可供参考的度量值是:n1程序每次运转的平均失效的次数;n2各类维护活动所破费的总“人时数;n3每个程序、每种言语、每种维护类型所做的程序变动平均数;n4由于维护而添加或删除一个源程序语句,平均破费的“人时数;n5维护每一种言语的程序所破费的“人时数;n6维护恳求报告的平均处置时间;n7各类维护恳求的百分比。修正程序的副作用修正程序的副作用修正代码的副作用修正代码的副作用修正数据的副作用修正数据的副作用修正文档的副作用修正文档
6、的副作用重新验证程序重新验证程序 n静态确认。在软件修正时,能够会产生新的错误,为此,要进展必要的检查。n计算机确认。经过计算机对修正的程序进展确认测试。例如,要确认测试的顺序,首先测试经过修正的部分,再测试没有修正的部分,然后,把它们集成起来测试;预备好规范的和有效的测试用例;充分利用软件工具协助测试;在确认测试过程中,约请用户参与。n文档验收。经过修正的软件交付给用户前,维护主管部门要检查文档。例如,一切的文档能否完备,能否更新,文档与程序能否一致;全部的测试用例和测试结果能否都正确记载;软件配置能否都有了副本;维护的工序和责任能否曾经确定。维护中的典型问题维护中的典型问题(1)(1)难以
7、跟踪软件版本的进化过程难以跟踪软件版本的进化过程, , 软件的变化未在文档中反映出来软件的变化未在文档中反映出来. .(2)(2)难以跟踪软件的创建过程难以跟踪软件的创建过程. .(3)(3)难以读懂他人程序难以读懂他人程序. .(4)(4)无文档或不全无文档或不全. .(5)(5)软件人员流动性大软件人员流动性大. .(6)(6)设计时未思索修正需求设计时未思索修正需求, ,修正困难修正困难. .(7)(7)维护任务无吸引力维护任务无吸引力, ,缺乏成就感缺乏成就感. .软件可维护性软件可维护性软件可维护性的定义软件可维护性的定义 软件可维护性是指纠正软件系统出现软件可维护性是指纠正软件系统
8、出现的错误和缺陷,以及为满足新的要求的错误和缺陷,以及为满足新的要求进展修正、扩展或紧缩的容易程度。进展修正、扩展或紧缩的容易程度。 软件的可维护性度量软件的可维护性度量 n1可了解性n可了解性阐明人们经过阅读源代码和相关的文档,了解程序功能以及如何运转的容易程度。例如,模块化、程序设计风格,程序构造化、完好性等。n2可靠性n可靠性阐明一个程序按照用户的要求和设计目的,在给定的一段时间内正确执行的概率。可靠性是度量软件整体质量的一个重要目的之一,n3可测试性n可测试性阐明论证程序正确性的容易程度。一个可测试程序该当是可了解的、可靠的、简单的。由于程序越简单,要证明它的正确性就越容易;要设计有效
9、的和适宜的测试用例,重要的是要了解程序。n4可修正性n软件可修正性阐明程序容易修正的程度。一个可修正的程序,应该具有可了解性、通用性、灵敏性等等。通用性是指程序适用于各种功能变化而无须修正;灵敏性是指可以容易地对程序进展修正。n5可移植性n软件可移植性阐明程序能转移到另一个新环境的能够性大小,或者阐明程序可以容易地、有效地在各种各样的计算环境中运转的容易程度。一个可移植的程序应具有良好的构造和灵敏性,即不依赖详细的硬件环境或操作系统。n6效率n软件的效率阐明了一个程序能完成预定的功能,但又不浪费资源的程度。这些资源可以包括机器的内存容量、外存容量、通道容量等,以及执行时间。n7可用性n软件的可
10、用性定义为程序方便、适用、易运用的程度。例如,界面友好、具有在线协助功能、容错性好等,不由于用户的误操作而堕入混乱形状。可维护性的度量可维护性的度量度量程序可维护性的度量程序可维护性的7 7个特性在各类维护个特性在各类维护中的偏重点中的偏重点 矫正性维护矫正性维护 顺应性维护顺应性维护 完善性维护完善性维护可了解性可了解性 可测试性可测试性 可修正性可修正性 可靠性可靠性 可移植性可移植性 可运用性可运用性 效率效率 提高可维护性的方法提高可维护性的方法F 建立明确的软件质量目的和优先级建立明确的软件质量目的和优先级F 运用提高软件质量的技术和工具运用提高软件质量的技术和工具F 进展明确的质量
11、保证审查进展明确的质量保证审查F 选择可维护的程序设计言语选择可维护的程序设计言语F 改良程序的文档改良程序的文档F 开发软件时思索到维护开发软件时思索到维护软件再工程软件再工程什么是软件再工程什么是软件再工程在软件复用中在软件复用中, ,有问题是与现有系统亲密相有问题是与现有系统亲密相关的关的例如例如: : 现有软件系统如何顺该当前技术的开现有软件系统如何顺该当前技术的开展及需求的变化展及需求的变化, ,采用更易于了解的、顺应采用更易于了解的、顺应变化的、可复用的系统软件构架并提炼出变化的、可复用的系统软件构架并提炼出可复用的软件构件可复用的软件构件? ? 现存大量的遗产软件系统现存大量的遗
12、产软件系统(Legacy (Legacy Software)Software)由于技术的开展由于技术的开展, ,正逐渐退出运正逐渐退出运用用, ,如何对这些系统进展发掘、整理如何对这些系统进展发掘、整理, ,得到得到有用的软件构件有用的软件构件? ? 已有的软件构件随着时间的流逝会已有的软件构件随着时间的流逝会逐渐变得不可运用逐渐变得不可运用, ,如何对它们进展维护如何对它们进展维护, ,以延伸其生命期以延伸其生命期, ,充分利用这些可复用构件充分利用这些可复用构件? ?软件再工程软件再工程(Software (Software Reengineering)Reengineering)正是处理
13、上述问题的正是处理上述问题的主要技术手段。主要技术手段。 软件再工程是一类软件工程活动软件再工程是一类软件工程活动,是一个工程过程是一个工程过程, ,它将逆向工程、重构它将逆向工程、重构和正向工程组合起来和正向工程组合起来, ,将现存系统重新将现存系统重新构造为新的方式。再工程的根底是系构造为新的方式。再工程的根底是系统了解统了解, ,包括对运转系统、源代码、设包括对运转系统、源代码、设计、分析、文档等的全面了解。但在计、分析、文档等的全面了解。但在很多情况下很多情况下, ,由于各类文档的丧失由于各类文档的丧失, ,只只能对源代码进展了解能对源代码进展了解, ,即程序了解。即程序了解。 它可以
14、使我们:它可以使我们: 增进对软件的了解;增进对软件的了解; 提高软件本身的可维护性、复用性或提高软件本身的可维护性、复用性或演化性演化性. . 软件再工程过程模型软件再工程过程模型代码重构代码重构数据重构数据重构正向工程正向工程库存目录分析库存目录分析文档重构文档重构逆向工程逆向工程逆向工程逆向工程逆向工程逆向工程( (反推工程反推工程reverse engineering)reverse engineering)从现有软件恢复设计信息从现有软件恢复设计信息( (有用的维护信息有用的维护信息) ) 设计的设计的恢复过程恢复过程非构造化、无文档非构造化、无文档的源代码或目的代码的源代码或目的代
15、码软件的全部文档软件的全部文档软件再工程相关术语间关系软件再工程相关术语间关系 信信息息库库1 1类视图:类视图:非过程性描画、元描画非过程性描画、元描画例:规格阐明例:规格阐明再工程再工程3 3类视图:类视图:过程性描画过程性描画例:源程序例:源程序再工程再工程2 2类视图:类视图:伪过程性描画、构造性描画伪过程性描画、构造性描画例:例:DFDDFD、PDLPDL A2 A2类视图:类视图:分析分析再工程再工程逆向工程逆向工程设计恢复设计恢复再工程再工程逆向工程逆向工程设计恢复设计恢复再工程再工程 A1 A1类视图:类视图:分析分析 A3 A3类视图:类视图:分析分析分解分解综合生综合生成视
16、图成视图软件视图软件视图 Software view Software view有关软件的一种表达方式或报告;有关软件的一种表达方式或报告;视图分类:视图分类:1 1类视图:类视图:2 2类视图:类视图:3 3类视图:类视图:A A类视图:伴随上述各类的分析视图类视图:伴随上述各类的分析视图; A1 A1类视图是对类视图是对1 1类视图的分析信类视图的分析信息;息; A2 A2类视图是有关类视图是有关2 2类视图的类视图的分析信息;分析信息; A3 A3类视图是由类视图是由3 3类视图得到类视图得到。软件视图例如信息库信息库视图编辑器视图编辑器DFD视图编辑器视图编辑器Petri网网视图编辑器
17、视图编辑器ERA图图视图编辑器视图编辑器跟踪矩阵跟踪矩阵X XX XX XReq1 Req2Prog1Prog2Prog3视图编辑器视图编辑器程序构造图程序构造图视图编辑器视图编辑器流程图流程图视图编辑器视图编辑器规格阐明规格阐明再工程信息库及其产品软件文档软件文档分析结果分析结果信息库设计成果设计成果规格阐明规格阐明各种图各种图度量值度量值分析、分解器分析、分解器源程序或其模板源程序或其模板(进入点进入点)源程序源程序自动进展再工程的过程软件软件的新视图语法分析器语义分析器视图合成器信息库其他产品经过再工程经过再工程过程可获得过程可获得的信息的信息格式格式图形图形文档文档度量值度量值逻辑逻辑
18、报告报告软件再工程技术软件再工程技术再工程课题再工程课题 相关技术相关技术重构重构文档重写、加注释、更新文档文档重写、加注释、更新文档复用工程复用工程重新划分模块重新划分模块数据再工程数据再工程业务过程再工程业务过程再工程可维护性分析、业务量分析、经济分析可维护性分析、业务量分析、经济分析了解软件了解软件改良软件改良软件获取、保管及获取、保管及扩展软件的知识扩展软件的知识分解分解逆向工程、恢复设计逆向工程、恢复设计对象恢复对象恢复程序了解程序了解知识库及变换知识库及变换阅读阅读分析、度量分析、度量逆向工程、恢复设计逆向工程、恢复设计1.1.改良软件改良软件1 1软件重构软件重构 对软件进展改造
19、,使其易于了解或易于维对软件进展改造,使其易于了解或易于维护。护。 重构是实现软件再工程全面自动化的第一重构是实现软件再工程全面自动化的第一步步源程序重构的源程序逻辑逻辑格式格式图形图形文档文档度量度量报告报告再构器再构器可获得可获得的信息的信息Restructurer软件重构表示图1.1.改良软件改良软件2 2文档重写、加注释、更新文档文档重写、加注释、更新文档信息源:源程序设计资料规格阐明变卦记录管理人员程序人员文档:嵌入式注释设计资料规格阐明测试数据层次图检查:再测试插入注释生成图形生成报告文档重写表示图1.1.改良软件改良软件(3)(3)复用工程:目的是修正软件,使其更易于复用工程:目
20、的是修正软件,使其更易于复用复用再阐明再阐明再生成再生成分类分类证明证明附加查找描画信息附加查找描画信息查找利用再工程实现软件复用的过程运用问题运用问题部件部件可复用部件可复用部件可复用库可复用库:可复用源程序可复用源程序复用复用再工程器析取析取2.2.了解软件了解软件1 1阅读阅读2 2分析与度量分析与度量 了解程序特性了解程序特性( (如复杂性如复杂性) )的重要方法的重要方法. . 与再工程相关的技术与再工程相关的技术: :程序分片程序分片 控制流复杂性控制流复杂性度量度量 耦合性度量耦合性度量3 3逆向工程与设计恢复逆向工程与设计恢复逆向工程恢复信息的级别逆向工程恢复信息的级别: :(1)(1)实现级实现级: :程序的笼统语法程序的笼统语法 树、符号表等树、符号表等信息信息(2)(2)构造级构造级
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自助用餐管理制度
- 汽车卸车安全管理制度
- 生产制度私有制的
- 工程队报销制度
- 安全活动无定期议事制度
- 2025 年大学勘查技术与工程(地球物理勘探)期末测试卷
- 骨科护理中的护理管理新理念
- 安徽省合肥市一六八中学2026届高三3月份规范训练 语文试卷(含答案详解)
- 2024-2025学年度保安员考试经典例题及完整答案详解(必刷)
- 2024-2025学年度河北政法职业学院单招《数学》每日一练试卷及完整答案详解
- 《经络与腧穴》课件-手少阴心经
- 金矿融资计划书范文
- 法规解读丨2024新版《突发事件应对法》及其应用案例
- 汽车机械基础课件:第七单元汽车液压传动课件
- 齐鲁工业大学《思想道德与法治》2021-2022学年第一学期期末试卷
- 肝的生理功能中医
- 桥梁设计方案构思方法
- 系统解剖学(南方医科大学)智慧树知到期末考试答案2024年
- Unit2Yummy!(课件)新概念英语青少版StarterA
- 康复心理学-第一章-绪论课件
- T-CSEM 0024-2024 智慧消防 火灾防控系统建设要求
评论
0/150
提交评论