3.2.2 原型法(PP法)
运用结构化系统开发生命周期法的前提条件是要求用户在项目开始初期就非常明确地陈述其需求,需求陈述出现错误,对信息系统开发的影响尤为严重,因此,这种方法不允许失败。事实上这种要求又难以做到。人们设想,有一种方法,能够迅速发现需求错误。当图形用户界面(Graphic User Interface,GUI)出现后,自80年代中期以来,原型法逐步被接受,并成为一种流行的信息系统开发方法。
1.基本思想
原型法(Prototyping Method),简称PP法,是在系统开发初期,凭借系统开发人员对用户需求的了解和系统主要功能的要求,在强有力的软件环境支持下,迅速构造出系统的初始原型,然后与用户一起不断对原型进行修改、完善,直到满足用户需求。
2.开发过程
原型法开发过程分为六个阶段。
①确定用户的最初要求。系统开发人员向用户了解用户对信息系统的基本需求,即应该具有的一些基本功能,如人机界面的基本形式等。
②开发系统原型。在对系统有了基本了解的基础上,系统开发人员应争取尽快地建造一个具有这些基本功能的系统。
③评价、试用系统原型。用户和开发人员一起对刚完成的或经过若干次修改后的系统进行评审,提出完善意见。
④修改完善原型。开发人员就要根据用户的意见对原始系统进行修改、扩充和完善。
⑤开发人员在对原始系统进行修改后,又与用户一起就完成的系统进行评审,如果不满足要求,则要进行下一轮循环,如此反复地进行修改、评审,直到用户满意。
⑥完成系统。经用户评审,系统符合要求,则可根据开发原始系统的目的,或作为最终的信息系统投入正常运行,或者是把该系统作为初步设计的基础。
3.支撑环境
原型法有很多长处,但其推广应用必须要有一个强有力的支持环境作为背景,没有这个背景它将变得毫无价值。原型法所需要的软件支撑环境主要包括五个方面,如图3‐10所示。
①方便灵活的关系数据库系统(RDBS);②与RDBS相对应的、方便灵活的数据字典,它具有存储所有实体的功能;③与RDBS相对应的快速查询系统,能支持任意非过程化的(即交互定义方式)组合条件的查询;④高级的软件工具(如4GLS或信息系统开发生成环境等等),用以支持结构化程序,并且允许采用交互的方式迅速地进行书写和维护,产生任意程序语言的模块(即原型);⑤非过程化的报告或屏幕生成器,允许设计人员详细定义报告或屏幕输出样本。
4.优缺点
(1)优点
原型法的优点包括:①对系统需求快速捕捉,确保用户的要求得到较好满足。②改进了用户和系统开发人员的交流方式。③开发的系统贴近实际,提高了用户的满意程度。
④减少了用户培训时间,简化了管理。⑤降低了系统开发风险。⑥降低了开发成本。
(2)缺点
原型法的缺点包括:①开发工具要求较高,不过现在的开发工具基本能满足要求。
②在解决复杂的系统和大型系统时,往往很困难。③对用户的管理水平要求较高。
5.适用范围
原型法的适用范围是比较有限的,包括:①用户事先需求不确定的,逻辑结构简单的小系统;②决策支持系统。
具体使用时,可以与结构化系统开发方法、面向对象的方法等结合起来使用。
3.2.3 面向对象方法(OO法)
以前的开发方法,只是单纯地反映管理功能的结构状况,或者只是侧重反映事物的信息特征和信息流程,只能被动迎合实际问题需要的做法。面向对象的方法(Object Oriented Method),简称OO法,即把数据和过程包装成为对象,以对象为基础对系统进行分析与设计,为认识事物提供了一种全新的思路和办法,是一种综合性的开发方法。
1.基本思想
客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种不同的系统。
对象(object)是客观世界中的任何事物或人们头脑中的各种概念在计算机程序世界里的抽象表示,是面向对象程序设计的基本元素。一个对象类定义了具有相似性质的一组对象。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
2.基本概念
客观世界由各种“对象”(object)组成,任何客观事物都是对象,对象是在原事物基础上抽象的结果。任何复杂的事物都可以通过对象的某种组合结构构成。对象可由相对比较简单的对象以某种方式组成。
对象由属性和方法组成。属性(attribute)反映了对象的信息特征,如特点、值、状态等等;而方法(method)则是用来定义改变属性状态的各种操作。
对象之间的联系主要是通过传递消息(message)来实现的,而传递的方式是通过消息模式(messagepattern)和方法所定义的操作过程来完成的。
对象可按其属性进行归类(class)。类有一定的结构,类上可以有超类(superclass),类下可以有子类(subclass)。对象或类之间的层次结构是靠继承关系(inheritance)维系的。
对象是一个被严格模块化了的实体,称之为封装(encapsulation)。这种封装了的对象满足软件工程的一切要求,而且可以直接被面向对象的程序设计语言所接受。
3.开发过程
面向对象方法的开发过程包括:
①系统调查和需求分析。对系统将要面临的具体管理问题以及用户对系统开发的需求进行调查研究,即先弄清要干什么的问题。
②分析问题的性质和求解问题。在繁杂的问题域中抽象地识别出对象以及其行为、结构、属性、方法等。一般称之为面向对象的分析,即OOA。
③整理问题。对分析的结果作进一步的抽象、归类、整理,并最终以范式的形式将它们确定下来。一般称之为面向对象的设计,即OOD。
④程序实现。用面向对象的程序设计语言将上一步整理的范式直接映射(即直接用程序设计语言来取代)为应用软件。一般称之为面向对象的程序,即OOP。
4.优缺点
(1)优点
面向对象方法的优点包括:①直接反映了人们对客观世界的认知模式。②在设计中容易与用户沟通。③从OOA到OOP,比其他方法更加抽象化而且具有极强的对应性。④设计中产生部件,由部件组成框架,以至于整个系统。⑤应用程序具有较好的重用性,易改进、易维护和易扩充。⑥面向对象方法直接完成了从对象客体的描述到软件结构的转换,解决了传统结构化方法中客观世界描述工具与软件结构的不一致问题,缩短了开发周期。
(2)缺点
面向对象方法需要一定的软件基础支持才可以应用,对分析设计人员要求也较高,最难的在于面向对象思想的培养和思维模式的训练。
5.适用范围
面向对象方法是目前最流行的开发方法,适用面很广。
3.2.4 CASE方法
计算机辅助软件工程(CASE)是一种自动化或半自动化的方法,能够全面支持除系统调查外的其他开发步骤,严格地讲,CASE只是一种开放环境而不是一种开发方法。
目前,CASE仍在不断发展中,各种CASE软件也很多,没有统一的模式和标准。采用CASE工具进行系统开发,还必须结合某种具体的开发方法,如SS法、OO法和PP法等,CASE方法只是为具体的方法提供一种专门工具。
CASE方法具有下列特点:
①解决了从客观对象到软件系统的映射问题,支持系统开发的全过程。
②提高了软件质量和软件重用性。
③加快了软件开发速度。
④简化了系统开发过程的管理和维护。
⑤自动生成开发过程中的各种文档资料。
现在CASE中集成了许多工具,这些工具既可以单独使用,也可组合使用。CASE的概念也慢慢在发生变化。
3.3 信息系统的开发方式
3.3.1 开发策略
根据系统的特点和开发工作的难易程度或者风险大小,采取下列开发策略:
1.接收式
接收式即用户对信息的需求是正确的、完全的和固定的,现有的处理过程和方法是科学的。根据用户要求和现有状况,直接编程,过渡到新系统。主要适合于系统规模不大,信息和处理过程结构化程度高,用户和开发者有较丰富的经验的系统。
2.直接式
系统开发人员在调查后即可确定用户需求处理过程,而且以后变化不大。系统的开发工作可以按照某一种开发方法的流程,按部就班工作,直至完成任务。对开发者和用户要求高,在系统开发前对实际问题的状况完全清楚。
3.迭代式
问题具有一定的复杂性和难度,一时不能完全确定,需进行反复设计、分析、修改,随时反馈信息,发现问题,及时修正开发过程。对开发者和用户要求低,但耗时长,费用高。
4.实验式
需求确定性不高,一时无法制定具体的开发计划,只能反复试验。需要有一定的软件支持环境,在大型系统开发上具有明显的局限性。
实际开发过程中,开发的过程策略可分为:
①自上而下。从整体上协调和规划,由全局到局部,由长远到近期,从探索合理的信息流出发来设计系统。
②自下而上。从现行系统的业务状况出发,先实现各项业务的具体功能,逐步由底层到高层,直至最后形成整个系统。
3.3.2 开发方式
系统开发方式主要有以下几种:
1.自行开发
用户依靠自己的力量独立完成系统开发的各项任务。这种开发方式适合于有较强专业开发能力队伍的组织和单位,如IT公司、大学、研究机构等单位。
自行开发方式的优点是,开发人员熟悉业务处理过程,沟通交流容易,方便维护和系统扩展,有利于培养自己的系统开发人员。缺点是开发水平同专业的开发公司相比还不高,容易受到业务工作的限制,系统整体优化可能不够。开发人员应专心从事开发工作,不受原来从事工作的影响,也应克服组织中各方面的干扰因素。
2.委托开发
用户将信息系统建设的规划、目标等方面的要求明确提出,可以采取招标等方式委托软件公司,通过签订合同的方式来完成开发任务。
这种开发方式的不足是,风险较大,对于开发单位需要进行深入调查,所签订的开发合同的条款需要细致、明确。
3.合作开发
由用户和开发单位共同完成系统开发任务。优点在于双方取长补短,用户在此过程中培养了一支队伍。在双方合作过程中用户应充分明确自身的职责。
4.购买软件
优点是购买的软件技术资料齐备、维护可靠,但是市场上的软件往往具有通用性,对于组织的特殊情况难以充分考虑,需要进行二次开发,这往往会有一定的技术难度,没有有关产品供应商的协助是难以进行的。
3.4 系统规划概述
信息系统规划(Information System Planning,ISP)是信息系统实践中的主要问题。
信息系统的建设是个投资巨大的工程项目,规划不好造成的损失将十分巨大,甚至造成严重后果,因此必须把规划提到重要的战略位置上。
3.4.1 诺兰阶段模型
1.诺兰阶段模型
计算机应用到一个组织的管理,一般要经历从初级到成熟的成长过程。诺兰(Nolan)1973年首次提出了系统发展的阶段理论,被称为诺兰阶段模型。1980年把系统的成长过程划分为六个不同阶段。
①初装。组织购置第一台计算机并初步开发管理应用程序。计算机的作用被初步认识到,个别人具有初步使用计算机的能力。一般而言,“初装”阶段大多发生在单位的财务、人事等数据处理量大的部门。
②蔓延。应用初见成效,信息系统(管理应用程序)从少数部门扩散到多数部门,并开发了大量的应用程序,使组织的事务处理效率有了提高。出现了数据冗余性、不一致性、难以共享等有待解决的问题,只有一部分计算机的应用收到了实际的效益。
③控制。计算机数量超出控制,预算每年以30%~40%或更高的比例增长,投资的回收不理想。应用项目不断积累,要求加强组织协调,出现了由组织的领导和职能部门负责人参加的领导小组,对整个组织的系统建设进行统筹规划,特别是利用数据库技术解决数据共享问题。是实现从以计算机管理为主到以数据管理为主转换的关键。
④集成。在控制的基础上,对子系统中的硬件进行重新连接,建立集中式的数据库及能够充分利用和管理各种信息的系统。重新装备大量设备,预算费用又一次迅速增长。
⑤数据管理。“集成”之后,会进入“数据管理”阶段。
⑥成熟。成熟的信息系统可以满足组织中各管理层次(高层、中层、基层)的要求,从而真正实现信息资源的管理。
2.诺兰阶段模型的作用
诺兰阶段模型总结了信息系统发展的经验和规律,其基本思想对于信息系统建设具有指导意义。
一般认为模型中的各阶段都是不能跳跃的。
无论在确定开发信息系统的策略,或者在制定信息系统规划的时候,都应首先明确组织当前处于哪一生长阶段,进而根据该阶段特征来指导信息系统建设。
3.4.2 可行性研究
1.可行性研究
在做完信息系统总体规划之后,根据开发先后顺序,确定近期需要开发的信息系统。