书城管理现代工商管理
10372800000043

第43章 管理信息系统

一、管理系统的含义及功能

从技术角度对信息系统的定义是:为了支持组织决策和管理而进行信息收集、处理、储存和传递的一组相互关联的组成部分。除了支持决策、协调和管理,信息系统还可以帮助经理和员工们分析问题,观察复杂的事情和创造新产品。

信息系统包含关于组织或其环境中重要人物、地方和事情的信息。所谓信息是指数据经处理后而形成对人类有意义和有用处的某种形式。相反,数据是人们难懂难用的一系列原始情况,这些原始情况或事实代表组织或物理环境中发生的事件。

信息系统内的3种基本活动产生组织需要的信息。组织用信息系统提供的信息进行决策,管理日常活动,分析问题和创造新产品和服务。这些活动是输入、处理和输出。输入活动从组织或外部环境中获取或收集原始数据。处理活动将输入的原始数据转换为更有意义的形式。输出活动将处理后形成的信息传递给人或需要此信息的活动。信息系统还需要反馈活动。反馈是返回到组织内相应成员中的输出信息,组织成员借助于反馈信息来评测或纠正输入阶段的活动。嫩肤化妆品公司用于计算佣金的信息系统中,原始输入是销售嫩肤产品的交易数据,中心计算机把这些数据处理成给分销商的支票和经营报表数据(信息),支票和报表便是输出的信息。因而该系统提供了有意义的信息:按产品、分销商和地区分别统计的销售量,传销下线和给分销商支付的支票金额。

相反,非正式信息系统(如办公室传言、小道消息网)依附于默认的、非明示的行为准则。在这种情形下,没有关于信息的定义,或如何存储和处理信息的规定。这类系统是组织生活的重要组成部分,对它们性质的分析超出了本书范围。

正式的信息系统既可以是计算机系统也可以是人工系统。人工系统采用纸张和笔的技术。人工信息系统起着很重要的作用,但它们也不是本书有关的主题。计算机信息系统依靠计算机硬件和软件技术来处理和传播信息。以下本书所用“信息系统”一词,即是指计算机信息系统。依靠计算机技术的正式的组织系统。

尽管计算机信息系统利用计算机技术把原始数据加工成有意义的信息,在计算机和计算机程序与信息系统之间还是有显著的区别。电子计算机和与其相关的软件程序是现代信息系统的技术基础、工具和材料。计算机是存储和处理信息的设备,计算机程序或软件是指挥和控制计算机处理过程的操作指令集合。在设计组织问题的解决方案时,了解计算机如何工作是重要的,然而计算机仅仅是信息系统的一部分。

建造房屋是个恰当的比喻。人们建造木制房屋要使用锤子、钉子和木头,但凭借这些还不能盖起房屋。建筑设计、结构设计、环境、园林和一切与创造这些特征有关的决定也是房屋的组成部分,并且对寻求解决有关建房问题的方案是至关重要的。计算机和程序是计算机信息系统的锤子、钉子和木料,但只凭借它们不能产生特定组织所需要的信息。你要理解信息系统,你就必须理解所设计的信息系统要解决的问题,理解关于系统体系结构和设计方面的事情,理解导致这些解决方案的组织上的过程。当今的经理们必须把计算机知识同信息系统知识结合起来。

二、从经营角度看待信息系统

从经营和管理的角度看,信息系统不是真空中运行的、带有输入—处理—输出功能的机器。从经营视角来描述,信息系统是组织和管理上针对环境带来的挑战而做出的基于信息技术的(解决问题)方案。请你仔细斟酌这个定义,因为它强调了信息系统的组织和管理的性质:信息系统提供了针对经营环境中产生的问题和挑战的组织解决方案。

为有效地设计和使用信息系统,你必须首先理解组织的环境、结构、功能和政策,还须理解管理和制定管理决策的作用。然后你必须研究为给出问题解决方案的现代信息技术所提供的能力和机会。

(一)组织

信息系统是组织的一部分。实际上,对于某些公司,如信用咨询公司,没有信息系统就谈不上什么经营。组织的要素是组织中的人们、组织结构和工作规程、组织中的政治、组织文化。正式组织由不同的层次和专业构成。组织结构体现明确的分工。组织为不同的职能而雇佣和培训专职人员,包括销售和市场、制造、财务、会计和人力资源等职能。

