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