《信息系统开发方法.ppt》由会员分享,可在线阅读,更多相关《信息系统开发方法.ppt(66页珍藏版)》请在课桌文档上搜索。
1、第14章 信息系统开发方法,学习目的,理解信息系统开发的复杂性和基于系统工程的开发思想了解信息系统的开发原则及开发策略理解信息系统开发生命周期了解瀑布模式、渐增模式、原型模式、螺旋模式以及并行模式的基本特点掌握结构化方法、信息工程方法以及面向对象方法的本质及基本实现思路了解信息系统开发形式以及信息系统相关者的类型,本讲内容,信息系统开发思想信息系统开发原则信息系统开发策略信息系统开发模式信息系统的开发方法系统开发的多种形式信息系统的相关者,信息系统开发思想,信息系统开发的复杂性一方面,管理信息系统是一个社会系统,应用于管理领域,与一般的技术系统不同,它以企业管理环境为背景,和企业组织结构、管理
2、体系、业务流程有着密切关系,容易受环境的影响。另一方面,管理信息系统又是一个技术系统。信息技术的发展,为系统开发提供技术支持,但也使得开发工作变得更为复杂。信息系统支持环境(即硬件、软件和通讯技术)在不断变化,系统开发技术必须适应支持环境的变化,加大了开发的技术难度。另外,管理信息系统涉及到的事务繁琐、牵涉面广,因此用户的需求很难弄清。同时,开发过程中,人员多、周期长,而多人合作又会引起协调上的困难,这也是造成系统开发复杂性的原因。,信息系统开发思想,信息系统开发的复杂性“IT黑洞”、“生产率悖论”70年代初的软件危机 软件工程现象:开发进度难以预测、开发成本难以控制、用户对产品功能难以满足、
3、软件产品质量无法保证、软件产品难以维护、软件缺少适当的文档资料。原因:系统规模越来越大,复杂度也越来越高,用户需求不明确,缺乏正确的理论指导。解决途径:产生软件工程:研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本、改进软件产品质量、提高软件生产率水平的目标。工程化、标准化、科学化、工具化、重用性,信息系统开发思想,复杂性怎么办?,系统工程思想:化腐朽为神奇!,信息系统开发思想,系统工程思想及应用系统工程是一门用于大规模复杂系统设计的学问,是组织管理系统的规划、设计、制造、试验和使用的科学方法。它的思想是以
4、系统概念为基础的思想,表现为由粗到细、由表及里、由上到下、由整体到局部,逐步求精的分析。系统工程方法一般步骤:调研确定目标确定功能考虑方案(多个)选择一个方案实施维护和评价。,信息系统开发思想,系统工程思想及应用开发过程的一般规律,信息系统开发生命周期,信息系统开发思想,系统工程思想及应用系统开发的生命周期 系统规划阶段弄清这一工作的目的是什么?系统规划首先提出系统开发要求,确定系统目标,并给定资源条件和约束条件,然后制订系统开发计划。系统分析阶段弄清目标对象是什么?系统分析是一个有目的、有步骤的探索、研究和判断的过程,系统分析员使用科学的分析工具和方法,对系统的目标、功能、环境、费用、效益等
5、进行充分的调查和分析,最后获得最佳的系统方案。,信息系统开发思想,系统工程思想及应用系统开发的生命周期 系统设计阶段根据需求调查和系统分析的结果,进行概略设计,提出不同的新系统方案,同时对新系统方案进行比较,并由此确定新系统的最佳方案,最后进行系统详细设计。系统实施与运行进行系统的实施、调试、维护、评价和运行等工作。,本讲内容,信息系统开发思想信息系统开发原则信息系统开发策略信息系统开发模式信息系统的开发方法系统开发的多种形式信息系统的相关者,信息系统开发原则,领导参加的原则(一把手原则)信息系统的开发是一项庞大的系统工程,涉及到组织日常管理工作的各个方面,所以领导出面组织力量,协调各方面的关
6、系是开发成功的首要条件。优化与创新的原则信息系统的开发不能简单模拟旧的管理模式和业务流程,必须根据实际情况和科学管理的要求,加以优化和创新。充分利用信息资源的原则数据尽可能共享,减少系统的输入输出,对已有的数据作进一步的分析处理,深层次加工信息。,信息系统开发原则,实用和实效的原则从系统规划开始直到系统实施,所有方案都必须是实用的、及时的、有效的。规范化原则按照标准化、工程化的方法和技术进行系统开发。同时要求用户单位基础管理科学化,即管理工作程序化、业务流程标准化、报表文件标准化、数据资料完整化。适应性原则充分考虑到组织结构、管理模式、业务流程等可能发生的变化,使系统具有一定的柔性,能够在一定
7、范围内适应环境的变化。,本讲内容,信息系统开发思想信息系统开发原则信息系统开发策略信息系统开发模式信息系统的开发方法系统开发的多种形式信息系统的相关者,信息系统开发策略,“自顶而下”的开发策略“自底向上”的开发策略 综合策略,信息系统开发策略,“自顶而下”的开发策略在系统分析与设计时,从组织的高层管理着手,考虑系统的整体目标,以及资源与约束,再确定需要哪些功能去保证目标的完成,划分相应子系统,并进行子系统的业务分析和设计。执行步骤是:分析系统整体目标、环境、资源和约束条件;确定各项主要业务处理功能和决策能力,从而得到各个子系统的分工、协调和接口;确定每一种功能(子系统)所需要的输入、输出、数据
8、存贮;对各子系统的功能模块和数据进行进一步分析与分解;根据需要与可能,确定优先开发的子系统。,信息系统开发策略,“自底向上”的策略从组织的各个基层业务子系统的日常业务处理入手,进行系统分析与设计。这种应用子系统容易被识别、理解、开发和调整,有关的数据流和数据存贮也容易确定。当下层子系统分析完成后,再进行上一层系统的分析与设计,将不同的功能和数据综合起来考虑。为了支持系统的总目标,满足管理层和决策层的需要,除增添新的功能和数据外,还要考虑一定的经济管理模型。,信息系统开发策略,综合策略 为了充分发挥上述两种策略的优点,人们往往将它们综合起来应用。“自顶而下”的策略适用于一个组织的总体方案的设计,
9、“自底向上”的策略又适用于具体业务信息系统总体设计。在用“自顶而下”原则确定了一个信息系统的总体方案之后,再采用“自底向上”的策略,在总体方案指导下,对一个个业务子系统进行具体功能和数据的分析和分解,并逐层归纳到决策层。这样,通过全面分析、协调和调整之后,能得到一个比较理想的,耗费人力、物力、时间较少的,用户满意的新系统。,本讲内容,信息系统开发思想信息系统开发原则信息系统开发策略信息系统开发模式信息系统的开发方法系统开发的多种形式信息系统的相关者,信息系统开发模式,系统开发模式系统开发生命周期的各种变体称为系统开发模式,它们是开发活动一系列的步骤及执行过程。当系统开发按照系统化、逻辑化的步骤
10、进行时,有利于标准、规范与政策的推行和建立,开发的过程将更为有效、更能确保质量,也更容易管理。信息系统开发模式的类型编码与修改模式、阶段模式、瀑布模式、渐增模式、原型模式、螺旋模式、并行模式。,信息系统开发模式,瀑布模式将系统开发的过程分成几个阶段,每个阶段清楚定义要做哪些工作及交付哪些文件,各阶段循环执行且仅循环一次。在阶段划分上,具有一定的弹性,没有明确规定开发过程应分成几个阶段。当问题较小或较简单时,阶段可能少至三个,如分析、设计、实施;若问题较大或较复杂时,阶段可能被细分成更多个阶段。,信息系统开发模式,瀑布模式,信息系统开发模式,瀑布模式,信息系统开发模式,渐增模式瀑布模式要求在系统
11、开发的各个阶段均需同时考虑所有需求,且系统开发需在一个周期完成。在某些情况下,这种要求难以实现。Mills于1971年提出渐增模式:把需求分成“几”个部分(Increments),然后按照渐增开发计划,将每个“部分需求”的开发视为一个周期,每个开发周期依次或平行开发。每个周期的阶段清楚定义要做哪些工作和交付哪些文档,每个阶段循序进行且仅循环一次。是瀑布模式的扩展,它强调需求的可分性,每一部分可依据瀑布模式开发。也就是说,渐增模式首先进行需求分析以完全掌握需求,然后再进行渐增开发规划。,信息系统开发模式,渐增模式,信息系统开发模式,原型模式瀑布模式与渐增模式均假设在项目开始时,用户需求能被清楚完
12、整地描述。但在许多情况下,这种假设不切实际,因为用户经常无法把需求清楚完整地表达,有时虽能够清楚地表达,但开发人员可能没有足够的经验与知识完全了解用户的需求,也可能一时无法找出问题的解决方法。原型模式首先针对用户需求比较清楚的部分或开发人员能够掌握的部分,按照分析、设计、实施等步骤快速开发原型。开发过程中,强调以原型作为用户与开发人员沟通的工具,双方通过原型的操作与反馈,以弄清、修改及扩充需求,并以此来修改与扩充原型。上述步骤反复进行,直到系统符合双方约定为止。,信息系统开发模式,原型模式,信息系统开发模式,原型模式基本步骤快速分析,弄清用户的基本信息需求构造原型,开发初步原型系统用户和开发人
13、员使用并评价原型修改和完善原型系统,信息系统开发模式,原型模式的特点符合人们认识事物的客观规律将模拟手段引入系统分析的初期阶段强调用户的全程参与提倡使用工具开发,13.4 信息系统开发模式,原型模式的适用范围对于大型复杂系统,很难直接用屏幕简单地模拟,必须经过严密的系统分析进行结构划分,因此原型模式不适合大型系统的开发。对于运算复杂、逻辑性强的程序模块,原型模式很难构造出模型来供用户评价。因为这类问题本身就没有那么多的交互方式,也不是三言两语就可以把问题说得清楚。对于基础管理不善的单位,不宜用原型法。首先,业务流程不清,信息处理过程混乱,构造原型有一定的困难;其次,基础管理不健全,没有科学合理
14、的方法可依,系统开发容易走上机械地模仿手工系统的操作方式上。因强调以“原型演进”代替完整的分析与设计,故系统文档较不完备,程序也可能较难维护。就短期而言,可能满足用户需求,但对长期来说,系统较易失败。,信息系统开发模式,原型模式的分类演进式原型策略(Evolutionary Prototyping)将所有需求看成一个整体,从需求最清楚的部分入手,快速经历一系列开发周期(如分析、设计、实施),完成初始原型系统的开发,再利用该原型与用户沟通,以确定、修改和扩充需求,并以此作为下一周期原型演进的依据。该周期不断地反复进行,一直到原型系统符合双方的约定为止。抛弃式原型策略(Rapid Throwawa
15、y Prototyping)以一种快速而粗糙(Quick and Dirty)的方式建立原型,使用户能够尽快通过与原型的互动来确定需求项目,或允许开发人员以此来寻求问题的解决方案。这种原型用过即丢,所以不需要考虑原型系统的运作效率与可维护性,也不需要容错能力。,信息系统开发模式,原型模式,信息系统开发模式,螺旋模式基本思想:螺旋模式不是将开发过程用一系列活动及活动间的回溯来表示,而是用螺旋线表示。在螺旋线中每个回路表示系统开发过程的一个阶段。最里面的回路可能与系统可行性有关,下一个回路与系统需求定义有关,再下一个回路与系统设计有关。基本步骤:步骤1:找出系统的目标、可行方案与约束 步骤2:根据
16、目标与限制评估方案 步骤3:由剩下的相关风险决定下一步骤,信息系统开发模式,螺旋模式,信息系统开发模式,并行模式并行模式(Concurrent Model)由Aoyama M于1993年提出,其思想源于制造业的并行工程,目的在于缩短系统开发周期,加速版本的更新。首先将每一版本(Release)的工作分成若干功能组(Enhancement),功能组是一个或多个功能的组合。接着,将功能组的工作分配给多个团队并行开发,当同一版本的功能组都完成了开发之后,便交给独立的团队进行集成和测试,开发团队的成员则可进行下一版本的开发。同理,当集成及测试团队完成了一个版本的工作后,便可进行下一版本的集成和测试。,
17、信息系统开发模式,并行模式,信息系统开发模式,统一过程模式,信息系统开发模式,极限编程模式,本讲内容,信息系统开发思想信息系统开发原则信息系统开发策略信息系统开发模式信息系统的开发方法系统开发的多种形式信息系统的相关者,信息系统的开发方法,系统开发方法的二维分类法,信息系统的开发方法,结构化方法的基本思想(Structured System Development Methodologies)迄今为止,最普遍、最成熟的一种开发方法。基本思想:用系统工程思想和工程化方法,按用户至上的原则,结构化、模块化、自顶向下地对系统进行分析和设计。在系统调查或理顺管理业务时,从最顶层的管理业务入手,逐步深入
18、到最基层。在系统分析和系统设计阶段,从宏观整体分析入手,先考虑系统整体的优化,然后在考虑局部的优化问题。在系统实施阶段,采用自底向上的实施策略,组织开发人员从最基层模块的编程入手,并对模块逐个测试,然后按照系统设计的结构,将模块集成起来,进行系统总体调试,最后,自底向上、逐渐地构成整体系统。,信息系统的开发方法,结构化方法的开发过程采用结构化方法开发系统时,整个开发过程按照生命周期被划分为若干个首尾相连的阶段。生命周期有多种变体,因此划分方法有多种。本课程采用传统的生命周期模型,将开发过程划分为:系统规划系统分析系统设计系统实施系统运行,结构化方法过程示意图,信息系统的开发方法,信息系统的开发
19、方法,结构化方法的特点自顶向下整体性分析与设计和自底向上逐步实施的系统开发过程以用户为中心的开发原则深入的调查研究严格划分工作阶段逻辑设计和物理设计分别进行工作文档标准化、规范化结构化方法的缺点所有需求必须预先明确灵活性差开发周期较长,信息系统的开发方法,信息工程的基本原理 数据位于现代数据处理系统的中心,借助于各种数据系统软件,对数据进行采集、整理、更新、维护。数据是稳定的,处理是多变的。一个企业所使用的数据类固定的,不随企业的职能域和业务过程的变化而变化。具体说,数据实体类型是不变的,除了偶尔少量地加入几个新的实体外,变化的只是这些实体的属性值。最终用户必须真正参加开发工作。只有这样,用户
20、才能将自己熟悉的业务的具体需求提交出来,并结合自己企业的特点和长期的发展战略及管理结构调整计划。,信息系统的开发方法,信息工程的基本原理 采用自顶向下规划和自底向上设计相结合的开发方法论。信息工程包括13块构件:企业模型/战略数据规划(业务模型)、实体关系分析(E-R)、主题数据库模型、应用软件生成工具、处理过程生成、数据应用分析、分布分析、物理数据库分析、第4代过程语言、结构化程序设计和原型设计。在这些构件中,企业模型、实体关系及主题数据库是不随业务过程的变化而变化的。以主题数据库规划、设计和实现为主体的企业数据环境建设,是信息工程核心内容。数据库的设计和使用的初衷就是保证数据的准确性、一致
21、性和安全性,同时具有共享性。,信息系统的开发方法,面向对象方法的基本思想 从现实世界的客观事物(即对象)出发来构造信息系统,并在系统构造中尽可能运用人类的自然思维方式。开发一个系统是为了解决某些问题。这些问题所涉及的业务范围称作该系统的问题域。OO方法强调直接以问题域(现实世界)中的事物为中心来思考问题,并根据这些事物的本质特征,把它们抽象表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相差较远,并且没有对应关系得其它概念来构造系统)。这使得系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。,信息系统的开发方法,面向对象与面向过程 在面向对象的程序设计方法
22、(OOP)出现之前,程序员采用面向过程的方法开发系统。面向过程的方法把相互依赖的数据和对数据的操作相互分离,这种实质上的依赖与形式上的分离,使得大型系统难于编写、调试。在多人合作中,程序员之间很难读懂对方的代码,更谈不上代码的重用。,信息系统的开发方法,面向对象与面向过程 OOP技术是一种以对象为基础,以事件或消息驱动对象执行处理的程序设计技术。它以数据为中心而不是以功能为中心来描述系统,数据相对于功能而言具有更强的稳定性。它将数据和对数据的操作封装在一起,作为一个整体来处理,采用数据抽象和信息隐蔽技术,将这个整体抽象成一种新的数据类型 类,并且考虑不同类之间的联系和类的重用性。另一方面,OO
23、系统中的一切操作都是通过向对象发送消息来实现的,对象接到消息后,启动消息处理函数完成相应的操作。因此,面向对象系统的控制流程是由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际。,信息系统的开发方法,面向对象方法的基本概念对象与类的概念 对象是现实世界中一个实际存在的事物,它可以是有形的,也可以是无形的。在OO方法中,“对象”是一组属性和施加在这些属性上的一组操作构成的独立个体,可以用“对象=属性+作用于这些属性上的操作(或服务)”这一公式来表达。在OO方法中,类的定义是:具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个
24、主要部分。,信息系统的开发方法,面向对象方法的基本概念消息的概念 所谓消息(Message)是指为了实现某一功能而要求某个对象执行其中某个功能操作的规格说明。在OO方法中,对象之间的相互服务是通过消息来连接实现的。,信息系统的开发方法,面向对象方法的基本特征抽象性(Abstraction)封装性(Encapsulation)继承性(Inheritance)多态性(Polymorphism),信息系统的开发方法,面向对象的开发过程 面向对象的分析(Object-oriented Analysis,OOA)面向对象的设计(Object-oriented Design,OOD)面向对象的编程(Obj
25、ect-oriented Programming,OOP)面向对象的测试(Object-oriented Testing,OOT)面向对象的维护(Object-oriented System Maintenance,OOSM),信息系统的开发方法,面向对象的开发过程 面向对象的分析(Object-oriented Analysis,OOA)OOA强调直接针对问题域中客观存在的各种事物来设立OOA模型中的对象。用对象的属性和服务分别描述事物的静态特征和行为。问题域有哪些值得考虑的事物,OOA模型中就有哪些对象,而且对象及其服务的命名都强调与客观事物的一致。OOA模型也保留了问题域中事物之间关系的
26、原貌。这包括把具有相同属性和相同服务的对象归结为类用一般-特殊结构描述一般类和特殊类之间的关系(即继承关系)用整体-部分结构描述事物间的组成关系用实例连接和消息连接表示事物之间的静态联系(一个对象的属性与另一个对象有关)和动态联系(一个对象的行为与另一个对象行为有关),信息系统的开发方法,面向对象的开发过程 面向对象的分析(Object-oriented Analysis,OOA)可以看到,无论是对问题域中的单个事物,还是对各个事物之间的关系,OOA模型都保留着它们的原貌,没有加以转换、扭曲,也没有打破原有的界限而重新组合。所以OOA模型能够很好地映射问题域。,信息系统的开发方法,面向对象的开
27、发过程 面向对象的设计(Object-oriented Design,OOD)OOA与OOD的职责划分是:OOA针对问题域运用OO方法,建立一个反映问题域的OOA模型,不考虑与系统的具体实现有关的因素(如采用什么编程语言、图形用户界面、数据库等等),从而使OOA模型独立于具体实现。OOD则是针对系统的一个具体的实现运用OO方法。其中包括两方面的工作:一是把OOA模型直接搬到OOD(不经过转换,仅做某些必要的修改和调整),作为OOD的一个部分;另外是针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。这些部分与OOA采用相同的表示法和模型结构。,信息系统的开发方法,面向对
28、象的开发过程 面向对象的设计(Object-oriented Design,OOD)OOA与OOD采用一致的表示法是OO方法优于传统开发方法(如结构化方法和信息工程法)的主要原因之一。这使得从OOA到OOD不存在转换,只有局部的修改或调整,并增加几个与实现有关的独立部分。因此OOA与OOD之间不存在传统开发方法中分析与设计之间的鸿沟,二者能够紧密衔接,大大降低了从OOA过渡到OOD的难度、工作量和出错率。,信息系统的开发方法,面向对象的开发过程 面向对象的编程(Object-oriented Programming,OOP)OOP任务就是采用一种面向对象的编程语言(OOPL)把OOD模型中的每
29、个成分书写出来。理想的OO开发规范,应要求在OOA和OOD阶段就对系统需要设立的每个对象类及其内部构成(属性和服务)与外部关系(静态和动态联系)都达到透彻的认识和清晰的描述,而不是把许多问题遗留给程序员去重新思考。程序员所做的事情就是:用具体的数据结构来定义对象的属性,用具体的语句来实现服务流程图所表示的算法。,信息系统的开发方法,面向对象的开发过程 面向对象的编程(Object-oriented Programming,OOP)OOP阶段产生的程序能够紧密地对应OOD模型;OOD模型中一部分对象类对应OOA模型,其余部分的对象类对应与实现有关的因素;OOA模型中全部类及对象都对应问题域中的事
30、物。这样的映射关系不但提高了开发的效率和质量,对以后的维护也十分有帮助。,信息系统的开发方法,面向对象的开发过程 面向对象的测试(Object-oriented Testing,OOT)OOT是指对于用OO技术开发的系统,在测试过程中继续运用OO技术,进行以对象为中心的系统测试。对于用OOA和OOD建立模型并由OOPL编程的软件,OOT能够更准确地发现程序错误并提高测试效率。原因在于:用OOPL实现的程序中,对象的封装性使对象成为一个独立的程序单位,只通过有限的接口与外部发生关系,从而大大减少了错误的影响范围。OOT以对象的类作为基本测试单位,差错范围主要是类定义之内的属性和服务,以及有限的对
31、外接口(消息)所涉及的部分。此外,由于继承性的存在,OOT完成对父类的测试后,子类的测试重点只是那些新定义的属性和服务。,信息系统的开发方法,面向对象的开发过程 面向对象的维护(Object-oriented System Maintenance,OOSM)OO方法为系统维护提供了有效的途径。程序与问题域是一致的,各个阶段的表示是一致的,从而大大减少了理解的难度。无论是发现了程序中的错误而逆向追溯到问题域,还是需求发生了变化而从问题域正向跟踪到程序,道路都是比较平坦的。,本讲内容,信息系统开发思想信息系统开发原则信息系统开发策略信息系统开发模式信息系统的开发方法系统开发的多种形式信息系统的相关
32、者,系统开发的多种形式,本讲内容,信息系统开发思想信息系统开发原则信息系统开发策略信息系统开发模式信息系统的开发方法系统开发的多种形式信息系统的相关者,信息系统的相关者,1用户用户是指实际使用系统处理日常事务的人,他们是系统功能需求的主要来源,包括:(1)业务操作用户.(2)查询用户.(3)管理用户.(4)主管用户。2.客户客户是指购买或拥有系统的人,故又称投资者。3技术人员技术人员是确保系统运行在组织的计算机环境下的人。4开发人员(1)系统分析员与设计员。(2)经济管理模型设计员。(3)程序员。(4)系统管理员和硬件人员。5第三方咨询机构包括:项目实施目标和计划的评价咨询、项目投入资源和项目过程及成果的监理、项目实施效益的评估。,