信息系统开发方法的区别与联系
【摘要】:一个信息系统开发的成败与采用的开发方法有直接的关系,已有多种开发方法,而目前常用的几种方法有:结构化方法,原型法,面向对象方法和CASE方法。对一个具体的信息系统而言,不是所有方法都适合该系统的开发,也不是一个系统只能用到一个方法,对这些方法进行分析和比较,可以帮助开发人员找到合适的方法,同时提出几种方法的结合,发挥各自的优点,作为新的开发方法。
【关键词】 :信息系统;结构化;方法; 原型法
一、信息系统的概念及方法概述
信息系统开发的方法是指在信息系统开发中的指导思想、逻辑、途径以及工具等的组合。它涉及的知识面广,至今没有一种统一完备的开发方法,常见的方法主要有:结构化方法、原型法、面向对象方法和CASE方法。
(一)结构化方法
结构化方法是在70年代末,为解决当时的“软件危机”而产生的一种面向数据流的系统开发方法。它以用户至上为原则,采用自顶向下的整体分析和设计和自底向上的逐步实施。其开发过程(一个生命周期)为:
(1)系统规划:初步调查,确定系统目标和总体结构及实施进度,进行可行性研究;
(2)系统分析:分析业务流程、数据与数据流程、功能与数据之间的关系,提出分析
处理方式和新系统方案;
(3)系统设计:进行总体设计、代码设计、数据库设计、输入/输出设计、模块功能设计,给出设计方案;
(4)系统实施:进行编程和人员培训及数据准备;
(5)系统运行与维护:进行系统的日常运行管理及局部调整,出问题时提出开发新系统的请求。
(二)原型法
原型法是80年代在关系数据库系统(RDBS)、第4代程序生成语言(4GL)和各种系统开发生成环境产生的基础上提出的一种全新的系统开发方法。它凭借系统开发人员对用户要求的理解,在强有力的软件环境支持下,给出一个实实在在的系统原型,并与用户反复协商修改,形成实际系统。开发过程为:
(1)确定系统基本要求和功能;
(2)构造初始原型;
(3)运行、评价、修改原型;
(4)确定原型后处理。
(三)面向对象方法
面向对象方法是90年代随面向对象技术的日益成熟而发展起来的一种全新的系统开发方法。对象是该方法的主体,封装了属性和方法,具有继承性、封装性和多态性等特征。该方法开发过程为:
(1)系统调查和需求分析:进行调查研究,弄清要干什么;
(2)分析问题性质和求解问题:在问题域中抽象地识别出对象及其属性、方法等,也叫面向对象的分析(OOA);
(3)整理问题:对分析的结果作进一步抽象、归类、整理,以范式形式确定,也叫面向对象的设计(OOD);
(4)程序实现:用面向对象的程序设计语言将范式直接映射为应用软件,也叫面向对象的程序(OOP)。
(四)CASE方法
CASE是20世纪80年代末从计算机辅助编程工具、第四代语言(4GL)及绘图工具发展而来的一种自动化或半自动化的方法,能全面支持除系统调查外的每一个开发步骤。严格地讲,CASE只是一种开发环境而不是一种开发方法。采用CASE工具进行系统开发,必须结合一种具体的开发方法,如结构化方法、面向对象方法或原型法等,它仅提供了支持每一过程的专门工具。因而,CASE实际上把原先由手工完成的开发过程转变为以自动化工具和支撑环境支持的自动化开发过程。
二、信息系统开发方法的分析及比较
系统开发方法除产生背景不同外,在设计开发中也存在的差异,通过比较可反映出它们的优劣势,现通过结构化方法与原型法的差异及结构化方法与面向对象方法的差异来更深入的了解信息系统开发方法。
(一)结构化方法与原型法的差异
结构化方法与原型法是最先应用的系统开发方法,且至今还在应用,它们有着一定的优势,也存在着一定的问题,具体分析如下:
1.结构化方法
结构化方法是最先产生的系统开发方法,它与原型法比较有以下特点:
优点:
(1)强调系统开发过程的整体性和全局性,采用自顶向下整体性的分析与设计和自底向上逐步实施的系统开发过程;
(2)深入的进行调查研究,严格的区分工作阶段,每一步都要求标准规范化,文档也要求标准化,增加了软件规则说明的可读性和软件系统的可靠性;
(3)基于功能分解设计系统结构,采用数据流图(DFD),容易理解,便于开发人员与客户的交流。
不足:
(1)基本上是一个静态过程,虽基于自顶向下整体性的分析与设计原则,但没有突出体现系统研制过程的反复本质;
(2)用户参与仅限于系统分析与设计,没有体现用户参与开发的全过程;
(3)开发周期长,系统反馈较慢,对功能的变化十分敏感,设计出的软件难以重用,延缓了开发的进程。
2.原型法
原型法产生于结构化方法之后,它相对于结构化方法有以下特点:
优点:
(1)先给出一个实实在在的系统原型,然后与用户反复协商修改,最终形成实际系统,充分体现了系统开发的反复性;
(2)开发过程中有用户的审查这一环节,强调了用户参与开发的全过程;
(3)是一个不断修正的过程,信息反馈速度快。
不足:
(1)原型法要求一开始有一个实实在在的系统,对工作人员有一定的要求,具有一定的局限性;
(2)它是一个反复的过程,需要配置较好的系统开发环境。
(二)结构化方法与面向对象方法的差异
结构化方法与面向对象方法作为系统开发的方法,从问题的认识到建立模型,有各自的优势和不足,具体表现在:
1.结构化方法
结构化方法与面向对象方法相比,有以下特点:
优点:
(1)数据流图的使用,增强了规则软件说明的可读性,便于用户与开发人员的沟通,也有利于开发人员的开发;
(2)模块化开发,不容易产生冗余信息,开发效率高,易维护;
(3)规则的开发过程,从规划—分析—设计—实施—运行和维护,规范的体系结构,阶段化的工作,提高了工作效率。
不足:
(1)模块千差万别,共用程度不高;
(2)对问题域的认识和描述以数据流为中心进行分析,分析结果不能直接反映问题域,
当系统较复杂时,很难检验分析的正确性,与后续开发阶段的衔接也较困难;
(3)设计文档与分析文档有差异。结构化分析结果数据流图DFD和结构化设计结果模块结构图MSD是两种不同的表示体系,从分析到设计的“转换”不存在可靠的转换规则,带有随意性;
(4)软件难以重用,适应需求变化的能力较弱。
2.面向对象方法
面向对象方法相较于结构化方法相比有以下特点:
优点:
(1)以对象为开发的基本单位,有利于解决复杂问题,稳定性强,可扩展性高;
(2)将实体和方法封装起来,提高了软件的可重用性,利于功能的扩充;
(3)分析和设计不存在差异。面向对象方法从分析到设计再到编码采用一致性的模型表示,其开发是一种平滑过程,即实现的是一种无缝连接。
不足:
(1)对象的确定有时会因客观边界模糊而难以确定,易带有人为因素,很难保证软件描述的正确性;
(2)认识差异。在问题域模型中,面向对象方法把问题域或现象直接表述为对象,同时把现象类型表述为类。而大多数面向对象分析方法支持多视角模型,不同的系统描述者在观察描述同一问题域现象时,都可以把该现象表述,结果得到的对象或类并不很适合于某个描述者得到的表述。
三、几种信息系统开发方法的结合
系统开发方法存在着差异,但它们的开发过程存在着内在的联系,将它们结合起来形成新的开发方法,取长补短,发挥各自优势。
(一)结构化方法与原型法的结合
基于上面的比较,原型法属于“逐步改良型”,有可完善的空间,而结构化方法是一个静态的过程,每一步都很规范,可完善空间小,有选择地把生命周期法的成功做法和工具渗透到原型法之中,将形成新的方法。具体做法如下:
(1)在需求分析前,加上“系统建设规划”;
(2)在需求分析中,运用生命周期法的“周密调查”、“改进分析”、“抽象描述”来完成,具体为:划清人机界面;确定新系统功能;对数据流进行合理分析,提出数据流程图;数据量的估计;确定组建系统的设备选型;
(3)在开发原型中,运用结构化方法的做法和工具,具体为:设计数据库模式;采用“自顶向下”、由粗到精的分解方法,划分模块;设计应用系统开发结构;利用数据库语言,根据原型功能要求,编制应用程序;
(4)在系统测试和评价中,延用传统方法,在测试中运用测试资料,在评价阶段中侧重功能需求,操作方便、可靠及原型的适应能力。
(二)结构化方法与面向对象方法的结合
通过上面的分析,结构化方法为开发者提供了合适的抽象和功能分解的机制,较适于系统构造前期,当开发者对系统中数据和对象及操作已清楚地理解,对具体的软件行为采用面向对象方法比较合适。其实现过程为:现实世界—流程图—映射—类图—面向对象语言—执行求解。因为这个方法主要集中在结构化设计与面向对象实现间的映射转换:结构化设计结果是系统模块图、结构图,而面向对象实现所要求的是对象类、控件,所以结构图必须能转换为对象、控件,对象的粒度必须小于等于结构图中的每个模块中数据粒度,这样设计的系统过程为:
(1)用结构化方法SM进行系统需求分析,寻找所要求实现的功能及功能间的说明,构造总的和分层的数据流图 DFD;
(2)用结构化方法进行系统设计,将分析所产生的数据流图表示的信息转换成程序结构的实现。
(3)对具体行为或功能由面向对象的方式实现,先用面向对象方法进行类的规划与设计,并与上一步的功能设计相互校核,直到合理为止.最后把上面设计阶段的结构图细化映射为对象与类。
(4)编程实现用面向对象语言,如 VB.NET,C ++,JAVA等。
(5)运行、维护。
四、结论
通过方法间的比较,更深入了了解了方法的特点,并结合它们的特点产生新的方法,结合后的方法弥补了各自的不足,发挥了优势。结构化方法与原型法结合后的方法,即保持了原型法的特点,又使其在做法上实现了可操作性,同时两种方法可相互渗透,不仅加快了开发速度,而且用户也参与了全过程,使系统更适合用户的需要;结构化方法与面向对象方法结合后的方法弥补了结构化方法对改动很敏感这一不足,采用面向对象来实现,使后期更新维护变得相对容易;同时也弥补了面向对象方法对问题认识的差异,用比较清晰的数据流程图来表示问题域时,可以使差异大大减少。总之,系统开发方法选择是否合适,直接影响信息系统开发的成败。开发方法理论对实际开发信息系统有极其重要的指导意义。开发系统前,要充分做好前期调查工作,针对该系统的具体特征来选择适当的开发方法。
参考资料:
[1]朱海滨.面向对象技术—原理与设计陈佳.信息系统开发方法教程(第二版)北京:清华大学出版社.2005年
[2]李洪波邵香丽涂生.面向对象法、原型法及CASE法的有机复合在大型MIS开发中的应用研究J.计算工程与应用.2003年
[3]王成均马慧.管理信息系统开发的新思路-生命周期法与原型法的结合.北方工业大学学报.1996年12月
[4]缪淮扣高晓雷李刚.结构化方法、面向对象方法和形式方法的比较与结合.计算机工程与科学. 1999年
因篇幅问题不能全部显示,请点此查看更多更全内容