首页 理论教育 会计电算化信息系统实现

会计电算化信息系统实现

时间:2022-11-24 理论教育 版权反馈
【摘要】:在完成了系统分析和系统设计的基础上,会计电算化信息系统的建立进入具体实现阶段。会计电算化信息系统程序设计就是要根据系统的模块结构图,使用具体的编程语言将功能模块转化成能在计算机上编译并执行的计算机程序。因此,一个实用的会计电算化信息系统应能通过修改源程序进行维护和改进。如会计电算化信息系统中,进行凭证记账操作时,要首先判断凭证是否已审核,如果还未审核,则不允许记账。

第四节 会计电算化信息系统实现

在完成了系统分析和系统设计的基础上,会计电算化信息系统的建立进入具体实现阶段。系统实现阶段的主要工作是程序设计,由程序设计人员根据系统模块图和模块说明书,自下而上地使用计算机编程语言编写系统的各个功能模块,并对完成的程序进行调试、测试,保证系统的正确运行。在系统试运行成功以后,完成新旧系统的转换,将系统设计付诸实现,同时编制程序说明书。

一、程序设计

计算机程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。会计电算化信息系统程序设计就是要根据系统的模块结构图,使用具体的编程语言将功能模块转化成能在计算机上编译并执行的计算机程序。根据软件工程学原理,程序设计除了应正确实现程序设计说明书中所规定的各项功能外,还必须具有一些良好的性能,以保证日后软件运行的稳定、高效和易维护。

(一)程序设计的原则

1.实现所有功能需求。这是对程序设计最基本的要求,如果还没有实现程序设计说明书上所要求的全部功能,则程序设计工作就还没有结束。

2.稳定性好。系统可能在各种各样的硬件和软件环境下运行,如果一出现硬件故障、软件故障或者输入错误数据,系统就发生崩溃无法再继续运行,那么这样的软件也是无法投入到实际应用中去的。因此,系统对于各种环境应具有一定的适应能力,具有备份、自我修复等功能,这样才能保证会计数据的安全和可靠。

3.可维护。系统在开发过程中,需要排错;在使用过程中,需要适应企业外部环境的变化,如人员变动、业务变更等。因此,一个实用的会计电算化信息系统应能通过修改源程序进行维护和改进。

4.运行效率高。运行效率包括系统的运行速度和存储效率,在满足程序设计基本原则的前提下,程序设计应尽量保证用最快的速度和最少的存储空间完成规定操作。

5.可读性好。程序开发工作往往不能由一个人独立完成,因此程序员编写的程序应能让其他相关程序设计人员理解,否则程序的测试、排错和修改工作将会变得异常困难。

6.编写程序设计文档。程序设计文档是软件评价、软件修改和软件维护工作的重要参考资料,因此必须有利于以后软件的改进和维护工作。

(二)程序设计方法

计算机应用早期,由于硬件资源有限,计算机内存和外存容量都很小,所以程序员不得不绞尽脑汁地通过各种编程技巧来节省内存存储空间,其结果是破坏了程序整体的结构和可读性。随着计算机硬件技术的飞速发展,计算机运算的速度越来越快,存储容量也越来越大,过去程序员所面临的硬件运算效率问题已经不复存在。如今,相对于程序运行效率,人们更关注的是程序整体结构的清晰、简明和可理解。大量的软件工程实践表明,逻辑上绝对正确但结构上杂乱无章的程序很难进行测试、纠错和维护。所以,在20世纪60年代末,计算机学界开始发展结构化程序设计(Structured Programming)方法。

结构化程序设计思想最早是由Edsger Dijkstra、Michael A.Jackson等人提出来的。它的主要观点是采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序,任何程序都由顺序、选择、循环三种基本控制结构组成;不使用GO TO语句。结构化程序设计的三种基本控制结构可以表示如下(见图8-19):

img266

图8-19 程序设计控制结构图

1.顺序结构。顺序结构的程序设计是最简单,也是最常用的,只要按照解决问题的顺序写出相应的语句即可,其执行顺序是自上而下,依次执行。

2.选择结构。选择程序结构用于判断给定条件,根据判断结果控制程序的流程。如会计电算化信息系统中,进行凭证记账操作时,要首先判断凭证是否已审核,如果还未审核,则不允许记账。

3.循环结构。根据循环判断条件,循环结构可以反复执行某一段程序直到该循环的循环条件不满足为止。循环结构可以减少源程序重复书写的工作量,充分发挥计算机运算性能高的特点。它一般由循环变量、循环体和循环终止条件三个要素组成。在会计电算化信息系统中,一个会计年度内各会计期间的账务处理工作就可以看作是一个大的循环结构。