组织靠结构化的等级和正式的、标准的工作程序来协调工作。等级制把人们安置于金字塔形结构中,越靠近结构的顶部权威和责任越大。等级中较高的层次由做管理、专业和技术工作的雇员组成,较低的层次由操作人员组成。

标准工作程序是执行任务的正式规则,它们是经过长时期建立起来的;这些规则指导雇员们在各种工作过程中做事,从填写发票到回复顾客的抱怨。大多数规程是正规化的和书面化的,仍有许多是非正式的惯常做法。一个公司的许多标准工作程序与信息系统合为一体,如怎样支付供货商或怎样改正有错的账单。

组织需要许多不同的技能和人员。除经理们外,知识工人(如工程师、建筑师或科学家)设计产品和服务,而数据工人(如秘书、记账员或柜台职员),处理组织的文字、书面工作,生产或服务工人(如机械工、装配工或包装工)直接生产组织的产品或服务。

每个组织都具有独特的文化或一些基本的前提、价值观和做事方法,而且它们被组织中大多数成员所接受。总可以发现组织的信息系统中嵌入这部分组织文化。例如,服务顾客第一是美国的联合包裹服务公司的文化的一个方面。从该公司的包裹跟踪系统中可以感受到公司的文化。

一个组织中不同的层次和专业造成了人们的各种兴趣和对事物的不同看法,这些看法常常冲突。而冲突便是组织政治的基础。信息系统即出自于这个由不同的观点、冲突、和解和协定构成的全家福,它们是一切组织固有的成分。

(二)管理

经理察觉周围环境中对经营的挑战;制定相应的组织策略,并为策略的成功实施而分配人力和财务资源,协调工作。任何时候他们必须担负起领导责任。本书中描述的经营信息系统反映真实世界中经理的希望、梦想和现实。这些历来是经理的责任。

但这样一个事实很少被理解:经理们不仅是管理目前已经存在的,而且必须做更多。经理们还要时常地创造新产品、新服务,甚至重新创建组织。管理的实质部分是靠新知识和新信息驱动的创造性工作。信息技术在引导组织转变和重新设计组织中能起强大的作用。

第五章详细地论述了经理的活动和管理决策的制定。重要的是要认识到,管理角色和决策在组织的不同层次上是不一样的。高级经理们制定长期战略决策以解决生产或提供什么产品和服务的问题。中级经理们执行高级管理层定出的计划和方案。作业层经理们负责监督公司的日常活动。管理层从上至下应该是创造性的:对广泛的问题创造新颖的解决方案。管理层级中每一层对信息和信息系统的需求是不同的。

(三)技术

信息系统技术是经理们对付变化的许多可用工具之一。信息技术如今更为重要,它是把组织拢为一体的黏合剂。它是管理层用于控制和创造的工具,如同经理的随身宝剑。计算机信息系统采用计算机硬件技术、软件技术、存储技术和电信通信技术。

计算机硬件是物理设备,用于信息系统的输入、处理和输出活动。它由下列各部分组成:计算机处理部件;各种输入、输出和存储设备;连接这些设备的物理媒介。计算机软件由详细编制的指令组成,这些指令控制和协调信息系统的计算机硬件部件。电信通信技术由物理设备和软件构成,连接各类硬件并将数据从某个物理地点传送到另一处。

存储技术既包括存储数据的物理媒介,如磁盘、光盘或磁带,也包括管理物理媒介上数据组织的软件。

三、管理信息系统的结构

选择和确定适合本企业所需要的管理信息系统的结构形式,除根据本企业的产品特点、技术条件等外,还要结合企业管理组织结构的状况来进行,因为现存的管理组织结构是管理信息系统的主要依托和基础。

这里,介绍几种不同的系统结构形式。

(一)职能结构

这是一种按现存管理职能部门和结构来建立的管理信息系统,也是一种应用得最早,又较为广泛的一种结构形式。事实上本节前面所介绍的几个子系统,就是主要以这种结构为背景而建立的。

职能结构管理信息系统,对于那些各职能部门之间横向联系较少,职能部门管理对象很少交叉的企业比较合适。其优点是结构比较简单,与各个职能部门结合紧密,对现行的企业组织不需较大的变动,因而使得系统的设计、实施和管理都比较简单。如果在进行整体设计时,充分考虑好各职能子系统之间的信息联系和数据资源的共享,并在计算机通讯设备的设置上进行周到的设计,这种管理信息系统结构形式的应用范围是非常广的。

