第2章 软件需求与软件需求规约
2.1 需求与需求获取
- ⭐️需求定义:描述待开发产品的功能、性能参数和其他性质。
- 需求的5个基本性质:
- 必要性:是用户所要求的。
- 无歧义的:需求只能有一种方式解析。
- 可测的:可以进行测试的。
- 可跟踪的:需求可从一个开发阶段跟踪到另一个阶段。
- 可测量的:需求是可测量的。
- ⭐️需求分类(要能区分出:功能需要、性能需求):
- 功能需求:系统必须要有的功能,是整个需求的主体。
- 非功能需求:
- 性能需求:性能方面要求。
- 外部接口需求:约定了与用户、硬件、软件或数据库元素,可能交互格式、时间或其他因素。
- 设计约束:限制软件系统或软件构件的设计方案或都说技术选型。
- 质量属性需求:必须要达到的一个质量水平(可靠性、可维护性、用户友好性)。
- 需求发现技术:
- 自悟:将自己代入最终用户,提出功能需求。
- 交谈:直接寻问需求人员人员。
- 观察:观察现有系统和工作的需要。
- 小组会:需求人员和开发人员一起开会沟通。
- 提炼:对已有文档进行总结。
2.2 需求规约
- ⭐️需求规约定义:一个软件项/产品/系统所有需求陈述的正式文档,表达了一个软件产品/系统的概念模型。
- 需求规约r4个基本性质:
- 重要性和稳定性程序:按重要性和稳定性程序分级。
- 可修改:可以在不过多影响基本需求下,容易的修改一个单一需求。
- 完整性:没有被遗漏的需求。
- 一致性:没有互相冲突的需求。
- 需求规约的格式⭐️
IEEE标准830-1998(IEEE 1998)描述的需求规规格说明书模板。- 引言:目的、范围、定义、缩略语、参考文献、概述
- 总体描述:产品描述、产品功能、用户特性、约束、假设和依赖。
- 特定需求:是文档的技术核心。
- 附录
- 索引
- 需求规约的表达风格:
- 非形式化的需求规约:非形式化的需求规约,以一种自然语言描述的需求规约。
- 半形式化的需求规约:以半形式化符号体系(包括术语表、标准化的表达格式等)来表达需求规约。
- 形式化的需求规约:以数据概念的符号体系来编制需求规约,一般还会解释性的注释。
- ⭐️需求规约的作用:
- 软件开发者和用户之间的技术合同书,是产品功能和环境的体现。
- 对项目其余的大多数工作,需求规约是一个管理控制点。
- 对于产品/系统的设计,需求规约是一个正式的、受控制的起点。
- 创建产品、验收产品和用户指南的基础。
- 需求规约和项目需求的不同:
- 需求规约是软件开发组织和用户之间的技术合同书,关注产品需求,回答“交给客户的产品/系统是什么”。
- 项目需求是客户与开发者之间有关技术合同——产品/系统需求的理解,应该记录在工作陈述中或其他某一项目文档中,关闭项目工作与管理,回答“开发者要做什么”。
- 需求规约不能实现以下两个作用:
- 不是设计文档,是一个“用于”设计的文档。
- 不是进度和规划文档,不应该包含项目进度、工作陈述、项目管理计算等。
2.3 本章小结
- ⭐️需求的定义:一个需求是一个“要予构造”的陈述,描述了待开发产品功能上的能力、性能参数或其他性质。
- ⭐️需求的5个必备的基本性质:
- 必要的:是用户所要求的。
- 无歧义的:需求只能有一种方式解析。
- 可测的:可以进行测试的。
- 可跟踪的:需求可从一个开发阶段跟踪到另一个阶段。
- 可测量的:需求是可测量的。
- 需求的分类:功能需求(功能),非功能需求(性能、外部接口、设计约束和质量属性)。
- 5种觉的需求发现技术:自悟、交谈、观察、小组会、提炼。
- 需求规约的3种风格:非形式化的规约、半形式化的规约、形式化的规约。
- 需求规约的作用:
- 软件开发者和用户之间的技术合同书,是产品功能和环境的体现。
- 对项目其余的大多数工作,需求规约是一个管理控制点。
- 对于产品/系统的设计,需求规约是一个正式的、受控制的起点。
- 创建产品、验收产品和用户指南的基础。