2-软件过程.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
统一过程 (Unified Process Model) A software process that is: use-case driven architecture-centric iterative and incremental Closely aligned with the Unified Modeling Language (UML) 创始人:Jacobson、Booch、Rumbaugh[JAC99] 软件过程模型 软件过程模型 统一过程 (Unified Process Model) UP过程模型 Unified Process Model 敏捷开发者宣言 2001年,Kent Beck和其他16位知名软件专家共同签署了“敏捷软件开发宣言”[BEC01a] 个体和交互胜过过程和工具 可工作软件胜过宽泛的文档 客户合作胜过合同谈判 响应变化胜过遵循计划 软件过程模型 敏捷过程 (Agile Process Model) 共赢、共输 人是第一位的,过程是第二位 变化不可避免 适应性?预设性? 敏捷的来源 市场情况飞速变化 最终用户需求不断变更 新的竞争威胁毫无征兆地出现 必须敏捷地响应变化、无法确定的商务环境 Cockburn在敏捷软件开发著作中,论证了惯例过程模型的主要缺陷: 忘记了开发软件的人员的特点 高度纪律性的方法学非常脆弱 严格的纪律和宽容实践必须考虑平衡 软件过程模型 敏捷过程 (Agile Process Model) 敏捷过程是什么 敏捷过程是轻量级或者精简的软件开发过程 尽早、持续交付有价值的软件 欢迎变更,快速响应变化 鼓励共利益者特别是客户参与协同工作 强调人的因素,“构造可以满足人员及团队需求的过程模型” 软件过程模型 敏捷过程 (Agile Process Model) 作为一个整体工作; 按短迭代周期工作; 每次迭代交付一些成果; 关注业务优先级; 检查与调整。 极限编程 (eXtreme Programming, XP) 策划 设计 编码 测试 用户故事 权值 验收测试准则 迭代计划 简单设计 CRC卡 重构 结对编程 连续集成 单元测试 集成测试 验收测试 发布 软件增量 项目速度估算 软件过程模型 敏捷过程 (Agile Process Model) 实例讨论 Software Process Model 实例讨论 Software Process Model 实例讨论 Software Process Model 实例讨论 Software Process Model 回顾 软件的概念、特征 软件的发展和软件危机 软件工程概念 软件过程及过程模型 “兵无常势,水无常形” END * * * * * 所有过程模型的鼻祖。---- Royce,1970 瀑布模型把软件开发过程划分成若干阶段,每个阶段的任务相对独立,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度。在软件生存期的每个阶段都采用科学的管理技术和良好的方法与技术,而且每个阶段结束之前,都从技术和管理两个角度进行严格的审查,经确认之后才开始下一阶段的工作。---- 项目是按照一定的顺序执行。 瀑布模型是文档驱动的,各个阶段不连续也不交叉。 优点:开发人员行为规范化;因为文档齐备使得软件维护相对容易;质量保证。 * 适合使用原型的情况: 开发周期长的系统; 系统变化较大,不稳定; 用户对系统需求模糊; 开发者对方案把握不准; 常用原型来确定系统总体结构; 人机交互的界面形式; 输入输出软件; 不适合使用原型的情况: 用户不积极参与; 用户不能很好提供 数据资源; * 增量模型与快速原型模型,本质上都是迭代的。 两者区别在:增量模型强调每一个增量发布一个可操作的产品。早期的增量提供了为用户服务的功能和给用户评价的平台。 * Jacobson UML之父 * 在传统的软件开发工作中,项目团队分配工作的重点是明确角色的定义,以个人的能力去适应角色,而角色的定义就是为了保证过程的实施,即个人以资源的方式被分配给角色,同时,资源是可以替代的,而角色不可以替代。   然而,传统软件开发的这些方法在敏捷开发方式中被完全颠覆。敏捷开发试图使软件开发工作能够利用人的特点,充分发挥人的创造能力。 敏捷开发方法是“适应性”(Adaptive)而非“预设性” (Predictive)。   这里说的预设性,可以通过一般性工程项目的做法理解,比如土木工程,在这类工程实践中,有比较稳定的需求,同时建设项目的要求也相对固

文档评论(0)

I LOVE YOU + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档