(二)管理阶段结构

这是一种按照管理的不同阶段或生产制造的不同进程而设置子系统的结构形式,即按计划、统计、监控、分析和调节等阶段设置子系统。例如,计划子系统处理企业不同阶段内各类资源配置和各车间、工段、机组活动的长期计划、近期计划和作业计划。监控子系统接受计划执行情况的反馈信息,及时调整计划,减少延迟,及时供应材料,定工、派工等。

按管理阶段划分子系统的结构,反映了现代化大生产的客观规律,有利于用统一的方法和原理熟练地完成各个不同的管理职能。但我国目前现行的管理组织同这种管理信息系统结构有较大的差别,这样的子系统组成在实际管理中还较少应用。如果将企业的组织结构和生产过程进行重大改变,加上企业外部经济环境的完善,这将是一种十分理想的结构形式。

(三)横向综合(水平综合)结构

这是指把企业管理各职能部门的信息综合起来,组成一个统一的管理信息系统。

这种结构形式,将企业内部同类经济信息集中在一起,建立若干个专业性子系统。如图中的产品信息子系统,将计划、生产、供销、劳动和财务等各职能部门中,关于产品的信息都集中于该子系统,加工后的信息又输往各职能部门,以满足各方面对产品信息的需要。

这是一种具有相对独立性,与管理职能结构相平行的信息系统结构,适用于企业内部各职能部门日益加强的经济联系和各职能部门对信息日益增多的需求。它特别有助于克服大型企业中的上层管理机构各职能部门之间信息重复和迂回传递的现象。

(四)纵向综合(垂直综合)结构

这种结构先将整个系统划分成若干管理层次,然后在每个层次上建立若干职能子系统。。

这几种管理信息系统的结构形式,有些比较成熟,适合于在我国的企业中应用,不存在较大的技术问题和较复杂的组织问题,例如职能结构形式。但有些形式则仅仅提出来供探讨,实现起来比较困难,存在现行管理机构同信息系统的结构有较大差别的问题,或者是因为有些结构本身还存在不少技术问题需要进一步研究,有些甚至在我国的实际应用中还不可能存在。不同企业或部门,都要从自己的实际情况出发选择适合自己的方式加以利用或做进一步研究和探讨。

四、管理信息系统开发的方法

生命周期法是最古老的信息系统开发方法。它将信息系统比做生物的一个生命周期,有开始、中间及结束等各个不同的阶段。每个阶段都有特定的工作内容,完成本阶段的工作以后才能进入下一个阶段。这种方法至今仍在许多复杂的大中型项目开发中被广泛应用。

(一)系统生命周期

1.生命周期法把系统生命周期分为6个阶段。

(1)项目定义。项目定义阶段的任务是论证建设一个新的信息系统的必要性,并提出一个初步的设想。这个阶段要分析组织中是否存在问题,解决这些问题是否必须建立一个新的信息系统,还是只需对原有系统进行改造。还要提出新系统或改造后的系统的目标、范围以及系统建设的初步计划。所有这些内容都以“项目建议书”的形式书面提交管理部门审批。

(2)系统分析。系统分析的任务是通过对原有系统存在的问题的分析,找出解决这些问题的各种方案,评价每种方案的可行性,提出可行性分析报告和用户需求报告。

系统分析人员要对原系统进行详细的调查,通过交谈、观察原系统的运行过程,收集各种报告、表格和文档,以及发调查问卷等多种形式,分析并确定系统的优点、缺点和问题,以及用户有哪些信息需求必须被满足。

(3)系统设计。系统设计阶段要生成系统逻辑设计和物理设计的规格说明书。为了使这些说明书更加规范,常常要利用数据流程图、系统结构图和系统流程图等工具,这些工具后面还会加以介绍。

(4)编程。编程阶段的任务是把设计阶段完成的规格说明书转换成软件的程序代码。系统分析与设计人员要同程序员一道共同完成每个程序的程序说明书,根据这些说明书,程序员再写出相应的程序代码。程序说明书中要说明每个程序的功能、所使用的编程语言、输入输出的内容与格式、处理的过程与顺序以及必要的控制等。程序员将用COBOI,FORTRAN等第3代语言和拥有更大生产率的第4代语言完成代码的编写。大型系统含有成千上万行的程序,需要许多程序员组成的团队来共同完成。程序说明书就成为设计人员与编程员的主要沟通工具。

