首页 理论教育 管理信息系统的开发方法分析介绍

管理信息系统的开发方法分析介绍

时间:2022-10-11 理论教育 版权反馈
【摘要】:根据系统工程的思想,必须把整个MIS开发过程划分为若干个工作阶段,明确每个阶段的任务和目标,并在开发领导小组的检查和督促下严格按照划分的工作阶段,逐一完成任务,从而实现预期目标。一旦MIS开发的周边环境,如组织的内、外部环境,用户的需求,信息技术等发生变化,都会直接影响到MIS的开发。

3.4.2 管理信息系统的开发方法

众所周知,开发管理信息系统(MIS)是一项花费较大且工期较长的投资项目。为了能以较少的人力、物力、财力,以最短的周期,开发出用户满意的MIS,许多专家学者进行了大量的研究,提出了多种开发方法。其中影响较大的有结构化系统开发方法、原型法(速成原型法)、面向对象开发方法及计算机辅助开发等方法。这些方法有的比较成熟,有的尚需进一步发展、完善,才能达到实用的程度。

1. 结构化系统开发方法

结构化系统开发方法(Structured System Development Methodologies)是自顶向下的结构化方法、工程化的系统开发方法和生命周期方法的结合,是迄今为止开发方法中应用最普遍的一种开发方法。

(1)结构化系统开发方法的基本思想

结构化概念最早是用来描述结构化程序设计方法的,它用三种基本逻辑结构(即顺序结构、选择结构、循环结构)来编写程序,使之趋于标准化、线性化。结构化方法不仅提高了编程效率和编程质量,而且大大提高了程序的可读性、可测试性、可修改性和可维护性。后来,结构化程序设计思想被引入MIS开发领域,逐步形成结构化系统分析与设计方法(Structured System Analysis Design)。

其基本思想是:用系统工程的思想和工程化的方法,按用户至上的原则,结构化、模块化、自顶向下地对系统进行分析与设计。也就是说,先将整个管理信息系统的开发划分成若干个不同阶段,如系统规划、系统分析、系统设计、系统实施等;然后在系统规划、分析和设计阶段采用自顶向下的方法对系统进行结构化划分;最后在系统实施阶段,采用自底向上的方法逐步实施。

(2)结构化系统开发方法的特点

① 面向用户的观点。用户的参与程度和评价是衡量系统开发是否成功的关键。因此,在MIS开发过程中要面向用户,激发用户的热情,使他们与系统开发人员打成一片;同时使系统开发人员更多地了解用户的需求,更深入地理解用户的需求,使新系统更加科学、合理。

② 自顶向下的分析与设计和自底向上的系统实施。按照系统的观点,任何事情都是互相联系的整体。因此,在系统分析与设计时要站在整体的角度,自顶向下地工作。但在系统实施时,先对最底层的模块编程,然后一个模块、几个模块地调试,最后自底向上逐步构成整个系统。

③ 严格区分工作阶段。根据系统工程的思想,必须把整个MIS开发过程划分为若干个工作阶段,明确每个阶段的任务和目标,并在开发领导小组的检查和督促下严格按照划分的工作阶段,逐一完成任务,从而实现预期目标。不可打乱或颠倒。

④ 深入现场调研。在系统规划和分析阶段,要深入现场,详细地调查研究,尽可能弄清现行系统业务处理的每一个细节,做好总体规划和系统分析,从而描述出符合用户实际需求的新系统逻辑模型。

⑤ 充分考虑变化的情况。在现实世界中任何一个系统都不是孤立的,而是与其他系统密切相关的。一旦MIS开发的周边环境,如组织的内、外部环境,用户的需求,信息技术等发生变化,都会直接影响到MIS的开发。因此,必须在系统调查和分析时对将来可能发生的情况给予充分的重视,使新系统具有应付各种变化的适应能力。

⑥ 工作成果文档化,文档资料规范化、标准化。根据系统工程的思想,管理信息系统的各个阶段性的成果必须文档化。只有这样,才能更好地实现用户与系统开发人员的交流,才能确保各个阶段的无缝连接。因此必须充分重视文档资料的规范化、标准化工作,充分发挥文档资料的作用,为提高MIS的适应性提供可靠保证。

(3)结构化系统开发方法的五大阶段

用结构化系统开发方法开发一个系统,一般将整个开发过程划分成五个首尾相联的阶段,称之为结构化系统开发的生命周期(Life Cycle),如图3-11所示。

