软件维护的定义:
1.在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。
2.维护的类型有三种:
(1)、改正性维护
(2)、适应性维护
(3)、完善性维护
影响维护工作量的因素:
1.在软件的维护过程中,需要花费大量的工作量,从而直接影响了软件维护的成本。
软件维护的策略:
(1)、改正性维护
目的是改正在开发周期间未能发现的遗留错误,并加以改正,大约占总维护量的20%。
(2)、适应性维护
指软件适应运行环境的改变而进行的一类维护,包括:
①、因硬件或支持软件改变引起的变化;
②、将软件移植到新机器上;
③、软件使用对象的较少改变
(3)、完善性维护
指提高软件性能和软件可维护性而对软件修改的过程,是软件维护中最主要部分,约占50%。
(4)、预防性维护
是J.Miuer首先提出的,为了给未来的改变奠定更好的基础而修改软件的维护活动,这项维护相对来说少些。
维护的成本:
有形的软件维护成本是花费了多少钱,无形的维护成本有更大的影响。
软件维护的特点:
1.非结构化维护;
2.结构化维护;
软件的可维护性:
一、影响可维护性的因素。
1、除了与开发方法有关的因素之外,以下因素会对可维护性有重要影响:
(1) 软件设计人员是否受到严格的规范化工作培训;
(2) 是否采用主流的编程语言;
(3) 是否采用主流的操作系统;
(4) 是否采用标准化的文档资料结构和文档形成机制;
(5) 是否保存规范化的测试资料。
软件可维护性的度量
1、可理解性
可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。一个可理解的程序主要应具备以下一些特性:模块化(模块结构良好、功能完整、简明),风格一致性(代码风格及设计风格的一致性),不使用令人捉摸不定或含糊不清的代码,使用有意义的数据名和过程名,结构化,完整性(对输入数据进行完整性检查)等。
2、可靠性
可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。关于可靠性,度量的标准主要有平均失效间隔时间(Mean Time To Failure,MTTF)、平均修复时间(Mean Time To Repair error,MTTR)、有效性 A。
度量可靠性的方法,主要有两类:
(1) 根据程序错误统计数字,进行可靠性预测。常用方法是利用一些可靠性模型,根据程序测试时发现并排除的错误数预测平均失效间隔时间 MTTF。
(2) 根据程序复杂性,预测软件可靠性。用程序复杂性预测可靠性,前提条件是可靠性与复杂性有关。
3、可测试性
(1)、可测试性表明论证程序正确性的容易程度。程序越简单,证明其正确性就越容易。而且设计合理的测试用例,取决于对程序的全面理解。因此,一个可测试的程序应当是可理解的、可靠的、简单的。
(2)、对于程序模块,可用程序复杂性来度量可测试性。程序的环路复杂性越大,程序的路
径就越多。因此,全面测试程序的难度就越大。
4、可修改性
(1)、可修改性表明程序容易修改的程度。一个可修改的程序应当是可理解的、通用的、灵活的、简单的。其中,通用性是指程序适用于各种功能变化而无需修改。灵活性是指能够容易地对程序进行修改。
(2)、测试可修改性的一种定量方法是修改练习。其基本思想是通过做几个简单的修改,来
评价修改的难度。
5、可移植性
可移植性表明程序转移到一个新的计算环境的可能性的大小,或者表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程度。一个可移植的程序应具有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能。
6. 效率
效率表明一个程序能执行预定功能而又不浪费机器资源的程度。这些机器资源包括内存容量、外存容量、通道容量和执行时间。
7. 可使用性
从用户观点出发,把可使用性定义为程序方便、实用及易于使用的程度。一个可使用的程序应是易于使用的、能允许用户出错和改变,并尽可能不使用户陷入混乱状态的程序。
8. 间接度量可维护性的方法
采用能够度量的维护活动的属性来间接地估计可维护性。吉尔(Gilb)提出了与维护工作量有关的可维护性度量,管理人员可以通过这类数据看出新技术和新工具的效能:
(1) 了解问题的时间;
(2) 行政管理拖延的时间;
(3) 收集维护工具的时间;
(4) 分析问题的时间;
(5) 改变规格说明的时间;
(6) 具体的改错或修改的时间;
(7) 局部测试时间;
(8) 整体测试时间;
(9) 维护重审时间;
(10) 总体恢复时间。
提高可维护性的方法
在每次软件复审时,都要考虑可维护性。提高软件的可维护性对于延长软件的生存期具有决定的意义,因此必须考虑如何才能提高软件的可维护性。为了做到这一点,需从以下几个方面着手。
1.建立明确的软件质量目标和优先级;
一个可维护的程序应是可理解的、可靠的、可测试的、可修改的、可移植的、效率高的、可使用的。
2.使用提高软件质量的技术和工具;
(1)、模块化和结构化程序设计。
模块化是软件开发过程中提高软件质量、降低成本的有效方法之一,也是提高可维护性的行之有效的技术。
结构化程序设计不仅使得模块结构标准化,而且将模块间的相互作用也标准化了,因而把模块化又向前推进了一步。采用结构化程序设计可以获得良好的程序结构。
(2)、使用结构化程序设计技术,提高现有系统的可维护性。
①.采用备用件的方法;
②.采用自动重建结构和重新格式化的工具(结构更新技术);
③.改进现有程序的不完善的文档;
④.使用结构化程序设计方法实现新的子系统;
⑤.采用结构化小组程序设计的思想和结构文档工具,使维护过程结构化。
3、进行明确的质量保证审查
质量保证审查对于获得和维持软件的质量,是一个很有用的技术。
4、验收检查。
验收检查是一个特殊的检查点的检查,是交付使用前的最后一次检查,是软件投入运行之前保证可维护性的最后机会。它实际上是验收测试的一部分,从维护的角度提出验收必须遵循的条件和最低标准。
(1) 需求和规范标准:需求应当以可测试的术语进行书写,排列优先次序和定义;区分必需的、任选的对系统运行时的计算机设备的需求;对维护、测试、操作以及维护人员的需求、测试工具的需求等。
(2) 设计标准:程序应设计成分层的模块结构,每个模块应完成唯一的功能,并达到高内聚、低耦合;通过一些知道预期变化的实例,说明设计的可扩充性、可缩减性和可适应性。
(3) 源代码标准尽可能使用最高级的程序设计语言,且只使用语言的标准版本;所有的代码都必须具有良好的结构;所有的代码都必须文档化,在注释中说明它的输入、输出以及便于测试、再测试的一些特点与风格。
(4) 文档标准:文档中应说明程序的输入/输出、使用的方法/算法、错误恢复方法、所有参数的范围以及缺省条件等。
5、周期性的维护审查
(1)、检查点复查和验收检查,可用来保证新软件系统的可维护性。
(2)、周期性维护审查实际上是开发阶段检查点复查的继续,并且采用的检查方法、检查内容都是相同的。
6. 选择可维护的程序设计语言
7. 健全程序的文档
在软件维护阶段,利用历史文档,可以大大简化维护工作。
历史文档有三种:
(1) 系统开发日志:记录了项目的开发原则、开发目标、优先次序、选择某种设计方案的理由、决策策略、使用的测试技术和工具、每天出现的问题、计划的成功和失败之处等。系统开发日志在日后维护人员想要了解系统的开发过程和开发中遇到问题时是非常必要的。
(2) 运行记录:把出错的历史情况记录下来,对于预测今后可能发生的错误类型及出错频率有很大帮助,也有助于维护人员查明出现故障的程序或模块,以便去修改或替换它们。此外,对错误进行统计、跟踪,可以更合理地评价软件质量以及软件质量度量标准和软件方法的有效性。
(3) 系统维护日志:记录在维护阶段对系统修改和相关信息。
软件维护的副作用
软件维护可能产生副作用,这里的副作用是指由于修改软件而引发的错误或发生其他不希望发生的情况。修改的内容不同,副作用也不一样。
1. 修改软件源程序的副作用
最危险的副作用是修改软件源程序而产生的,每当对一个复杂的逻辑过程做了一处修改,出错的可能性就增大了。下列对源程序的修改更易产生错误:
(1) 改变一个子程序、函数、变量定义;
(2) 为改进运行性能所作的修改;
(3) 改变了逻辑运算过程;
(4) 设计的变动造成了较大的程序变动;
(5) 改变了边界测试条件。
软件设计的详细文档
本文地址: http://www.goggeous.com/20250104/1/1177774
文章来源:天狐定制
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-08职业培训
2025-01-04 21:17:04职业培训
2025-01-04 21:17:02职业培训
2025-01-04 21:17:02职业培训
2025-01-04 21:17:01职业培训
2025-01-04 21:17:00职业培训
2025-01-04 21:16:59职业培训
2025-01-04 21:16:59职业培训
2025-01-04 21:16:50职业培训
2025-01-04 21:16:50职业培训
2025-01-04 21:16:49职业培训
2024-12-06 07:40职业培训
2024-12-09 12:57职业培训
2025-01-05 14:30职业培训
2024-12-16 01:22职业培训
2025-01-01 23:58职业培训
2024-12-17 23:50职业培训
2024-12-08 10:40职业培训
2025-01-08 03:53职业培训
2025-01-06 05:31职业培训
2024-12-27 20:53职业培训
扫码二维码
获取最新动态