(5)安装。安装阶段包括测试、培训和转换3项任务。测试用来验证新系统技术上和业务功能上的正确性;培训要对系统维护人员和最终使用该系统的直接用户分别进行;转换要对旧系统向新系统过渡所需要的所有活动排出一个详尽的转换计划,确保转换的平稳性与安全性。(6)实施与评价。这一阶段包括使用、评价和维护等项内容。当系统投入使用后,用户与系统技术专家要对系统进行全面的评审,以确定新系统是否达到了预想的目标,是否需要一些修正和改进。在系统使用的过程中,为改正错误和提高系统的效率,需要不断对系统进行维护。经过一段时间的维护以后,会发现为了进一步提高效率,更好地满足用户的要求,要对系统做大量的改造。这时可能就快要达到这个系统生命周期的终点了。一旦到达生命周期的终点,就有再建立一个新的信息系统的必要了,这时一个新的生命周期便重新开始。

2.生命周期法的特点与局限性。生命周期法是将制造业中工程化的设计制造方法移植到软件行业的结果。它非常强调计划性,排斥不确定性,对于不确定的工作也要求排出严格的计划(如修改计划);强调分工,从设计到生产各个阶段都有严格的划分,有确定的工作内容和相应的人员;强调合作,要求所有的工作人员的构思、创意和设计都必须有可以与他人交流的书面或其他形式的文档记载,以确保项目可以由多人合作完成;强调标准化与规范化,排斥个性化与自由发挥。

生命周期法的这些特点是适应软件的社会化大生产的,与早年主要依靠个人技巧的手工作坊式的软件开发方式相比无疑是一大进步。它不仅把软件从“艺术品”变成了“工业品”,而且使那些难以靠少数人完成的大型项目的开发成为可能。它特别适合于开发那些能够很好定义其需求、结构化程度又比较高的大型事务处理系统(TPS)和管理信息系统(MIS)。许多复杂的技术系统如航空管制、航天系统等,要求有严密的系统分析和严密的开发控制,也适宜采用生命周期法进行开发。但是这种正规化的开发方式并不适合于对小系统的开发。值得注意的是,以微机为主的小型系统在20世纪90年代已经变得越来越多,很有成为主流的趋势。研究这些小系统的开发方法是很有现实意义的。

生命周期法的主要缺点是过于耗费资源。搜集资料和书写各种文档的工作量极大,不仅耗费大量的人力物力,而且耗费大量的时间。一个项目的开发周期可能要用3~8年。在这么长的时间里,信息需求可能已经发生了变化,系统尚未开发出来可能就已经过期了。

生命周期法的另一个缺点是缺乏灵活性。这种方法虽然对如何修改系统分析和系统设计的结果规定了相应的程序,但是因为每次修改的工作量太大(主要是更新各种文档和修改设计方案),实施起来有相当的困难,所以在实际开发中,开发方往往要求用户的管理人员对于已经完成的“用户需求报告”和“系统设计说明书”进行确认、签署,并且限制他们事后做大的修改。而用户当时并设有见到真正的系统,不知道是否好用,即使对用户需求和设计方案做出了确认,也带有一定的盲目性。等见到真正的系统时,发现问题,已经为时太晚,系统已经难以修改了。

生命周期法也不适用于开发那些需求不明确的系统。用生命周期法开发系统时,系统结构的设计完全是从用户的需求中推导出来的,对那些用户需求难以事先确定的系统(像决策支持系统),对于那些结构化程度比较低,甚至一些无结构的系统,生命周期法就很难使用。有时即使用户写出了一些需求说明,开发者也推导不出系统的结构。这类系统的开发可以考虑用下面将要介绍的原型法。

(二)原型法

1.原型法及其开发步骤。原型法是针对生命周期法的主要缺点而发展出来的一种快速、廉价的开发方法。它不要求用户提出完整的需求以后再进行设计和编程,而是先按用户最基本的需求,迅速而廉价地开发出一个实验型的小型系统,称做“原型”。然后将原型交给用户使用。通过用户的使用启发出用户的进一步需求,并根据用户的意见对原型进行修改,用户再对改进后的系统提出新的需求。这样不断反复修改,直至最后完成一个满足用户需求的系统。与生命周期法相比,原型法的用户需求是动态的,系统分析、设计与实现都是随着对一个工作模型的不断修改而同时完成的,相互之间并无明确的界限,也没有明确的人员分工。系统开发计划就是一个反复修改的过程。它把生命周期法中所有“计划外的修改”变成了“有计划的修正”。

