课程简介
本课程是一门全面学习软件需求工程的课程,课程深入浅出讲解和演练需求工程中的方方面面,以求达到使学员对需求工程工作的全面把握。课程涉及需求沟通、需求获取、需求原型、需求变更管理等方面。
目标收益
培训对象
课程大纲
第1部分:需求最佳实践路线 |
1.Overview-需求概览 (1)业务、需求与软件关系 (2)需求工程与软件工程 (3)需求获取、分析、归档与管理 (4)客户需求、用户需求、系统需求与软件需求 (5)渐进需求与需求变更 (6)百家争鸣:面临频繁变化的需求应对之策 2.Process-需求工程过程 (1)CMMI中的关于需求的PA-需求管理{2级}与需求开发{3级} (2)需求管理5个维度-评审、基线、版本、变更与追踪 (3)需求开发最佳实践路径-融合CMMI与Agile的最佳实践 (4)需求分析人员的能力模型 (5)介绍需求工程实践的效率工具与管理工具 (6)如何在系统开发和维护过程中持续保持需求条目的完整性和一致性 (7)Case:简述贯穿课程的实践案例 (8)百家争鸣:如何实现统一版本控制的需求管理 |
第2部分-业务需求与需求沟通 |
1、Business-业务梳理、业务流程与IT信息化 (1)辩论:企业诞生的原因? (2)什么是业务?业务本源是什么? (3)企业组织结构与业务执行者 (4)业务语言、业务对象与业务领域 (5)业务角色的位置与业务流程的层次 (6)业务流程优化与再造-业务流程优化的四个角度 (7)制约业务流程关键因素分析-TOC分析 (8)基于“IT信息化技术”优化“业务流程” (9)IT立项与产品立项 (10)案例实践:针对本行的业务流程TOC分析 2、Component-业务组件化与IT规划 (1)基于Domain的业务流程组件化切割 (2)基于矩阵方式组织业务组件-CBM模型 (3)基于CBM模型的热区分析 (4)业务结构抽象化 (5)案例分析:ERP5中的统一业务模型{UBM}分析 (6)业务组件与SOA中服务思维 (7)基于SOA的IT规划 |
第3部分:软件需求获取与沟通 |
1.Channel需求沟通渠道 (1)标识访谈角色-研究企业组织结构与业务模型 (2)需求沟通中的“内部用户与外部用户” (3)用户位置层次-一线用户、中层用户与高层用户 (4)用户专业层次-普通用户与专业用户 (5)分析不同层次用户关注点 (6)百家争鸣: 高层用户关注什么? 2.Method-需求获取的方法 (1)需求调研中 “问与答”的博弈 --需求者要懂得“开发者测试者要什么”与“用户要什么” --沙盘实战:完成一份需求调研的问题列表 (2)用户需求深度挖掘沟通术“NLP” --如何应对“用户不知道更多的细节” --怎样抓住“用户故事”中关键点 --如何分析“用户故事”背后的东西 --如何引导用户需求 --视频演示:欣赏NLP沟通的视频片段 (3)用户需求的“原型”确认 --如何用户故事以“界面原型”方式呈现 --如何快速创作“界面原型” --沙盘实战:快速完成一份纸质原型 (4)用户需求的内部验证与外部验证 --验证用户需求的测试思维 --内外部验证的方法-原型的可用性测试 --观察实践:对一个从未见过的UI原型进行可用性测试 3. Mining-需求甄别与挖掘 (1)挖掘用户需求背后的信息 --偏维护类项目的需求挖掘 --对做好需求获取有什么建议?或有哪些方面更值得注意? (2)需求甄别、筛选和引导 --合理需求与不合理需求 --如何透过需求文本和用户调研等方式挖掘业务的潜在需求 (3)设计驱动需求获取 --从设计的角度对用户需求的理解 --判断“需求能不能实现、实现复杂度和成本” --百家争鸣:如何甄别非必要的需求从而更好地把握重点需求? 4.Tools-需求获取的工具 (1)使用思维导图工具完成文字访谈与整理 (2)沟通卡片与用户故事记录用户需求 (3)使用录音设备完整记录用户需求 (4)使用原型工具摸清用户的需求(介绍常见的原型工具) (5)课程展示:讲师展示Windows与MAC OS X相关原型工具 |
第4部分-需求原型与确认 |
1、信息架构与原型表达 (1)用户需求转化为信息架构 --组织系统(Organization System)设计 --标注系统(Labeling System)设计 --导航系统(Navigation System)设计 --搜索系统(Searching System)设计 (2)以用户为中心的内容精准导航与模糊导航 (3)以用户为中心的功能菜单与流程菜单设计 (4)给用户功能的一个起始点 (5)使用信息地图、信息流程图和线框图表达信息架构 (6)信息架构与真实的用户心理模型相一致 (7)如何用户故事以“界面原型”方式呈现 (8)如何快速创作“界面原型” (9)沙盘实战:快速完成一份纸质原型 2、用户交互设计 (1)用户使用产品场景分析 (置身用户的工作场景) (2)任务驱动交互设计 (3)产品交互路线图分析 (4)产品界面上的加法与减法 (5)关注界面上的每一个细节(细微的好与坏都很重要) (6)基于用户行为日志统计分析的交互设计 (7)案例:移动产品交互设计实践 (8)归纳总结交互设计基本原则 |
第5部分:功能性与非功能性需求分析 |
1.Thinking-分析思维模式 (1)亲和图分析法[KJ法/Affinity Diagram] --人类的思维行为与大脑左右部分控制的关系 --有意识的激发右脑活跃进行创造性思考 --A型图汇总信息并按其相互亲和性归纳整理 (2)头脑风暴分析法 --激发团队创造性思维的方法 --头脑风暴之前必须要有君子协定[臭皮匠协定] (3)鲁棒分析法 --在需求分析后及需求设计前的桥梁 --鲁棒分析的三要素[边界、控制、实体] (4)决策表分析法[Decision Matrix] --有限决策表[Limited-entry Decision Table] --决策表能罗列出所有的可能情况并清晰的指出相应的处理方式 (5)逻辑分析法 --原因-后果分析[cause consequence analysis,CCA]方法 --批判性思维[CriticalThinking] 2. Specification-用户故事规格化 (1)功能场景分析 --场景分解:基本场景、备选场景与异常场景 --基于“用户与原型交互视角”的场景 --课程展示:分享“表单类型”功能场景分析的案例 --沙盘演练:完成一份“报表类型”功能场景的描述 (2)实体模型分析与约束规则分析 --从功能场景描述中分离实体模型与约束规则 --如何发现隐藏在背后的“隐式规则” --沙盘演练:基于一个典型的功能案例分析背后的隐式规则 (3)功能的前置与后置条件分析 --功能外部关联性的描述 --功能外部隐式关联性描述 (4)功能的特殊要求分析 --功能的质量属性要求描述 --功能的环境属性要求描述 --沙盘演练:功能的服务能力描述实践 3. Global-全局功能场景路径深度分析 (1)相似功能场景处理-泛化用例 --找出场景路径相似的功能 --功能用例的类型化、参数化与模板化 --课程演示:类型化功能用例的知识库 (2)功能场景重叠处理-包含用例 --发现路径中重复性,切割重叠的功能片 --知识扩展:如何分离功能场景中重复的内容? --课程展示:分析一份老外撰写的用例文档如何处理重复内容 (3)功能场景变化处理-扩展用例 --发现路径上的变化性,扩展功能用例 --如何预测用例未来的变化 (4)功能场景矛盾处理 --发现场景描述冲突决策 --课程展示:分析功能版本演绎中场景矛盾的处理方式 (5)AHP分层分析 --功能领域分层划分 --软件使用者分层划分 (6)CBM模型热区分析 --矩阵方式组织业务功能 --从不同的维度分析CBM模型 --课程展示:典型制造型企业的业务功能CBM模型 (7)核心功能分析 --分离稳定的核心业务功能 --标识易变动的业务功能 --沙盘演练:依据贯彻案例分离核心业务功能与易变动性业务功能 (8)功能关联分析 --全局描述所有业务功能的时间关联关系 --如何描述功能编排与集成 5. Quality-质量属性需求分析 (1)Stakeholder关注的质量属性列表 (2)百家争鸣:对比分析“可靠性、稳定性与可用性” (3)特定功能质量属性与全局质量属性 (4)质量属性的功能性分解-质量效用树 (5)沙盘演练:性能的功能性分解实践 6. Environment-部署环境属性需求分析 (1)Stakeholder提供的部署环境列表 (2)纯净部署环境与带有干扰性的部署环境 (3)服务器端环境与客户端环境 (4)部署环境的迁移分析 (5)沙盘演练:部署环境属性分析实践 |
第6部分-需求变更与管理 |
1、Principle-需求管理的原则与过程 (1)需求管理和过程能力成熟度模型 (2)需求管理步骤 (3)需求规格说明的版本控制 (4)需求配置项属性 (5)度量需求管理的效果 (6)需求评审的策略,确认用户需求 (7)发布需求基线 2、Tools-需求管理工具 (1)需求文档管理的粒度决策 (2)需求管理工具选型(商用工具与开源工具) (3)需求建模工具(UML工具)与需求管理工具衔接 (4)需求建模工具(UML工具)与配置管理工具协作完成版本控制 (5)使用UML工具完成需求管理 3、Change-管理变更管理过程 (1)控制项目范围的扩展 (2)CCB-变更控制委员会 (3)变更控制过程 (4)测量变更活动 (5)变更请求决策分析 (6)变更会审与确认 (7)课程演示:使用不同变更管理工具完成需求变更管理 4、Track-以需求为中心的可跟踪性管理 (1)定义需求的层次 (2)获得需求间的父子关系 (3)需求之间的相互影响关系 (4)需求详细属性的定制和过滤 (5)使用需求管理工具完成需求追踪实践 5、Estimate-基于软件需求的规模估算 (1)基于UCP方法的软件规模估算 (2)基于FPA方法的软件规模估算 (3)基于COCOMOII方法的软件规模估算 (4)基于经验方法的软件规模估算 (5)课程实践:使用UML工具中UCP完成软件规模估算 |
第1部分:需求最佳实践路线 1.Overview-需求概览 (1)业务、需求与软件关系 (2)需求工程与软件工程 (3)需求获取、分析、归档与管理 (4)客户需求、用户需求、系统需求与软件需求 (5)渐进需求与需求变更 (6)百家争鸣:面临频繁变化的需求应对之策 2.Process-需求工程过程 (1)CMMI中的关于需求的PA-需求管理{2级}与需求开发{3级} (2)需求管理5个维度-评审、基线、版本、变更与追踪 (3)需求开发最佳实践路径-融合CMMI与Agile的最佳实践 (4)需求分析人员的能力模型 (5)介绍需求工程实践的效率工具与管理工具 (6)如何在系统开发和维护过程中持续保持需求条目的完整性和一致性 (7)Case:简述贯穿课程的实践案例 (8)百家争鸣:如何实现统一版本控制的需求管理 |
第2部分-业务需求与需求沟通 1、Business-业务梳理、业务流程与IT信息化 (1)辩论:企业诞生的原因? (2)什么是业务?业务本源是什么? (3)企业组织结构与业务执行者 (4)业务语言、业务对象与业务领域 (5)业务角色的位置与业务流程的层次 (6)业务流程优化与再造-业务流程优化的四个角度 (7)制约业务流程关键因素分析-TOC分析 (8)基于“IT信息化技术”优化“业务流程” (9)IT立项与产品立项 (10)案例实践:针对本行的业务流程TOC分析 2、Component-业务组件化与IT规划 (1)基于Domain的业务流程组件化切割 (2)基于矩阵方式组织业务组件-CBM模型 (3)基于CBM模型的热区分析 (4)业务结构抽象化 (5)案例分析:ERP5中的统一业务模型{UBM}分析 (6)业务组件与SOA中服务思维 (7)基于SOA的IT规划 |
第3部分:软件需求获取与沟通 1.Channel需求沟通渠道 (1)标识访谈角色-研究企业组织结构与业务模型 (2)需求沟通中的“内部用户与外部用户” (3)用户位置层次-一线用户、中层用户与高层用户 (4)用户专业层次-普通用户与专业用户 (5)分析不同层次用户关注点 (6)百家争鸣: 高层用户关注什么? 2.Method-需求获取的方法 (1)需求调研中 “问与答”的博弈 --需求者要懂得“开发者测试者要什么”与“用户要什么” --沙盘实战:完成一份需求调研的问题列表 (2)用户需求深度挖掘沟通术“NLP” --如何应对“用户不知道更多的细节” --怎样抓住“用户故事”中关键点 --如何分析“用户故事”背后的东西 --如何引导用户需求 --视频演示:欣赏NLP沟通的视频片段 (3)用户需求的“原型”确认 --如何用户故事以“界面原型”方式呈现 --如何快速创作“界面原型” --沙盘实战:快速完成一份纸质原型 (4)用户需求的内部验证与外部验证 --验证用户需求的测试思维 --内外部验证的方法-原型的可用性测试 --观察实践:对一个从未见过的UI原型进行可用性测试 3. Mining-需求甄别与挖掘 (1)挖掘用户需求背后的信息 --偏维护类项目的需求挖掘 --对做好需求获取有什么建议?或有哪些方面更值得注意? (2)需求甄别、筛选和引导 --合理需求与不合理需求 --如何透过需求文本和用户调研等方式挖掘业务的潜在需求 (3)设计驱动需求获取 --从设计的角度对用户需求的理解 --判断“需求能不能实现、实现复杂度和成本” --百家争鸣:如何甄别非必要的需求从而更好地把握重点需求? 4.Tools-需求获取的工具 (1)使用思维导图工具完成文字访谈与整理 (2)沟通卡片与用户故事记录用户需求 (3)使用录音设备完整记录用户需求 (4)使用原型工具摸清用户的需求(介绍常见的原型工具) (5)课程展示:讲师展示Windows与MAC OS X相关原型工具 |
第4部分-需求原型与确认 1、信息架构与原型表达 (1)用户需求转化为信息架构 --组织系统(Organization System)设计 --标注系统(Labeling System)设计 --导航系统(Navigation System)设计 --搜索系统(Searching System)设计 (2)以用户为中心的内容精准导航与模糊导航 (3)以用户为中心的功能菜单与流程菜单设计 (4)给用户功能的一个起始点 (5)使用信息地图、信息流程图和线框图表达信息架构 (6)信息架构与真实的用户心理模型相一致 (7)如何用户故事以“界面原型”方式呈现 (8)如何快速创作“界面原型” (9)沙盘实战:快速完成一份纸质原型 2、用户交互设计 (1)用户使用产品场景分析 (置身用户的工作场景) (2)任务驱动交互设计 (3)产品交互路线图分析 (4)产品界面上的加法与减法 (5)关注界面上的每一个细节(细微的好与坏都很重要) (6)基于用户行为日志统计分析的交互设计 (7)案例:移动产品交互设计实践 (8)归纳总结交互设计基本原则 |
第5部分:功能性与非功能性需求分析 1.Thinking-分析思维模式 (1)亲和图分析法[KJ法/Affinity Diagram] --人类的思维行为与大脑左右部分控制的关系 --有意识的激发右脑活跃进行创造性思考 --A型图汇总信息并按其相互亲和性归纳整理 (2)头脑风暴分析法 --激发团队创造性思维的方法 --头脑风暴之前必须要有君子协定[臭皮匠协定] (3)鲁棒分析法 --在需求分析后及需求设计前的桥梁 --鲁棒分析的三要素[边界、控制、实体] (4)决策表分析法[Decision Matrix] --有限决策表[Limited-entry Decision Table] --决策表能罗列出所有的可能情况并清晰的指出相应的处理方式 (5)逻辑分析法 --原因-后果分析[cause consequence analysis,CCA]方法 --批判性思维[CriticalThinking] 2. Specification-用户故事规格化 (1)功能场景分析 --场景分解:基本场景、备选场景与异常场景 --基于“用户与原型交互视角”的场景 --课程展示:分享“表单类型”功能场景分析的案例 --沙盘演练:完成一份“报表类型”功能场景的描述 (2)实体模型分析与约束规则分析 --从功能场景描述中分离实体模型与约束规则 --如何发现隐藏在背后的“隐式规则” --沙盘演练:基于一个典型的功能案例分析背后的隐式规则 (3)功能的前置与后置条件分析 --功能外部关联性的描述 --功能外部隐式关联性描述 (4)功能的特殊要求分析 --功能的质量属性要求描述 --功能的环境属性要求描述 --沙盘演练:功能的服务能力描述实践 3. Global-全局功能场景路径深度分析 (1)相似功能场景处理-泛化用例 --找出场景路径相似的功能 --功能用例的类型化、参数化与模板化 --课程演示:类型化功能用例的知识库 (2)功能场景重叠处理-包含用例 --发现路径中重复性,切割重叠的功能片 --知识扩展:如何分离功能场景中重复的内容? --课程展示:分析一份老外撰写的用例文档如何处理重复内容 (3)功能场景变化处理-扩展用例 --发现路径上的变化性,扩展功能用例 --如何预测用例未来的变化 (4)功能场景矛盾处理 --发现场景描述冲突决策 --课程展示:分析功能版本演绎中场景矛盾的处理方式 (5)AHP分层分析 --功能领域分层划分 --软件使用者分层划分 (6)CBM模型热区分析 --矩阵方式组织业务功能 --从不同的维度分析CBM模型 --课程展示:典型制造型企业的业务功能CBM模型 (7)核心功能分析 --分离稳定的核心业务功能 --标识易变动的业务功能 --沙盘演练:依据贯彻案例分离核心业务功能与易变动性业务功能 (8)功能关联分析 --全局描述所有业务功能的时间关联关系 --如何描述功能编排与集成 5. Quality-质量属性需求分析 (1)Stakeholder关注的质量属性列表 (2)百家争鸣:对比分析“可靠性、稳定性与可用性” (3)特定功能质量属性与全局质量属性 (4)质量属性的功能性分解-质量效用树 (5)沙盘演练:性能的功能性分解实践 6. Environment-部署环境属性需求分析 (1)Stakeholder提供的部署环境列表 (2)纯净部署环境与带有干扰性的部署环境 (3)服务器端环境与客户端环境 (4)部署环境的迁移分析 (5)沙盘演练:部署环境属性分析实践 |
第6部分-需求变更与管理 1、Principle-需求管理的原则与过程 (1)需求管理和过程能力成熟度模型 (2)需求管理步骤 (3)需求规格说明的版本控制 (4)需求配置项属性 (5)度量需求管理的效果 (6)需求评审的策略,确认用户需求 (7)发布需求基线 2、Tools-需求管理工具 (1)需求文档管理的粒度决策 (2)需求管理工具选型(商用工具与开源工具) (3)需求建模工具(UML工具)与需求管理工具衔接 (4)需求建模工具(UML工具)与配置管理工具协作完成版本控制 (5)使用UML工具完成需求管理 3、Change-管理变更管理过程 (1)控制项目范围的扩展 (2)CCB-变更控制委员会 (3)变更控制过程 (4)测量变更活动 (5)变更请求决策分析 (6)变更会审与确认 (7)课程演示:使用不同变更管理工具完成需求变更管理 4、Track-以需求为中心的可跟踪性管理 (1)定义需求的层次 (2)获得需求间的父子关系 (3)需求之间的相互影响关系 (4)需求详细属性的定制和过滤 (5)使用需求管理工具完成需求追踪实践 5、Estimate-基于软件需求的规模估算 (1)基于UCP方法的软件规模估算 (2)基于FPA方法的软件规模估算 (3)基于COCOMOII方法的软件规模估算 (4)基于经验方法的软件规模估算 (5)课程实践:使用UML工具中UCP完成软件规模估算 |