软件工程_敏捷开发讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
敏捷开发介绍-极限编程XP
主要目的是降低需求变化的成本 定义了一套简单的开发流程
包括:编写用户案例,架构规范,实施规划,迭代计划,代码开发,单元 测试,验收测试等等
提倡互动交流、反馈、简单、勇气、团队 核心做法:
小规模,频繁的版本发布,短迭代周期。 · 测试驱动开发(Test-driven development)。 · 结对编程(Pair programming)。 · 持续集成(Continuous integration)。 · 每日站立会议(Daily stand-up meeting)。 · 共同拥有代码Collative code ownership. · 系统隐喻(System metaphor)。
诚信。确保系统正常工作,客户需求是团队努力坚持的诚信和对用户的承 诺。
全局观。精益开发强调整体优化的系统。无论开发的组织还是被开发的产 品, 从整体上考虑优化比从各个局部去优化更高效。
精益软件更重要的是不断完善开发过程的一种思维方式 。
软件工程(第16章 敏捷过程开发)
5
敏捷开发介绍-scrum
SCRUM是一个敏捷开发框架 它由一个开发过程,几种角色以及一套规范的实施方法组成。它可以被运 用于软件开发,项目维护,也可以被用来作为一种管理敏捷项目的框架。
3、Scrum专家(Scrum Master):Scrum专家负责指导开发团队进行 Scrum开发与实践。它也是开发团队与产品拥有者之间交流的联络点。
4、团队成员(Team Member):即项目开发人员。
软件工程(第16章 敏捷过程开发)
6
敏捷宣言
• 2001年2月,17位敏捷方法的先驱在美国 犹他州召开了为期2天的会议,成立了敏 捷软件开发联盟 并发布了“敏捷宣言”
• 敏捷软件开发强调不断地快速地向用户提交可运行 的软件(不一定是完整的软件),以得到用户的认 可
软件工程(第16章 敏捷过程开发)
10
Leabharlann Baidu
客户合作 重于 合同谈判
• 只有客户才能明确说明需要什么样的软件,然而, 大量的实践表明,在开发的早期客户常常不能完整 地表达他们的全部需求,有些早期确定的需求,以 后也可能会改变
软件工程(第16章 敏捷过程开发)
2
敏捷开发介绍-精益
精益开发起源
从丰田公司的产品开发方法中演化而来。它主要包括两个部分:一部分是 核心思想及原则,另外一部分由一些在相应的工具构成。
核心思想
查明和消除浪费。在软件开发过程中,错误(bugs),没用的功能,等待 以及其他任何对实现结果没有益处的东西都是浪费。浪费及其源头必须被 分析查明,然后设法消除。
• 由于软件开发的预测性的困难,想通过合同谈判的 方式,将需求固定下来常常是困难的
• 敏捷软件开发强调与客户的协作,通过与客户的交 流和紧密合作来发现用户的需求
软件工程(第16章 敏捷过程开发)
11
响应变化 重于 遵循计划
• 任何软件项目的开发都应该制订一个项目计划,以 确定各开发任务的优先顺序和起止日期。然而,随 着项目的进展,需求、业务环境、技术等都可能变 化,任务的优先顺序和起止日期也可能因种种原因 会改变
Scrum定义了4种主要的角色:
1、产品拥有者(Product Owner):该角色负责产品的远景规划,平衡 所有利益相关者(stakeholder)的利益,确定不同的产品需求积压的优 先级等。它是开发团队和客户或最终用户之间的联络点。
2、利益相关者(Stakeholder):该角色与产品之间有直接或间接的利 益关系,通常是客户或最终用户代表。他们负责收集编写产品需求,审查 项目成果等。
也就是说,尽管右项有其价值, 我们更重视左项的价值
软件工程(第16章 敏捷过程开发)
8
个体和交互 重于 过程和工具
• 过程和工具是重要的,但是软件开发中人的作用和 交流的作用更需要被进一步强调
• 软件是由人组成的团队来开发的,与软件项目相关 的各类人员通过充分的交流和有效的合作,才能成 功地开发出得到用户满意的软件
软件工程
敏捷过程开发
敏捷开发介绍
• 敏捷开发(agile development)
是一种以人为核心、迭代、循序渐进的开发方法。在 敏捷开发中,软件项目的构建被切分成多个子项目, 各个子项目的成果都经过测试,具备集成和可运行的 特征。简言之,就是把一个大项目分为多个相互联系, 但也可独立运行的小项目,并分别完成,在此过程中 软件一直处于可使用状态。
软件工程(第16章 敏捷过程开发)
3
精益开发的原则包括:
强调学习。不断改进所开发的产品和开发效率。
在最后时刻做决定。避免在可能改变的事情上做无谓的努力,避免浪费。
用最快的速度交付用户。缩短迭代周期加速开发及交付,加快交流,提高 生产力
给团队自主权。激励团队并让团队成员自我管理-敏捷方法成功的基本因 素之一。
• 捷开发由几种轻量级的软件开发方法组成
它们包括:极限编程(XP),Scrum,精益开发
(Lean Development),动态系统开发方法
(DSDM),特征驱动开发(Feature Driver
Development),水晶开发(Cristal Clear)等等
软件工程(第16章 敏捷过程开发)
• 因此,项目计划应具有可塑性,有变动的余地。当 出现变化时及时做出反应,修订计划以适应变化
• 如果光有定义良好的过程和先进的工具,而人员的 技能很差,或者不能很好地交流和协作,软件是很 难成功地开发的
软件工程(第16章 敏捷过程开发)
9
工作的软件 重于 详尽的文档
• 可以工作的软件是软件开发工作的最终目标
• 好的必要的文档能帮助我们理解软件做什么,怎么 做以及如何使用,是有价值的。但是,软件开发的 主要目标仍然是创建可运行的软件
• 该宣言由四个价值观声明组成,并提炼出 敏捷软件开发方法必须遵循的12条原则
软件工程(第16章 敏捷过程开发)
7
敏捷宣言
我们正通过亲身或者协助他人进行软件开发实践来 探索更好的软件开发方法。
基于此,我们建立了如下的价值观:
个体和交互 重于 过程和工具 工作的软件 重于 详尽的文档
客户合作 重于 合同谈判 响应变化 重于 遵循计划