一、系统维护概述
软件维护是软件生命周期中的最后一个阶段,处于系统投入生产性运行以后的时期中,因此不属于系统开发过程。
软件维护是在软件已经交付使用之后为了改正错误或满足新的需求而修改软件的过程,即软件在交付使用后对软件所做的一切改动。
1-1、软件可维护性概念
系统的可维护性可以定义为维护人员理解、改正、改动和改进这个软件的难易程度。提高可维护性是开发软件系统所有步骤的关键目的,系统是否能被很好地维护,可以用系统的可维护性这一指标来衡量。
1、系统可维护性的评价指标
1)可理解性。
指别人能理解系统的结构、界面、功能和内部过程的难易程度。模块化、详细设计文档、结构化设计和良好的高级程序设计语言等都有助于提高可理解性。
2) 可测试性。
诊断和测试的容易程度取决于易理解的程度。好的文档资料有利于诊断和测试,同时,程序的结构、高性能的测试工具以及周密计划的测试工序也是至关重要的。为此,开发人员在系统设计和编程阶段就应尽力把程序设计成易诊断和测试的。此外,在进行系统维护时,应该充分利用在系统测试阶段保存下来的测试用例。
3) 可修改性。
诊断和测试的容易程度与系统设计所制定的设计原则有直接关系。模块的耦合、内聚、作用范围与控制范围的关系等都对可修改性有影响。
耦合、内聚、作用范围与控制范围 = 结构化开发
2、真题
真题1:
真题2:
可移植性 = 软件质量特性
真题3:
一致性 = 软件质量特性
1-2、软件维护与软件文档
文档是软件可维护性的决定因素。由于长期使用的大型软件系统在使用过程中必然会经受
多次修改,所以文档显得非常重要。
软件系统的文档可以分为:用户文档、系统文档两类。用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的;系统文档描述系统设计、实现和测试等各方面的内容。
可维护性是所有软件都应具有的基本特点,必须在开发阶段保证软件具有可维护的特点。在软件工程的每一个阶段都应考虑并提高软件的可维护性,在每个阶段结束前的技术审查和管理复查中应该着重对可维护性进行复审。
软件维护比软件开发的时间长!
1、真题
真题1:
真题2:
真题3:
1-3、软件文档
编写高质量文档可以提高软件开发的质量
文档也是软件产品的一部分,没有文档的软件就不能称之为软件。
软件文档的编制在软件开发工作中占有突出的地位和相当大的工作量,高质量文档对于软件产品的效益有着重要的意义
总的来说,软件文档只好不坏,选项中说软件文档不好的就是不正确的。
1、真题
真题1:
真题2:
真题3:
真题4:
真题5:
1-4、系统维护的内容及类型
系统维护主要包括:硬件维护、软件维护、数据维护。
1、软件维护
软件维护主要是指,根据需求变化或硬件环境的变化对应用程序进行部分或全部修改。修改时应充分利用源程序,修改后要填写程序修改登记表,并在程序变更通知书上写明新旧程序的不同之处。
软件维护的内容一般有以下几个方面:
(1) 正确性维护。
正确性维护是,指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。这方面的维护工作量要占整个维护工作量的 17%~21%。所发现的错误有的不太重要,不影响系统的正常运行,其维护工作可随时进行;而有的错误非常重要,甚至会影响整个系统的正常运行,其维护工作必须制定计划,进行修改,并且要进行复查和控制。
(2) 适应性维护。
适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。这方面的维护工作量占整个维护工作量的 18%~25%。由于目前计算机硬件价格不断下降,各类系统软件层出不穷,人们常常为改善系统硬件环境和运行环境而产生系统更新换代的需求;企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。这些因素都将导致适应性维护工作的产生。进行这方面的维护工作也要像系统开发一样,有计划、有步骤地进行。
(3) 完善性维护。(比重大!)
这是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。这些功能对完善系统功能是非常必要的。另外,它还包括对处理效率和编写程序的改进,这方面的维护占整个维护工作的50%~60%,比重较大,也是关系到系统开发质量的重要方面。这方面的维护除了要有计划、有步骤地完成外,还要注意将相关的文档资料加入到前面相应的文档中。
(4) 预防性维护。
为了改进应用软件的可靠性和可维护性,为了适应未来的软/硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。例如将专用报表功能改成通用报表生成功能,以适应将来报表格式的变化。这方面的维护工作量占整个维护工作量的 4%左右。
2、真题
真题1:
真题2:
真题3:
真题4:
改善性能
真题5:
真题6:
真题7:
真题8:
真题9:
真题10:
真题11:
真题12:
真题13: