目录
一、概述
二、需求获取
三、需求分析
3.1 需求分类
3.2 结构化需求分析(SA)
3.3 面向对象的需求分析OOA
四、需求定义
五、需求验证
六、需求管理
6.1 软件需求基线
6.2 需求跟踪
6.3 需求风险管理
一、概述
软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望
软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
二、需求获取
需求获取方法:
- 用户访谈:1对1-3,有代表性的用户。
- 问卷调查:用户多,无法一一访谈
- 现场观摩:针对较为复杂的流程和操作。
- 联合需求计划(JRP):高度组织的群体会议,各方参与,成本较高
- 情节串联板:一系列图片,通过这些图片来讲故事。
- 收集资料:把与系统有关的、对系统开发有益的信息收集起来参加业务实践:有效地发现问题的本质和寻找解决问题的办法
- 阅读历史文档:对收集数据性的信息较为有用。
- 抽样调查:降低成本。样本大小=a*(可信度系数/可接受的错误)2;注:a一般取0.25
三、需求分析
3.1 需求分类
PIECES框架是系统非功能性需求分类的技术:
- 性能(Preformance):性能用于描述企业当前的运行效率,可以分析当前业务的处理速度
- 信息(Information ):信息和数据指标用于描述业务数据的输入、输出以及处理方面存在的各种问题。
- 经济(Economics):经济指标主要是从成本和收益的角度分析企业当前存在的问题
- 控制( Control): 提高信息系统的安全和控制水平。
- 效率( Efficiency ):提高企业的人、财、物等的使用效率,
- 服务(Service ) : 提高企业对客户、供应商、合作伙伴、顾客等的服务质量
3.2 结构化需求分析(SA)
(1)数据字典
(2)数据流图DFD
异常现象
- 黑洞:一个加工只有输入数据流而无输出数据流
- 奇迹:一个加工只有输出数据流而无输入数据流
- 灰洞: 若一个加工的输入数据流无法通过加工产生输出流
(3)状态转换图STD
(4)实体联系图ER
3.3 面向对象的需求分析OOA
- 对象 : 属性( 数据 )+方法(操作 ) +对象ID
- 类(实体类/控制类/边界类 )
- 继承与泛化: 复用机制
- 封装:隐藏对象的属性和实现细节,仅对外公开接口
- 多态:不同对象收到同样的消息产生不同的结果
- 接口:一种特殊的类,他只有方法定义没有实现
- 重载:一个类可以有多个同名而参数类型不同的方法
- 消息和消息通信:消息是异步通信的
(1)UML
- 类是描述具有相同属性、方法、关系和语义的对象的集合,一个类实现一个或多个接口.
- 接口是指类或构件提供特定服务的一组操作的集合,接口描述了类或构件的对外的可见的动作。
- 构件是物理上或可替换的系统部分,它实现了一个接口集合包是一种将有组织的元素分组的机制。
- 用例是描述一系列的动作,产生有价值的结果
- 协作定义了交互的操作,是一些角色和其它事物一起工作,提供一些合作的动作,这些动作比事物的总和要大;
- 节点是一个物理元素,它在运行时存在,代表一个可计算的资源,通常占用一些内存和具有处理能力。
(2)4+1视图
(3)用例图
(4)类图和对象图
(5)顺序图
(6)活动图
(7)状态图
(8)通信图
四、需求定义