img18

图3-11 结构化系统开发方法的生命周期

① 系统规划阶段:根据用户的系统开发请求,进行初步调查,明确问题,确定系统目标和总体结构,确定分析阶段实施进度,最后进行可行性研究

② 系统分析阶段:通过对组织的现行系统进行详细分析,做出详尽描述,如分析业务流程,分析数据与数据流程、功能与数据之间的关系,从而提出若干个解决方案,分别进行成本效益分析,最后得出新系统逻辑模型。

③ 系统设计阶段:根据新系统的逻辑模型,提出新系统的物理模型,进行总体结构设计、代码设计、数据库/文件设计、输入/输出设计和模块结构与功能设计。

④ 系统实施阶段:根据系统设计阶段的文档资料,进行软件编程、调试和检错,硬件设备的购入和安装,以及对用户的培训和系统试运行。

⑤ 系统运行维护阶段:进行系统的日常运行管理、维护和评价三部分工作。若运行结果良好,则送利益相关者;若存在一些小问题,则对系统进行修改、升级等;若存在重大问题,则用户只有提出开发新系统的要求,这标志着旧系统生命的结束,新系统的诞生。

以上五大阶段,构成了系统开发生命周期。

(4)结构化系统开发方法的优缺点

结构化系统开发方法是在传统生命周期法基础上发展起来的。这种方法的优点是更强调开发人员与用户的紧密结合,更强调自顶向下的观点,更强调开发过程的整体性和全局性,即在整体优化的前提下考虑具体的分析设计问题。缺点是开发过程过于烦琐,周期过长,工作量太大,同时要求系统开发人员在调查中充分掌握用户需求、管理状况以及可预见未来可能发生的变化,不符合人类的认识规律,在实际工作中难以实施,导致系统开发的风险较大。

2. 原型法

原型法(Prototyping)是20世纪80年代随着计算机技术的发展,特别是在关系数据库系统、第四代程序生成语言(4GL,4th Generation Language)和各种系统开发生成环境产生的基础之上,提出的一种设计思想、工具、手段全新的系统开发方法。与结构化系统开发方法相比,原型法放弃了对现行系统全面、系统地详细调查与分析,而是根据系统开发人员对用户需求的理解,在强有力的软件环境支持下,快速开发出一个原型系统,并提供给用户,与用户一起反复协商修改,直至实现新系统。

(1)原型法产生的前提

① 系统需求难以准确定义。一般来说,系统需求在系统开发前难以准确地描述,虽然用户能确定系统的目标和大致功能,但对具体细节无法说明清楚。

② “原型”系统给开发人员和用户提供了一个讨论、交流的良好环境。这是结构化系统开发方法所不具备的。虽然在进行系统的需求分析时,图形工具比文字描述优越得多,但仍缺乏直观性和感性特征,存在理解的偏差,而“原型”所提供的交互式系统,使用户面对的是一个生动的系统,使开发人员与用户更好地交流,并及时纠正偏差,具有重大意义。

③ 不同的管理信息系统,其最低层的功能模块和操作方式基本相同。

④ 管理信息系统逻辑功能的规格说明、物理结构的规格说明及软件功能的说明,可以标准化、统一化和规范化。

(2)原型法的基本思想

首先,系统开发人员在初步了解用户需求的基础上,构造系统开发的初步模型——原型;然后,用户和开发人员共同探讨、改进和完善,直至用户完全满意为止。

(3)原型法的特点

① 原型法符合人类认识事物的规律。比如,人们认识任何事物都不可能一次完全了解,认识和学习过程都需循序渐进,人们总是在环境的启发下不断完善对事物的描述。

② 原型法缩小了用户和系统开发人员的距离,清除了歧义,取得了共识。

③ 开发周期较短。原型法充分利用了最新的软件工具,丢弃了手工方法,使系统开发的时间、费用大大减少,效率和技术等大大提高。

④ 在系统开发过程中存在着大量反复。大量反复是不可避免的和必要的,应该加以鼓励。因为系统开发人员提供原型的目的,就是让用户去积极改进现有系统,充分发挥用户的潜在能力,从而改善开发人员和用户之间的关系,实现用户和新系统间的良好匹配。

(4)原型法开发的六大阶段(如图3-12所示)

