软件工程学习笔记:需求和需求规约

无论是哪种开发方式,软件需求都是软件开发的基础。

需求

  1. 定义:一个有关“要予构造”的陈述,描述了待开发产品/系统(或项)功能上的能力、性能参数或者其他性质(像是约束什么的)。
  2. 基本性质:① 必要性 ② 无歧义性 ③ 可测性 ④ 可跟踪性 ⑤ 可测量性
  3. 分类:功能,性能,外部接口,设计约束,质量属性(产品质量的量化值)。
  4. 发现需求的方式:自悟(自己从用户出发),交谈(谈话的艺术),观察(眼见为实),小组会,提炼(复审需求文档),综合运用。

需求规约

  1. 概念:一个产品所有需求陈述的正式文档,是一个软件产品/系统的概念模型。
  2. 基本性质:① 重要性和稳定性程度(需求分层次) ② 可修改的(容易修改单个需求) ③ 完整的(不漏) ④ 一致的(不抵触)
  3. 格式:
    1. 引言
      1.1 目的
      1.2 范围
      1.3 定义,略缩语
      1.4 参考文献
      1.5 概述(项目范围)
    2. 总体描述
      2.1 产品概述
      2.2 产品功能
      2.3 用户特性
      2.4 约束
      2.5 假设与依赖
    3. 特定需求(技术核心,非功能性刻画)
      附录
      索引
  4. 作用:① 开发者与用户间的技术合同,体现产品功能 ② 项目的管理控制基础 ③ 产品设计的起始点 ④ 测试计划(早期修改错误的代价低)与用户指南(用户角度的功能描述)的生成基础
    但是需求规约不是设计文档,也不是进度或规划文档,开发进度,成本,开发方法不应该包含在内

项目的需求和需求规约

软件的需求:我要交个啥样的产品
项目的需求:开发组要做啥