管理信息系统在实施阶段结束,并投入正常运行后,就进入了系统运行和维护阶段。一般管理信息系统的使用寿命,短则4~5年,长则可达10年以上。在系统的整个服务期内都伴随着系统维护工作的进行。
系统维护是指在系统运行中,为了适应环境的变化,保证系统能持续、正常且可靠运行而从事的各项活动。因此系统维护就是为了保证系统中的各个因素随环境的变化始终处于良好、正确的工作状态。系统维护工作属于“继承性”工作,挑战性不强,成绩不显著,使很多技术人员不安心系统维护工作,从而导致有些信息系统在运行环境中长期与旧系统并行运行不能转换,甚至最后被废弃。所以,系统维护是系统生命周期中一个很重要的阶段,它是系统可靠运行的重要技术保障,是新系统是否具有长久生命力的决定因素,应给予足够重视。
20年来,系统维护的成本逐年增加。现在,在整个生命周期中2/3以上的经费用在维护上,所以有人称系统维护是“水下坚冰”。从人力资源的分布看,目前约有90%的软件人员在从事系统的维护工作,开发新系统的人员仅占10%。这些统计数字说明系统维护任务是十分繁重的。重开发、轻维护是造成我国信息系统低水平重复开发的原因之一。
1.维护的内容
系统维护包括以下几方面的内容:
(1)程序的维护
在系统维护阶段,会有一部分程序需要改动,因此,程序的维护指改写一部分或全部程序,程序维护通常都充分利用原有程序。程序维护一般适用于以下几种情况:
①根据运行记录,发现的程序错误需要改正。
②随着用户对系统的熟悉,用户有更高的要求,部分程序需要改进。
③环境发生了变化,部分程序需要修改。
修改后的程序,必须在程序首部的序言性注释语句中进行说明,指出修改的日期、人员。同时,必须填写程序修改登记表,填写内容应包括:所修改程序的所属系统名、程序名、修改理由、修改内容、修改人、批准人和修改日期等。
(2)数据文件的维护
数据文件维护是指不定期的对数据文件或数据库进行维护和修改。业务发生了变化,从而需要建立新的数据文件,或者对现有的文件结构进行修改。因此,数据维护的内容主要是对文件或数据库中的记录进行增加、修改和删除等操作,通常采用专用的维护程序模块来进行上述工作。
(3)代码的维护
随着用户环境的变化,原有的代码已经不能继续适应新的要求,这时就必须对代码进行变更。代码的变更(即维护)包括订正、添加和删除等内容。当有必要变更代码时,应由现场业务经办人和计算机有关人员组成专门的小组进行讨论制定,用书面格式写清并事先组织有关使用者学习,然后输入计算机并开始实施新的代码体系。代码维护过程中的关键是如何使新的代码得到贯彻。
(4)机器、设备的维护
管理信息系统正常运行的基本条件之一就是保持计算机及其外部设备的良好运行状态。因此,计算机室应建立相应的规章制度,有关人员要定期对设备进行检查和保养,应设立专门设备故障登记表和检修登记表,以便设备维护工作的开展。
2.维护的类型
根据信息系统需要维护的原因不同,系统维护工作可分为四种类型:
(1)更正性维护
更正性维护主要是指由于发现系统中的错误而引起的维护。工作内容包括诊断问题与改正错误。
(2)适应性维护
适应性维护是指为了适应外界环境的变化而增加或者修改系统部分功能的维护工作。例如,新的硬件系统问世,操作系统版本更新,应用范围扩大。为适应这些变化,信息系统需要进行相应的维护。
(3)完善性维护
在系统的使用过程中,由于业务处理方式和人们对管理信息系统功能需求的提高,用户往往会提出增加新功能或者修改已有功能的要求,例如修改输入格式,调整数据结构,加强系统的安全保密措施等等。为了满足这类要求就需要进行完善性维护。
(4)预防性维护
预防性维护是指采取主动的预防性措施。对于一些使用寿命较长,目前尚能正常运行,但可能要发生变化的部分进行维护,以适应将来的调整或修改。例如将专用报表功能改成通用报表功能,以适应将来报表格式的变化。(www.xing528.com)
四类维护工作所占的比例如图7-7所示。
图7-7 四类维护工作的比例
3.系统的可维护性
系统能否被很好的维护,可用系统的可维护性这一指标来衡量,定性的定义为维护人员理解、改正、改变和改进这个系统的难易程度。
系统的可维护性可通过以下三点因素来定性衡量:
(1)可理解性
指别人能理解系统的结构、界面功能和内部过程的难易程度。模块化、详细设计文档、结构化设计和良好的高级程序设计语言等,都有助于提高系统的可理解性。
(2)可测试性
诊断和测试的容易程度取决于易理解的程度。好的文档资料有利于诊断和测试,同时程序的结构、高性能的调试工具以及周密计划的测试工序也是至关重要的。为此,开发人员在系统设计和编程阶段就应尽力把程序设计成易诊断和测试的。在系统维护时,应该充分利用在系统调试阶段保存下来的测试用例来进行测试。
(3)可修改性
系统修改的难易程度与系统设计所制定的设计原则有直接关系。作用范围与控制范围的关系等,都对可修改性有影响。
上述可维护性诸因素之间有密切联系。事实上,维护人员无法修改他不理解的程序,同样如果不进行完善的诊断和测试,看起来是正确的修改也有可能产生其他错误。
4.维护过程
不少人认为系统的维护要比系统开发容易得多,因此,维护工作不需要预先拟定方案或加以认真准备。实际情况并不是这样,在许多情况下,维护比开发更为困难,需要更多的创造性工作。首先,维护人员必须用较多时间理解别人编写的程序和文档,并且对系统的修改不能影响该程序的正确性和完整性。其次,整个维护的工作又必须在所规定的很短时间内完成。
图7-8简要说明了维护活动的全过程,从图中可以看出,在某个维护目标确定以后,维护人员必须先理解要维护的系统,然后建立一个维护方案。由于程序的修改涉及面较广,多处修改很可能会影响其他模块的程序,所以建立维护方案时需加以考虑的重要问题是修改的影响范围和波及作用。按预定方案完成修改后,还要对程序及系统的有关部分进行重新调试,若调试发现较大问题则要重复上述步骤。若通过,则可修改相应文档并结束本次维护过程。
图7-8 维护活动过程
必须强调的是,维护是对整个系统而言的。因此,除了修改程序、数据、代码等部分以外,必须同时修改涉及的所有文档。
如前所述,程序的维护是系统维护的主要工作,为了正确和有效地修改程序,必须遵守以下原则:
(1)在进行任何改变(即使改变一行源程序)以前,必须理解程序中的全部控制逻辑。
(2)进行改变时要非常慎重。
(3)所做的改变不要比需要的改变多。
(5)在调试时充分利用以前留下的测试用例。
(6)对改变的内容、原因和有关说明进行记录,同时应保存修改前的程序版本。
在改变程序的过程中,维护人员往往把注意力集中到改变部分,而忽视了系统中未改变部分,这就容易引起某些“连锁反应”式的错误,因此必须加以注意。此外,对于改变后的程序进行调试和确认是非常必要的。一些研究报告指出,一次修改的成功率很低。据统计,若进行不超过10个语句的修改,一次修改的成功率是50%。当修改约50个语句时,一次修改的成功率就下降到20%。这也从另外一个角度说明了维护工作的困难程度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。