① 识别基本需求。识别基本需求是开发初始原型的基础。因此,需要对组织进行初步调查,与用户进行交流,收集各种信息,进行可行性分析,从而发现和确定用户的基本需求。用户的基本需求包括:系统的结构、输入和输出要求、数据库基本结构、保密要求、系统接口等。

② 开发初始原型。初始原型是根据用户的基本需求开发一个初步原型,以便进行讨论,并从它开始迭代。可见,初始原型的质量对生成新的管理信息系统至关重要。假设一个初始原型存在明显缺陷,就会导致重新构造一个新原型。构造一个初始原型一般需3~6周,最长不能多于两个月,否则就会导致用户丧失信心。

③ 原型评价。系统开发人员和用户通过对原型的操作、检查、测试和运行,不断发现原型中存在的问题,并对功能、界面(屏幕、报告)以及原型的各个方面进行评价,提出修改意见。

④ 修改和改进。根据原型评价阶段所发现的问题,系统开发人员和用户共同修正、改进原型,得到最终原型。当然,第三阶段和第四阶段需要多次反复,直至用户满意。

⑤ 判定原型完成。判定原型是否完成就是判断有关用户的各项需求是否最终实现。如果已经实现,则进入整理原型提供文档阶段;否则继续改正和改进。

⑥ 整理原型,提供文档。整理原型,提供文档是把原型进行整理和编号,并将其写入系统开发文档资料中,以便为下一步的运行、开发服务。其中包括用户的需求说明、新系统的逻辑方案、系统设计说明、数据字典、系统使用说明书等。所开发出的系统和相应的文档资料必须得到用户的检验和认可。

img19

图3-12 原型法开发的六大阶段

(5)原型法的快速工具

原型法必须在快速开发工具的支持下,才能快速模型化和及时改进。其工具主要有:

① 字典编辑器。完成数据流图、数据字典、数据处理过程的编辑。

② 概要设计编辑器。根据新系统的数据流图和数据字典,将数据流图转换成功能结构图。

③ 详细设计编辑器。完成处理功能的算法描述、解释,输入/输出界面的实现及文件管理等功能。

④ 程序自动生成器。根据模块的设计说明,生成源程序清单。

⑤ 图形编辑器。完成数据流图的编辑。编辑原系统的业务流程图和新系统的数据流图,并自动对数据流图进行平衡性、一致性和完备性的检验,保证数据流图与数据字典的说明之间完全一致。

⑥ 文档编辑器。自动向用户提供各阶段的主要文档资料。

⑦ 原型人员工作台。提供给原型开发人员使用的、具有交互功能、使用方便并能产生反馈信息的工作站

(6)原型法的优缺点

原型法的优点是以用户为中心来开发系统,加强了用户的参与和决策,实现了早期的人/机结合测试,提供了良好的文档、项目说明和示范,增强了用户和开发人员的兴趣。缺点是不适合于开发大型管理信息系统,易导致人们认为最终系统过快产生,开发人员忽略彻底的测试,文档不够健全。

3. 面向对象法

面向对象法(Object-Oriented Method或Object-Oriented Developing Approach)产生于20世纪60年代。最初出现于挪威奥斯陆大学和挪威计算中心共同研制的仿真语言Simula67中。其后,随着美国加州的施乐研究中心推出Small Talk-76和Small Talk-80仿真语言,使面向对象的程序设计方法得到了比较完善的实现。尤其是近几年,其研究已经遍及软件系统的各个领域,如面向对象的程序设计语言、面向对象的程序设计方法、面向对象的数据库管理系统、面向对象的操作系统及面向对象的系统分析方法。可以预见,面向对象法将为管理信息系统的开发提供全新思路,也必将成为21世纪的重要开发方法之一。

(1)面向对象法的基本思想

系统开发人员首先根据用户的需求,找出和确定问题领域对象和类,对其进行静态的结构描述和动态的行为描述,然后建立解决领域的模型,用问题领域对象和类、接口对象和类、运行对象和类以及基础与实用对象和类去构成一个体系结构,通过不断地反复与累增,尽可能直接描述现实世界,实现模块化、可重用,完全而准确地满足用户的所有要求。

(2)面向对象法的基本概念

