graph LR
    A[软件需求] --> A1[需求概念]
    A --> A2[需求获取]
    A --> A3[需求规约]

  1. 软件需求分为:功能需求(主体),非功能需求。
  2. 接口需求的分类:用户接口,硬件接口,软件接口,通信接口,内存约束,运行,地点需求。
  3. 单个需求必须具有的基本性质:必要的、无歧义的、可测的、可测量的。
  4. 需求分析的三大挑战:问题空间理解,人与人之间的通信,需求的变化性。
  5. 初始发现需求的常用技术:自悟,交谈(提问/回答),观察(可能引起抵触),小组会,提炼(已有文档)。
  6. 验证需求是否正确的技术:自悟、提炼。
  7. 需求规约的定义:需求规约是一个软件项目/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。
  8. 软件需求规约的性质:重要性,稳定性,可修改性,完整性(基本),一致性。
  9. 需求规约的三种形式:
    (1)非形式化的需求规约:基于自然语言来编制需求规约。
    (2)半形式化的需求规约:以半形式化符号体系(术语表)等表达需求规约。
    (3)形式化规约:基于良构数学概念符号体系来编制需求规约。
  10. 需求规约在项目开发中的基本作用:
    (1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现;(1分)
    (2)对于项目的其余大多数工作,需求规约是一个管理控制点;(1分)
    (3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点;(1分)
    (4)是创建产品验收测试计划和用户指南的基础,即基于需求规约一般还会产生另外两个文档:初始测试计划和用户系统操作描述。(2分)
  11. 需求规约与项目需求有哪些不同?
    (1)需求规约是软件开发组织和用户之间一份事实上的技术合同书,即关注产品需求,(1分)回答“交付给客户的产品/系统是什么了(1分)。
    (2)项目需求是客户和开发者之间有关技术合同-产品/ 系统需求的理解。(1分)应记录在工作陈述中或其他某一项目文档中,即关注项目工作于管理,(1分)回答“开发组要做的是什么事。(1分)