需求分析敏捷方法论

  • 格式:pptx
  • 大小:2.52 MB
  • 文档页数:56

下载文档原格式

  / 50
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

价值观
改善沟通 寻求简单 获得反馈
富有勇气 敏捷实践
结对编程 测试驱动开发 集成构造
组内所有和信息共享 重构 短迭代周期
MDD(Model Driven Development) MDA(Model Driven Architecture) TDD(Test Driven Development) FDD(Feature Driven Development) RDD(Requirement Driven Development) UDD(Use Case-Driven Development)
提到的六个字段我们会一直使用下去,这 也就是一种最简化。
注:有颜色的组件可以说是必需的
电子版的索引卡,可以清晰、直观的显示燃尽图和索引卡等信息。 Dashboard :http://scrumdashboard.codeplex.com/
XP是轻量级的,以实践组合而得来的方法集,简单易行,文档很 少,甚至没有,成本比较低。管理思想是激励。适合小型项目。
传统瀑布模型
实际瀑布模型
参与者: 应用, 服务 特点: 里程碑设定, 协 议 数据: 结构化, 事务
参与者: 人, 角色 软件过程是为了获得高质量的软件产品所需 特点: 线形,规范 要完成的一系列任务的框架,它规定了完成 数据: 非结构化, 文档 各项任务的工作步骤。
快速原型模型
增量模型 螺旋模型 喷泉模型 敏捷模型 •Scrum、XP……
精益,消除浪费(人、流程、技术)
RUP(Rational Unified Process)
RUP是风险驱动的、基于Use Case技术的、 以架构为中心的、迭代的、可配置的软件开发流程
MSF for Agile ……
源于–英式橄榄争球队,软件开发模型是敏捷开发的一种
迭代开发 增量交付 频繁反馈推动产品开发 持续集成 开发团队自我管理 本质拥抱需求变化 提高效率
以企业对象为基础来组织需求、构架系统。这样得出的系统就会比传 统的系统要稳定得多,因为企业的模式一旦变化,只需将稳定的企业对象 重新组织就行了。
Object-Oriented Analysis (OOA):面向 对象的分析 OOA的侧重点是业务领域分析,与软件所 要应用的行业领域相关,而与软件技术关 系不大,需要由领域专家进行。 这一部分的工作被称为“需求分析”。
瀑布模型与原型模型结合, 同时增加了风险分析(风险驱动)
功能
软件复用 面对对象开发方法为基 础 多项开发活动集成
特点
迭代性 无间隙性(分析、设计 和实现等开发活动之间 不存在明显的边界) 系统某个部分常常重复 工作多次,相关功能在 每次迭代中随之加入演 化的系统。
Scrum XP(Extreme Programming) DSDM(Dynamic Systems Development Method)
动态系统开发方法,也称业务中心框架开发方法(业务为核心)
FDD(Feature Driven Development ) Crystal(Crystal Methods) ASD(Adaptive Software Development,自适应软件开发) Lean(Lean Software Development)
在概念设计的基础上,从业务逻辑和当前用户应用环境中抽 象出系统对象的组成结构、流程和各个部分的相互关系,另 外还要设计数据库的逻辑结构和界面的逻辑关系。
是将用户业务语言转化为项目组语言的关键 目标是定义系统的各个组成部分
描述各个部分的结构和各个部分的相互关系及它们如何协调与合作; 项目组成员对解决方案的共识
你不必要做一个超人 敏捷实际上是一个思维集 成为一名博学的专家
易理的高度抽象→ 易理对宇宙的高度 抽象→‘简易’指 变与不变都是‘道’ 的体现,自然而然 而非刻意求变,万 事万物都只是按其 本性生生不息而已。
可以消除那些没必要的复杂 只需专注于开发当前所需要的功能和最简单 的设计 如果能使用简单来帮助一个敏捷团队开发出 马上就需要的软件,而不浪费人力和资源, 这就是他们给那些投资的用户以最好和最直 接利益的方法。
可行性研究 需求分析 概要设计
软件定义
详细设计
实现 集成测试 确认测试
软件开发
使用与维护
维护
退役
17
问题识别
功能需求、性能需求、环境需求 可靠性需求、安全保密要求 用户界面要求、资源使用需求 软件成本消耗与开发进度需求
问题分析与方案综合 编制需求文档 需求分析评审
需求分析在软件过程中的位置 过程模式与分析模式特性抽象
41
业务领域用例图 活动图 用例图 …… 业务文档资料
Object-oriented design (OOD)
用面向对象的方法为真实世界建立一个 计算机中的虚拟模型
需要从业务和用户角度收集业务信息、并利用这些信息获取、 分析业务和用户的需求,验证和优化解决方案
包含系统当前和未来使用场景的描述 目标是使用户和项目组在系统完成后所具有 的功能和使用方式达成共识 收集、分析和确定优先顺序的过程 活动图、用例图和层图等
可根据用户目标,编写软件需求,根据软件需求,编写系统(验收)测 试,即,用户目标驱动。 特点:需求的变化看似武术中的招式,采用UDD见招破招,无招胜有招, 这种客户的需求应变使得UDD更为敏捷
…………
在用户需求层面找到,并抽象出相对不变的需求
当需求不稳定,OOAD可分析出不稳定对象 世界都是由对象组成的,而对象都是持久的 面向对象开发方法的精髓就是从企业的不稳 定需求中分析出企业的稳定对象。
利剑 重剑 木剑
Waterfall
•文档驱动 •有序推进 •阶段之间没有
Iterative
•渐进式开发 •在每一个周期内
Agile
•强调短周期多迭
重叠 •不到最后没有 结果
完成该周期的设 计和功能 •创建连续的版本
代,快速获取反 馈,并迅速调整, 个人自觉 •Scrum/XP模型 •结对编程 •测试驱动的开发 •其他相关实践
可以消除那些没必要的复杂; 只需专注于挖掘客户专注的业务功能需求分 析。 如果能使用简单来帮助分析出客户所真实需 要的需求,而不浪费人力和资源,这就是他 们给那些投资的用户以最好和最直接项目回 报。
个体与交互 胜过 过程与工具 可以工作的软件胜过 面面俱到的文档 客户协作 胜过 合同谈判 响应变化 胜过 遵循计划
产生物理设计的基础。确定业务对象和行为 以提供服务 类图、顺序图等
是在逻辑设计的基础上,从系统的逻辑对象、数据实体和界 面逻辑关系中进一步整理和细化得到的设计方案。
确定系统采用的技术方案和平台,并明确实 际开发的组件、数据库表、窗口及页面等 目标是把现实的技术应用到逻辑模型上,并 考虑到实现的可能性和最终系统的性能 最终结果包含组件定义、特定平台上的用户 界面设计,以及数据库的设计 组件图等
1
• 需求分析本质方法论 • 敏捷与需求分析结合
2
需求分析本质敏捷 敏捷的含义:最快,最简,最佳 轨迹:最短直线 需求分析敏捷:需求捕获准确性 敏捷的本质道
简单通常是一个好的设计具备特征,这些设计是经典的并且很难再改进 的。 例如,Lego(垒高)积木,经过许多年还保留着原来的样子,因 为没有人能想出更简单的设计让人们将木块组合再拆开。 人们无法再改进这些设计,因为它们不能够再简化,而将它们设计得更 复杂也无法让它们更好用。
2001年2月由17位世界轻量级方法学家提出了一份敏 捷联盟宣言,这个宣言只是简单的四句话,但却是 敏捷方法的精髓,也是对敏捷的高度抽象,这便是 敏捷之道的最高境界
截拳道 太极拳 ……
只有优秀(或希望优 秀)的团队才能做到 敏捷。
要敏捷,先迭代
自适应
既然无法阻止变化发生,我们就要找出适应 变化的方法
软件过程框架
可行性研究 需求分析 概要设计 详细设计
实现
集成测试
来自百度文库
确认测试
使用与维护
瀑布模型的扩展应用
开始 结束 初步需求 分析 开发产品
快速设计
用户评估原 型(新需求)
建造原型
功能
切分成构件 实现软件核心功能 首先完成特定功能
优点
短时间向客户提交可完 成部分工作的产品 使用户充裕的时间适应 产品,以保证整个软件 系统给用户带来的冲击 力 软件开发早期阶段回报 明显和较易维护
以人为核心、迭代、循序渐进的开发方法
大量软件工程中的方法的提炼 敏捷开发可理解为在原有软件开发方法基础 上的整合——取其精华,去其糟粕
软件生命周期(SDLC) 需求分析生命周期 各种软件过程模型方法 迭代分析与开发
软件从提出开发开始到最终灭亡所经历 的时期 步骤:确定问题、可行性分析与开发计 划、收集需求、分析与设计、编码开发、 测试、安装、维护