① 对象:对象是现实世界中具有相同属性、服从相同规则的一系列事物的抽象,也就是将相似事物抽象化,其中的具体事物称为对象的实例。问题分解成对象依赖于应用的视角和问题的性质。比如,面对同一条大街,如果你的问题是寻找同伴,则你看到的对象是流动人群;如果你的问题是搭车,则你看到的是流动的车辆;如果你的问题是逛商场,则你看到的是繁华的商场。从计算机角度看,对象是把数据(即对象的属性)和对该数据的操作(即对象的行为)封装在一个计算单位中的运行实体;从程序设计者角度看,对象是一个高内聚的程序模块;从用户角度看,对象为他们提供所希望的行为。对象可以是具体的,如一台空调、一辆轿车等;对象也可以是概念化的,如一种思路,一种方法等。

② 对象的属性:对象的属性是实体所具有的某个特性的抽象,而实体本身被抽象成对象。获得对象的一组属性的目的在于:

• 整体性。属性反映了所定义对象的全部信息。

• 完全分解性。每一个属性只反映对象这个抽象体的某个方面的信息。

• 相互独立性。属性具有相互独立的取值。

③ 类:类是具有相同属性和相同行为描述的一组对象。比如,人、公司、高校、管理信息系统都是类。类还可以描述如何创建这个类的新对象。

④ 行为:行为是指一个对象对于属性改变或消息(Message)收到后所进行的行动的反映。一个对象的行为完全取决于它的活动。

⑤ 关系:关系是指现实世界中两个对象或多个对象之间的相互作用和影响。比如,交易关系、师生关系、上下级关系、机器与配件的关系等。

(3)面向对象法的特点

面向对象法是以对象为中心的一种开发方法。具有以下特点:

① 封装性(Encapsulation)。在面向对象法中,程序和数据是封装在一起的,对象作为一个实体,其操作隐藏在行为中,其状态由对象的“属性”来描述,并且只能通过对象中的“行为”来改变其“属性”,而外界一无所知。不难看出,封装性是一种信息隐蔽技术,是面向对象法的基础。因此,Coad 和Yourton(面向对象法的创始人)认为面向对象就是“对象+属性+行为”。

② 抽象性。在面向对象法中,把抽出实体的本质和内在属性而忽略一些无关紧要的属性称为抽象。类是抽象的产物,对象是类的一个实例。同类中的对象具有类中规定的属性和行为。

③ 继承性。继承性是指子类共享父类的属性与操作的一种方式,是类特有的性质。类可以派生出子类,子类自动继承父类的属性与方法。可见,继承大大地提高了软件的可重用性。

④ 动态链接性。动态链接性是指各种对象间统一、方便、动态的消息传递机制。

(4)面向对象法的四大开发阶段

① 系统分析阶段(Object-Oriented Analysis)。根据用户对系统开发的需求进行调查研究,在繁杂的问题领域中抽象地识别出对象及其行为、结构、属性等。

② 系统设计阶段(Object-Oriented Design)。根据系统分析阶段的文档资料,作进一步地抽象、归类、整理,运用雏形法构造出系统的雏形。

③ 系统实现阶段(Object-Oriented Programming)。根据系统设计阶段的文档资料,运用面向对象的程序设计语言加以实现。

④ 系统运行维护阶段。进行系统的日常运行管理、维护与评价工作。

(5)面向对象法的优缺点

面向对象法的优点是以对象为中心、利用特定的软件工具直接完成从对象客体的描述到软件结构间的转换,缩短了开发期,是一种很有发展潜力的系统开发方法。缺点是需要一定的软件支撑,并且在大型MIS开发中不进行自顶向下的整体划分,而直接采用自底向上的开发,同样会造成系统结构不合理,各部分关系失调等问题。

4. 计算机辅助开发方法(CASE)

自计算机在工商管理领域应用以来,系统开发过程,特别是系统分析、设计和开发过程,就一直是制约信息系统发展的一个瓶颈。这个问题一直延续到20世纪80年代,计算机图形处理技术和程序生成技术的出现才得以缓和。解决这一问题的工具就是集图形处理技术、程序生成技术、关系数据库技术和各类开发工具于一身的CASE。

(1)CASE方法的基本思路

如果严格地从认知方法论的角度来看,计算机辅助开发并不是一门真正独立意义上的方法,但目前就CASE工具的发展和它对整个开发过程所支持的程度来看,又不失为一种实用的系统开发方法,值得推荐。

