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

会计电算化信息系统设计

时间:2022-11-24 理论教育 版权反馈
【摘要】:会计电算化信息系统设计建立在会计电算化信息系统分析的基础之上。在保证实现新系统的全部功能和目标的前提下,设计人员需要权衡各种技术实现手段和处理方法,尽可能地提高会计电算化信息系统的安全性、可靠性、稳定性和可扩展性。可维护性指维护人员对该系统进行维护的难易程度。由于建立会计电算化信息系统往往是企业建立ERP系统的前奏,因此在建立新系统时,应为日后可能的扩展留下必要的接口。

第三节 会计电算化信息系统设计

会计电算化信息系统设计建立在会计电算化信息系统分析的基础之上。系统分析阶段,分析者的任务是了解情况、分析情况、提出系统逻辑模型,解决“做什么”的问题。系统设计阶段,系统设计人员根据系统分析建立的逻辑模型,综合各种技术、经济、管理等方面的条件,建立新系统的物理模型,即解决“怎么做”的问题。在保证实现新系统的全部功能和目标的前提下,设计人员需要权衡各种技术实现手段和处理方法,尽可能地提高会计电算化信息系统的安全性、可靠性、稳定性和可扩展性。

一、系统设计的任务和要求

(一)系统设计的任务

系统设计的主要任务是建立系统的物理模型,确定系统由哪些部分组成,各个组成部分之间如何通信和联系。一般而言,系统设计包含两个步骤:第一个步骤是总体设计,将系统分解为若干个子系统,给各子系统分配合适的功能,使各个子系统相互联系、相互配合,共同完成系统目标;第二个步骤是详细设计,针对每一个具体的子系统,根据其功能、作用和使用目的,选择合适的手段和方法进行技术实现。概括地讲,总体设计的目的是为了完成系统分解,详细设计的目的是定义每个子模块的功能、算法和内部特征,它包括存储文件设计、编码设计和系统输入输出设计等。

(二)系统设计的要求

新系统的设计可以有多种不同的方案,但任何可行的实现方案必须满足下述几项基本要求:

(1)满足用户要求。这是系统设计的最基本要求,是衡量会计信息系统开发是否成功的最基本标准。

(2)实用性。实用性指系统提供的会计信息应该准确、有用、完整和可理解、

(3)安全可靠性。安全可靠性指系统对外界干扰的抵御能力和自我修复能力,如系统的自动校错、容错和纠错能力,系统的密码保护功能等。这一要求可以用“平均故障间隔时间”来衡量,平均故障间隔时间越长,则系统的安全可靠性越好。

(4)简便性。简便性指在满足系统的全部功能和目标的前提下,系统的处理流程和操作方法应尽量简单实用,易于操作人员掌握。这样不仅可以提高工作效率,而且可以避免因为采用复杂的系统结构而导致的故障率升高。

(5)可维护性。可维护性指维护人员对该系统进行维护的难易程度。由于系统在使用过程中,难免会出现硬件或软件环境的变化,如更换硬件设备、更换操作软件等,因此可维护性好的系统对外界环境变化的适应能力更强。

(6)可扩展性。由于建立会计电算化信息系统往往是企业建立ERP系统的前奏,因此在建立新系统时,应为日后可能的扩展留下必要的接口

(7)齐全的设计文档。系统设计阶段的成果是系统设计说明书,它是以后系统实施和系统评审阶段的依据和参考资料,因此必须齐全完整。

二、系统的总体设计

早期的计算机软件项目大多是解决简单独立的问题,程序员在开发软件之前,往往先用数据流图来描述业务流程,然后就开始进行实际的开发工作。对于简单问题,这种只关注业务流程,而不考虑系统具体实现方式的软件开发模式是可行的。然而随着人们处理的问题的日益复杂化,人们逐渐发现对于一些复杂系统,除了要给其建立逻辑模型之外,还必须要对它们的物理实现方式进行详细的设计,否则即便所建的逻辑模型是合理的,最后也难以从物理上去实现既定的逻辑模型,或者实现结果不理想,达不到预定目标。

从20世纪70年代起,西方国家综合各种系统开发的经验,提出了多种标准的系统开发方法,其中结构化设计是最有影响的系统设计方法之一。

(一)结构化设计方法

结构化设计(Structured Design)方法,是由美国的L.Constantine等人提出的,它与系统分析中的结构化分析方法相衔接,用于从系统分析数据流图中导出系统模块结构图,是系统总体设计中最常用的方法。结构化设计在设计过程中重视系统的结构构造,强调组成系统的模块、数据、功能、结构以及它们之间的接口。在设计过程中,它以低耦合、高内聚度作为模块划分的原则,先将系统划分为若干个大模块,每个模块实现其中一部分功能,再将各大模块继续划分为较小模块,直至每个模块功能单一。模块之间相互联系、相互配合,共同完成系统的全部功能。因此,结构化设计体现了“自顶向下,逐步求精”的设计思想。

1.结构图

结构化设计使用结构图来精确表达系统结构和系统中模块间的层次关系和联系。结构图以特定的符号表示模块、模块间的调用关系和模块间的通信。结构图中的主要内容包括:

