




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件维护与项目管理软件维护与项目管理软件维护软件维护 软件维护的概念软件维护的概念 软件维护活动软件维护活动 程序修改的步骤及修改的副作用程序修改的步骤及修改的副作用 可维护性可维护性 提高可维护性的方法提高可维护性的方法 软件再工程软件再工程编程大师说:“任何一个程序,无论它多么小,总存在着错误。”初学者不相信大师的话,他问:“如果一个程序小得只执行一个简单的功能,那会怎样?”“这样的一个程序没有意义,”大师说,“但如果这样的程序存在的话,操作系统最后将失效,产生一个错误。”但初学者不满足,他问:“如果操作系统不失效,那么会怎样?”“没有不失效的操作系统,”大师说,“但如果这样的操作系统存在
2、的话,硬件最后将失效,产生一个错误。”初学者仍不满足,再问:“如果硬件不失效,那么会怎样?”大师长叹一声道:“没有不失效的硬件。但如果这样的硬件存在的话,用户就会想让那个程序做一件不同的事,这件事也是一个错误。”没有错误的程序世间难求。James 1999软件维护的定义软件维护的定义在软件运行维护阶段在软件运行维护阶段对软件产对软件产品进行的修改品进行的修改就是所谓的维护。就是所谓的维护。维护的类型有四种:维护的类型有四种:n 改正性维护改正性维护n 适应性维护适应性维护n 完善性维护完善性维护n 预防性维护预防性维护改正性维护改正性维护在软件交付使用后,因开发时测试的在软件交付使用后,因开发
3、时测试的不彻底不彻底、不完全不完全,必然会有部分隐藏,必然会有部分隐藏的错误遗留到运行阶段。的错误遗留到运行阶段。这些隐藏下来的错误这些隐藏下来的错误在某些特定的使在某些特定的使用环境下就会暴露出来用环境下就会暴露出来。为了识别和纠正软件错误、改正软件为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就应当进行的诊断和改正错误的过程就叫做改正性维护。叫做改正性维护。适应性维护适应性维护在使用过程中,在使用过程中,n 外部环境外部环境(新的硬、软件配置新的硬、软件配置)n 数据环境数据环境(数据库、数据格式、数数据库
4、、数据格式、数据输入据输入/ /输出方式、数据存储介质输出方式、数据存储介质)可能发生变化。可能发生变化。为使软件适应这种变化,而去修为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。改软件的过程就叫做适应性维护。完善性维护完善性维护在软件的使用过程中,用户往往会在软件的使用过程中,用户往往会对软件提出新的对软件提出新的功能功能与与性能性能要求。要求。为了满足这些要求,需要修改或再为了满足这些要求,需要修改或再开发软件,以开发软件,以扩充软件功能扩充软件功能、增强增强软件性能软件性能、改进加工效率改进加工效率、提高软提高软件的可维护性件的可维护性。这种情况下进行的维护活动叫做完这种情况
5、下进行的维护活动叫做完善性维护。善性维护。预防性维护预防性维护预防性维护是为了预防性维护是为了提高软件的可维提高软件的可维护性护性、可靠性等可靠性等,为以后进一步改,为以后进一步改进软件打下良好基础。进软件打下良好基础。预防性维护定义为:预防性维护定义为:采用先进的软采用先进的软件工程方法对需要维护的软件或软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、件中的某一部分(重新)进行设计、编制和测试。编制和测试。维护在软件生维护在软件生 三类维护占三类维护占 存期所占比例存期所占比例 总维护比例总维护比例系统大小系统大小程序设计语言程序设计语言系统年龄系统年龄数据库技术的应用数据库
6、技术的应用先进的软件开发技术先进的软件开发技术影响维护工作量的因素影响维护工作量的因素软件维护的策略软件维护的策略改正性维护改正性维护技术改进包括:技术改进包括:数据库管理系统数据库管理系统、软件软件开发环境开发环境、程序自动生成系统程序自动生成系统、较高级较高级( (第四代第四代) )的语言的语言。以及。以及新的开发方法新的开发方法、软件复用软件复用、防错程序设计防错程序设计及及周期性维护周期性维护审查审查等。等。完善性维护完善性维护1 1、数据库管理系统数据库管理系统、程序生成器程序生成器、应用软件包应用软件包,可减少维护工作量。,可减少维护工作量。2 2、建立软件系统的原型,把它在实、建
7、立软件系统的原型,把它在实际系统开发之前提供给用户。际系统开发之前提供给用户。维护成本维护成本有形的软件维护成本有形的软件维护成本是花费了多少是花费了多少钱,钱,无形的维护成本无形的维护成本有更大的影响。有更大的影响。n 一些一些合理的修复或修改请求不能及合理的修复或修改请求不能及时安排时安排,使得客户不满意;,使得客户不满意;n 变更的结果变更的结果引入新的故障引入新的故障,使得软,使得软件整体质量下降;件整体质量下降;维护工作量包括维护工作量包括生产性活动生产性活动(如分析和评(如分析和评价、设计修改和实现)和价、设计修改和实现)和“轮转轮转”活动活动软件维护的软件维护的代价代价是是降低了
8、生产率降低了生产率,在,在做老程序的维护时非常明显。做老程序的维护时非常明显。例如,例如,开发每一行源代码耗资开发每一行源代码耗资2525美元美元,维护每一行源代码需要耗资维护每一行源代码需要耗资10001000美元美元。维护工作量包括维护工作量包括生产性活动生产性活动(如分析(如分析和评价、设计修改和实现)和和评价、设计修改和实现)和“轮转轮转”活动活动(如力图理解代码在做什么、试(如力图理解代码在做什么、试图判明数据结构、接口特性、性能界图判明数据结构、接口特性、性能界限等)。限等)。维护工作量的模型维护工作量的模型M M是维护中消耗的总工作量是维护中消耗的总工作量p p是上面描述的生产性
9、工作量是上面描述的生产性工作量K K是一个经验常数是一个经验常数c c是因缺乏好的设计和文档而是因缺乏好的设计和文档而导致复杂性的度量导致复杂性的度量d d是对软件熟悉程度的度量。是对软件熟悉程度的度量。dcKepM软件维护活动软件维护活动为了有效地进行软件维护,应事先就为了有效地进行软件维护,应事先就开始做组织工作。开始做组织工作。n 首先首先建立维护的机构建立维护的机构n 申明申明提出维护申请报告的过程提出维护申请报告的过程及及评价的评价的过程过程n 为每一个维护申请规定为每一个维护申请规定标准的处理步骤标准的处理步骤n 建立建立维护活动的登记制度维护活动的登记制度以及规定以及规定评价评价
10、和评审的标准和评审的标准。程序修改的步骤及修改的副作用程序修改的步骤及修改的副作用通常对源程序的修改不能无计划地仓通常对源程序的修改不能无计划地仓促上阵,为了正确、有效地修改促上阵,为了正确、有效地修改, ,需需要经历以下三个步骤。要经历以下三个步骤。w 分析和理解程序分析和理解程序w 修改程序修改程序w 重新验证程序重新验证程序在修改源代码时,都可能引入错误。在修改源代码时,都可能引入错误。例如,例如,删除或修改一个子程序删除或修改一个子程序、删删除或修改一个标号除或修改一个标号、 删除或修改删除或修改一个标识符一个标识符、改变程序代码的时序改变程序代码的时序关系关系、改变占用存储的大小改变
11、占用存储的大小、改变改变逻辑运算符逻辑运算符、修改文件的打开或关修改文件的打开或关闭闭、改进程序的执行效率改进程序的执行效率,以及,以及把把设计上的改变翻译成代码的改变设计上的改变翻译成代码的改变时,时,都容易引入错误。都容易引入错误。(2) (2) 修改数据的副作用修改数据的副作用在在修改数据结构修改数据结构时,有可能造时,有可能造成成软件设计与数据结构不匹配软件设计与数据结构不匹配,因而导致软件出错。因而导致软件出错。数据副作用就是修改软件信息数据副作用就是修改软件信息结构导致的结果。结构导致的结果。容易导致设计与数据不相容的错误容易导致设计与数据不相容的错误可以有:可以有:n 重新定义局
12、部的或全局的常量重新定义局部的或全局的常量n 重新定义记录或文件的格式重新定义记录或文件的格式n 增大或减小一个数组或高层数据结增大或减小一个数组或高层数据结构的大小构的大小n 修改全局或公共数据修改全局或公共数据n 重新初始化控制标志或指针重新初始化控制标志或指针n 重新排列输入输出或子程序的参重新排列输入输出或子程序的参数数(3) (3) 文档的副作用文档的副作用对对数据流数据流、软件结构软件结构、 模块逻辑模块逻辑或或任何其它有关特性任何其它有关特性进行修改时,进行修改时,必须必须对相关技术文档进行相应修改对相关技术文档进行相应修改。否则会导致否则会导致文档与程序功能不匹配文档与程序功能
13、不匹配,缺省条件改变缺省条件改变,新错误信息不正确新错误信息不正确等错误。使得等错误。使得软件文档不能反映软软件文档不能反映软件的当前状态件的当前状态。如果对可执行软件的修改不反映在如果对可执行软件的修改不反映在文档里,就会产生文档的副作用。文档里,就会产生文档的副作用。重新验证程序重新验证程序在将修改后的程序提交用户之前,需在将修改后的程序提交用户之前,需要进行要进行充分的确认和测试充分的确认和测试,以保证整,以保证整个修改后程序的正确性。个修改后程序的正确性。静态确认静态确认计算机确认计算机确认(1) (1) 确认测试顺序确认测试顺序(2)(2) 准备标准的测试用例准备标准的测试用例。(3
14、) (3) 充分利用软件工具帮助重新验证过程充分利用软件工具帮助重新验证过程。软件可维护性的定义软件可维护性的定义软件可维护性软件可维护性是指是指纠正软件系统出现纠正软件系统出现的错误和缺陷,以及为满足新的要求的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度进行修改、扩充或压缩的容易程度。可维护性可维护性、可使用性可使用性、可靠性可靠性是衡量是衡量软件质量的主要质量特性,也是用户软件质量的主要质量特性,也是用户十分关心的几个方面。十分关心的几个方面。软件的软件的可维护性可维护性是是软件开发阶段各个软件开发阶段各个时期的关键目标时期的关键目标。目前广泛使用的是用如下的目前广泛使用的
15、是用如下的七个七个特特性来衡量程序的可维护性。性来衡量程序的可维护性。可理解性可理解性可重用性可重用性可测试性可测试性可移植性可移植性可修改性可修改性效率效率可靠性可靠性而且对于不同类型的维护,这七种而且对于不同类型的维护,这七种特性的侧重点也不相同。特性的侧重点也不相同。在各类维护中的侧重点在各类维护中的侧重点 可维护性的度量可维护性的度量人们一直期望人们一直期望对软件的可维护性做对软件的可维护性做出定量度量出定量度量。常用的度量一个可维护的程序的七常用的度量一个可维护的程序的七种特性的方法。就是:种特性的方法。就是:n 质量检查表质量检查表n 质量测试质量测试n 质量标准质量标准质量检查表
16、质量检查表是用于测试程序中某些质量是用于测试程序中某些质量特性是否存在的一个问题清单。特性是否存在的一个问题清单。评价者针对检查表上的每一个问题,依评价者针对检查表上的每一个问题,依据自己的定性判断,回答据自己的定性判断,回答“YesYes”或者或者“NoNo”。质量测试质量测试与与质量标准质量标准则用于定量分析和则用于定量分析和评价程序的质量。评价程序的质量。由于许多质量特性是相互抵触的,要由于许多质量特性是相互抵触的,要考考虑几种不同的度量标准虑几种不同的度量标准,相应地去度量,相应地去度量不同的质量特性。不同的质量特性。度量可靠性的方法度量可靠性的方法根据程序错误统计数字,进行可靠性根据
17、程序错误统计数字,进行可靠性预测预测。常用方法是利用一些。常用方法是利用一些可靠性模可靠性模型型,根据程序测试时发现并排除的错根据程序测试时发现并排除的错误数预测平均失效间隔时间误数预测平均失效间隔时间MTTFMTTF。 根据程序复杂性,预测软件可靠性根据程序复杂性,预测软件可靠性。用程序复杂性预测可靠性,用程序复杂性预测可靠性,前提条件前提条件是可靠性与复杂性有关是可靠性与复杂性有关。因此可用复。因此可用复杂性预测出错率。程序复杂性度量标杂性预测出错率。程序复杂性度量标准可用于准可用于预测哪些模块最可能发生错预测哪些模块最可能发生错误误,以及,以及可能出现的错误类型可能出现的错误类型。提高可
18、维护性的方法提高可维护性的方法建立明确的软件质量目标和优先建立明确的软件质量目标和优先级级使用提高软件质量的技术和工具使用提高软件质量的技术和工具进行明确的质量保证审查进行明确的质量保证审查选择可维护的程序设计语言选择可维护的程序设计语言改进程序的文档改进程序的文档提高软件质量的技术和工具提高软件质量的技术和工具模块化模块化n 如果需要改变某个模块的功能,则只要如果需要改变某个模块的功能,则只要改变这个模块,对其它模块影响很小;改变这个模块,对其它模块影响很小;n 如果需要增加程序的某些功能,则仅需如果需要增加程序的某些功能,则仅需增加完成这些功能的新的模块或模块层;增加完成这些功能的新的模块
19、或模块层;n 程序的测试与重复测试比较容易;程序的测试与重复测试比较容易;n 程序错误易于定位和纠正;程序错误易于定位和纠正;结构化程序设计结构化程序设计面向对象的开发方法面向对象的开发方法 保证软件质量的最佳方法是保证软件质量的最佳方法是在软件在软件开发的最初阶段把质量要求考虑进开发的最初阶段把质量要求考虑进去去,并,并在开发过程每一阶段的终点在开发过程每一阶段的终点,设置检查点进行检查设置检查点进行检查。检查的目的是要证实,已开发的软检查的目的是要证实,已开发的软件件是否符合标准是否符合标准,是否满足规定的是否满足规定的质量需求质量需求。在不同的检查点,检查。在不同的检查点,检查的重点不完
20、全相同。的重点不完全相同。 在检查点进行复审在检查点进行复审软件开发期间各个检查点的检查重点软件开发期间各个检查点的检查重点机器语言机器语言 汇编语言汇编语言 高级语言高级语言 查询语言查询语言 ( (FORTRANFORTRAN、报表生成语言报表生成语言 COBOLCOBOL等等) ) 图象语言图象语言 应用生成语言应用生成语言选择可维护的程序设计语言选择可维护的程序设计语言软件再工程软件再工程逆向工程逆向工程软件项目管理软件项目管理软件项目目标技术管理合理使用与配置估算工作量软件需求KLOCFP估算规模人月估算进度GanttPert模型模型模型民主制程序员组主程序员组现代程序员组产品转移产
21、品运行产品修改SQA小组计划监督记录分析报告活动措施基于非执行的测试程序正确性证明软件配置项变化管理标识变化版本控制变化控制报告配置审计工程师工程师a ab bm m唐唐 僧僧111312孙悟空孙悟空101311沙沙 僧僧91210猪八戒猪八戒131714白龙马白龙马121513均值均值111412输入项数(Inp)输出项数(Out)查询数(Inq)主文件数(Maf)外部接口数(Maf)输入项数(Inp):用户向软件输入的项数,这些输入给软件提供面向应用的数据,不包括查询。输出项数(Out):查询数主文件数外部接口数计算未调整的功能点UFP计算技术复杂性因子TCF计算功能点数FP计算未调整的功
22、能点UFPUFP=a1Inp+a2Out+a3Inq+a4Maf+a5Inf 复杂级别复杂级别 特性系数特性系数简单简单平均平均复杂复杂输入系数输入系数a a1 1346输出系数输出系数a a2 2457查询系数查询系数a a3 3346文件系数文件系数a a4 471015接口系数接口系数a a5 55710计算技术复杂性因子TCF确定技术因素对软件规模的影响值F1F14; 0Fi 5计算技术因素对软件规模的综合影响程度DI;DI= Fi计算技术复杂性因子TCF。 TCF=0.65+0.01DIi=114序号序号Fi技术因素技术因素1F1数据通信数据通信2F2分布式数据处理分布式数据处理3F
23、3性能标准性能标准4F4高负荷的硬件高负荷的硬件5F5高处理率高处理率6F6联机数据输入联机数据输入7F7终端用户效率终端用户效率序号序号Fi技术因素技术因素8F8联机更新联机更新9F9复杂的计算复杂的计算10F10可重用性可重用性11F11安装方便安装方便12F12操作方便操作方便13F13可移植性可移植性14F14可维护性可维护性技术因素计算技术复杂性因子TCF计算功能点数FPFP=UFPTCF民主制程序员组主程序员组现代程序员组主程序员主程序员编程秘书后备程序员程序员程序员程序员主程序员编程秘书后备程序员程序员程序员程序员主程序员编程秘书后备程序员程序员程序员程序员主程序员编程秘书后备程
24、序员程序员程序员程序员主程序员编程秘书后备程序员程序员程序员程序员技术组长行政组长程序员程序员程序员程序员程序员程序员组长程序员程序员程序员程序员程序员组长组长项目经理程序员程序员程序员组长程序员程序员程序员程序员程序员组长组长项目经理产品转移产品运行产品修改SQA小组计划监督记录分析报告活动措施明确地叙述的功能和性能需求、文档中明确描述的开发标准。任何专业开发的软件产品都应该具有的隐含特征。产品转移产品运行产品修改正确性(它按我的需要工作吗?)健壮性(对意外环境它能适当地响应吗?)效率 (完成预定功能时它需要的计算机资源多吗?)完整性(它是安全的吗?)可用性(我能使用它吗?)风险 (能按计划完成它吗?)可理解性(我能理解它吗?)可维修性(我能修复它吗?)灵活性 (我能改变它吗?)可测试性(我能测试它吗?)可移植性(我能在另一台机器上使用它吗?)可再用性(我能再用它的某些部分吗?)互运行性(我能把它和另一个系统结合吗?)产品转移产品运行产品修改措施基于非执行的测试 (也称为复审或评审):用来保证在编码之前各阶段产生的文档的质量。基于执行的测试 在程序编写出来之后保证软件质量的最后一道防线。程序正确性证明 使用数学方法严格验证程序是否与它说明的完全一致。产品转移产品运行产
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB32/T 4096-2021远程异地评标工作规范
- DB32/T 4011-2021基层治理网格化管理考核规范
- DB32/T 3881-2020中药智能工厂中药水提醇沉提取过程质量监控
- DB32/T 3588-2019水稻-中华鳖共作技术规程
- DB32/T 1580-2019地理标志产品射阳大米
- DB32/ 4385-2022锅炉大气污染物排放标准
- DB31/T 606-2012立杆挂旗广告设置技术规范
- DB31/T 583-2012社区公益服务项目绩效评估导则
- DB31/ 897-2015预拌砂浆单位产品综合能源消耗限额
- 2025电缆采购合同格式范本
- 新《城镇燃气设施运行、维护和抢修安全技术规程》考试题库(含答案)
- 端午节活动:五彩绳
- 肝门部胆管癌诊断和治疗指南(2025版)解读
- 2025年度会计人员继续教育会计法律法规答题活动测试100题答案
- CT培训课件教学课件
- 肠梗阻课件完整版本
- 丝网印刷技术全套讲解
- 《社会应急力量分类分级测评实施办法》知识培训
- 正规防水补漏合同模板
- 厦门理工学院应届生毕业论文答辩模板
- 24秋国家开放大学《社会教育及管理》形考任务1-3参考答案
评论
0/150
提交评论