需求工程
需求工程的基本概念
什么是需求工程?
对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程
软件需求的困难
- 应用领域的广泛性
- 非功能性需求建模技术的缺乏
- 沟通上的困难
软件需求的内容
-
功能需求
对系统应该提供的服务、功能以及系统在特定条件下的行为的描述
-
非功能需求
如性能指标、道德约束等
-
领域需求
是由软件系统的应用领域所决定的特有的功能需求
需求分析的作用
定义软件范围及必须满足的约束
确定软件功能、性能与其他系统成分接口
建立数据模型、功能模型、行为模型
最终提供需求规格说明,并作为评估质量的依据
需求工程基本活动
- 获取需求
- 需求分析与建模
- 确认需求
- 进化需求
需求获取
三个问题:
- 明确需要获取的信息(what)
- 明确所获取信息的来源和渠道(where)
- 怎样获取需求(how)
需求获取技术
-
面谈法
众包:一个公司和机构吧过去由员工执行的工作任务,以自由自愿的方式外包给非特定的大众网络的做法。
问卷调查法
需求专题讨论会
观察用户的工作流程
原型化方法
基于用例的方法
需求分析与建模
三个层次:
- 需求分析
- 需求建模
- 需求规格说明
需求分析常用技术
分解
抽象
多视点
需求分析方法
功能分解方法
- 将系统看作若干功能模块的集合,每个功能可以分解为子功能(递归)
-
不足之处
需要人工完成
无法对描述的准确度进行验证
难以适应需求变化
-
不足之处
结构化分析方法
- 不考
信息建模法
是从数据的角度对现实世界建立系统的信息模型。ER图
面向对象分析方法
识别问题域内的对象,分析他们之间的关系,并建立起三类模型。