(1)模块:以矩形表示,其中标有模块名字,也可在矩形中简要地指明模块的功能或功能名的简称,如图8-6所示。

img250

图8-6 模块示意图

(2)模块间的调用关系。从一个模块指向另一个模块的箭头表示前一个模块调用后一个模块,如图8-7所示。根据惯例,由于总是图中位于上方的模块调用下方的模块,所以不画箭头也不会产生歧义。因此为了简单起见,可以只用直线而不用箭头表示模块间的调用关系。

img251

图8-7 模块调用关系

(3)通信数据。调用模块和被调用模块之间会有数据传递,通常的数据传递有两种。一种是控制信号,用于确定调用下属哪个模块或者执行哪种功能,这种数据只有两种状态,“是”或者“否”,即在模块之间传递一个逻辑变量“True”或者“False”;另一种是数据,用来传递一般的信息,其名称标示在调用箭头旁,传递的变量可以是一般变量,也可以是数据结构,如图8-8所示。控制信号和数据的图形表示方法如表8-6所示。

2.模块划分的原则

结构化设计是将一个大系统划分为若干个功能模块,每个功能模块再划分为若干个子模块,自顶向下,层层分解,完成系统的全部功能。如何划分系统的模块,并没有绝对的标准。同样一个系统,可能有好几种可行的划分方案,让不同的设计人员考虑,可能会得到不同的结果。但一般而言,划分模块时,需要考虑下列几个原则:

(1)模块的独立性。模块独立性的强弱会极大地影响系统完成的质量。模块相对独立,那么在设计和开发时,就不需要考虑模块以外的问题,这样既减少了出错几率,又加快了开发进度。因为模块独立,所以在开发过程中即使出现了问题,也容易判断出出错模块,从而在局部范围内解决问题。

(2)低耦合性。耦合是模块之间联系紧密程度的度量。模块间联系越多,则系统的耦合性越强,模块间的独立性越差。两个模块之间耦合的强弱取决于模块之间的连接方式和传递数据的复杂程度。模块之间传递的数据越多,则其接口越复杂。设计中应尽量使用松散耦合的结构,这样每个模块都容易理解、编程、测试和维护,而且模块中的错误也不容易扩散到其他模块,有助于提高模块的稳定性。耦合大致可以分为如下几类:

img252

图8-8 模块调用示意图

①无耦合。如果两模块之间没有任何联系,每一个都能独立地工作而不需要另一模块的存在,是彼此完全独立的,则这两个模块间属于无耦合的情况。

②数据耦合。当一个模块通过一个数据结构向另一个模块传递信息并且所传递的只是数据时,则这两个模块之间存在数据耦合关系。数据耦合关系是一种最简单的耦合关系,如果两个模块之间必须存在某种耦合关系时,数据耦合是最理想的。

③戳耦合。当一个模块通过一个数据结构向另一个模块传递信息并且该数据结构本身必须被传递,则这两个模块之间存在戳耦合关系。在戳耦合关系中,两个交互模块之间传递的数据类型必须完全匹配。

④控制耦合。当一个模块通过传递参数来控制另一个模块的行为时,则这两个模块之间存在控制耦合关系。为了使得模块之间的结构简单、传递参数少,在具有控制耦合关系的设计中,应尽量让每个模块只完成一个功能或执行一个过程。

⑤公共耦合。当设计中存在一个允许多个模块共同访问的公共数据存储单元,访问同一个数据存储的模块之间的关系就是公共耦合关系。一旦公共数据发生变化,则所有访问该公共数据的模块可能都要相应地受到影响,而且很难确定哪一个模块修改了公共数据,因此公共耦合属于比较强的耦合关系。

⑥内容耦合。一种最强的,同时也是设计中最不希望出现的一种耦合关系。具有这种耦合关系的两个模块实际上是一个模块修改了另一个模块的内容,被修改的模块完全依赖于修改它的模块。修改行为可能是一个模块修改了另一个模块的内部数据结构,也可能是控制流从一个模块直接跳转到另一个模块。内容耦合是耦合性最高的耦合,是模块间最坏的联系方式,现在大多数高级程序设计语言中已经不会出现这种耦合。

模块在系统中不是孤立存在的,它们相互联系、彼此配合。每个模块具有一定的功能并区别于其他模块,在调用中互相传递参数并发生联系。采用结构化设计,模块之间的耦合是不可避免的,但是模块之间联系越多、越复杂,则彼此之间的依赖程度就越高,独立性越差,这样系统结构就不好,牵一发而动全身,系统可靠性就变差,维护困难。所以在进行设计时,应尽量采取以下原则:以数据耦合为主,戳耦合为辅,少用控制耦合,限制公共耦合,杜绝内容耦合。

(3)高内聚性。耦合度量的是多个模块之间的相互依赖程度,而内聚度量的是一个模块内部各成员之间的联系紧密程度。一个模块的内聚性越好,则其内部各成员之间的相互联系越紧密,成员与模块所实现的功能越相关。按照内聚性从强到弱的顺序,内聚性可以分为功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚和偶然内聚7种类型。

