第2章会计信息系统的规划、分析与设计会计系:方水明第一节会计信息系统开发概述会计信息系统的建立是企业的一项重要财务活动。会计信息系统的开发如同企业产品的生产,必须经过设计、授权和过程控制。会计人员应该关注会计信息系统开发过程的完整性。会计人员和审计人员参与会计信息系统的开发活动,能够使系统开发专业人员明确他们的问题和需求,确保会计信息系统遵循会计准则、财务会计制度和相关法律、法规的规定,建立、健全、执行恰当的控制,保证会计信息系统留有充分的线索。一、会计信息系统开发的基本条件1、高层领导对会计信息系统开发的了解和重视2、科学合理的管理基础工作3、要有需求牵引4、制定切实可行的开发策略二、软件工程(一)软件危机软件开发和维护过程中遇到的一系列严重问题,称为软件危机。(二)软件工程软件工程将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。软件工程包含四个关键元素:方法、语言、工具和过程方法提供了建造软件在技术上需要“如何做”。语言用以支持软件的分析、设计和实现。工具、方法和语言提供了自动化或半自动化的支持。三、软件工程中适合于会计信息系统开发的方法(一)瀑布式模型瀑布式模型是传统的软件工程生存期模式,它由系统需求分析、软件需求分析、系统设计、程序设计、系统测试、系统维护六个阶段构成。瀑布式模型(二)原型开发模型原型开发作为软件工程的一种开发模式,也存在一些需要解决的难题:1、用户似乎看到的软件的工作版本。但不知道这个原型是临时搭建起来的,也不知道为了使原型很快能够工作,我们没有考虑软件的总体质量和长期的可维护性。2、为了使原型尽快投入运行,开发人员经常采用一些折中的解决方法。如采用一些效率不高的算法等。原型法(Prototyping)用户对新系统提出需求(各种问题)开发人员对问题进行总结开发一个原型系统运行原型系统有修改意见?增加新功能否?增加功能修改完成系统开发并交付使用YYNN原型法示意图(三)螺旋模型(四)第四代技术第四代技术包含了一系列的软件工具,它们都有一个共同的特点,即每个工具都能使软件开发人员在高层次上定义软件的某些特性,并把开发人员定义的特性自动地生成源代码。目前,支持4GT模式的软件开发环境包括下述的部分和全部工具:数据库查询的非过程性语言,报表生成器,数据处理,屏幕交互和定义以及代码生成;高层图形功能;电子表格等。第四代技术(五)组件对象模型对象技术为软件工程的基于组件的过程模型提供了技术框架。面向对象模型强调了类的创建,类封装了数据的用于处理该数据的算法。如果经过合适的设计和实现,面向对象的类可以在不同的应用以及基于计算机的复用。组件对象模型融合了螺旋模型的许多特征,它本质上是演化并支持软件开发的迭代方法。组件对象模型(六)过程开发模型(混合模型)任何一个项目的开发涉及许多因素,如软件的应用领域,规模大小,可重用构件的大小和多少,软件实现的软硬件环境,开始和交付的规定,周期和成本限制,以及开发人员的素质等。为适用不同项目、不同情况的要求,需要一种更加灵活和更加动态的方法来解决软件开发过程中遇到的各种问题。1991年美国DODSEI公布了“能力成熟模型(CMM)”。CMM把成熟程度分为五级:初步过程、可重复过程、可定义过程、可管理过程、可优化(可控制)过程。系统开发生命周期(1)系统规划阶段任务是对企业的环境、目标、现行系统的状况进行初步调查,明确现行系统存在的问题,根据企业目标和发展战略,对建立新系统的需求作出分析和预测,研究建立新系统的必要性和可能性,根据需要与可能,提出拟建新系统的备选方案,对这些方案进行可行性分析,写出可行性项目建议书。(2)系统分析阶段任务在是可行性研究的基础上,对现行系统进行详细调查和全面分析,描述现行系统的业务流程,提出现行系统的局限性和不足之处,对现行系统提出修改方案,确定新系统的目标和逻辑功能要求,即提出新系统的逻辑模型。系统分析阶段的主要文档是系统分析报告。(3)系统设计阶段任务是根据系统分析报告中规定的功能,结合实际条件,具体设计实现逻辑模型的技术方案,包括系统概念设计、评估与选择方案和详细设计。(4)系统实施阶段这个阶段的任务包括计算机等设备的购置、安装和调试,程序的编写与调试,人员培训,数据文件转换,系统调试、转换等。系统实施是按系统实施计划分阶段完成的,每个阶段应写出实施进度报告。系统测试之后写出操作手册、系统测试分析报告等。(5)系统运行与维护阶段需要经常进行维护,记录系统的运行情况,根据一定的标准对系统进行必要的修改,评价系统的工作质量和经济效益。四、会计信息系统开发的方法(一)早期会计信息系统开发方法存在的主要问题1、工作阶段的划分不够明确2、系统建设过程用户参与程度低,用户与专业人员对话缺乏有效手段3、系统开发的工作任务集中在系统实施阶段,系统分析.设计工作不够深入4、系统设计阶段的工作采取“自底向上“的方法,系统总体功能与目标的实现难以保证四、会计信息系统开发的方法(二)结构化系统开发方法1、结构化系统开发方法的基本思想对于复杂的问题,由于人的理解力、记忆力有限,不可能触及问题的所有方面和全部细节,为了将复杂性降到可以掌握的程度,可以将大问题划分为若干个小问题,然后分别解决,亦即分解;分解可以分层进行,即先考虑问题最本质的属性,暂时将细节去掉,然后再逐层添加细节,直至涉及最详细的内容,即抽象。2、结构化系统开发方法的特点(1)自顶向下整体性的分析与设计和自底向上逐步实施的系统开发过程(2)用户至上(3)深入调查研究(4)严格区分工作阶段(5)充分预料可能发生的变化(6)开发过程工程化3、结构化系统开发方法的工作流程(1)系统分析(2)系统设计(3)程序设计(4)系统测试(5)运行和维护(6)系统评估结构化系统开发方法强调在整体优化的前提下考虑具体的分析设计问题,开发过程规范,思路清楚,适用于开发大型、复杂的系统。4、结构化系统开发方法存在的问题整个系统的开发工作是劳动密集型的系统开发的整个工作费时过长,难以适应环境的变化对用户需求的变更不能做出迅速的响应生命周期法各阶段工作的假设要求有很强的预见性各阶段文档的审批工作困难维护工作繁重,专门人才紧缺(三)原型化方法1、原型法的工作流程——P412、建立原型的原则3、原型方法的特点(与结构化系统开发方法比较)对于开放性、无固定需求范围的系统(如决策支持系统)适用;加强了用户的参与与决策。4、原型法的软件支持环境5、原型方法的局限性对于中小型的信息系统开发效果较好。(四)面向对象的开发方法(objectoriented)1、OO方法的基本思想客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同的对象之间的相互作用和联系构成了各种不同的系统。2、OO方法的开发过程(1)系统调查和需求分析(2)分析总是的性质和求解问题(3)整理问题(4)程序实现3、面向对象分析方法(OOA)是从认识客观对象及其属性,认识对象的整体及组成部分和对象类的形成及其区分。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类和整理,而不是对管理业务现状和方法的分析。面向对象的分析强调如下的基本观点:(1)分析和规格说明的总体框架贯穿结构化方法,如整体和局部、类和成员、对象和属性等。(2)用消息进行用户和系统之间以及系统中实体之间的相互通信。(3)在总体框架中对每个部分提供的方法和性能进行分类。用OOA具体分析一个事物时,在致有如下步骤:第1步:标识对象和类第2步:标识结构第3步:标识主题第4步:定义属性第5步:确定方法4、面向对象设计方法(OOD)其基本思想是根据OOA的结果,对系统进一步细化,以便能够被OOP直接接受。OOD方法的基本步骤:(1)设计问题域(2)设计人机交互(3)设计任务管理(4)设计数据管理5、OO方法的优点与局限性(五)计算机辅助软件工程1、CASE方法的基本思想:在实际开发一个系统时,CASE的应用必须依赖于一种具体的开发方法,并提供支持各种方法的开发环境。2、CASE的特点(1)在实际开发一个系统时,CASE的应用必须依赖于一种具体的开发方法,并提供支持各种方法的开发环境。(2)CASE只是一种辅助的开发方法(3)由于CASE环境的出现从根本上改变了我们开发系统的物质基础,从而在利用CASE开发一个系统时,从考虑问题的角度、开发过程的做法以及实现系统的措施等方面出发,他们都与传统方法有所不同(六)基于多层结构的会计信息系统开发方法网络财务系统应具有的技术性能:(1)独立于操作系统平台,能在各种主要的操作系统中运行,使客户原有的和将购进的信息资源能得到充分的利用;(2)独立于数据库平台,使用户应用程序能与任何可用的数据资源相连;(3)基于Web方式,实现Internet、Intranet、Extranet的无缝连接,做到真正与平台无关;(4)能与第三方厂家软件集成,实现数据交换与数据共享。1、应用程序体系结构数据库数据库应用程序服务器数据库应用程序服务器表示层商业层数据访问层三层应用程序体系结构2、WindowsDNA的体系结构企业经理、财务主管、销售人员GUI投资者、相关利益集团BRDWERS网络服务器系统管理凭证审核生成转账凭证权限库凭证库收发料库固定资产折旧库基于windowsDNA的财务系统模型中间服务层客户端(七)各种开发方法的比较会计信息系统具有数据量大、结构复杂、数据处理方法要求严格、会计信息质量要求高、对信息系统的安全性要求高等特点。只有结构化系统开发方法是真正能比较全面支持整个系统开发过程的方法。其他几种方法只能作为结构化系统开发方法在局部开发环节上的补充,暂时不能替代其在系统开发过程中的主导地位。三、软件开发工具软件开发工具是帮助人们开发软件的工具,它能使开发过程中的具体工作自动或半自动地完成,是在软件开发各个阶段帮助开发者提高工作质量和效率的一类新型软件。1、软件开发工具的基本功能(1)提供描述软件状况及其开发过程的概念模式,协助开发人员认识软件工作的环境与要求,管理软件开发的过程;(2)提供存储和管理有关信息的机制与手段;(3)帮助使用者编制、生成和修改各种文档;(4)帮助使用者编写程序代码,使用户能在较短的时间内生成所需要的代码,进行测试和修改;(5)对历史信息进行跨生命周期的管理。2、软件开发工具的类别(1)需求分析工具数据流程图(DFD)绘制与分析工具、图形化的E—R(实体—关系)图编辑和数据字典的生成工具、面向对象的模型与分析工具以及快速原型构造工具。(2)设计工具系统结构图的设计工具、程序设计语言支持工具、数据库设计工具和图形界面设计工具等(3)编码工具各种文本编辑器、常规的编译程序、链接程序、调试跟踪程序以及程序自动生成工具(4)测试工具静态分析器、动态覆盖率测试器、测试用例生成器、测试报告生成器、测试程序自动生成器及环境模拟器等(5)运行维护工具方便程序阅读和理解的程序结构分析器、源程序到程序图的自动转换工具、文档生成工具及系统日常运行管理和实时监控程序等(6)项目管理工具软件成本与人员估算建模及测算工具、软件质量分析与评价工具、项目文件制作工具、报表生成工具等四、开发方式系统开发方式比较项目自行开发委托开发联合开发购买现成软件包对分析、设计力量的要求非常需要需要逐步培养不需要编程力量的需求非常需要不需要需要不需要系统维护容易较困难较容易困难开发费用少多较多较少第2节会计信息系统的规划一、系统规划的任务系统规划的目的是将个别系统项目或应用程序与企业的战略目标相联系。为什么成立系统开发指导委员会十分重要?系统规划包括战略系统规划和项目规划二、初步调查一般调查涉及:组织的概况、企业的目标、现行会计信息系统运行情况、企业及其会计工作的简单历史、企业各级管理层对建立会计信息系统的认识和迫切程度、企业的产品、产量、产值、利税、体制及改革情况、会计人员和技术人员基本情况、企业面临的问题、企业的中长期计划及主