课程简介
本课程是软件需求分析的经典课程。涵盖需求调研、需求获取、需求分析等核心内容。同时,还讲解了用户故事规格化、全局功能矩阵模型与稳定模型等高级内容。
目标收益
培训对象
课程大纲
一、软件需求获取 |
1、需求调研计划 (1)用户研究 --有哪些软件的使用者 --软件使用者的差异化分析 (2)用户故事 --以“故事”的方式描述用户需要的功能 --用户故事的三个基本要素(3C)与六个基本特性(INVEST) --沙盘演练:使用UML语言描述软件使用者与用户故事 (3)沟通计划 --依据用户故事完成调研计划 --建立用户沟通时间表 2、需求获取的方法 (1)需求调研中 “问与答”的博弈 --需求者要懂得“开发者要什么”与“用户要什么” --沙盘实战:完成一份需求调研的问题列表 (2)用户需求深度挖掘沟通术“NLP” --如何应对“用户不知道更多的细节” --怎样抓住“用户故事”中关键点 --如何分析“用户故事”背后的东西 --如何引导用户需求 --视频演示:欣赏NLP沟通的视频片段 (3)用户需求的“原型表达” --如何用户故事以“界面原型”方式呈现 --如何快速创作“界面原型” --沙盘实战:快速完成一份纸质原型 (4)用户需求的内部验证与外部验证 --验证用户需求的测试思维 --内外部验证的方法-原型的可用性测试 --观察实践:对一个从未见过的UI原型进行可用性测试 3、需求甄别与挖掘 (1)挖掘用户需求背后的信息 --偏维护类项目(项目甲方对需求理解相对比较清晰)的需求挖掘 --对做好需求获取有什么建议?或有哪些方面更值得注意? (2)需求甄别、筛选和引导 --合理需求与不合理需求 (3)设计驱动需求获取 --从设计的角度对用户需求的理解 --判断“需求能不能实现、实现复杂度和成本” --案例讨论:这个需求合理吗?可以实现吗? 4、需求获取的工具 (1)使用思维导图工具完成文字访谈与整理 (2)沟通卡片与用户故事记录用户需求 (3)使用录音设备完整记录用户需求 (4)使用原型工具摸清用户的需求(介绍常见的原型工具) (5)课程展示:讲师展示Windows与MAC OS X相关原型工具 |
二、需求分析 |
1、分析思维与方法 (1)亲和图分析法[KJ法/Affinity Diagram] --人类的思维行为与大脑左右部分控制的关系 --有意识的激发右脑活跃进行创造性思考 --A型图汇总信息并按其相互亲和性归纳整理 (2)头脑风暴分析法 --激发团队创造性思维的方法 --头脑风暴之前必须要有君子协定[臭皮匠协定] (3)鲁棒分析法 --在需求分析后及需求设计前的桥梁 --鲁棒分析的三要素[边界、控制、实体] (4)决策表分析法[Decision Matrix] --有限决策表[Limited-entry Decision Table] --决策表能罗列出所有的可能情况并清晰的指出相应的处理方式 (5)逻辑分析法 --原因-后果分析[cause consequence analysis,CCA]方法 --批判性思维[Critical Thinking] 2、用户故事规格化 (1)功能场景描述 --基本场景、备选场景与异常场景的描述 --以“用户与原型交互视角”描述场景 --课程展示:分享“表单类型”功能场景描述的案例 --沙盘演练:完成一份“报表类型”功能场景的描述 (2)实体模型与约束规则描述 --从功能场景描述中分离实体模型与约束规则 --如何发现隐藏在背后的“隐式规则” --沙盘演练:基于一个典型的功能案例分析背后的隐式规则 (3)前置条件与后置条件描述 --功能外部关联性的描述 --功能外部隐式关联性描述 (4)功能的特殊要求 --功能的质量属性要求描述 --功能的环境属性要求描述 --沙盘演练:软件六性的描述实践 3、全局功能场景路径深度分析 (1)泛化用例 --发现路径相似,提取泛化用例 --功能用例的类型化、参数化与模板化 --课程演示:类型化功能用例的知识库 (2)包含用例 --发现路径中重复性,切割包含用例(用例切片技术) --知识扩展:如何分离功能场景中重复的内容? --课程展示:分析一份老外撰写的用例文档如何处理重复内容 (3)扩展用例 --发现路径上的变化性,扩展功能用例 --如何预测用例未来的变化 (4)用例流程 --全局描述所有用例的关联关系 --如何描述功能编排与集成 4、全局功能矩阵模型与稳定模型(2小时) (1)AHP分层分析 --功能领域分层划分 --软件使用者分层划分 (2)用例映射业务功能组件 --矩阵方式业务功能组件模型[CBM模型] --沙盘演练:完成一份您正在完成的软件的CBM模型 (3)核心功能分析 --分离稳定的核心业务功能 --标识易变动的业务功能 --沙盘演练:依据贯彻案例分离核心业务功能与易变动性业务功能 5、非功能性需求分析 (1)标识质量执行者与环境执行者 (2)依据质量属性与环境属性建立包模型 (3)独立的质量属性与环境属性分析 (4)全局观察质量用例与环境用例 (5)沙盘演练:扩展UML模型完成非功能性建模 6、团队撰写需求规格文档 (1)制定需求规格文档大纲 (2)划分文档撰写任务 (3)统一文档撰写风格 (4)多人文档合并规范 (5)建立“共享”类型化场景模板库 (6)案例演练:以讲师为核心的多人需求规格撰写演示 7、需求规格说明书文档 (1)统一UML需求建模实现“自动化需求文档” (2)参数化的需求文档模板编著 (3)基于超链接的需求文档 (4)沙盘实战:自动化需求文档的过程 |
一、软件需求获取 1、需求调研计划 (1)用户研究 --有哪些软件的使用者 --软件使用者的差异化分析 (2)用户故事 --以“故事”的方式描述用户需要的功能 --用户故事的三个基本要素(3C)与六个基本特性(INVEST) --沙盘演练:使用UML语言描述软件使用者与用户故事 (3)沟通计划 --依据用户故事完成调研计划 --建立用户沟通时间表 2、需求获取的方法 (1)需求调研中 “问与答”的博弈 --需求者要懂得“开发者要什么”与“用户要什么” --沙盘实战:完成一份需求调研的问题列表 (2)用户需求深度挖掘沟通术“NLP” --如何应对“用户不知道更多的细节” --怎样抓住“用户故事”中关键点 --如何分析“用户故事”背后的东西 --如何引导用户需求 --视频演示:欣赏NLP沟通的视频片段 (3)用户需求的“原型表达” --如何用户故事以“界面原型”方式呈现 --如何快速创作“界面原型” --沙盘实战:快速完成一份纸质原型 (4)用户需求的内部验证与外部验证 --验证用户需求的测试思维 --内外部验证的方法-原型的可用性测试 --观察实践:对一个从未见过的UI原型进行可用性测试 3、需求甄别与挖掘 (1)挖掘用户需求背后的信息 --偏维护类项目(项目甲方对需求理解相对比较清晰)的需求挖掘 --对做好需求获取有什么建议?或有哪些方面更值得注意? (2)需求甄别、筛选和引导 --合理需求与不合理需求 (3)设计驱动需求获取 --从设计的角度对用户需求的理解 --判断“需求能不能实现、实现复杂度和成本” --案例讨论:这个需求合理吗?可以实现吗? 4、需求获取的工具 (1)使用思维导图工具完成文字访谈与整理 (2)沟通卡片与用户故事记录用户需求 (3)使用录音设备完整记录用户需求 (4)使用原型工具摸清用户的需求(介绍常见的原型工具) (5)课程展示:讲师展示Windows与MAC OS X相关原型工具 |
二、需求分析 1、分析思维与方法 (1)亲和图分析法[KJ法/Affinity Diagram] --人类的思维行为与大脑左右部分控制的关系 --有意识的激发右脑活跃进行创造性思考 --A型图汇总信息并按其相互亲和性归纳整理 (2)头脑风暴分析法 --激发团队创造性思维的方法 --头脑风暴之前必须要有君子协定[臭皮匠协定] (3)鲁棒分析法 --在需求分析后及需求设计前的桥梁 --鲁棒分析的三要素[边界、控制、实体] (4)决策表分析法[Decision Matrix] --有限决策表[Limited-entry Decision Table] --决策表能罗列出所有的可能情况并清晰的指出相应的处理方式 (5)逻辑分析法 --原因-后果分析[cause consequence analysis,CCA]方法 --批判性思维[Critical Thinking] 2、用户故事规格化 (1)功能场景描述 --基本场景、备选场景与异常场景的描述 --以“用户与原型交互视角”描述场景 --课程展示:分享“表单类型”功能场景描述的案例 --沙盘演练:完成一份“报表类型”功能场景的描述 (2)实体模型与约束规则描述 --从功能场景描述中分离实体模型与约束规则 --如何发现隐藏在背后的“隐式规则” --沙盘演练:基于一个典型的功能案例分析背后的隐式规则 (3)前置条件与后置条件描述 --功能外部关联性的描述 --功能外部隐式关联性描述 (4)功能的特殊要求 --功能的质量属性要求描述 --功能的环境属性要求描述 --沙盘演练:软件六性的描述实践 3、全局功能场景路径深度分析 (1)泛化用例 --发现路径相似,提取泛化用例 --功能用例的类型化、参数化与模板化 --课程演示:类型化功能用例的知识库 (2)包含用例 --发现路径中重复性,切割包含用例(用例切片技术) --知识扩展:如何分离功能场景中重复的内容? --课程展示:分析一份老外撰写的用例文档如何处理重复内容 (3)扩展用例 --发现路径上的变化性,扩展功能用例 --如何预测用例未来的变化 (4)用例流程 --全局描述所有用例的关联关系 --如何描述功能编排与集成 4、全局功能矩阵模型与稳定模型(2小时) (1)AHP分层分析 --功能领域分层划分 --软件使用者分层划分 (2)用例映射业务功能组件 --矩阵方式业务功能组件模型[CBM模型] --沙盘演练:完成一份您正在完成的软件的CBM模型 (3)核心功能分析 --分离稳定的核心业务功能 --标识易变动的业务功能 --沙盘演练:依据贯彻案例分离核心业务功能与易变动性业务功能 5、非功能性需求分析 (1)标识质量执行者与环境执行者 (2)依据质量属性与环境属性建立包模型 (3)独立的质量属性与环境属性分析 (4)全局观察质量用例与环境用例 (5)沙盘演练:扩展UML模型完成非功能性建模 6、团队撰写需求规格文档 (1)制定需求规格文档大纲 (2)划分文档撰写任务 (3)统一文档撰写风格 (4)多人文档合并规范 (5)建立“共享”类型化场景模板库 (6)案例演练:以讲师为核心的多人需求规格撰写演示 7、需求规格说明书文档 (1)统一UML需求建模实现“自动化需求文档” (2)参数化的需求文档模板编著 (3)基于超链接的需求文档 (4)沙盘实战:自动化需求文档的过程 |