原型法的开发方法可以归纳为四个步骤:

(1)抓住用户最基本的需求;

(2)据此快速开发一个原型系统(一般应采用第4代生成工具);

(3)将原型交用户使用,启发用户提出新的要求;

(4)按新的要求改进原型,然后再交给用户试用。

反复迭代第三、第四两个步骤,直到满足用户的所有要求。

2.原型法的使用场合与局限性。原型法适合于需求不确定和解决方案不明确的系统的开发(如决策支持系统),完整的用户需求和解决方案可以通过原型与用户反复交互来导出。原型法还适用于开发信息系统中的最终用户界面(用户接口)。当用户事先说不清系统界面的具体要求,或者虽然说明了要求,开发者却把握不准的时候,用原型法特别有效。原型法的最大优点就是能提高用户的满意度,尤其是最终用户的满意。另外,周期短、成本低也是原型法很显著的优点。

尽管原型法有上述优点但它仍然不能代替仔细的需求分析和结构化设计的方法,不能代替严谨的正规文档,也不能取代传统的生命周期法和相应的开发工具。第四代开发工具虽然能使原型的生成与修改变得更为快捷,但是仍然克服不了原型法的一些重大的局限性。

首先,原型法不适于开发大的系统。除非做了彻底的需求分析,否则,人们至今尚不知道应该如何生成大系统的原型。如果能把大系统分解成一系列的小系统,就可以用原型法对每个小系统进行有效的开发,但是这种分解工作是十分困难的,一般也需要先做彻底的需求分析。对于批处理系统和含有复杂的逻辑处理功能的系统以及含有大量计算的小系统也不宜采用原型法开发。

其次,原型法开发的时候,测试和文档工作常常容易被忽略。开发者总是倾向于把测试工作简单地推给用户,这使测试工作进行得不彻底,将给系统留下隐患。开发者也容易忽略正式文档的编写,他们认为编写文档太费事,系统又太容易改变,即使做了文档又会很快地失效。由于缺乏有效完整的文档,使系统运行后很难进行正常的维护。

原型法的另一个缺点是运行的效率可能会比较低。最原始的原型结构不一定是合理的,以此为模板多次改进后的最终系统会保留这种结构的不合理性。用户一般都意识不到重新进行编码的必要性,而满足于系统已经具有的所需要的功能。当系统运行于大数据量或者是多用户环境中的时候,运行的效率往往会降低。这种结构不合理的系统通常也是难以维护的。正确的方法是将其重新编写,但这要付出额外的代价。

(三)利用软件包开发

1.利用软件包开发。应用软件包是预先编制好的、能完成一定功能的、供出售或出租的成套软件系统。它可以小到只有一项单一的功能(比如打印邮签),也可以是有50万行代码的400多个模块组成的复杂的运行在主机上的大系统。现在市场上各种专用的软件包日益增多,利用软件包实现组织的信息系统已经成为一种可行的开发策略。因为软件包已经完成了设计、编码和测试工作,又有完整的文档供培训和维护使用,所以用它来开发信息系统,时间会大大缩短。大多数软件包都是用来完成许多组织都将用到的一些公共的通用功能的,销售量的增加使软件包的购买(或租用)费用下降,一般都低于自行开发。

在下列3种情况下可以优先考虑选择使用软件包开发系统的策略:

(1)需要开发的系统功能是多数组织都要用到的一些通用功能。比如,工资管理、人力资源管理、会计财务管理、应收应付账款管理等。因为这类软件包很多,有比较宽的选择余地,成本也不会很高。

(2)缺少组织内部的开发人员。不是每个组织都有足够的内部信息技术专业人员可以承担系统开发任务的,这时就可以考虑全都或部分地选用软件包来开发自己的信息系统。

(3)开发的系统属于微机系统。因为目前市售的绝大多数应用软件包都是运行在微机环境下的。

2.用软件包开发的优点。利用现成的软件包开发信息系统有许多明显的优点:

