5.2.1 网络财务系统开发的原则和策略
5.2.1.1 网络财务系统开发的原则
网络财务系统的开发是面向企、事业管理的一项应用软件工程。为了使开发工作顺利进行,使开发出来的系统达到实用可靠、高效先进的目的,系统开发一般应遵守如下原则。
(1)实用性原则实用性是系统开发所要遵循的最重要原则,系统必须满足用户管理上的要求,既保证系统功能的正确性又方便实用,需要友好的用户接口、灵活的功能调度、简便的操作和完善的系统维护措施。为此,系统的开发必须利用成熟的技术,认真细致地做好功能和资料的分析,并充分利用代码技术、菜单技术及人机交互技术,力求向用户提供良好的使用环境与信心保证。
(2)系统的原则网络财务系统是组织实体内部进行综合信息管理的软件系统,有着鲜明的整体性、综合性、层次结构性和目的性。它的整体功能是由许多子系统的有序组合而成的,与管理活动和组织职能相互联系、相互协调。系统各子功能处理的资料既独立又相互关联,构成一个完整而又共享的资料体系。因此,在网络财务系统的开发过程中,必须十分注重其功能和资料上的整体性、系统性,这就是我们所要强调的系统的原则。
(3)符合软件工程规范的原则网络财务系统的开发是一项复杂的应用软件工程,应该按照软件工程的理论、方法和规范去组织实施。无论采用的是哪一种开发方法,都必须注重软件表现工具的运用、文件资料的整理、阶段性评审,以及重视项目管理。
(4)逐步完善、逐步发展的原则网络财务系统的建立不可能一开始就十分完善和先进,而总是要经历一个逐步完善、逐步发展的过程。事实上,管理人员对网络财务系统的认识也在不断地加深,财务管理工作对信息需求和处理手段的要求越来越高,设备需要更新换代,人才培养也需要一个过程。贪大求全,试图一步到位不仅违反客观发展的规律,而且使系统研制的周期过于漫长,影响了信心,增大了风险。
为了贯彻这个原则,开发工作应该先有一个总体的规划,然后分步实施。系统的功能结构及设备配置方案,都要考虑日后的扩充和可兼容程度,使系统具有良好的灵活性和可扩充性。
5.2.1.2 网络财务系统开发的策略
网络财务系统的开发实践表明,为了保证开发工作的高效率,根据系统的不同规模,处理功能的繁简程度和管理问题的不同层次来选择合适的开发策略是非常重要的。我们所开发的系统应该能够准确而完整地反映用户的需求,因而选择开发策略的基本点也在于保证用户对信息的需求。开发策略本身是对不同需求保证能力的方法的选择以及由于信息需求定义的不确定性而做出的策略权变。
对需求不确定性产生影响的因素有项目的规模(包括功能的多少,资料量的大小,开发时间的长短与总费用等)、系统支持事务处理和决策过程的结构化程度、用户对任务的理解程度(包括对任务本身的理解和对任务的目的的理解)以及开发人员对任务的熟练程度(包括开发人员应具备的系统研制能力、与用户接触及组织工作的能力、经验和负责精神等)。综合和认识信息需求的不确定性程度,按照需求保证的原则,我们就可以选择合适的开发策略。
可以考虑的开发策略包括如下内容。
(1)接受式开发策略这种方法是认为用户对信息需求的叙述是正确的、完全的和固定的,并且以此作为开发的根据。这种策略适合于小项目,高度结构化,用户需求明确和开发者有充分经验的情形。例如对文件的转换,从已有文件或数据库中产生各种报表,以及某些简单的、单用户的系统等。只要运用得当,接受式开发策略可以较好地满足用户的需求,继承用户的传统做法,并提高开发的效率。
(2)直线式开发策略如果用户的应用需求可以比较好的定义,且以后不需进一步修改或只需稍作修改,则宜采取从需求说明开始到最后开发直线地进行下去的策略。每完成一步都要进行评审,以验证是否和需求一致。生命周期法就是基于这种策略的一个典型例子。这种策略可用在系统规模较大,但结构化程度高,用户任务的综合性强以及开发者具有熟练技术与丰富经验的情形。
(3)迭代式开发策略如果开发需求的不确定性比较高,直线式的开发策略不能保证用户真正的信息需求,就需要把传统的直线式过程加以改进,使其按迭代的方式重复进行。即研制过程中验证需求不论是有错还是不恰当,都可以回到需求确定过程,对需求说明进行修改,如此重复进行,直到所开发的系统满足需求为止。使用这种策略的实例是大型多用户系统和对用户或开发者来说是新的应用领域。
(4)实验式策略如果信息需求的不确定性很高,则可以通过一个实际的工作系统来验证需求是否得到保证。也就是说,采用原型法或应用的模拟,通过试验的方式去逐次近似并减少不确定的信息需求,同时找出原型的缺点,直到用户对需求的完全理解和需求得到保证为止。采用这种策略的例子有高层财务管理决策支持系统、交互式预测模型及多用户的非结构化系统等。
如果所需求的网络财务系统的规模特别大,复杂程度特别高,例如跨地区、跨部门的和全国性的大系统,其信息需求的不确定性程度特别大。在这种情况下,做好网络财务系统的总体规划非常重要。必须从系统的战略目标、信息需求分析、资源分配和项目计划等方面进行规划,合理地设计出系统的总体结构。各个子系统的开发,则根据其信息需求的不确定性程度,选择不同的开发策略,这就是规划式策略的主要思想。
最后我们指出在网络财务系统开发过程中,与选择策略和方法有关的几个值得注意的问题。
1)在系统建立与开发过程的整体规划上,应该采取“总体规划,分期实施,逐步投资,逐步见成效”的策略原则。具体的方法可以有两种:一种是“自上而下”的方法。即首先确定系统的最终目标,然后自上而下进行目标分解,从而确定每一个子目标的功能和任务。整个规划过程遵循自上而下,下服从上的原则。另一种是“自下而上”的方法。即从系统的最低一层子目标着手,然后自下而上进行目标的综合,从而确定最终目标的功能和任务。这种方法的特点是最初着眼于子目标的实现,而后根据发展的需要逐步扩展和升级,由下组合而上,最终达到长远目标的实现。
2)在考虑系统开发的技术方法上,必须注意应用成熟的技术,网络财务系统的开发不是搞科研,而是一项应用软件工程。通常是任务重、时间紧,实用性要求高,容不得失败。因此要求开发人员必须沿用在实践中已被证明是可行的技术路线,采用开发人员熟悉的工具、方法和技巧,使系统开发的成本和风险降到最低。
3)在系统开发的进程控制上,应立足于采用增量实现的策略。在数量上和性能上都可以先形成一个子集,然后逐步完善和扩充。这不仅是用户与开发者双方对系统认识过程上的需要,也是循序渐进,减少盲目性的最好手段。
5.2.2 网络财务系统开发的方法
网络财务系统的开发,除了把握有关原则之外,采用什么样的方法也是开发者们必须认真考虑的问题。目前,网络财务系统开发的方法有很多,如流行的生命周期法、原型法、生成法和智能开发方法等。下面先介绍上述这些方法,然后谈谈如何选用开发方法的问题。
5.2.2.1 生命周期法
生命周期法的依据是软件生存期的概念。一个网络财务系统从它的提出、开发应用到系统的更新,经历一个孕育、生长到消亡的过程。这个过程周而复始、循环不息,每一次循环称为它的一个生命周期。生命周期法就是给网络财务系统的开发定义一个过程,对其每一阶段规定它的任务、工作流程、管理目标及要编制的文档等,使开发工作易于管理和控制,形成一个可操作的规范。
网络财务系统的生命周期法包括以下四个主要阶段。
(1)系统调查与分析从用户提出的初始要求出发,通过初步调查,可行性分析,详细调查,以及在分析的基础上建立新系统的逻辑模型。
(2)系统设计在系统调查与分析的基础上,对新系统进行物理设计。包括系统的总体设计,代码设计,输出输入设计,资料存储设计和制定系统的实施方案等。
(3)系统实施与转换按照实施方案对新系统进行环境的实施,程序设计,调试,转换和系统验收等,最后交给用户使用。
(4)系统管理与维护包括系统投入正常运行后的管理,维护与评价等。此阶段直至提出更新系统的要求,从而进入下一个生命周期为止。
生命周期法通常是在系统需求比较确定的情况下采用的。它具有目标明确,阶段性强,开发过程易于控制的优点。但往往由于周期长,见效慢,风险也比较大。在实际开发中,这种传统的开发方法已经渗入了新的思想,或者与其他方法结合起来使用。
5.2.2.2 面向对象法
面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO法,是建立在“对象”概念基础上的方法学。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。面向对象方法的具体实施分以下三个步骤。
(1)面向对象分析从问题陈述入手,分析和构造所关心的显示世界问题域的模型,并用相应的符号系统表示。模型必须是简洁、明确地抽象目标系统必须做的事,而不是如何做。分析步骤如下。
1)确定问题域,包括定义论域,选择论域,根据需要细化和增加论域;
2)区分类和对象,包括定义对象,定义类、命名;
3)区分整体对象以及组成部分,确定类的关系以及结构;
4)定义属性,包括确定属性,安排属性;
5)定义服务,包括确定对象状态,确定所需服务,确定消息联结;
6)确定附加的系统约束。
(2)面向对象设计面向对象的设计与传统的以功能分解为主的设计有所不同。具体设计步骤如下。
1)应用面向对象分析,对用其他方法得到的系统分析的结果进行改进和完善;
2)设计交互过程和用户接口;
3)设计任务管理,根据前一步骤确定是否需要多重任务,确定并发性,确定以何种方式驱动任务,设计子系统以及任务之间的协调与通信方式,确定优先级;
4)设计全局资源,确定边界条件,确定任务或子系统的软、硬件分配;
5)对象设计。
(3)面向对象实现使用面向对象语言实现面向对象的设计相对比较容易。如果用非面向对象语言实现面向对象的设计时,特别需要注意和规定保留程序的面向对象结构。
传统的面向功能的方法学中,强调的是确定和分解系统功能,这种做法虽然是目标的最直接的实现方式,但是由于功能是软件系统中最不稳定、最容易变化的方面,因而使系统难以维护和扩展。面向对象设计首先强调来自域的对象,然后围绕对象设置属性和操作。用面向对象设计,其结构源于客观世界稳定的对象结构。因而与传统软件设计方法相比,明显提高了软件的生产率,可靠性,易重用性,易维护性等方面的效果。
5.2.2.3 原型法
在网络财务系统的开发中,用户给系统一个明确的需求是非常重要的,但实际上做起来并不容易。人们对自己从事的工作和计算机应用于财务管理的认识是有一个过程,要想事先给系统一个明确的描述是比较困难的。而且,随着系统开发的不断深入,也会不断提出新的要求。这种需求的动态变化,用传统的生命周期开发方法是很难适应的。为此人们提出了一种从基本需求入手,快速构筑系统原型,通过原型确认需求以及对原型进行改进,最终达到建立系统的目的的方法,即原型法。
原型法主要包括如下四点。
(1)确定用户的基本需求用户提出以系统输出内容与形式为主的功能和性能要求,由开发人员加以识别和整理,得到用户对系统的基本需求。同时对将要建立的工作原型的输入资料、功能和开发原型的成本等进行分析,形成一份简要的系统需求分析报告。
(2)开发初始原型系统开发初始原型系统的目的是建立一个交互式的初始系统来满足用户的基本需求。通常使用高层次的开发工具,力求快速构筑原型。只要求满足用户的基本需求,不强调功能的完备和高效率。
(3)使用原型系统确认用户需求让用户在原型系统的使用中得到实际经验,从而了解其需求得到满足的程度。在使用原型的过程中调整需求,确认需求。
(4)修改和改进原型系统开发人员根据用户提出的需求改变,对原型系统进行修改,再交给用户使用。用户经过使用,再取得经验,并提出进一步修改的意见。开发人员与用户密切配合,如此反复改进直到系统满足用户需求为止。
5.2.2.4 生成法
网络财务系统应用在不同企事业单位有很大的差别,但大量开发实践的经验表明,它们之中是可以找到许多共同之处的。把这些具有共同特征的财务管理加以综合,开发一些可重用的程序模块,并利用软件生成工具和系统集成技术,生成一个新的系统以减少重复开发造成的浪费,提高系统开发效率,这就是网络财务系统的生成法开发方法。基于生成法的开发工具,可重用软部件库,以及有关系统描述与数据库组成的信息库,构成网络财务系统的生成环境。
生成法的要点如下。
(1)建立一个可重用的软部件库通过对实体的分析,提取同类管理事务上的共同特征,针对这些特点,编制出一批通用性强而又具有独立功能的程序模块(称为程序基元),再把它们与其相关的资料(称为资料基元)及文档说明(称为文件基元)组合为一个整体(即部件),从而构成一个可重用的软部件库。
(2)建立一个与部件库相应的综合数据库关系模式可重用程序模块的一个主要特点是:程序只和它的资料基元有关而与系统的应用资料无关。因此,确定资料基元与应用资料之间的关系是很重要的,它是建立基于生成法的网络财务系统综合数据库的基础和核心。
(3)系统生成的机制在可重用软部件库和系统的综合数据库为后援的情况下,一个系统的生成必须经历系统描述、部件选取和系统集成的过程。这个过程通常是开发人员借助先进的开发方法学、软件工具和生成系统去完成的。系统的生成机制保证系统描述的准确、无二义性,部件合成的一致性和完整性,以及允许用户自行开发程序模块并将它们合成在一起的灵活性。
生成法具有软件质量可靠,开发效率高,修改灵活性强的优点,是很有发展前途的方法。但是它依赖于对实体的理解和正确描述,需要有丰富的系统开发经验和大量的工作基础,要求开发人员有较高的思想素质和技术素质。
5.2.2.5 智能开发方法
智能开发方法的主要思想是在网络财务系统的开发过程中,引入人工智能技术。在综合数据库(包括知识库、系统实例库和可重用软部件库)的支持下,经过基于知识的需求分析,建立系统模型并运用推理机制从实例库和可重用软部件库中抽取与重组部件,从而达到快速建立系统原型的目的。
上述介绍的各种开发方法都有各自的特点和使用场合。如何根据实际情况选择合适的方法呢?这里谈几点参考的意见。
(1)系统的规模、复杂程度与不确定性因素是选择开发方法的重要依据。如果开发的网络财务系统规模大,功能与资料关系复杂,开发周期比较长,适宜采用生命周期法;系统规模适中,需求的不确定性高,适宜采用原型法;系统规模小,复杂程度不高,适宜采用生成法。
(2)研发人员的素质和工作基础是选择开发方法的先决条件。初次参与开发工作,开发经验不多的人员,适宜采用生命周期法;技术水平高,开发经验丰富的人员,可以考虑采用原型法;具有较好工作基础的,例如已经有了一批开发实例、可重用构件或比较成熟的开发工具与环境等,可以采用生成法或智能法等。当然,对方法本身的熟练程度是最重要的。
(3)用户和系统环境的条件是选择开发方法的重要参考因素。用户人才队伍的技术水平,科学管理的基础,领导的重视程度以及时间性,实用性等都会影响到方法选择的决心。
(4)系统开发方法的决定与选择的开发策略直接有关。