第章需求工程过程〔〕.ppt

第章需求工程过程〔〕

需求工程过程实例 Agile RE 面对面的交流胜过写规格说明文档; 迭代式需求工程; 将需求划分优先级做到极限; 通过持续规划管理需求变更; 原型法; 测试驱动开发; 用户评审会议与验收测试。 需求工程过程实例 Agile RE 表3-3 XP和Scrum的需求工程活动组织,源自[Lucia2010] 需求活动 XP方法 Scrum方法 需求获取 将需求获取为Story 客户书写User Story 产品负责人(Product Owner)明确叙述产品功能(Product Backlog) 任何涉众都可以参与产品功能确定 需求分析 并非独立阶段 开发时进行分析 客户为User Story划分优先级 功能(Backlog)精化会议 产品负责人划分产品功能优先级 产品负责人分析需求可行性 需求规格 User Story和验收测试用例作为需求文档 软件产品本身作为文档信息 面对面的交流 面对面的交流 需求验证 测试驱动 验收测试 频繁反馈 评审会议 需求管理 短的规划周期 跟踪User Story 按需重构 蓝图规划会议 跟踪产品功能项 对产品功能变更需求 需求工程过程实例 RUP 主要内容 需求工程过程 需求工程过程的活动 需求工程过程的并发和迭代性 实践方法的应用 需求工程过程实例分析 需求工程过程与软件工程过程 6. 需求工程过程与软件工程过程 软件的问题域比较成熟和易于明确化,并且需求也比较稳定 不利于用户的有效参与 6. 需求工程过程与软件工程过程 软件的问题域比较复杂,但是业务非常成熟而且需求比较稳定 不利于用户的有效参与 6. 需求工程过程与软件工程过程 问题域极其复杂或者需求不稳定 更好的应对需求的改变 提高用户的有效参与度 使得开发工作的协同和管理工作变得困难 6. 需求工程过程与软件工程过程 问题域不成熟,业务活动仍然在不断发展和改变 能够很好的解决各种不确定性 提高了需求工程阶段的成本,而且易于发生各种原型风险 6. 需求工程过程与软件工程过程 需求工程过程更应该是软件工程过程的一部分,而不是独立出来作为单独部分 Requirements Engineering and Software Project Success- An Industrial Survey in Australia and the US 发现相比于需求方法本身的好坏,需求方法与软件开发方法的适配性更会影响项目的成败。这也就是说,需求开发方法与软件开发方法是否适配,比结果需求的好坏更能影响项目的成败 相比于应用领域的熟练性,一个项目管理者有效管理需求的能力更加重要; 没有必要在项目一开始就建立完备的需求,更好的方式在项目后续的阶段中逐步完善需求; Software Process Model in Practices Requirements Engineering-The State of the Practice, 2003 需求工程过程为什么要适应软件工程过程? “需求工程”是正性活动 An empirical study of the complex relationships between requirements engineering processes and other processes , 2006 需求工程收效 具体操作 影响趋向 提高生产率 问题理解 ↑ 交流沟通 过度沟通 有效的沟通 ? ↓ ↑ 开发者的非正式决策 ↑ 返工 ↓ 提高质量 运营支持请求 ↓ 交付后缺陷 ↓ 提升风险管理 估算 改进50% 特征覆盖度 ↑ 需求蔓延 ↓ 项目协商 ↑ 表3-4 需求工程过程对软件开发的影响效果及路径 Requirements Engineering and Downstream Software Development: Findings from a Case Study, 2005 需求对后续的影响 改进对细节的理解,改进对特征间依赖及复杂性的理解 建设精力浪费 看不见的好处:提升沟通 看不见的好处: 帮助决策 估算 变更管理 思考题 1. 除了需求开发的四个活动和需求管理活动之外,需求工程当中还有没有需要执行的活动?如果有的话,它们是哪些活动?给出你的理由。 2. 需求开发过程具有迭代特性,但是不是所有项目的需求开发过程都必须是迭代完成的?如果不是,请给出举例和理由。 3. 需求开发的迭代特性与软件开发过程的迭代式开发有什么关系?它们之间会互相影响吗?如果会,那么有哪些影响? 4. 需求工程细节知识的实践性对不同项目的需求开发过程的差异性有没有影响?如果有,请说明影响是什么。如果没有,请说明是哪些因素产生了不同项目的需求开发过程的差异性。 本章小结 需求工程有着属于它自己

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档