nullnull第8章 软件维护软件维护的概念
软件在投入使用之后,就进入维护阶段。软件维护阶段是软件生命期中时间最长、花费精力和财力最多的阶段。因为计算机程序总要变化:故障要排除,系统要改进,要进行优化,版本要升级等。所以软件工程
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
学的一个主要目的就是如何减少维护的总工作量。
软件维护的定义:在软件运行/维护阶段对软件产品所进行的修改就是维护。null软件维护的概念软件维护的内容很广泛,根据要求维护的原因,维护的活动可分为4种:
1、改正性维护:在软件测试过程中,没有发现的错误,带到维护阶段,这些隐含的错误在某些特定的环境下会暴露出来。为识别和纠正这些错误,修改软件性能上的缺陷,进行的确定和修改错误的过程称为改正性维护。
2、适应性维护:随着计算机的发展,计算机硬件和软件环境、数据环境都在不断地发生变化,为使软件适应这种变化而进行的软件修改过程称为适应性维护。
3、完善性维护:在软件使用过程中,用户往往会对软件提出新的功能要求与性能要求,为满足这些新的要求,扩充软件原有的功能、改善性能而进行的软件维护活动称为完善性维护。
4、预防性维护:为提高软件的可维护性和可靠性,为以后进一步改进软件奠定良好基础而对软件进行的修改称为预防性维护。null软件维护的概念4种维护的活动占总维护工作量的比例:
null软件维护的特点 影响维护工作量的因素:
在软件维护过程中,工作量直接影响了软件维护的成本。因此应当考虑有哪些因素影响软件维护的工作量,相应应该采取什么维护策略,才能有效地维护软件并控制维护的成本。
影响软件维护的因素有以下几种:
1)软件配置是否完整是影响维护工作量的重要因素 ;
2)修改别人的程序增加了维护的难度;
3)文档不全的软件,增加了修改后测试的工作量;
4)软件结构的不合理,增加了软件修改的困难;
5)软件经过多个版本的演化,很难追踪修改的过程;
6)软件维护经常受挫,降低了该项工作的吸引力。null软件维护的特点维护的代价高昂:
软件的维护代价分为有形的代价和无形的代价
有形的维护代价是指维护费用的数目
无形的代价,包括
①在软件维护过程中,引入潜伏的错误,造成软件质量下降;
②实施维护占用的一些资源,影响到其它开发工作的进行;
③软件维护中部分工作没有满足用户认为合理的需求,引起用户的不满等。null软件维护的特点维护工作量的一个模型:
M=P十K×e(c-d)
M是维护工作总量
P是生产性工作量
K是经验常数
c是软件复杂程度(非结构化设计和缺少文档都会增加软件的复杂程度)
d是维护人员对软件的熟悉程度。
以上模型表明,如果软件开发途径不当,原开发人员不参加维护工作,都将使维护工作量呈指数级增加。
null软件维护的特点 软件的开发过程对软件的维护有较大的影响:
1、非结构化维护:由于只有源程序,而文档很少或没有文档,维护工作只能从阅读、理解、分析源程序入手,通过阅读源程序了解系统功能、软件结构、数据结构、系统接口等,这样非常困难,很多问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
难以搞清楚,要想搞清楚需花费大量的人力、物力,由于常常误解一些问题,最终对源程序的修改的后果是难以预料的。
2、结构化维护:进行维护 活动时,首先从评价需求开始,搞清楚功能、性能上的改变,然后对设计说明文档进行评价、修改和复查;根据设计的修改,再进行程序的变动;然后根据测试文档中的测试 用例进行回归测试;最后将修改后的软件再次交付使用。 null软件维护步骤第一步:软件维护申请报告
为了有效地进行软件维护,应在维护前先做组织工作,建立维护机构,申明提出维护申请报告的过程和评价的过程;为每一个维护申请规定
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的处理步骤;同时还必须建立维护活动的登记制度以及规定评价和评审的标准。
维护机构null软件维护步骤第二步:维护工作的实施
软件维护工作流程:
null软件维护步骤源程序修改的步骤:
1、分析和理解程序:可采用如下方法
1)分析程序结构图;
2)跟踪数据;
3)控制跟踪;
4)充分阅读和源程序清单和文档,分析现有文档的合理性;
5)充分使用由编译程序或汇编程序提供的交叉引用表、符号表及其它信息;null软件维护步骤2、设计程序的修改
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
一方面:考虑对人员和资源的安排
另一方面:需要根据修改的内容及受到修改影响的内容设计修改
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
包括:
研究程序的各个模块、模块接口及数据库等,按全局观点提出修改计划;
依次将要修改的、以及受修改影响的模块和数据结构分离出来;
详细分析将要修改的、以及受修改影响的模块和数据结构的内部细节,标明新逻辑及要修改的现有逻辑;null软件维护步骤3、修改代码,以适应变化。
修改时应遵循原则:
①正确、有效、谨慎地修改程序代码,尽量保持程序的原有风格;
②修改过程中,要随时保存前一次调试正确的源程序代码;
③保持详细的维护活动和维护结果记录,保证维护工作的可追踪性;
④如果修改较大,程序原有架构不符合要求,可抛弃原有程序重新编写。null软件维护步骤4、修改程序的副作用
副作用是指因修改软件而造成的错误或其它不希望发生的情况。
1)编码副作用:在使用程序设计语言修改源代码时可能引起的错误,如删除或修改一个标号、标识符、一个子程序,改变程序代码的时序关系,改变逻辑运算符,改进程序的执行效率,改变程序占用存储的大小等,都很容易引入错误,应特别小心。
2)数据副作用:在修改数据结构时,有可能造成软件设计和数据结构的不一致,而导致软件错误。数据副作用是修改软件信息结构引起的,如重新定义全局或局部常量,重新初始化控制标志或指针等,都容易产生设计与数据不相容的错误,可通过详细设计文档对数据副作用加以控制。
3)文档副作用:对数据流、软件结构、逻辑模块等进行修改时,必须对相关技术文档进行修改,否则会导致 文档与程序功能不匹配,使文档不能反映软件当前的状态。null软件维护步骤5、重新验证程序:
1)静态确认;
2)计算机确认;
3)维护后的验收。
null软件维护步骤第三步:维护文档整理
记录一些与维护工作有关的数据信息,这些信息可作为估计软件维护的有效程度,确定软件产品的质量,确定维护的实际开销等工作的原始数据。 null软件维护步骤第四步:维护活动评价
具体的评价工作可从以下几个方面考虑:
(1)每次程序运行时的平均出错次数;
(2)花费在每类维护活动上的总的“人时”数;
(3)每个程序、每种语言、每种维护类型程序的平均修改次数;
(4)维护工作中增加或删除每个源程序语句所花费的平均“人时”数;
(5)用于每种语言的平均“人时”数;
(6)维护申请报告的平均处理时间;
(7)各类维护申请的百分比。
一方面,可判定此次维护活动开展是否顺利、成功;另一方面,为今面的维护工作积累经验。null软件可维护性软件可维护性的定义:
软件能够被理解、修改、压缩、扩充功能的容易程度。
软件可维护性是软件开发阶段的关键目标。影响软件可维护性的因素很多,设计、编码及测试中的疏忽和低劣的软件配置、缺少文档等都会对软件的可维护性带来不良影响。软件的可维护性可用七个质量特性来衡量,对于不同的维护类型,这七种特性的侧重点也不同。
null软件可维护性√√√√√√√√√影响软件可维护性的七个质量特性及这些质量特性在各类维护中的侧重点null软件可维护性提高软件可维护性的方法:
提高软件可维护性,可从以下三个方面着手:
1)建立明确的软件质量目标;
2)选择可维护的程序设计语言;
3)采用结构化技术提高软件质量 ;null软件可维护性提高软件可维护性的方法:
提高软件可维护性,可从以下五个方面 着手:
1)建立明确的软件质量目标;
2)选择可维护的程序设计语言;
3)采用结构化技术提高软件质量 ;
若要使程序满足可维护性的七个特性的全部要求是不现实的,为保证可维护性应在一定程度上满足可维护性的各个特性,各个特性的重要性也应随着程序用途的不同或计算机环境的不同而改变。 null软件可维护性提高软件可维护性的方法:
提高软件可维护性,可从以下三个方面 着手:
1)建立明确的软件质量目标;
2)选择可维护的程序设计语言;
3)采用结构化技术提高软件质量 ;
第4代语言,如查询语言、图形语言、报表生成语言、非常高级语言等,易使用,易理解,易修改,可维护性好。图null软件可维护性提高软件可维护性的方法:
提高软件可维护性,可从以下三个方面 着手:
1)建立明确的软件质量目标;
2)选择可维护的程序设计语言;
3)采用结构化技术提高软件质量 ;
模块化
结构化程序设计
整理完备的文档资料:包括系统开发日志、错误记载、系统维护日志、测试文档
null软件可维护性
高低第一代语言第二代语言第三代语言第四代语言机器语言汇编语言高级语言
FORTRANCOBOL \C
查询语言、报表生成语言、图象语言、应用生成语言可维护性程序设计语言对可维护性的影响返回null逆向工程与再工程什么是预防性维护
预防性维护工作主要针对一些多年前开发出来的“较老”的软件,这些软件的功能仍然能够满足人们的某些需求,但是,由于这些软件所采用的体系结构或数据结构等方面较差,用户在使用时存在一定困难,因此,需要对软件进行全面修改,以适应用户需求。
逆向工程与再生工程是目前预防性维护采用的主要技术。 null逆向工程与再工程什么是逆向工程
所谓软件的逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。逆向工程是对原有设计恢复的过程,使用逆向工程工具可以从已存在的程序中抽取数据结构、体系结构及各种有用的程序设计信息。
什么是再工程
再工程是在获得程序设计信息的同时,利用这些信息修改或重构软件系统的工作。根据用户的需求,软件人员利用再工程重新实现已有程序,同时增加新的功能或改进性能。