使用结构化程序设计可以实现程序结构的模块化,加强程序的可读性和可维护性,其缺点是使用标准结构编程,有时会增加嵌套层数和语句,影响软件运行效率。

(三)程序设计步骤

在进行具体的程序设计之前,需要认真阅读系统设计说明书,了解新系统的运行环境,包括硬件和软件方面。在充分掌握了相关资料和信息之后,即可开始编写程序。计算机编程的主要步骤如下:

1.了解新系统的硬件、软件使用环境。这主要包括:

(1)计算机环境:CPU运行速度,内存容量,硬盘容量,输入输出设备等。

(2)操作系统:系统一般基于Microsoft Windows操作系统开发,开发前需要了解操作系统的具体版本号以及是否安装了最新的补丁程序。

(3)计算机编程语言:了解选用的计算机编程语言的特点和语法规则,是否支持结构化程序设计,是否支持所选用的数据库。

(4)数据库管理系统:了解系统配置了什么样的数据库,该数据库支持什么样的数据类型,支持多大的并发连接数,处理查询的速度如何,可以与哪些计算机程序设计语言连接等。

2.理解系统设计说明书。仔细阅读系统设计说明书,掌握系统设计所提出的任务、功能和目标,明确各个模块的程序设计在系统中所处的位置及与之相关的环境条件。

3.绘制程序框图。在编程之前,为了理清思路,有经验的程序员往往会先根据模块功能的处理流程画出程序框图。程序框图,也称为流程图,是由一些预先规定的图形和流程线组成的,用来描述算法的图形。它的主要表示符号和含义如表8-8所示,使用该表所示符号绘制银行对账单录入流程如图8-20所示。

表8-8 程序框图的表示符号

img267

4.编程。完成上述三步工作以后,即可以开始编程实现工作。编程在程序设计的各个步骤中花费时间最长,所需工作量最大。由于对具体的编程技术的介绍超出了本书的范围,因此本书不对此项步骤做过多阐述,有兴趣的读者请参阅相关软件编程技术书籍。

img268

图8-20 银行对账单录入流程图

5.程序调试。编程工作中,难免会出现各种各样的错误,这些错误包括语法错误、逻辑错误和输入输出格式错误等。必须由编程人员将这些错误一一排除,才能保证系统能正常运行。

二、软件测试工作

尽管在会计电算化信息系统的分析、设计、实施过程中使用了各种各样的先进技术,但是由于软件是复杂的、知识高度密集的逻辑产品,没有人能保证工作中不出错。因此,系统中必定存在各种各样的错误,需要对系统进行测试。软件测试是保证系统质量、提高系统可靠性的最重要和最关键的工作之一。据统计,一般软件的测试工作量往往占软件开发总工作量的40%以上,对于一些安全性、稳定性要求高的特殊软件,其软件测试费用甚至占整个软件开发成本的60%~80%。

(一)软件测试概述

软件测试是在不同条件下通过运行程序来发现程序中存在的错误,或者说软件测试是根据软件的设计说明书和软件的内部程序结构而设计一批测试用例,并利用这些测试用例去运行程序,以发现软件错误的过程。

所谓的测试用例是为了测试软件而人为设计的一组数据。设计测试用例时,除了需要设计用例的输入数据以外,还需要预计软件运行测试用例后的预期输出。预期输出的作用是和程序执行后的实际输出结果相比较,如果结果相符,表明未发现软件错误,如果不符,则软件的测试部分可能就存在尚未发现的错误。根据软件工程学原理,软件测试具有如下特点:

1.软件测试是一个查找错误的过程。因此,软件测试只能证明错误的存在。如果系统经过软件测试没有发现错误,只能说明系统中潜在的错误还没有被找到,不能证明系统无错。

2.软件测试只是一种手段,其根本目的在于纠正软件中的错误,提高软件的质量。

3.软件测试受时间和经济条件的制约,不可能测试所有的运行条件,因此也就不可能发现软件中存在的所有错误,只能尽可能地发现错误。

4.软件测试的目的是以最少的人力、物力和时间的投入,尽可能多地发现软件中的各种错误。

(二)软件测试的原则

根据软件测试的目标,软件测试的原则可归纳如下:

1.所有软件测试都应追溯到系统功能设计要求。软件测试的目的在于揭示错误,程序如果不能实现最初的设计功能就是最严重的错误。

2.尽早制定测试计划。系统开发工作分若干个环节,每个环节都可能出现错误。错误发现得越早,则越容易解决,付出的代价也越低。因此应将测试计划贯穿到整个系统开发过程中,尽早发现错误,及时纠正,提高软件质量。

