常用的开发方法包括结构化方法、面向对象方法、原型化方法、面向服务的方法等。
1.2.1. 结构化方法结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析(Structured Analysis,SA)、结构化设计(Structured Design,SD)和结构化程序设计(Structured Programming,SP)三部分有机组合而成,其精髓是自顶向下、逐步求精和模块化设计。
结构化方法假定待开发的系统是一个结构化的系统,其基本思想是将系统的生命周期划分为系统规划、系统分析、系统设计、系统实施、系统维护等阶段。这种方法遵循系统工程原理,按照事先设计好的程序和步骤,使用一定的开发工具,完成规定的文档,在结构化和模块化的基础上进行信息系统的开发工作。结构化方法的开发过程一般是先把系统功能视为一个大的模块,再根据系统分析与设计的要求对其进行进一步的模块分解或组合。
总结起来,结构化方法的主要特点列举如下:
(1) 开发目标清晰化:结构化方法的系统开发遵循“用户第一”的原则,开发中要保持与用户的沟通,取得与用户的共识,这使得信息系统的开发建立在可靠的基础之上。
(2) 开发工作阶段化:结构化方法每个阶段的工作内容明确,注重对开发过程的控制。
(3) 开发文档规范化:结构化方法每个阶段工作完成后,要按照要求完成相应的文档,以保证各个工作阶段的衔接与系统维护工作的便利。
(4) 设计方法结构化:在系统分析与设计时,从整体和全局考虑,自顶向下分解;在系统实现时,根据设计的要求,先编写各个具体的功能模块,然后自底向上逐步实现整个系统。
结构化方法是目前最成熟,应用较广泛的一种工程化方法,它特别适合于数据处理领域的问题,但不适应于规模较大、比较复杂的系统开发,这是因为结构化方法具有以下不足和局限性:
① 开发周期长
② 难以适应需求变化
③ 很少考虑数据结构
1.2.2. 面向对象方法面向对象(OO)方法认为,客观世界是由各种对象组成的,任何事物都是对象。与结构化方法类似,OO方法也划分阶段,但其中的系统分析、系统设计和系统实现三个阶段之间已经没有“缝隙”。也就是说,这三个阶段的界限变得不明确。
OO方法使系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期。OO方法可以普遍适用于各类信息系统的开发,但是,OO方法也存在明显的不足。例如,必须依靠一定的OO技术支持,在大型项目的开发上具有一定的局限性,不能涉足系统分析以前的开发环节。
一些大型信息系统的开发,通常是将结构化方法和OO方法结合起来。首先,使用结构化方法进行自顶向下的整体划分;然后,自底向上地采用OO方法进行开发。因此,结构化方法和OO方法仍是两种在系统开发领域中相互依存的、不可替代的方法。
1.2.3. 原型化方法结构化方法和面向对象方法有一个共同点,即在系统开发初期必须明确系统的功能要求,确定系统边界。从工程学角度来看,这是十分自然的:解决问题之前必须明确要解决的问题是什么。然而,对于信息系统建设而言,明确问题本身不是一件轻松的事情。
原型化方法也称为快速原型法。它是一种根据用户初步需求,利用系统开发工具,快速地建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。
1. 原型的概念和分类
从原型是否实现功能来分,可分为水平原型和垂直原型两种。水平原型也称为行为原型,用来探索预期系统的一些特定行为,并达到细化需求的目的。水平原型通常只是功能的导航,但并未真实实现功能。水平原型主要用在界面上,垂直原型也称为结构化原型,实现了一部分功能。垂直原型主要用在复杂的算法实现上。
从原型的最终结果来分,可分为抛弃式原型和演化式原型。抛弃式原型也称为探索式原型,是指达到预期目的后,原型本身被抛弃。抛弃式原型主要用在解决需求不确定性、二义性、不完整性、含糊性等;演化式原型为开发增量式产品提供基础,逐步将原型演化成最终系统。主要用在必须易于升级和优化的场合,特别适用于Web项目。
2. 原型法的开发过程
3. 原型法的特点
原型法的特点主要体现在以下几个方面:
l 原型法可以使系统开发的周期缩短、成本和风险降低、速度加快,获得较高的综合开发效益。
l 原型法是以用户为中心来开发系统的,用户参与的程度大大提高,开发的系统符合用户的需求,因而增加了用户的满意度,提高了系统开发的成功率。
l 由于用户参与了系统开发的全过程,对系统的功能和结构容易理解和接受,有利于系统的移交,有利于系统的运行与维护。
原型法也不是万能的,它有不足之处,主要体现在以下两个方面:
l 开发的环境要求高:例如,开发人员和用户的素质、系统开发工具、软硬件设备等。原型法成败的关键及效率的高低,在于原型构建的速度。
l 管理水平要求高:系统的开发缺乏统一的规划和开发标准,难以对系统的开发过程进行控制。
原型法的优点主要在于能更有效地确认用户需求。从直观上来看,原型法适用于哪些需求不明确的系统开发。事实上,对于分析层面难度大、技术层面难度不大的系统,适合于原型法开发;而对于技术层面困难远大于分析层面的系统,则不宜用原型法。
1.2.4. 面向服务的方法OO的应用构建在类和对象之上,随后发展起来的建模技术将相关对象按照业务功能进行分组,就形成了构件的概念。对于跨构件的功能调用,则采用接口的形式暴露出来。进一步将接口的定义与现实进行解耦,则催生了服务和面向服务(Service-Oriented,SO)的开发方法。
从应用的角度来看,组织内部、组织之间各种应用系统的互相通信和互操作性直接影响着组织对信息的掌握程度和处理速度。如何使信息系统快速响应需求与环境变化,提高系统可复用性、信息资源共享和系统之间的互操作性,成为影响信息化建设效率的关键问题,而SO的思维方式恰好满足了这种需求。
目前,SO方法是一个较新的领域,许多研究和实践还有待进一步深入。但是,它代表着不拘泥于具体技术实现方式的一种新的系统开发思想,已经成为信息系统建设的大趋势,越来越多的组织开始实施SO的信息系统。