产品经理
互联网
推荐课程
average > 0 ? $model->average . '分' : '10.0分' ?>

需求工程最佳实践

杨朔

中科院软件所 架构师、项目经理

一直致力于软件工程的研究和实践,对国外的软件工程的理论和实践有透彻的理解和研究,每年软件所都将国外知名的软件工程知名认识邀请到所里,进行理论和实践的交流,对比国内外在软件工程上的异同,融合东西方软件研究的成果,在软件所的诸多项目中实践,大部分的项目是成功的,也有几个项目是失败,对于经验和教训的吸纳,在10多年的实践悟出了软件架构的真谛。

作为项目的主要成员和负责人参与并领导完成了多个大型复杂项目,具有丰富的项目管理经验。所参与实施和咨询的项目涉及建设工程、制造和IT领域。既通晓国际项目环境和管理模式,又熟悉中国企业的管理实践。在项目管理理论,方法工具和应用实践方面均具有高水平。持续6年代团队开发项目,目前团队分布在北京,上海、深圳、广州、天津,石家庄以及兰州,远程合作开发,团队规模165人,实现了跨地区的软件开发,历经了几十个软件项目的设计与开发。

一直致力于软件工程的研究和实践,对国外的软件工程的理论和实践有透彻的理解和研究,每年软件所都将国外知名的软件工程知名认识邀请到所里,进行理论和实践的交流,对比国内外在软件工程上的异同,融合东西方软件研究的成果,在软件所的诸多项目中实践,大部分的项目是成功的,也有几个项目是失败,对于经验和教训的吸纳,在10多年的实践悟出了软件架构的真谛。 作为项目的主要成员和负责人参与并领导完成了多个大型复杂项目,具有丰富的项目管理经验。所参与实施和咨询的项目涉及建设工程、制造和IT领域。既通晓国际项目环境和管理模式,又熟悉中国企业的管理实践。在项目管理理论,方法工具和应用实践方面均具有高水平。持续6年代团队开发项目,目前团队分布在北京,上海、深圳、广州、天津,石家庄以及兰州,远程合作开发,团队规模165人,实现了跨地区的软件开发,历经了几十个软件项目的设计与开发。

课程费用

7800.00 /人

课程时长

4

成为教练

课程简介

本课程是一门全面学习软件需求工程的课程,课程深入浅出讲解和演练需求工程中的方方面面,以求达到使学员对需求工程工作的全面把握。课程涉及需求沟通、需求获取、需求原型、需求变更管理等方面。

目标收益

培训对象

课程大纲

第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完成软件规模估算
提交需求