①功能内聚:最理想的内聚类型是功能内聚。即模块中的每一个元素对于实现模块功能都是必需的,并且实现模块功能必需的所有元素都已经包含在模块内部。具有功能内聚特性的模块完成且仅完成指定的设计功能。

②顺序内聚:如果模块内部一个部分的输出恰好是另一个部分的输入,则称该模块是顺序内聚的。由于顺序内聚没有考虑功能相关性,因此,具有顺序内聚性的模块可能并没有包含与其功能相关的所有处理元素。

③通信内聚:有时候,在程序设计时,会将一些输出同样或相近的数据集合的函数或功能安排在同一个模块中,这样组织的模块就称为通信内聚。值得注意的是,具有通信内聚的模块虽然设计和实现起来比较方便或可以提高程序运行的效率,但是通信内聚性常常破坏模块独立性和功能独立性。

④过程内聚。如果一个模块内的处理元素是相关的,而且必须以特定的次序执行,则称为过程内聚。使用数据流图来确定系统模块划分时,常常得到具有过程内聚性的模块。

⑤时间内聚。如果一个模块包含的任务必须在同一段时间内执行(如模块完成各种初始化任务),除此之外,这些任务之间没有任何逻辑联系,则称为时间内聚。

⑥逻辑内聚。几个逻辑相似的功能或数据元素被安排在一个模块里,则称为逻辑内聚。例如我们可以设计一个输出模块,给各种外部设备输出信息。这些输出信息可能具有不同的使用目的,被不同的外部设备使用,功能上并不相关。将它们放在一个模块里仅仅是为了统一处理。

⑦偶然内聚。如果一个模块完成一组任务,这些任务之间没什么联系,则称为偶然内聚。偶然内聚往往是为了简化程序设计结构而形成的。比如某些语句会经常地被其他模块调用,为了方便起见,我们将这些语句集成为一个模块以节省内存空间,但这些语句之间可能并不存在必然的依赖关系。

功能内聚、顺序内聚和通信内聚模块属于高内聚模块,在设计时应尽量采用。低内聚模块由于结构松散,可读性、可重用性和可维护性都比较差,因此在设计时应尽量避免。

内聚和耦合是衡量模块独立性的两个方面,它们相辅相成。对某个特定功能而言,将与其相关的成分组合在一起,与其无关的成分排除在外,则模块内聚必然加强,而模块间的耦合必然减弱。

(4)建立公用模块。减少冗余模块,减少不必要的重复工作。例如在总账系统中,执行自动转账和设置辅助核算往往都需要使用企业的客户信息,因此可以将企业的客户信息设为一个独立的模块供其他模块调用。

(5)模块的规模适中。模块的大小没有统一的规定,一般以不超过100行源程序,能打印在一张纸上为宜。这样可以让一个程序员承担整个模块的开发、测试和维护工作。模块也不宜太小,因为太小难以实现预定功能。

(6)模块的扇入、扇出、深度和宽度要适当。如图8-9所示,扇入指直接调用该模块的上级模块数,扇出指该模块直接调用其下级模块的个数。

img253

图8-9 软件结构示意图

深度表示模块结构图中各级模块的层数,宽度表示同一层次中模块的最大个数。深度往往能粗略地表示一个系统的大小和复杂程度。深度和程序长度之间有粗略的对应关系。如果层数过多则应该考虑软件结构中许多管理模块是否过于简单;层数太少则应该考虑系统由顶向下从抽象到具体的分解是否太快了。同样,宽度越大软件结构越复杂。对宽度影响最大的因素是各级模块的扇出。

扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块,除非该模块的功能属于“选择”或“分类”(如含有case语句或if语句等),否则应适当增加中间层次的控制模块,使扇出数合适。依据经验,一个好的软件系统,平均扇出往往在3~4之间。扇入越多则共享该模块的上层模块数目越多,这往往说明模块共享性好,复用性高。特别对于服务性功能模块,比如“凭证查询”界面,被调用越多越好。但是,也不要违背模块独立性而片面地追求高扇入。

一般来说,一个好的软件结构应该具有层次性(呈腰鼓形),最高层模块只有一个,上层模块调用次一层模块,同层模块互不调用,上层模块也不能越层调用,最下层模块完成基本操作。这样软件结构的顶层扇出比较高,中层扇出较少,底层扇入到公共的使用模块中去。

(7)模块的作用域应保持在模块的控制域之内。模块的作用域是指受该模块内一个判定影响的模块的集合。模块的控制域是该模块本身及其直接或间接的下属模块的集合。一个好的软件结构中,所有受判定影响的模块都应从属于做出判断的模块,最好是直接下属模块。这样就能保证模块对系统做出的变化可以被该模块所控制,不会波及其他无关模块,有利于系统的纠错和维护。