(1)缩短开发时间。系统设计与测试的工作量一般会占系统开发全过程的50%以上。软件包的供应商在提供软件包的时候已经把设计说明书、文件结构、处理关系、事务定义和报告输出等的设计问题解决了。软件包在上市以前都经过了充分的测试,已经消除了绝大多数的技术问题。稍微复杂的软件包(如小型机上的MRPⅡ系统)供应商还会负责协助用户进行安装。安装后的测试,因为有供应商的协助也会变得相对简单和快捷。所以用户能在较短的时间内迅速地将系统投入运行。

(2)可以得到比较好的维护。供应商不仅提供长期的系统维护,还提供优惠的定期更新和系统升级服务。这对于因为缺少内部专业技术人员而无力维护的组织来说无疑会有很大的帮助。即使组织内部有一些维护人员,也不如由供应商提供的维护更为专业、更为有效,也更为节约。

(3)能减轻组织内部对系统开发的阻力。系统开发过程是一个组织变革的过程。改变组织中人们的工作惯例,改变部门之间的制约关系都会遇到阻力。在传统的系统设计过程中,设计人员为了说服用户接受新系统的运行模式,常常会同用户产生矛盾,有时还不得不做出一些让步和折中,这都会增加系统的阻力,降低系统的效能。如果利用软件包来开发,情况就会有所不同。软件包是由供应商在总结了大多数同类业务以后,站在较高的位置上设计出来的,有较大的普遍性和适应性。组织决定采用软件包以后,就不需要再与最终用户讨论,而是要求用户直接接受它。从心理上讲,用户也更容易接受一个第三方提出来的新的工作模式,当新模式具有较强说服力的时候更是如此。开发中出现矛盾的时候开发人员和用户都倾向于把原因归咎于软件包功能的不完善,有了这样一个“出气筒”,可以减缓组织内部开发人员与用户之间可能产生的矛盾与抵触,这种对立常常是导致系统失败的因素之一。组织的管理层在做出开发决策的时候,由于软件包的成本相对比较明确,开发过程的管理也比较简单,所以很容易被组织的决策者所接受。开发阻力的减少意味着成功率的提高。

3.用软件包开发的缺点。尽管软件包的采用已经很普遍,但是这种方法仍有不可忽视的缺点:

(1)功能较为简单。市售的软件包主要是为满足某一特定功能为主设计的。每个组织在开发系统时常常有多个功能目标要实现,软件包不具备的功能就需要用其他方法另外开发,将不同方法联合使用。例如,买到的财会软件包可能只满足用户记账和报表的功能,用户不得不自行开发成本核算和财务分析的功能。

(2)难以满足特殊要求。软件包能够满足不同组织的共同通用要求,但难以满足各自的特殊要求。为解决此矛盾,软件包的开发商不得不根据用户的具体情况提供修改软件包的手段和方法。为适应用户特殊需求而对软件包做必要的修改和补充称做软件包的客户化。少数开发商可以向用户提供部分源代码,允许用户根据自己的需要对软件包的部分功能进行修改。显然这会破坏原来软件包的功能完整性,所以开发商一般不再提供对改后软件的技术服务和支持,这使用户处于两难的境地。更多的软件商会提供多种可选的功能,以尽可能地满足用户的特殊需求。例如,有些MRP软件包就提供2~7种作业调度模型和多种库存模型由用户选用。另一种做法是在软件包中留出一些“用户接口”,允许用户利用这些接口自行开发处理程序,对软件包处理的数据进行干预。如果软件包没有留接口,就只能采取最传统的方法———加前端和后端程序来完成客户化。例如,在工资处理的软件包前可以开发一套前端处理程序,完成员工特定的分类以后再转给软件包处理。处理的结果还可能要再开发一个后端处理程序完成工资向银行账户的划转工作。

(3)实施的费用随客户化工作量的增大而急剧上升。软件包的安装及客户化都是十分耗资耗时的,当客户化工作量较大时,所耗费的成本将大大超过购买软件包的成本,使原来的预算被突破。例如,某公司安装六个软件包(包括制造资源计划、总分类账、应收款账、固定资产账等),最后的实施成本分别是每个软件包购买成本的1.5~11倍,第一年的维护费用是购买软件包成本的两倍。

4.选择软件包开发要考虑的因素。为避免软件包的这些缺点必须对软件包进行仔细的评价和选择。选择时要考虑下述因素:

