《福建农林大学 第4章 信息系统的开发方法B综述》由会员分享,可在线阅读,更多相关《福建农林大学 第4章 信息系统的开发方法B综述(60页珍藏版)》请在金锄头文库上搜索。
1、信息系统分析与设计 1 主讲: 黄红星 邮箱:hhx825 博客: ( Google:黄红星 ) 信息系统分析与设计 2 本章主要内容 n信息系统建设的特点 n信息系统的生命周期 n信息系统开发过程方法 n信息系统建模的概念和建模方法 信息系统分析与设计 3 4.1 信息系统建设是复杂的社会过程 n信息系统的复杂性体现在: n技术手段复杂 n内容复杂,目标多样 n投资密度大,效益难以计算 n环境复杂多变 信息系统分析与设计 4 n据国外1995年对365家公司的调查: n31的信息系统项目在完成之前被取消 n53的项目没有达到预定功能 n在3682个项目中只有12的项目按时和按预算完 成 n据
2、某顾问公司2004年报告(对4万个信息系统项目的 调查) nERP失败率达到70% n成功项目只能达到34% n有争议的项目达到51% n失败项目达到15% 成功的含义:在规定的时间内,以规定的预 算完成规定的目标。 4.1 信息系统建设是复杂的社会过程 信息系统分析与设计 5 n问题描述和方案验证 n技术工程问题明确,可以模拟,或制作模 型、样品进行验证,信息系统的问题确定 性差,难以提前验证解决方案 n人的影响 n信息系统是人机系统,有来自于人的障碍 。如了解、沟通、实施困难 n社会环境的影响 n如政策、竞争、文化观念等对信息系统影 响力很大,不同于纯技术工程 4.1 信息系统建设是复杂的
3、社会过程 信息系统分析与设计 6 信息系统分析与设计的基本内容 信息系统分析与设计 7 n信息系统生命周期过程模型与开发方法、开发 工具之间的关系 开发工具开发方法过程模型 CASE工具 结构化方法 信息工程方 法 面向对象方 法 瀑布模型 原型模型 增量模型 螺旋模型 喷泉模型 阶段 规划 分析 设计 实施 维护 信息系统分析与设计的基本内容 信息系统分析与设计 8 信息系统分析与设计的基本内容 n以方法、模型、工具和技术为主体的信息系统分 析与设计理论体系 方法 结构化方法、信息工程方法、面向对象的方法、 模型 系统组件模型:流程图、数据流图(DFD)、实体-关联图(ERD)、 用例图、类
4、图、 开发过程管理模型:PERT图、甘特图、组织层次图、 工具 CASE工具、项目管理工具、集成开发环境、逆向工程工具、代码生成 工具、 技术 战略规划技术、用户面谈技术、结构化技术、面向对象技术、构件技 术、UML技术、 可重构技术、软件复用技术 信息系统分析与设计 9 信息系统开发方法 n具体的信息系统开发方法有很多,主要研究方向有两 类: n针对开发过程 n不同的信息系统开发过程模型。关注整个开发采取哪些步骤 ,每个步骤包含哪些任务,由什么人完成,任务的成果如何 体现等 n也称为不同的生存周期模型 n针对开发方法 n不同的建模方法,从不同的观点来反映系统的全貌,并采用 不同技术手段予以实
5、现 信息系统分析与设计 10 4.2 信息系统的生命周期 n信息系统开发围绕信息系统生命周期来进行,有时 也称系统开发生命周期。 n生命周期按阶段划分,提出的是组织、管理和控制 信息系统开发过程的一种基本框架,原则性地指导 两部分工作: 管理:强调进程安排、资源分配、评估、控制、 反馈 开发:强调任务和开发文档 审批审批 详细详细 设计设计 审查审查 系统系统 运行运行 逻辑逻辑 设计设计 编程编程 测试测试 初步初步 调查调查 验收验收 详细详细 调查调查 系统系统 转换转换 开发开发 方法方法 系统系统 维护维护 总体总体 设计设计 审查审查 提出提出 要求要求 可行性可行性 系 统规 划
6、 系 统分 析 系 统设 计 系 统实 施 系 统运 行维 护 系统系统 评价评价 信息系统的生命周期 信息系统分析与设计 12 系统规划系统规划系统分析 系统分析系统设计系统设计系统实施系统实施系统维护系统维护 系统战略规划 业务流程规划 总体结构规划 资源分配规划 可行性研究 系统调查分析 业务流程分析 数据流程分析 建立数据字典 确定管理模型 总体结构设计 系统代码设计 物理系统设计 数据存储设计 输入输出设计 系统程序设计 系统整体测试 系统安装调试 系统客户培训 系统运行验收 系统运行 系统维护 系统评价 信息系统的生命周期 4.2 信息系统的生命周期 信息系统分析与设计 13 信息
7、系统建设的不同阶段系统分析员的工作 系统规划阶段 进行系统定义和可行性性研究 系统分析阶段 将信息系统的功能和性能的总体概念 描述为具体的信息系统软件需求规格 说明,建立起信息系统开发的基础 系统设计阶段 确定“系统概要设计说明书”和“系统详 细设计说明书”;配合开发人员的开发 、测试、调式等,监督和控制系统的 进度和质量。 系统实施阶段 保证信息系统开发之后能正确地实施 、运行起来,要密切关注系统的运行 状况和用户对系统的反应,以便进行 修改、完善 系统分析员的基本职责 信息系统分析与设计 14 4.3 信息系统开发过程模型 n开发过程的研究和经验的总结: n瀑布开发方法 n原型开发方法 n
8、增量开发方法 n螺旋开发方法 n 信息系统分析与设计 15 4.3.1 瀑布模型 n强调阶段的划分和阶段严格的顺序 n各阶段工作任务明确,要求文档完备性 n是一种严格线性的按阶段顺序的、逐步细化的开 发模式,消除了软件开发的随意性 规划 分析 设计 编码 测试 维护 信息系统分析与设计 16 瀑布模型的特点 n简单易用,容易理解 n开发的进程一个顺着一个,没有反馈 过程,需要严密控制 n允许基线和配置早期接收控制 n一个新的项目不适合这种模型 n用户直到项目结束才能看到质量如何 n不允许或者严格限制变更 信息系统分析与设计 17 瀑布模型的不足 n需求:客户常常难以表达真正的需求,而这种模型
9、却要求严格的阶段性成果,返工困难,变更代价很 大 n风险:客户要等到开发周期的晚期才能看到程序运 行的测试版本,这时若发现大的错误,可能引起客 户的惊慌,其后果也可能是灾难性的 n效率:因为前后任务的依赖关系,成员不能并行工 作,有可能花在等待的时间比开发的时间要长,即 所谓的“堵塞状态” 适用于一些需求已明确并且变化较少的信息系统 信息系统分析与设计 18 4.3.2 原型模型 原型快速建立起来的可以在计算机上运行的程序, 通常选取信息系统中某个关键功能作为原型。 编程测试 分析 定义需求 设计 原型 实施完成 再构造 信息系统分析与设计 19 4.3.2 原型模型 信息系统分析与设计 20
10、 原型方法的特点和应用场合 n用户积极参与 n原型的开发没有严密的阶段性 n短期获得测试版本,降低风险 n应用于以下场合: n需求含糊,用户不能标识出详细的输入、处理 和输出需求 n设计方案不明确,开发人员不能确定算法的有 效性、操作系统的适应性或人机交互的有效性 信息系统分析与设计 21 原型方法的不足 n降低风险的同时,引入了其他风险: n用户随意无止境的需求变化,因为用户容易产 生误解,认为系统很容易被构造和修改 n如果采用原型基础上继续构造,由于修补过度 ,软件质量不易于保证 n开发人员为了快速构造原型,可能会采用不合 适的操作系统、语言、算法等,造成后期风险 ,如系统适应性差、维护困
11、难等 信息系统分析与设计 22 4.3.3 增量模型 n一条直线一次性到达目的总是困难的。 n紧迫的市场期限使得难以完成一个完善的软件产 品,缓解压力的方式是先提交一个有限的版本, 细节部分逐步增加。 n增量模型融合了瀑布模型的基本成分和原型 的迭代特征。采用随着日程时间的进展而交错的 线性序列。 n搭积木的方式,如按子系统划分增量 信息系统分析与设计 23 增量模型的特点 n以功能递增的方式进行软件开发 n能较快地产生可操作的系统 n在每一步递增中,都可以把用户/开发者的经验结合到不 断求精的产品中 n可改善测试效果和降低软件开发总成本 分析 分析 分析 分析 设计 设计 设计 设计 编码
12、编码 编码 编码 测试 测试 测试 测试 增量1 增量2 增量3 增量4 功能 时间 信息系统分析与设计 24 增量模型的应用场合 n项目开始,明确了需求的大部分,但是需求可能 会发生变化 n对于市场和用户把握不是很准,需要逐步了解 n对于有庞大和复杂功能的系统进行功能改进,本 身就需要一步一步实施的。 信息系统分析与设计 25 4.3.4 螺旋模型 n螺旋模型把软件开发过程定义成不断上升的 螺旋周期,每个周期划分为计划、风险分析、实 施和评价四个方面。沿螺线自内向外每旋转一圈 便开发出更为完善的一个新的软件版本。 信息系统分析与设计 26 螺旋模型的特点和应用场合 n风险驱动,可以在生命周期
13、早期强制性的确定项目 中存在的风险 n需要开发人员具有相当丰富的风险评估经验和专门 知识 n要求用户参与阶段评价,对用户要求较高 n适用于: n单位内部开发的大规模软件项目 n风险是项目的主要制约因素 n可能会发生重大变更 n采用新技术 信息系统分析与设计 27 4.3.5 喷泉模型 n喷泉模型 喷泉模型是典型的 面向对象生命周期 模型。 “喷泉”一词体现 了迭代和无间隙特 性。图中代表不同 阶段的圆圈相互重 叠,这明确表示两 个活动之间存在重 叠。 信息系统分析与设计 28 现代开发过程 n一些公司或团体纷纷推出规范化的过程: nIBM统一过程RUP(Rational Unified Pro
14、cess,迭代过程的代 表) n微软MSF(Microsoft Solutions Framework ) n敏捷软件开发联盟Agile Software Development nSCRUM-橄榄球里的争球 nExtreme Programming,极限编程XP nFDD(Feature-Driven Development) 特征驱动开发 nDSDM-动态系统开发方法,也称业务中心框架开发方法 nCrystal Methods-水晶方法族 nASD(Adaptive Software Development)-自适应软件开 发 信息系统分析与设计 29 现代开发过程 信息系统分析与设计 3
15、0 现代开发过程 信息系统分析与设计 31 软件作坊 软件过程控制 重型过程 2001今 敏捷正在流行 软件规模小,以作坊式开发为主; 硬件飞速发展,软件规模和复杂度激增, 引发软件危机; 引入成熟生产制造管理方法,以“过程为中 心”分阶段来控制软件开发(瀑布模型), 一定程度上缓解了软件危机; 软件失败的经验促使过程被不断增加约束 和限制,软件开发过程日益“重型化”,开 发效率降低、响应速度变慢; 随着信息时代到来,需求变化更快,交付 周期成为企业核心竞争力,轻量级的,更 能适应变化的敏捷软件开发方法被普遍认 可并迅速流行。 软件危机 20世纪60年代 80年代 90年代 软件开发顺应时代变
16、化,从重型过程转向轻量型敏捷 70年代 敏捷诞生的历史背景 信息系统分析与设计 32 业界敏捷浪潮 lISO 9000(09版)标准将在原来八大原则的基础上新增敏捷原则 l2000年美国军方软件开发标准(DOD 5000.2)推荐迭代为软件开发优选模式 l世界影响最大的美国波多里奇国家质量奖将敏捷作为核心的十一大原则之一 信息系统分析与设计 33 敏捷开发是一种思维方式和软件过程方法论 在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都 经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互 联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用 状态。 敏捷开发 l敏捷开发是由一些业界专家针对一些企业现状提出了一些让软 件开发团队具有快速工作、响应变化能力的价值观和原则,并 于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他 人