(8)优化程序效率。结构化设计将系统设计为各种功能单一、相互联系又相对独立的模块的组合,这种结构易于理解、测试和维护,但也需要执行很多过程调用语句。根据实际测量,过程调用语句的执行时间平均约占系统执行时间的5%,因此这种开销是微不足道的。由于结构化设计可以消除重复功能,加快开发进度,方便软件排错和维护,所以以少量的程序执行时间的开销换取品质优良的系统是完全值得的。如果程序的效率因此不能满足用户的性能要求,则可以考虑优化个别模块的程序设计结构,例如改进模块的算法或使用汇编语言编写部分功能以提高目标代码的执行效率,或者提升硬件配置的整体性能,而不能因为系统运行效率不理想,而破坏结构化程序设计结构。

三、结构化设计技术

在系统分析阶段,用结构化分析方法得到了描述系统逻辑功能的数据流图。结构化设计技术指的是依照结构化设计思想和原则,将数据流图映射为系统的模块结构图。为了有效地实现从数据流图导出模块结构图,结构化设计总结了一般的导出步骤:

1.复审数据流图,必要时对原逻辑模型进行修改。

2.根据数据流图的结构和特征,判断它属于变换型数据流图还是事务型数据流图。

3.按照结构化设计的原则,将数据流图导出为相应的模块结构图。

4.进一步优化和改进初始的模块结构图。

典型的数据流图分为两种,一种是变换型,另一种是事务型。与此相对应,模块结构图也分为变换型和事务性两种,分别由对应的数据流图转换得到。

(一)数据流图的类型

1.变换型数据流图。如图8-10所示,以变换为中心,由输入、主处理、输出(In-put-Process-Output,IPO)三部分组成。主处理的输入数据流称为逻辑输入,主处理的输出数据流称为逻辑输出。主处理是加工变换的中心,它对输入的逻辑输入流进行加工变换后,转换成逻辑输出流。

img254

图8-10 变换型数据流图

2.事务型数据流图。如图8-11,以事务为中心,一个中心处理将其输入数据流分离成一串平行的输出数据流。

img255

图8-11 事务型数据流图

(二)模块结构图的类型

1.变换型结构图。变换型结构图中,每个模块都是功能型的,模块间只传递少量的数据型参数,接口清楚,因此模块的内聚性较高,模块间的耦合性较好,如图8-12所示。

img256

图8-12 变换型结构图

2.事务型结构图。它通常接受一项事务,根据事务处理的特点和性质,选择一个适当的处理模块进行事务处理,给出结果。除顶层模块外,事务型结构图通常有三个层次:事务层、操作层和细节层。顶层模块按所接受的事务,选择调用一个事务处理模块。事务层除若干事务处理模块,还有一个取事务模块和一个输出模块。操作层由若干操作模块组成,供事务模块调用。细节层由细节模块组成,供操作模块调用,如图8-13所示。事务型结构图也有较高的内聚性和较好的耦合性。

需要注意的是,交换性和事务性只是两种典型结构,在一个大型系统的数据流图或者模块结构图中,这种两种结构往往是并存的。有的系统总体结构上是事务型的,但是在某些功能路径上,有可能有变换型的结构。在另外一些整体为变换型的系统中,其中的某些部分又可能是事务型结构。

img257

图8-13 事务型结构图

(三)模块结构图导出方法

系统结构化设计方法以数据流图为基础,从数据流图导出初始模块结构图,然后根据模块设计原则,对初始模块结构图进行优化,得到最后的模块结构图。常用的从数据流图导出初始模块结构图的方法有两种,一种是变换分析法,另一种是事务分析法。

1.变换分析法

使用变换分析法导出模块结构图的步骤:

(1)找出逻辑输入、主处理、逻辑输出;

(2)设计结构图的第一层和第二层;

(3)自顶向下设计下层模块。

找逻辑输入可以从物理输入端开始,离物理输入端最远但仍然是物理输入的那个数据流就是逻辑输入。同样离物理输出端最远但仍然是物理输出的那个数据流就是逻辑输出。逻辑输入和逻辑输出间的那个(或那些)处理就是主处理。

【例8.2】设有一账务处理流程如图8-14所示,其数据流图为典型的变换型结构,使用变换分析法导出其模块结构图。

img258

图8-14 账务处理流程数据流图

如图,首先确定登账处理和报表编制为主处理环节,逻辑输入为凭证输入,逻辑输出为打印报表和打印账簿模块。根据上述分析,可以得到结构图的第一层和第二层,然后分别对各模块设计下层模块,得到模块结构图,如图8-15所示。

img259

图8-15 账务处理初始模块结构图

2.事务分析法

使用事务分析法导出模块结构图的步骤:

(1)识别事务中心处理和事务处理。

(2)设计结构图的第一层和第二层。第一层为事务中心处理模块,第二层为各事务处理模块,加上一个取事务模块和一个输出模块。

(3)为每个事务处理设计下层操作模块,可以共享。

(4)设计细节模块,也可以被操作模块共享。

如对图8-10使用事务分析法导出其模块结构图,则如图8-16所示。

img260

图8-16 库存管理初始模块结构图

(四)模块结构图的优化

