什么是软件需求
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
IEEE中定义:需求
(1) 用户解决某个问题或达到某个目标所需要的条件或能力;
(2) 一个系统或系统组件为了实现某个契约、标准、规格说明或其他要遵循的文件而必须满足的条件或拥有的能力;
(3) 对(1)或(2)中所描述的条件或能力的文档化表示。
软件需求包括
- 功能需求
- 性能需求:考虑软件开发的技术性指标,例如:存储容量限制、执行速度、响应时间及吞吐量等。
- 用户或人的因素:考虑用各种用户对计算机的熟练程度、需要接受的训练、用户理解等。
- 环境需求:考虑未来软件应用的环境,包括硬件和软件。
- 界面需求
- 文档需求
- 数据需求
- 资源使用需求
- 安全保密要求
- 可靠性需求
- 软件成本消耗与开发进度需求
- 其他非功能性要求
什么是需求工程
需求工程是应用已证实有效的技术与方法开展需求分析,确定客户需求、帮助分析人员理解问题、评估可行性、协商合理的解决方案、无歧义地规约方案、确认规约以及将规约转换到可运行的系统时的管理需求。
软件工程六个阶段
需求获取方法与策略
- 建立顺畅的通信途径
- 访谈与调查
- 观察用户操作流程
- 组成联合小组
-
用况(Use Case)
创建用况模型的主要步骤如下:
- 确定谁会直接使用该系统,即参与者(Actor)
- 选取其中一个参与者
- 定义该参与者希望系统做什么,参与者希望系统作的每件事将成为一个用况
- 对每件事来说,何时参与者会使用系统,通常会发生什么,这就是用况的基本过程
- 描述该用况的基本过程
常用的需求分析方法
- 面向数据流的结构化分析方法 (SA)
- 面向数据结构的分析方法
- 面向对象的分析方法 (OOA)
需求规约与验证
软件需求规约是分析任务的最终产物。
检验标准描述检验系统成功的标志,检验标准是“确认测试”的基础。
需求管理
需求跟踪有两种方式,正向跟踪与逆向跟踪
- 正向跟踪:以用户需求为切入点,检查《需求规约》中的每个需求是否都能在后继工作产品中找到对应点
-
逆向跟踪:检查设计文档、代码、测试用况等工作产品是否都能在《需求规约》中找到出处