“瀑布”模型.ppt

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“瀑布”模型

1.3.2演化软件过程模型 背景: 业务和产品需求随着开发的发展常常发生改变,想找到最终产品的一条直线路径是不可能的;紧迫的市场期限使得难于完成一个完善的软件产品,但可以先提交一个有限的版本以对付竞争的或商业的压力;只要核心产品或系统需求能够被很好地理解,而产品或系统的细节部分可以进一步定义。 要求: 在这些情况及其他类似情况下,软件工程师需要一个过程模型,以便能明确设计,同时又能适应随时间演化的产品的开发。 模型: 演化模型是利用一种迭代和增量的思想方法。它的特征是使软件工程师渐进地开发,逐步完善的软件版本。 增量模型 增量模型(Incremental Model) 根据需求规模说明书将系统按功能分解成若干个子系统.开始开发一个子系统的功能,经过设计、实现、集成、测试后交付使用,然后再开发其他子系统,再加入已有的系统中,逐渐构成能完成全部功能的完整系统. 规格说明 设计 实现和集成 交付客户 规格说明 设计 实现和集成 交付客户 规格说明 设计 实现和集成 交付客户 增量1 增量2 增量3 增量n 增量模型(Cont.) 增量模型的优点: 项目可以分解为多个子系统,子系统之间边界清楚; 任务或功能模块驱动,可分阶段提交产品; 系统本身具有良好的模块化特征,模块内部高内聚,模块之间低耦合,模块本身信息隐蔽; 增量模型的缺点: 不适合各部分联系紧密的项目; 系统整体结构的一致性可能较差; 各子系统风格可能不一致. 选择增量模型的条件: 在整个开发过程中,需求都可能发生变化,客户接受分阶段交付产品的项目; 分析设计人员对应用领域不熟悉的项目; 中高等风险项目; 用户可参与到整个开发过程中的项目; 使用面向对象语言或第四代语言开发的项目; 软件公司自己有较好的类库,构件库; 大型软件系统。开发周期较长(超过1年). 分批投资的项目. 螺旋模型 螺旋模型(Spiral Model)是Boehm提出来的,他从风险角度看待软件开发过程,建议螺旋模型将风险管理结合到开发活动中,以最小化风险并可控制风险. 先进行需求分析和生命周期计划,包括预算、方案、约束,进行评审,然后进行风险分析,建立原型1,明确操作方法. 修正预算、方案和约束,再评审,进行风险分析,建立原型2,明确软件需求,确认需求,制定开发计划. 修正预算、方案和约束,再评审,进行风险分析,建立原型3,进行软件设计,确认并验证设计,做集成和测试计划. 修正预算、方案和约束,再评审,进行风险分析,建立原型4,进行详细设计,编码,单元测试,系统测试,验收测试,实现计划. 螺旋模型(Cont.) 螺旋模型的优点: 强调风险管理,开发大型软件时可降低风险.实际上是一个过程管理模型,而非开发模型 每一次循环可以采用不同的模型,适应风险变化 模型的缺点: 开发进度可能难以控制. RUP RUP RUP(Rational Unified Process) 统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。 RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。 RUP 现在软件产业界普遍认为,开发复杂软件项目必须采用: 基于UML的 以构架为中心 用例驱动和风险驱动相结合的迭代式增量开发过程 RUP具有很多长处 提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。 但同时它也存在一些不足: RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构 敏捷开发 是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。 人和交互 重于 过程和工具。 可以工作的软件 重于 求全责备的文档。 客户协作 重于 合同谈判。 随时应对变化 重于 遵循计划。 敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。 适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化. 对比迭代模型 相比迭代式开发两者都强调在较短的开发周期提交软件,敏捷方法的周期可能更短,并且更加强调队伍中的高度协作。 对比瀑布模型

文档评论(0)

yanpizhuang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档