初始模块结构图还需要进一步改进和优化。首先要根据模块设计原则对结构图进行分析和评价,找出低内聚模块,进行重新分解和组合,以提高模块的独立性。然后,根据会计工作、系统维护和环境适应等方面的要求,还可以加强软件模块结构与会计工作的对应关系,增加新的用户口令、系统备份等功能,预备更多接口以适应未来的环境变化要求等。需要注意的是,对模块结构图全局的优化远胜于对局部的优化,调整模块结构需要考虑这种变动对于局部和全局的综合效益。通过一系列的改进,软件结构趋于完整合理,直到再也做不出实质性的修改,则最终的模块结构图才算完成。

(五)编写模块设计说明书

总体设计的最后一项工作是编写模块设计说明书,模块设计说明书需要对模块结构图中各个模块的名称、功能和输入输出文件加以说明。它主要包含的内容有:

(1)模块说明:包括模块名称、模块所在的系统、包含的子系统以及计算机程序编写语言。

(2)输入输出文件:包括模块输入输出文件的名称、类型、大小等文件信息,还有输入输出的数据类型以及模块之间的接口信息。

(3)模块功能说明:包括模块处理的内容、处理的方法和具体处理流程。

四、系统的详细设计

系统的总体设计是建立系统的模块结构,而详细设计则是确定模块实现的技术手段、处理方法和必要的细节。详细设计的内容包括:硬件配置设计、数据库文件设计、编码设计、输入设计、输出设计等。

(一)硬件配置设计

在会计电算化信息系统中,对于会计数据的处理有批处理、实时处理和分布式处理三种方式。

1.批处理:指先分时段搜集汇总会计数据,然后在指定时间点对汇总的会计数据进行集中成批处理,如会计期末结账。这种信息处理方式成本低,设计比较简单,但只能进行业务的事后处理,在会计业务的发生与处理之间有时间差,不能及时为决策提供实时信息。

2.实时处理:使用单机单用户结构,对发生的每一笔会计业务都及时地输入计算机。数据一旦输入,即由计算机进行处理,并及时反馈处理结果或错误信息。这种方式反馈信息及时,但成本相对较高,需要安装计算机财务软件,在系统维护、安全、和恢复方面也需要采取相应的措施。

3.分布式处理:根据企业各部门会计业务处理的要求和需要,在各个部门配置一定数量的计算机,使它们与中央服务器联网,共同构成企业会计信息网络处理系统。在这种方式下,单机设备分散使用,系统服务器统一管理,系统使用方便、灵活,环境适应性强,安全可靠性高。

不同的信息处理方式对应不同的系统物理结构。

1.单机单用户结构:采用一般的微型计算机,输入设备使用鼠标、键盘、光电扫描仪等;输出设备包括显示器、打印机等。操作简单方便,对环境要求不高,价格低廉,易扩充;但功能较弱,处理速度不快,存储容量有限,数据共享性差,数据采集不及时,适用于小型会计电算化信息系统。

2.单机多用户结构:采用一台微型计算机做主机,搭配多套输入输出设备构成,允许多用户操作,多个用户共同使用主机工作,如图8-17。这种方式设备共享性好,便于集中管理,数据传输距离较长,可使不同办公室的会计人员共同操作,但是对主机性能要求较高,同时要求财务软件具备并行处理能力。这种方式适用于中小型企业,并且要求使用用户的地理分布位置不能相距太远。

img261

8-17 会计电算化信息系统单机多用户结构

3.网络结构:包括局域网和互联网两种网络结构,是当前会计电算化信息系统发展的主流,如图8-18。网络结构将地理上分散的具有独立处理功能的多个会计电算化信息处理子系统通过通信设备联系在一起,由功能完善的网络财务处理软件实现财务信息的处理、传输和共享。各工作站可以独立处理自己的会计业务,也可以共享资源。设备控制简单方便,结构灵活,可统一布置,也可以分步实施,数据共享性好,冗余度低,系统功能强,可靠性高。

img262

图8-18 会计电算化信息系统网络结构

会计电算化信息系统的硬件配置与企业规模、计算机应用水平有关。当它作为企业管理信息系统的一个组成部分来设计时,系统硬件配置设计需要考虑企业未来的发展和功能扩充的需要。

(二)数据库文件设计

详细设计的第二项工作是数据库文件设计。数据库文件设计是会计电算化信息系统中的一个重要环节,这部分设计的成功与否,直接影响到整个系统设计的水平。数据库文件设计就是把会计电算化信息系统中所涉及的文件进行物理定义,将文件设计为可由计算机进行存取的物理形式。数据库文件设计的依据是系统分析中编制的数据流图和数据字典。在进行数据库文件设计时应从以下几个方面加以考虑。

1.需要建立的文件

根据系统分析的数据流图和数据词典的要求和特点,建立相关文件,一般分为:

(1)账务数据库文件:为了满足账表输出要求的文件,它们是会计电算化信息系统中的核心文件,如总账文件、明细账文件、凭证文件等。

(2)辅助型数据库文件:为服务于会计处理需要而建立的文件,如单位员工目录文件、客户信息文件、用户操作权限文件等。

(3)临时工作文件:是处理中存放中间处理结果或为了方便处理而临时生成的文件。这类文件保存期短,通常是处理前不存在,处理中临时生成,处理后即删除,如临时凭证文件库。

2.数据库文件的组织形式