(1)功能:用户的功能要求哪些能够满足?哪些需要修改?那些根本就不支持?

(2)灵活性:那些可以客户化?修改是否方便?供应商是否能替客户修改?

(3)友好性:是否容易使用?要多大的培训量?

(4)软硬件环境要求:所需计算机软硬件平台以及网络的要求。

(5)对数据库和文件结构的要求:所需数据库和文件结构能否满足用户的需要?能否允许用户的非标准数据输入?

(6)安装维护的承诺:安装转换的难度如何?维护是否方便?用户要有什么样的专业人员(程序员、系统分析员、数据库专家)才能胜任维护工作?供应商提供什么程度的服务?能否及时地得到软件包的升级和更新?

(7)文档的完整:技术说明书及使用说明书是否完整?是否容易使用?

(8)供应商的状况:信誉、背景、历史、规模及服务承诺。

(9)价格:尤其要注意一次购买后的后期费用(客户化、实施、安装、维护等)。

5.利用软件包开发系统的步骤。利用软件包开发系统时也要经历与生命周期法类似的步骤,只是每个阶段的工作内容稍有一些不同。最大的不同是系统设计的指导思想,不能像传统的设计那样尽量地把系统设计得与组织相匹配,相反,通常是要重新设计组织和业务流程,让他们尽量与软件包的要求相吻合。下面列出各步骤的一般内容。

(1)系统分析。明确原系统的问题和需求,提出解决方案,比较不同的开发策略,确定是否应该利用软件包开发,选择软件包的供应商,评价并选择软件包。

(2)系统设计。裁剪用户的需求,以适应软件包的功能;培训技术人员,完成客户化设计和新的业务流程设计。

(3)编程、调试、转换。安装、修改、设计程序接口、做文档、切换、测试、培训用户。

(4)运行与维护。改错与升级。

(四)最终用户开发

1.最终用户开发是指系统的最终用户在没有或只有很少技术专家正式协助的条件下,自行完成系统开发的一种开发策略。随着第4代开发工具的不断改革与发展,应用程序的编写变得越来越容易,这促使一些最终用户尝试自行完成一系列应用系统的开发。虽然第4代工具产生的代码效率比较低,但是近年来硬件系统的迅速发展已经明显地克服了这一缺点,使得用户自行开发在技术上变得更加可行。

第4代开发工具能方便地存取数据、生成报表、绘制图形,还能自动生成一些菜单、屏幕格式或者简单的事务处理的程序代码。这些特性大大地提高了编程的效率。有些研究表明,使用第4代工具能使编程的效率比用传统的结构化语言提高3~5倍。这并不意味着它能够使系统开发速度提高相应的倍数,因为第4代工具主要是提高编程的效率,而对于系统分析、设计、用户业务流程和组织的再造等等那些更为消耗时间、更为复杂的开发过程,却几乎提供不了任何帮助。另外,第4代工具还不能应付复杂的应用,所以第4代工具目前仍旧不能取代常规的工具。

2.用户开发的利弊。用户常常会自行开发一些局部的小的应用系统,开发速度快而不很正规。开发速度快的原因是用户十分清楚自身的需求,了解原系统的问题,他们可以把常规的系统分析工作几乎完全省去。系统设计工作由于不需要与专业技术人员反复交流也会大大加快进度,同时还避免了交流可能带来的误解。用户开发最直接的好处是减少开发中用户可能产生的阻力和开发计划拖期现象的发生,增加了用户的满意度———用户当然更喜欢自己开发出的产品。

用户开发的风险是缺乏正规化的控制而引起的。由于缺乏独立的充分的系统分析过程,用户自己的目标不一定符合组织的目标,用户做的需求分析不够完整全面。由于缺乏标准和严格的文档,系统界面以及数据代码的一致性和统一性就难以保证。严重的时候会使系统数据难以与其他部门共享,还会使系统将来的扩充与升级变得非常困难。用户开发的系统内会产生一些私人的信息系统,它们没有被记入文档,只供个别人使用。当这些人离开以后,这些系统很难移交给继任者。

克服这些缺点的方法之一是在组织内部成立以咨询服务为主要职能的“信息中心”,集中少量的系统开发专家,负责对用户进行必要的开发培训,提供开发工具与指导,协助建立质量标准。对于复杂系统的开发,信息中心还可以直接参与系统分析与设计,使自行开发的过程尽可能正规化。