其它排期:
授课讲师:谢老师
课程价格:5500
培训对象:
请填写您的报名信息
时间地点:
1) 点击这里,查看最近是否开课!
2) 本次课程已过期,请留下联系方式,近期开课时我们通知您!
课程信息:
课程介绍
在高质量软件项目中,需求工程的作用举足轻重。统计表明,软件缺陷一半以上的原因来自于需求分析中的问题。仅凭这个数字,就足以告诉我们要提高软件的质量,定义合理的需求过程,提升需求工程水平,坚持正确的需求规范是多么重要。但是目前在软件需求分析领域,还存在着过程粗糙、方法随意、分析欠深入等问题,进而极大的影响产品质量,这正是在软件项目中,我们需要对需求分析下功夫的最大原因,本课程的主要思想如下:
1,需求工程在整个软件工程中的地位十分特殊,良好的需求将支撑整个工程项目有序而高效的进展,并对产品质量控制提供依据。目前在创新成为重要主题的环境下,软件开发已演变成通过反馈逐步求精的过程,在这个过程中需求变更不可避免,因此我们不再认为需求仅仅是一个前期的工作,而几乎在整个软件开发过程中每个节点中都在发挥作用,这就对需求分析方法提出了新的要求。
2,需求分析的本质是在问题域中,为现实世界中的问题找到解决方案,在这个过程中,我们需要更加理性的来探讨“问题”,需要有能力和技巧发现问题,针对问题提出产品构思。因此,需求分析师不是记录员,他需要在分析过程中利用建模来展示思想,在建模的过程中收集与理解客户需要,把握问题的关键,发现需求背后的需求,从而构思出真正符合客户需要的产品。
3,面向对象的思想把软件看成一个可培育和成长的活物,其设计理念是“拥抱变化而设计”。但是目前在软件工程实践中,大多数需求分析仍在使用结构化方法,这就很难为设计提供支撑。需求分析师必须对面向对象分析有透彻的理解,要关注业务的共性和变化性这两个重要特征,并且把变化的规律探寻并挖掘出来,这才能为构建可维护、易扩展、可移植的软件提供基础性的支持,使需求分析成果上升到一个新高度。
4,软件产品的价值在于其不断的创新,企业唯有将创新纳入有效的管理规划之中,遵循明确的指导原则和方法论,进行持续不断的系统化创新,才能长久地保持竞争优势。分析师的作用不仅仅是了解客户的需要,更需要以一种创新思维参与产品构思,帮助客户从自己的现状中释放出来,需求分析师应该具有很强的创新能力。
5,我们正处在软件工程思想巨大变化的进程中,特别是软件即是服务的思想,极大改变了分析、设计、管理等各方面的面貌。需求分析人员必须跟上这个步伐,除了传统的功能分析以外,还需要研究在以服务为核心的背景下,需求分析方法论有什么变化?如何利用已有服务来简化产品开发?如何通过业务梳理来识别服务?如何确定服务提供方案?我们如何做得更好?
6,在产品需求的定义中,用业务场景描述行为是减少需求二义性的有效手段。我们必须对用例及其文档编写有深刻而正确的理解,通过编写恰当的用例场景和专业的需求文档,准确对系统行为进行详细描述,完整定义产品功能性需求。我们还要以可测试的方式描述质量属性与验收条件等非功能性需求,这都是高质量需求分析的重要控制点。
7,作为一个完整的工程方法,除了需要高水平需求开发以外,还需要严谨与规范的需求管理。包括如何保证各方对于需求有一致的理解?如何实现需求跟踪?如何确定需求变更策略?特别是随着近年来项目越来越大、越来越复杂、越来越敏感,需要有更加合理的需求管理与质量控制方法,使需求成为整个软件开发过程中有效的一环,为高质量软件开发提供关键的支撑。
8,软件需求是一项在复杂环境中高风险、高影响力的活动,单靠经验肯定不行。我们需要把问题抽象出来进行理论分析,发现它们之间的逻辑,通过缜密的逻辑思维,从系统的观点把方方面面的问题都关注到。这就需要以系统工程学的方法来处理需求,需求分析师需要有系统思考的能力。
本课程汇集了许多专家多年来理论和实践的总结,使课程既有理论高度,又能提升实践技巧,使理论与实践完美结合。在授课过程中强调了知其然更要知其所以然,从根本上解决问题,而不是仅仅关注技能的工匠式处理问题方式。通过引导学员根据具体环境,寻找更加合适的方法,从而避免死板僵化毫无生气的分析模式,代之以生动活泼富有创造性的分析过程,通过课程的教学,希望学员结合自己的实际,构建满足具体需要的方法,使机构的项目开发达到一个新的水平。
培训内容:
(一)系统思考:高质量软件需求工程概述
1)需求工程:需求开发与需求管理
软件需求工程模型
需求开发与软件质量
2)软件需求的严格定义及思考
需求是从外部描述产品的手段
优秀的需求所具有的特征
3)需求工程的方法与过程
解决复杂非线性问题的工程方法
利益相关方的参与是关键
需求开发与管理的过程框架
(二)需求规划:产品的目标与轮廓
1)从问题分析开始开发需求
一切项目的需求开始于问题
在问题定义上达成共识
2)分析客户问题思考产品目标
为什么目标分析十分重要
从行业的视角思考产品目标
从产品战略的视角思考目标
3)初步定义产品的轮廓
定义解决方案的边界
确定解决方案将受的约束
4)项目的陈述
(三)面向客户:如何开发客户需求
1)业务的概念分析
在建模的过程中理解业务并获取需求
确定业务分析的范围
面向对象的分析与概念建模
概念模型的关联、属性泛化与抽象
2)概念层面的共性和变化性分析
理解面向对象分析的本质
关注特征:共性和变化性分析
分析矩阵:与客户一起讨论变化
3)业务的行为分析
发现业务事件
当前业务模型(As-Is Model)的建立
未来业务模型(To-Be Model)的建立
在行为分析中发现共性和变化性
对变化建模
在建模的过程中发现功能需求
需求模式与需求复用
4)基于控制系统的状态变迁模型
5)用创新思维发现潜在需求
理解客户思维
关注应用层面的创新
明确创新点
有目的有组织的系统化创新
6)需求获取中如何理解用户和涉众的需要
引出需求方法论问题
创建用户代表
交流的能力与面谈技巧
理解用户的思维过程
文档考古学
业务用例研讨会
头脑风暴会议
7)通过原型法挖掘需求
原型是“什么”和“为什么”要原型
水平和垂直的原型
通过原型挖掘需求
如何使原型法获得成功
8)产品边界的最后确定
最终确定产品的价值与范围
客户需求说明书参考模板
(四)面向产品:如何开发产品需求
1)产品需求开发中的问题
复杂系统的需求分解
与利益相关方协商需求
2)面向服务的需求分析与定义
面向服务的架构及其需求
面向服务分析的方法学
服务识别的方法与过程
3)深入理解用例方法
用例的完整概念
用例是规范行为的契约
用例的目标层次
用例模型及其创建
4)用例的结构化及其文档描述
包含、扩展与泛化
包含的场景描述
扩展的场景描述
用例的泛化关系及场景描述
正确编写用例的提示
5)用例问题的进一步讨论
用例的益处
避免用例陷阱
利用用例组合功能结构
发现变更规律
6)新产品开发项目中的需求问题
有限的需求来源
模糊的需求界定
避免CPD陷阱
防止NV陷阱
(五)深入分析:如何分析与确认需求
1)分析与确认功能性需求
从用例模型中分析和确认功能性需求
细节程度和粒度
异常和可选方式
避免二义性
功能性需求的替代方式
2)分析与确认非功能性需求
非功能性需求类型与软件质量模型
定义质量属性
冲突性的属性与取舍
不要编写解决方案
3)确定验收标准
验收需要标准的原因
明确理由与测量的尺度
非功能需求的验收标准
功能性需求的验收标准
4)分析与设定需求优先级
为什么要设定需求的优先级
不同角色的人处理优先级
设定优先级的矩阵方法
(六)总结归纳:编写需求规格说明
1)需求规格说明书模板
2)项目驱动与问题描述
3)产品限制条件的确定
4)功能性和非功能性需求的描述
5)阐述项目问题
6)需求文档编写的若干建议
(七)质量控制:需求的管理、验证与确认
1)需求管理的目的与任务
2)获得对需求一致的理解
建立利益相关方理解需求的渠道
获取对需求的承诺
3)需求跟踪
需求跟踪的动机与方法
需求跟踪中的管理活动
查找和消除不一致
4)需求变更控制
确定需求变更类型
审批变更申请
管理变更请求
5)验证与确认的基本概念
6)需求验证测试的步骤
7)需求确认与正式评审方法
正式评审过程
评审前复查规格说明
需求评审的问题分离技术
稳定边界防止需求蔓延
(八)需求分析案例教学
1)案例背景介绍
2)需求分析场景练习
3)如何确定项目的边界
4)如何划分需求的等级
5)学员操练结果点评
(九)需求建模和文档管理案例分析
1)从客户需求到分析模型
2)需求建模操作要点
3)避免使用实例陷阱
4)编写需求文档的原则
5)需求示例的改进前后
(十)从需求分析到架构设计案例分析
1)几个需求案例介绍
2)体会练习不同需求对架构的影响
3)逐一分析不同背景下的工作思路
4)总结如何从需求过渡到设计
5)介绍如何从需求到测试
讲师介绍
谢老师 培训中心副校长、教授、高级咨询顾问,大型电子对抗项目首席系统架构师
杨老师 培训中心高级讲师,军方顾问,高级需求分析师