数据库文件的组织形式指一个文件中记录的排列方式,它决定了文件的读写方式,会计电算化信息系统中的文件组织形式主要有下述几类:

(1)顺序组织方式:是最简单也是最常用的文件组织形式,其特点是内部记录按建立时间先后顺序排列,处理时也采用顺序访问方式,具有这种组织形式的文件称为顺序文件。顺序文件操作维护简单方便,空间利用率高,因此使用极为普遍。但当数据量较大时,顺序文件的读取速度比较慢。凭证库文件一般是顺序文件,库内凭证一般按输入的先后顺序排列。

(2)索引组织方式:当文件的记录较多时,顺序查找效率较低,这时可以对文件按记录的关键字建立索引,具有这种组织方式的文件称为索引文件。按关键字对索引文件进行查询,查询次数少,查询速度快。例如在单位往来业务中查询“北京”地区的往来业务,如果不建立索引文件,那么需要读取整个往来业务数据库进行判断查询,这样查询的速度可能很慢。但如果在数据库里建立了关于“北京”这个关键字的索引文件,则查询时可直接读取该关键字所对应的条目,这样就避免了读取整个往来业务数据库的信息,加快了查询速度。

(3)倒排索引组织形式:使用记录的非主属性值而不是关键字的值来建立索引,具有这种组织形式的文件称为倒排文件。倒排文件加速查询的工作原理与索引文件类似,所区别的是倒排索引使用非主属性值建立索引,因此其索引规模往往比普通索引文件更大,更适合于处理复杂查询。

在设计数据库文件时,应根据会计业务使用文件的特点和要求,选择合适的文件组织形式和存取方法。

3.数据库文件结构设计

系统分析定义了数据库文件的数据字典,即确定了数据库文件的逻辑结构。系统设计时,我们需要根据计算机处理的特点,确定数据库文件中包含哪些字段以及这些字段属于什么数据类型,具有哪些属性等。例如我们可以定义“银行对账单”的库文件如表8-6所示。

表8-6 银行对账单数据库文件结构

img263

4.数据库文件属性设计

确定了数据库文件的结构和组织方式以后,我们还需要根据会计核算的特点,对文件属性进行限定,如:

(1)文件访问权限:确定哪些操作员对哪些文件有读取权限,对哪些文件有修改保存权限。例如记账凭证库文件只允许凭证录入员录入凭证和凭证审核员审核凭证。

(2)文件读写特性:确定哪些文件是只读的,哪些文件是可修改的。例如填制凭证模块的功能列表文件是只读文件,记账凭证文件是可修改文件。

(3)文件共享性:在网络会计信息系统中,哪些数据库文件允许使用者在不同的工作站或终端访问。

(三)编码设计

使用汉字表示会计信息,形象直观,容易被人理解。因此,在手工条件下会计信息多用汉字表示。但在计算机会计信息系统中,使用汉字存储信息会浪费存储空间,降低数据输入效率。所以,为了便于计算机对信息进行分类、检索和汇总,一般要对会计信息进行编码。编码设计就是设计系统所使用的各种会计信息的编码规则。

1.编码的作用

(1)节省存储空间:因为计算机存储汉字所用的空间比存储编码所用的空间大,所以使用编码存储会计信息可以节省存储空间。

(2)便于录入信息:相对于输入汉字,输入编码更简单,更快,更不容易出错。

(3)便于分类:使用特定的编码数字表示特定的含义,可以使会计对象的特征在编码中清晰地反映出来,如科目编码第一位表示科目类别,产品编码第一位表示其产品类别等。

(4)便于计算机处理:相对于汉字,计算机更容易对数字进行校验、识别和运算,因此使用编码存储信息,可以简化计算机程序设计工作。

2.编码设计的原则

(1)唯一性:一个编码对象只能有一个编码,一个编码也只能对应一个编码对象。

(2)统一性:系统内部同一类编码的编码结构、方案和原则必须一致,不要出现重复和混乱现象,否则无法统一处理。

(3)可扩展性:编码方案既要满足当前需要,又要考虑将来可能的扩充要求,因此在设计之初要留下适当的扩展空间,以备将来使用。

(4)规范性:设计编码方案必须遵循国家法律法规的有关规定,如《企业会计准则》中对于会计科目编号的规定。

(5)实用性:编码结构要清晰,能满足会计核算的要求,方便用户使用,容易记忆。

3.编码的种类

编码的种类有很多,在实际设计中,应根据需要进行选择,或将不同的编码方法组合起来使用。常用的编码有:

(1)顺序码:将编码对象用连续的数字表示,如企业职工编码(2 333个)可以表示为00001,00002,…,02333等。顺序码简单明了,易于扩充,但是不表示任何的逻辑含义。增删编码不方便,新增编码只能列于末尾,删除编码会造成空码。

(2)位码:使用编码中的某一位或某几位来表示特定的含义,例如使用电话号码的前3位或前4位表示电话号码所在的地理区域;使用科目编码的第1位表示科目类别。

