1、软件需求定义:
软件需求定义:业务知识+问题列表+其它因素
- 业务知识:业务事件、业务实体和业务规则。
- 问题列表:用户在工作中遇到的困难和障碍。
- 其他因素:设计约束和非功能方面需求。
1.1 需求的三个层次
业务需求:软件系统的建设目标。
用户需求:用户使用软件需要完成什么任务、如何完成。
软件需求:分析需求与建模的产物。
1.2 需求的三种类型
- 功能需求
- 非功能需求
- 设计约束
1.3 优秀需求的标准
-
完整性
-
不失真
-
有优先级
(确定优先级的不同角度)
(确定必要性)
-
有技术早期介入
确认可行性、可验证性
2、需求工程
需求工程包括:需求开发、需求管理
2.2 需求开发
需求获取、需求分析、编写规约和需求验证已多次循环形式进行。
2.3 需求管理
需求管理包括:基线管理、变更管理和需求跟踪。
2.3.1 基线管理
把需求分成两大类:
1、 已经开发的基线内的需求(baseline)
2、 没有安排开发的待处理需求(backlog)
基线管理示意图如下:
划分基线时要考虑三个方面的事:
1、确立优先级
2、工作量估算
3、未完成项合并
2.3.2 变更管理
变更管理考虑以下三点
业务影响分析:从业务角度对变更的合理性、优先级以及对原有需求的影响进行分析,以便决定是否将其纳入backlog中。
技术影响分析:从技术角度对变更的影响范围、工作量进行分析,并且决定是拒绝、在后续迭代中进行响应,还是在本次迭代中对其进行响应。
项目影响分析:基于前面的工作量分析,考虑是否对整个项目的时间、进度、成本产生较大影响。
2.3.3 需求跟踪
3、SERU模型(Subject→Event/Report→Use Case)
整个需求探索过程可分为三大阶段(其中步骤1-3是需求定义阶段,步骤4是理清脉络阶段,步骤5是填充细节阶段)
- 需求定义阶段:就是项目的立项阶段,与RUP【RUP(Rational Unified Process),统一软件开发过程】的初始阶段相对应;对于需求分析人员而言,该阶段的核心目标在于定义目标和范围。根据SERU模型的总结,该阶段的任务就是划分Subject(主题域),并标识出每个主题域中的Event(业务事件)和Report(报表类型)。
- 理清脉络阶段:相当于需求捕获、分析与建模的阶段一,对应于RUP中细化阶段的第一次迭代。根据SERU模型的总结,该阶段的任务就是对每个业务事件(它是业务流程的触发点,因此换句话说,就是分析业务流程)、每类报表进行事(流程分析,只针对业务事件)、物(业务实体)、人(使用角色)分析,并标识出绝大部分用例。
- 填充细节阶段:相当于需求捕获、分析与建模的阶段二,在RUP中将从细化阶段的第2次迭代开始,直到构建阶段完成。根据SERU模型的总结,该阶段的任务就是填充每个用例的实现细节,以便开发人员进行具体的实现