3.应由第三方进行软件测试工作。严格地说,一个软件项目的开发人员不应该同时是该软件的测试人员。基于心理因素,人们往往不愿意否定自己的工作。为了得到最好的测试效果,应由第三方人员对软件进行客观、严格的独立测试。

4.穷举测试是不可能的。穷举测试是试图输入一切有可能的数据,让程序都执行一遍。由于各种条件的限制,这实际上是不可能的。应该选取有代表性、典型的数据作为测试用例。

5.测试应该从“小规模”到“大规模”。通常,最初的测试重点往往是放在单个程序模块中,然后,进一步的测试重点放在子系统,最后才对整个系统进行测试。随着测试的逐步深入展开,要集中测试最容易出错的地方。

(三)软件测试方法

软件测试应该贯穿于整个软件开发过程。软件测试的对象除了包括源程序以外,还应该包括系统设计、分析文档和其他一切相关的计算机程序。软件测试方法一般可以分为静态测试和动态测试两类。

1.静态测试方法

静态测试方法实际上是确认给定的外部环境中软件的逻辑正确性,一般不通过计算机执行程序来测试程序,而是通过人工分析或是逻辑证明来确认软件的正确性。它包括下面几种方法:

(1)人工测试方法:通过人工阅读分析以及评审系统设计文档、程序资料等,以发现程序中的错误。根据统计,好的人工评审可以发现30%~70%的编码和逻辑分析错误。

(2)程序正确性证明:使用推理和判断,从逻辑上证明程序是没有错误的。

2.动态测试方法

动态测试也称为机器测试。动态测试主要是通过程序测试来检查程序的执行状态,以确认程序的正确性。常用的动态测试方法有白盒测试法和黑盒测试法。如果了解系统的内部逻辑结构,针对某些特定条件设计测试用例,对软件的逻辑路径进行测试,可以采用白盒法;如果不完全了解系统内部结构,而只是了解系统设计的功能,则可以采用黑盒法测试系统的各个功能是否被完整正确地执行。

(1)白盒测试法。白盒法测试者完全了解程序的内部结构和处理过程,他从程序的逻辑结构出发,按照程序内部逻辑结构测试和检验程序。最彻底的白盒法应测试程序执行的每一条路径。

(2)黑盒测试法。黑盒法很少涉及软件的内部结构,以程序的功能作为测试的依据对程序进行测试。测试者要研究软件设计说明和设计的有关功能、性能和输入输出之间的关系,并根据测试结果与期望的结果进行对照分析。软件测试人员将程序看作一个黑盒,完全不考虑程序的内部结构和处理过程,只从程序接口进行测试,检查程序是否完成所规定的功能,是否可以很好地接受输入数据,产生正确的输出结果。

三、系统调试

会计电算化信息系统的质量必须在系统开发的各阶段采取必要的质量保证措施来达到。程序测试完成以后,需要进一步检测各模块与系统之间是否能有序配合,达到规定的质量标准,系统调试一般分为分调和联调两个阶段。

(一)分调

分调是对单个模块的测试,是整个系统调试的基础,通常在编码阶段进行。由于结构化软件都由各种模块组合而成,因此进行整体系统调试应先集中精力调好每个模块,然后再将其连结成较大模块或子系统,以便进行联合调试。分调的目的是为了检查各模块实现的功能,考察模块接口和内部结构,发现并排除编程和详细设计阶段的错误,其调试的依据是模块功能说明书和程序编制要求。

(二)联调

联调通常也称为系统调试,它是在分调成功的基础上,连接各模块或子系统进行系统总体调试,主要检查系统的接口是否合理,功能是否达到了设计要求,调试依据是系统说明书。联调的方法分“自顶向下”和“自底向上”两种。所谓的“自顶向下”是先测试主控模块,然后逐步逐个地添加下级模块进行测试,直到所有模块都连接起来进行测试完毕为止。“自底向上”则是先将一个或多个模块组成模块组或子系统,然后分别调试各个模块组,待各模块组调通以后,再对各个模块组进行连结测试整个系统。在实际调试过程中,往往将这两种方法结合起来使用。

四、系统试运行

系统调试工作结束以后,即可以开始新系统的试运行。新系统的试运行时间一般定为企业会计年度的期末,如每年的10月份到12月份。由于年底处理的会计业务,数据量大,种类繁多,因此可以比较有效地检验新系统的性能和工作质量。在试运行前,应准备好系统运行所需的手工账务资料,如各会计科目的上月余额和年累计发生额。部分原有的手工会计单据、账表应进行加工以适应计算机数据处理的需要。系统试运行通过以后,还必须经过评审、验收、领导同意以后才能进入正式运行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