(3)区间码:根据编码对象的特点,将编码范围划分为若干区间,在各个区间内顺序分配号码。如将企业员工编码按部门分为“总部”、“营业部”和“后勤部”三个区间,使用三位数字编码,规定“001”~“099”为总部员工编码,“100”~“699”为营业部员工编码,“501”~“999”为后勤部员工编码。

(4)助记码:使用英文或拼音将编码对象的名称、规格或其他属性进行缩写,将缩写符号作为编码。例如“千克”的助记码为“KG”,“银行对账单库文件”的助记码为“Y HDZDKWJ”。

(5)混合码:将上述编码方法组合起来进行编码。如将位码和顺序码组合起来对会计科目编码,编码“100102”,第一位“1”是位码,表示资产类会计科目,“001”和“02”都是顺序码,分别表示一级科目001,二级科目02。

4.设计校验码

输入数据的正确性是后续数据处理正确性的保障。为了防止原始数据输入错误,编码设计还允许通过设置校验码来检验输入编码的正确性。一般校验码都是通过事先规定的数学方法对已有编码进行计算而获得,然后附加在原编码上。计算方法有多种,如求和取模法。

【例8.3】使用求和取模法计算原始编码0965435的全码,取模质数为7。

对原编码各码位求和N=0+9+6+5+4+3+5=32

质数M=7

取模N mod M=32 mod 7=4

得校验位为4

则全码为09654354

5.编码设计步骤

会计编码的设计方案应从系统分析阶段开始酝酿,具体的设计工作可按如下步骤进行:

(1)确定编码目标;

(2)确定编码对象;

(3)调查编码的使用条件,如使用范围、使用频率以及变动更改频率等;

(4)确定编码方案;

(5)设计编码管理制度,包括如何使用、如何修改以及如何删除等;

(6)设计编码;

(7)编写编码设计文档。

(四)输入设计

会计信息系统可以大致分为数据输入、数据处理和数据输出三个环节。这其中,正确输入数据是保障后续工作能顺利进行的关键。输入设计的目的是在满足会计核算和输出信息要求的前提下,选用合适的输入方式、输入设备以及输入数据检验方法从计算机外部环境采集信息,保障输入信息的正确性、完整性和必要性。输入设计包括了解输入数据来源,确定输入设备的选择,输入格式设计和输入数据的可靠性设计等步骤。

1.输入设计的原则

(1)源点输入原则。信息系统中,理想的数据输入方式是直接从数据源输入数据,而尽量回避由数据中介传入数据。因为数据每转抄一次,就增加一次出错的机会。比如材料领料单的数据输入点最好是仓库,因为仓库人员对于库存物资有经验性的认识,因此比较容易进行实物和单据的核对,保证输入的正确性。另外从源点输入数据,一旦出错,也容易发现错误,修改错误。

(2)原始数据输入原则。输入数据尽量以原始形式录入,不要进行人为转换,避免转换时发生错误。

(3)最少输入原则。在满足处理要求下,尽量使外部数据输入量最少。外部数据输入量越少,则出错几率越小。在输入时,只需要输入基本信息,其他信息可通过对基本信息的统计、运算和检索得到。尽量做到一次输入,多次使用,避免同一数据反复输入而造成的不一致。

(4)尽早检验原则。尽量在数据源处对数据进行检验,这样能及时对可能的错误进行改正。至少要在输入数据前对数据进行一次人工检查。

(5)输入方式友好性原则。输入方式应该简单、容易、快捷、易为输入人员掌握;提供复制拷贝等功能;提供常用摘要库、常用凭证库以及相关的账表模板,减轻操作人员的工作量,提高数据输入效率。

2.输入方式与输入设备的选择

会计电算化信息系统的数据采集分为两种,一种是由操作员在终端直接输入数据,如系统的会计科目设置、记账凭证的录入;另一种是由子系统向总账系统传递数据,例如工资管理系统向总账系统传递支付工资的相关凭证。输入方式的选择主要是针对第一种数据采集方式,可选择的输入方式包括:

(1)键盘鼠标输入:通过终端的显示器、键盘和鼠标完成数据录入工作。硬件购置成本低廉,操作简单方便,是使用频率最高的数据输入方式。

(2)手写输入:使用具有汉字识别功能的电子笔向计算机输入信息,操作简单方便,适用范围广,但需要购买专用的电子笔产品,如汉王公司生产的汉王笔。

(3)OCR扫描输入:使用具备模式识别功能的扫描仪扫描输入各种物料单据中的手写信息,如使用汉王OCR扫描仪。这种扫描方式数据录入快,使用方便,但需购置相应的电子产品,费用较高。

(4)语音输入:以电子音频为输入终端,根据人的语音,将会计数据录入到信息系统中,可用于长篇文字的录入或大量会计数据的输入,需购置专门的语音输入识别系统。

会计数据的输入方式确定以后,随之就可以确定相应的输入设备,选择输入设备应考虑如下几方面的因素:

(1)会计电算化信息系统是否支持该输入方式/设备;

(2)数据输入的速度;

(3)数据输入的准确性;

(4)数据输入的保密性;

(5)是否具备自动纠错功能;

(6)用户使用、携带和维护是否方便;

(7)经济性因素。

3.输入内容设计

