高级软件需求分析课程培训
第一天
第1单元:
需求工程概述
1.1需求实践现状
1.1.1调查:学员在工作中遇到的需求问题
1.1.2需求实践常见问题研讨
用户不配合需求调研工作
用户说不清楚自己的需求
用户总能想出新的需求
不同用户的需求相互矛盾
用户的需求无法实现
用户看不懂需求规格说明书
开发团队猜测用户的需求
用户不肯为需求签字
第一版完成后用户需求大幅变更
系统上线时遇到很大阻力
系统上线后效果不佳
系统不可用甚至崩溃
1.1.3需求实践常见问题诊断
1.2需求概念解析
业务需求 business requirement
用户需求 user requirement
系统需求 system requirement
项目范围 project scope
产品需求 product requirement
软件需求 software requirement
l功能需求 functional requirement
l非功能需求 Nonfunctional requirement
l商业规则 Business rules
l实现约束Constraints
1.3 需求工程requirements engineering
l需求开发requirements development
需求获取requirements elicitation
需求分析requirements analysis
需求文档化requirements specification
需求确认requirements validation
需求管理Requirements Management
需求基线管理 requirements baseline management
需求变更控制 requirements change control
需求状态跟踪requirements status tracing
需求链的维护requirements chain management
1.4需求工程的深度话题
项目经理与需求分析师
从项目成败的角度去看待需求工作
项目成功的终极标志---客户满意
利用需求管理提升满意度
l需求分析与软件生命周期的关系
讨论:需求分析时要不要考虑设计与实现;
第2单元:
项目启动
2.1产品愿景(product vision)与项目范围(project scope)
2.2最佳实践:RUP范围定义五步法
1)问题定义(Problem Definition)
2)根源分析(Root Cause Analysis) —问题背后的问题
3)干系人分析 (Stakeholder Analysis)与End User分析
4)定义项目边界或系统边界(Boundary)
划分主题业务领域(Subject Domain)
明确各主题域的范围/边界
标识业务事件(Event)
标识管理控制点/报表(Report)
5)明确限制与约束(Constraints)
2.3 阶段可交付物(Deliverable)
问题/机会列表
产品愿景 product vision
项目章程 Project Charter
项目需求文档 Project Requirement documentation
Stakeholder列表
2.3工具与技术
关联图context diagram
鱼骨图 Fishbone diagram
帕累托图Pareto diagram
构件图 component diagram
部署图 deployment diagram
2.4 组建项目的需求分析团队
需求分析团队的职责
需求分析团队与甲方相关的角色
需求分析团队与乙方相关的角色
需求分析师应具备的能力
什么样的人适合做需求
如何培养优秀的需求分析师
需求分析师的职业前景
2.5课堂练习
高层/Sponsor:问题/机会à项目目标
人(涉及部门与人员)àStakeholder关注点
事(业务)à业务主题域à事件+ 管控点
第二天
第3单元:
需求获取
3.1 与真正的用户讨论需求 (Finding the Voice of the Customer)
3.1.1 需求的层次 (Levels of Requirements)
3.1.2 用户的结构 (User Classes)
3.1.3 用户代表 (User Representatives)
3.1.4 决策机制 (Who Makes the Decisions)
3.1.5 用户代言人(The Product Champion)
讨论:信息中心与业务处室谁是用户?
讨论:新产品研发项目中的用户需求
讨论:冲突的用户需求——如何做好春晚导演
3.2 需求获取方式
用户访谈(面谈、电话、电子邮件)
现有系统的问题报告和改进要求
市场调查和用户问卷调查
观察用户如何工作(学徒实习)
需求专题研讨会(Elicitation Workshops)
文档研究
原型开发
研究竞争对手
软件考古学(Software Archaeology)
各种需求获取方法对比分析
3.3 有效的需求获取技术:面谈
准备面谈
面谈对象的选择
面谈问题准备
选择记录方式
进行面谈
l面谈的后续工作
l面谈技巧与误区
3.4 找到真正的需求——透过表象,分析本质
3.5课堂练习
用户类划分
面谈对象选择
面谈问题设计
第4单元:
需求分析
4.1 Model and UML
4.2 问题域、连接域和实现域
4.3基于UML的需求分析(Requirements Analysis with UML)
4.4以用例为中心的需求分析过程(Use-Case Modeling)
4.4.1开发一个可以理解的需求
识别参与者(actor)
识别用例(use case)
构建用例图(use case diagram)
4.4.2用例阐述(详细、完整地描述需求)
4.4.3重构用例模型
识别用例关系
用例组织和分包
4.5用例分析 (Use-Case Analysis)
4.5.1评估用例,确定迭代周期
4.5.2在每一次迭代中针对每一个用例和用例场景(Scenario):
寻找对象à对象列表(实体类、控制类、边界类)
寻找对象间的交互à交互图(顺序图、协作图)
寻找类à参与类图(VOPC)
4.5.3重构类图,构造整个系统的分析类图
4.6课堂练习:
流程建模(业务流程分析)——甬道图、活动图、数据流图
领域建模(业务实体分析)——领域类图、ER图
用例建模(角色与使用场景分析)——用例图
图形转换:流程图à用例;特性(Feature)à用例
用例分析——参与类图(VOPC)、交互图(顺序图、协作图)
第三天
第5单元:
编写需求规格说明
5.1将潜在需求变成书面需求
5.2编写需求规格说明书(SRS)的原则
5.3 非功能性需求Nonfunctional Requirements
如何发现非功能性需求
用例与非功能性需求
观感需求 Look and Feel Requirements
易用性需求Usability and Humanity Requirements
性能需求Performance Requirements
可操作性需求Operational and Environmental Requirements
可维护性和可移植性需求Maintainability and Support Requirements
安全性需求Security Requirements
文化和政策需求 Cultural and Political Requirements
法律需求Legal Requirements
l讨论:萨班斯-奥克利法案Sarbanes-Oxley Act
5.4验收标准Fit Criteria
验收需要标准的原因
非功能性需求的验收标准
功能性需求的验收标准
用例和验收标准
项目目标的验收标准
l限制条件的验收标准
5.5 GB8567-2006计算机软件文档编制规范
系统子系统需求规格说明
接口需求规格说明
5.6 Volere需求规格说明书模板
5.7课堂练习:需求改写
第6单元:
需求质量控制和质量验证
6.1需求质量控制
需求验证 Validation
需求审查 Inspection
同行评审 Peer Review
需求走查 Walkthrough
6.2需求质量关Quality Gateway
测试完整性
测试是否存在遗漏的部分
测试是否对所有风险承担者都有意义
测试可追踪性
统一使用术语
确定是否与目标相关
试验收标准
确定在限制条件下是否可行
区分是需求还是解决方案
范围蔓延(Scope Creep)与渐进明细(Progressive Elaboration)
第四天
第7单元:
需求管理
7.1需求基线
7.2需求状态跟踪
7.3需求变更控制
范围蔓延(Scope Creep)与渐进明细(Progressive Elaboration)
变更控制流程
变更控制委员会(CCB)
变更影响分析(Impact Analysis)
7.4需求链维护
需求链
需求跟踪矩阵
需求跟踪工具
7.5需求管理工具
7.6需求工程最佳实践
7.6.1需求工程中的风险管理
软件需求工程中常见的风险
常见风险的分析和应对
信息化工程首先是一个管理工程
7.6.2产品经理与需求分析师
7.6.3关于需求签字确认问题的不同理解
7.6.4需求和设计工作的衔接
需求分析时要不要考虑设计与实现;
需求分析、系统分析和设计到底如何划分又如何衔接
7.6.5产品研发项目和客户定制软件开发项目需求管理工作的异同
第8单元:
案例分析与学员问答
两个铁球会同时落地,但铁球和羽毛会同时落地么,需求分析师不是生活在真空里,靠书上的理论能做出好的需求么能控制住需求膨胀和蔓延么?
这个单元的特点是,着重研究需求管理的各种问题在实战中而不是在理论中应该如何解决。
其目的是帮助学员提高解决实际问题的能力,所以要求每个学员都要带着自己的问题来参加研讨。为此,所有参加研讨的学员在报名时需提交至少一个案例(工作中遇到的问题),教师将会选择有代表性的案例在课堂上安排现场研讨。
学员提供的案例
案例1:谢经理的苦恼与思考
案例2:GD移动之痛
案例3:发现项目的真正价值
案例4:识别软性需求
案例5:Contoso制药公司化学药品跟踪系统
案例6:Vaisals公司IceBreaker项目
案例7:某体检医院管理信息系统
案例8:某电信公司Billing系统
高级软件需求分析课程培训