CASE方法解决问题的基本思路是:在前面所介绍的任何一种系统开发方法中,如果自对象系统调查后,系统开发过程中的每一步都可以在一定程度上形成对应关系的话,那么就完全可以借助于专门研制的软件工具来实现上述一个个的系统开发过程。这些系统开发过程中的对应关系包括:结构化方法中的业务流程分析→数据流程分析→功能模块设计→程序实现;业务功能一览表→数据分析、指标体系→数据/过程分析+数据分布和数据库设计→数据库系统等等;面向对象方法中的问题抽象→属性、结构和方法定义→对象分类→确定范式→程序实现等等。

另外由于在实际开发过程中上述几个过程很可能只是在一定程度上对应(不是绝对的一一对应),故这种专门研制的软件工具暂时还不能一次“映射”出最终结果,还必须实现其中间过程。即对于不完全一致的地方由系统开发人员再作具体修改。上述CASE的基本思路决定了CASE环境的特点:

① 在实际开发一个系统中,CASE环境的应用必须依赖于一种具体的开发方法,例如结构化方法、原型方法、面向对象方法等等,而一套大型完备的CASE产品,能为用户提供支持上述各种方法的开发环境。

② CASE只是一种辅助的开发方法。这种辅助主要体现在它能帮助开发者方便、快捷地产生出系统开发过程中各类图表、程序和说明性文档。

③ 由于CASE环境的出现从根本上改变了我们开发系统的物质基础,从而使得利用CASE开发一个系统时,在考虑问题的角度、开发过程的做法以及实现系统的措施等方面都与传统方法有所不同,故常有人将它称之为CASE方法。

(2)CASE的特点

CASE方法与其他方法相比一般的来说有如下几方面的特点:解决了从客观世界对象到软件系统的直接映射问题,强有力地支持软件/信息系统开发的全过程;使结构化方法更加实用;自动检测的方法大大地提高了软件的质量;使原型化方法和面向对象方法付诸于实施;简化了软件的管理和维护;加速了系统的开发过程;使开发者从繁杂的分析设计图表和程序编写工作中解放出来;使软件的各部分能重复使用;产生出统一的标准化的系统文档;使软件开发的速度加快而且功能进一步完善。

5. 各种开发方法的比较

目前这些工具技术的发展主要支持的都是在信息系统开发的后几个环节,例如系统实施、系统设计和系统分析中各种流程图的绘制等,这就导致了目前信息系统开发工作中工作量重心的偏移。就国外最新的统计数据来看,在信息系统开发过程中各环节工作量所占的比重如表3-3所示。

表3-3 开发过程中各环节所占的比重

img20

从表3-3中不难看出系统调查、需求分析和管理功能分析两个环节占到总开发工作量的60%以上,而系统设计和系统实现两个环节只占总开发工作量的不到40%,其中原来在开发工作中占工作量最大的编程与调试工作,而今只占不到10%的工作量。这一切都要归功于4GL(第四代计算机语言)、RDBS(关系数据库系统)以及各种开发工具的出现。

前面所讨论过的几种常用方法对系统开发过程中的几个主要环节支持情况如何呢?我们分析如下:

原型方法是一种基于4GL的快速模拟方法。它通过模拟以及对模拟后原型的不断讨论和修改最终建立系统。要想将这样一种方法应用于一个大型信息系统开发过程中的所有环节是根本不可能的,故它多被用于小型局部系统或处理过程比较简单系统的设计到实现环节。

面向对象方法是一种围绕对象来进行系统分析和系统设计,然后用面向对象的工具建立系统的方法。这种方法可以普遍适用于各类信息系统开发,但是它不能涉足系统分析以前的开发环节。

CASE方法是一种除系统调查外全面支持系统开发过程的方法,同时也是一种自动化(准确地说应该是半自动化)的系统开发方法。因此从方法学的特点来看,它具有前面所述方法的各种特点,同时又具有其自身的独立特点之处——高度自动化的特点。但值得注意的是,在这个方法的应用以及CASE工具自身的设计中,自顶向下、模块化、结构化却是贯穿始终的。这一点从CASE自身的文档和其生成系统的文档中都可看出。

综上所述,只有结构化系统开发方法是真正能较全面支持整个系统开发过程的方法。其他几种方法尽管有很多优点,但都只能作为结构化系统开发方法在局部开发环节上的补充,暂时都还不能替代其在系统开发过程中的主导地位,尤其是在占目前系统开发工作量最大的系统调查和系统分析这两个重要环节。这里再一次强调所列举的几种方法不是相互孤立的,它们经常是混合应用的。

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

我要反馈