会计电算化信息系统的输入内容设计需要考虑所有子系统的数据输入情况,结合各系统之间的数据录入和传输方式,统筹规划各子系统应承担的输入输出数据内容,做到既不重复输入数据,也不遗漏输入数据,保证整个系统的输入质量。

4.输入格式设计

会计数据的输入格式应该直观清晰,操作简便,贴近用户使用习惯。输入数据时,少使用直接填写方式,多使用列表选择方式,比如在输入会计科目时,可以将系统中存储的会计科目表提供给用户,让用户使用鼠标点选,而避免使用键盘直接输入科目代码或科目名称,这样既加快了输入速度,也减少了错误发生的几率。

5.输入可靠性设计

输入可靠性设计包括输入数据正确性校验和修改错误数据两个方面。人工输入数据总难免出错,不能因为数据输入错误即中断系统的正常运行。系统输入设计应尽可能多地检查出输入数据中存在的错误,常用的输入数据校验方法有如下几种:

(1)目测校验法:输入数据后,由操作员根据显示器的显示结果判断数据是否输入正确。

(2)二次输入法:将一份数据由一位操作员分别录入两次或由两位操作员分别录入一次,根据录入结果是否完全匹配确定输入是否正确。如果数据的正确性非常重要,还可以增加重复次数或录入人员,降低输入出错的概率。

(3)逻辑规则校验法:这种校验在计算机系统中应用较多,它的校验思路是先由设计人员根据待输入数据的特点,总结出该类数据应满足的约束条件,将约束条件进行计算机编程固化到系统中。当数据输入后,由计算机根据预先规定的约束条件自动判断该数据是否合法。如输入的月份必须在1~12之间;记账凭证的借贷方必须相等等。需要指出的是,不满足逻辑规则的输入数据一定错误,但符合逻辑规则的输入数据并不一定正确。比如一张凭证的日期是“2009.12.01”,如果错误地将它录为“2009.21.01”,则系统会提示出错,但如果错误地录为“2009.01.21”,则系统并不会提示出错(假设只有月份限定条件,而没有其他诸如凭证录入时序控制等条件)。

(4)校验码检验法:通过设置额外的校验码来判断录入的编码是否出错。这是一种有效的检验手段,但会增加码长,加重数据处理的负担。

系统检测到输入数据出错以后,会立刻给出提示,要求用户修改错误数据,如果不能修改正确,则不允许进行下一步操作。

(五)输出设计

会计核算的原始数据经过输入、传递、加工处理后,得到了可被用户使用的处理结果,这些处理结果必须以一定的方式输出。如何选择合适的输出方式、输出设备和输出格式,将用户感兴趣的结果传达给用户,这是输出设计的主要内容。

1.确定输出方式

输出方式的选择主要有3种,分别是:

(1)显示输出:使用人机对话方式将输出结果显示在显示器屏幕上,例如用户通过设定具体的查询条件查询某个会计期间的企业明细账。这种方式简单、高效、速度快、实时性强,但输出结果不能保存。

(2)打印输出:将需要长期保存、上报或内部传递的单据、账簿、报表等通过打印机打印输出,例如打印记账凭证、会计账簿、报表等。

(3)文件输出:将会计电算化信息系统中的内部文件通过外部接口输出为其他格式的文件,供其他应用程序使用,例如将系统中的明细账文件输出为Excel表格。

2.确定输出内容

设计前要详细阅读系统说明书关于系统输出的内容,根据业务上的需要进行输出内容设计。会计电算化信息系统的主要输出内容是会计凭证、会计账簿和会计报表。这些输出结果一般都要在磁盘上进行保存和备份,出于管理或审计的需要,部分账簿和报表还需要打印输出,然后存档。详细的输出信息如表8-7所示。

表8-7 会计电算化信息系统输入输出数据表

img264

续表

img265

3.确定输出格式

提供给使用者的信息都要进行格式设计。设计输出格式时,首先要符合会计制度的要求,包括完整的会计要素,尽量以手工会计系统的凭证、账簿和报表设计格式为基础,这样便于用户阅读和理解。会计报表的格式一般包括标题、表头、表体和表尾四个部分。设计报表输出格式时要考虑行距、列宽、字体、颜色等多方面因素,打印输出时要了解打印机的性能,如字形的变化、字距的控制和列数的限制等。根据报表的行数,确定报表是打印在一页上还是分页打印。因为会计报表种类繁多,格式多变,因此可以设计通用报表系统来处理各种报表。总之,输出格式应该内容完整,清晰美观,便于用户理解。

五、系统设计说明书

系统设计的最后一个步骤是撰写系统设计说明书,它是根据系统分析说明书建立的系统物理模型,也是系统实施的依据。其内容主要包括:系统模块结构图及其说明书;会计电算化信息系统的硬件配置设计说明书;数据库存储文件设计说明书(包括文件结构、文件类型、文件组织方式、文件属性等);编码设计说明书(包括编码的设计原则、设计种类和设计方法等);输入设计说明书(包括输入方式、输入设备、输入内容和输入可靠性检验方法等);输出设计说明书(包括输出方式、输出设备和输出内容等)。

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

我要反馈