内部控制工程方法指的是模型中各个阶段所使用技术和方法的集合。工程方法指出了非常明确的工作步骤、实现技术、文档材料的格式和系统的评价标准等,这就为建立高质量的工程系统建设提供了具体的问题空间定义和求解过程等应遵循的纪律或规程。在内部控制工程中,我们重点研究结构化方法、面向职能(对象)法、面向流程方法。
3.4.1 结构化方法
(1)结构化方法简介。
结构化方法是工程学中应用最广泛的方法,20世纪50年代美国兰德公司提出的系统分析法,经软件工程引用扩充后应用于分析、设计的全过程称为结构化方法,并在其他学科中广为应用,它的基本思路是:由于人的理解力、记忆力的限制,不可能一下子触及到问题的所有方面以及全部的细节,为了降低理解的复杂性,最常用的方法是把大问题分解为若干个小问题,称为“分解”。如果每个小问题还不够简单,那么还可以继续分解,直到每个问题均可被理解为止。在划分的时候,尚需把每个问题的某些细节略去,把注意力集中在主要属性上,这就是所谓的“抽象”和“表达”。结构化分析方法就是对一个复杂系统进行“自顶向下,逐层分解”的一种对问题空间识别和描述的方法,它有较强的可操作性和规范的描述方法,在传统的内部控制系统的设计和实施过程中,其实已在自觉遵守这种结构化方法,如先确定控制系统的整体目标,再分解确定各部门的目标乃至各岗位的目标,制定各部门的内部控制制度并确定各部门间的联系和制约关系。
(2)结构化方法的优缺点及适用范围。
①结构化方法的优缺点。结构化方法的优点是简单易学、结构清晰,并行设计,局部的错误对整体的损失影响较小等。但结构化方法也有明显缺陷,问题的根源就在于它的原理,它的本质是一种功能建模技术,即把复杂的目标系统按功能自顶向下不断分解为子系统,直到这些子系统完成单一功能,容易实现为止,在这个过程中,尽管它有我们上面所说的种种优点,但它在系统建立之前对用户需求的严格定义和明确描述,通常会与今后的实际使用发生偏差,这种偏差有时是开发者与使用者沟通不充分造成,更经常是由于控制环境发生变化导致,特别是在处于成长期的控制主体,更是时时处处发生变化,如果在内部控制系统设计之前就能对整体目标以及内部各部门各岗位的目标做出精确的描述,显然有点不切实际。而结构化方法强调稳定性,在系统设计与实施之前,就分解好系统的组成模块,每个组成模块的功能、相互之间的联系等,一旦系统发生变化,要以组成模块为单位进行调整,尽管比全部修改系统简单一些,但是工作量还是很大,而且要对相关联的模块进行修改,出错的风险较高。在此情况下,面向对象法应运而生并得到广泛应用,成为结构化方法有益的补充。
②结构化方法的适用范围。结构化方法适用于管理规范、结构与业务稳定的成熟性企业或部门,通常与生命周期模型配套使用。
3.4.2 面向对象方法
(1)面向对象方法简介。
面向对象方法尽可能地模拟人类习惯的思维方式,使开发方法和过程尽可能地接近人类认识、解决问题的方法和过程。它的最主要特征就是在整个生命周期的每一件事都围绕对象进行(面向对象=对象 类 继承 通信)。
对象是这样的一个实体,它具有一个名字标志,有自身的状态和自身的功能。每个对象可用其一组属性和它可执行的一组操作来定义。标志是用来区别于其他对象的名称,状态是描述系统的特点和属性,操作是对象具有的行为或功能。对象就是具有状态特征并可以提供服务的独立实体。如:子公司的财务总监张三,男,身高1.8米,体重70公斤,高级会计师,能分析、审核,与子公司总经理对重大事项实行联签。对这个对象描述如下:
对象名:财务总监
对象状态:姓名:张三;性别:男;身高:1.8米;体重:70公斤;职称:高级会计师
对象功能:分析、审核、联签
世界上一切事物都是对象,小至一根针,大至一个国家,包括我们头脑中的概念和认识也是一些对象,前者为客观对象,后者为主观对象。
类是具有相同属性和相同行为的对象的集合,实质上定义一种对象类型,可以视为一个具有类似特性与共同行为的对象的模板,可以用来归集和产生对象;如母公司有很多子公司,每个子公司都派驻财务总监,那这些财务总监的职能、特性基本相似,构成了财务总监类;或者公司的业务职能相同的岗位如市场销售人员,构成营销人员类。这些岗位内部控制雷同的职能、管理可以作为类来统一处理。
继承是使用已存在的定义作为基础建立新定义的技术。
类和对象的继承关系,类似于操作系统中组和成员的从属关系,每个成员都属于一个或多个组,通过界定组的特性来减轻定义每个成员特性的工作量。如上述财务总监的例子中,财务总监张三对象就继承了财务总监类的多数内部控制属性和功能,我们只要设置好财务总监类的内部控制内容和关键点,通过继承,就对财务总监对象进行批量管理。
面向对象方法包含三种基本的活动:
①识别对象和类:在系统的逻辑建模主要是需求分析阶段查找名词或名词短语主要是岗位和控制关键点,将对象根据性质和属性分别归结到不同的类中。
②描述每个类和对象的行为:通过浏览系统分析的文档发现重要的对象及其职能和责任。同类对象通过继承可获取类的功能,如出纳张三可获取出纳类的全部职能。
③描述对象和类之间的关系:在重要的对象被发现并标注后,通过相互关联的模型详细表示类与类、对象与对象之间的关系和沟通途径和方法。
在内部控制系统中我们主要以“岗位职能”视为控制系统的基本对象。以职能为对象,除了满足对象的标识、状态(特点、属性)和服务(行为)三个标准外,还有如下好处:
①首先,职能容易划分,有利于对象的识别和筛选;
②其次,内部控制系统的变化主要是针对岗位和职能的,如人员变动、业务变动,以职能为对象,可以迅速应变,并将其对内部控制系统的间接影响降到较低水平;
③再次,职能可以继承,我们可以创建职能类,设计每个职能类的状态和服务,再通过继承来设计每个岗位和个体所对应的职责,如通过继承销售和决策层的职能来正确设置销售总监的职能,继承是内部控制系统重复利用最有效的手段,这种重用不仅发生在同一系统,在不同的内部控制系统,职能级别的同类对象也是极其相似的。
(2)面向对象方法优缺点及适用范围。
①面向对象方法的优缺点。面向对象方法便于修改、扩充和维护,无论是删减还是添加,对整体影响较小,当添加时,只需设置添加对象的属性和行为,以及个体,并将此对象于原有系统的结合点联系起来,添加其沟通途径,将其融入系统。如企业新成立财务公司,将其中的会计部门主管归结为管理类、会计类。管理类要求其参与管理决策、会计类要求其具有会计职能。将类的属性和职能赋予到会计主管的身上即可,同时以他为结点与原有的系统连接起来,作为管理类与CEO或董事会沟通,作为会计类与会计和出纳沟通等,这样就完成系统的变化。
但面向对象法也有不足,面向对象法大多用来应对中小规模的系统建设,系统性、整体观不强,倘若建设者经验和技巧不足,系统规模又很大,往往会陷入困境。
②面向对象方法的适用范围。面向对象法可以与增量模型配套使用,应对内部控制子系统分步实施,且系统经常变动如子公司财务总监经常轮岗、营销人员流动频繁,应用面向对象法可以将人员或业务的变化影响尽量降低,只需在调整变化时分析对象本身的变化,对于新对象的状态、功能以及与其他相关对象的连接做出相应调整。另外,建设者比较熟悉企业的业务、特征和环境也比较重要,这样,在建设过程中,有利于降低整体规划、需求分析的不足带来的风险。
3.4.3 面向流程方法
(1)面向流程方法简介。面向流程方法中的流程包括物流、业务流、信息流、资金流等。通过测试用例(用例驱动)来查找并设置这些流程上的控制关键点。以业务为中心、信息流为控制辅助。
利用面向流程方法当出现新业务时,首先分析新业务涉及哪些部门,确定各部门目标,在目标的指引下,设计流程的细节,然后通过用例来测试流程,从中发现控制结点,分析其重要性和添加控制环节的成本收益。
面向流程方法需解决两方面的问题:
①角色分配:在建设过程中,承担的任务的参与者要按工作内容和性质分组,角色是描述某个人或一个小组的行为与职责。一个建设者可以同时担任几个角色,一个角色也可以由多个建设者共同承担。如用例设计师、评估师、分析师等,在角色分配师应对每个角色的工作和职责做详尽说明。
②工作流描述:工作流用来描述一个有意义的连续的行为序列,每个工作流产生一些有价值的产品,并显示了角色之间的关系,最重要的是业务流和信息流。(行为是有明确目的的工作单元。产品是行为生成或修改的物质成果,以多种形式存在,如文件、物资、信息等)。
运用面向流程方法首先要绘出企业的各种流程的逻辑模型,然后在系统的物理建模阶段将其细化,对应到具体的角色或岗位。用来描绘企业工作流、数据流、资金流的运行线路和规则,以工作流为主体,数据流为辅助控制的手段,一般用业务模型实现。
业务模型由系统的业务流程图、数据流程图、相应的业务规则、每个流程的输入、处理和输出构成。其中业务流程图是指企业在业务流程再造(BPR)之后形成的规范的操作流程。
工作流描述的工具和方法:
①工作流描述的工具包括:组织结构图、岗位职能表、业务流程图、数据流程图及其他流程图和规则说明。这些描述工具没有统一的规定,每个企业根据自身的情况制定,但在设计初期,要统一规定输入、处理、输出、物资、文件、信息的流向的图形标志,在图形内部或外部做详细的文字说明。
②工作流描述通过用例驱动来实现,在设计和建设过程中,通过一系列用例来测试工作流的运行线路和结点,首先定义用例,然后设计用例,最后进行测试。用例必须有代表性,能测试所有流程线路。(用例是建设者与使用者交流的基础;可以用来检验系统的有效性;是用户手册的基础)
(2)面向流程方法的优缺点及适用范围。
①面向流程方法的优缺点。面向流程方法是在系统运行过程中发现问题,能及时从使用者那里得到对系统的反馈,不断地评估内控系统的阶段性成果和可能出现的风险。在系统的运行过程中,根据数据流动和处理的需要,在流动中发现控制结点。面向流程方法通俗易懂,容易掌握,由此形成内部控制系统对业务变革少,岗位、职能调整不多,因此人员较易接受;它的缺点是随意性强,且需在工作流测试全程都要得到业务精通的相关人员的协助和意见,管理不善经常会出现工作停顿,在系统投入使用时无法面对变化迅速的流程或人员变动,因为利用这种方法产生的内部控制系统更接近量身定做,只能从加强实施规范、做好文档记录角度进行管理。当出现人员变动或工作流变动时,能从完备的文档去培训人员或查找并弥补由本环节的变动对别的子系统造成的牵制漏洞。
②面向流程方法的适用范围。面向流程方法适用于工作流简单、人员角色较少、业务单一、变动不大的中小型内部控制系统。
(3)内部控制工程方法的比较与综合。
结构化方法、面向对象(职能)法与面向流程法各有优点和缺点,都有适应范围,但企业的类型是千变万化,在绝大多数情况下并不是严格按照我们的预想划分,因此,我们必须结合企业的特点和环境,在不同的建设和使用阶段选择不同的工程方法,扬长避短,综合使用内部控制工程方法,才能发挥较优的功效,较好的实现内部控制工程的目标。
当应对复杂的内部控制系统时,在逻辑建模阶段,用结构化方法制定系统总目标,用面向对象法查找并分析各部门、人员的个体目标、属性和行为;在物理建模阶段首先采用面向流程方法用实例测试运行系统的各种流程,从中发现并设置控制关键点,设计关键点的控制技术和方案,并分析各方案的成本效益,择优选择,对关键控制点应用面向对象法设计各职能控制与管理措施。对象的设计以上级控制目标为导向,如制定财务政策时,应首先考虑到企业的整体控制目标,在此前提下再确保本部门目标的实现,销售部门、库存部门也应充分考虑存储空间、生产部门需求、资金占用等问题,在此基础上,设计各职能的属性和行为特性。当实施时,查找相应的对象并将对象的属性和行为落实到相关的部门和个人,将此作为规范来约束和要求对象,并成为审计是否有效执行的重要参考依据。在运行和维护阶段,分析对象的变动原因和属性,注意环境变化对哪些对象产生影响,对象的属性和行为会出现哪些问题,及时做出修正,预防性和完善性的维护一般通过文档审阅发现并进行,纠错性维护一般在出现问题后对对象进行分析并查找相应的管理规范或文档进行,因此对象的说明与管理文档是比较重要的运行和维护工具。