需求规格说明
需求规格说明是将已获取和分析的需求,以精确、一致和可验证的形式记录下来的活动,作为设计、构建和验收的共同基础。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
需求规格说明是系统需求文档化表示的产物,其编写方式应确保每项需求都是明确、可验证和可追溯的,并且整个集合是一致和完整的。
Scope
本主题涵盖软件需求规格说明的结构和内容;从结构化自然语言到用例、用户故事和形式化模型的各种风格;良好需求的质量属性,如无歧义性、完整性、一致性和可测试性;以及规定规格说明内容的ISO/IEC/IEEE 29148等标准。
Core questions
- 如何使自然语言需求变得明确和可验证?
- 何时值得采用形式化或基于模型的规格说明?
- 良好规格说明的质量属性有哪些?
- 功能性和非功能性需求应如何在文档中组织?
Key theories
- 需求的质量属性
- 单个需求应是明确的、可验证的、可行的和必要的,而整个集合应是完整的、一致的和可追溯的;这些属性为审查规格说明提供了具体的标准。
- 形式化与非形式化规格说明
- 规格说明的范围从结构化自然语言和用例到形式化数学符号;形式化以付出努力和可访问性为代价,提高了精确性和可分析性,因此选择的级别应与风险和受众相匹配。
Clinical relevance
清晰的规格说明是利益相关者与开发人员之间的契约,也是验证的参考;规格说明中的歧义或遗漏会蔓延到有缺陷的设计中,并引发对承诺内容的争议。
Evidence & guidelines
ISO/IEC/IEEE 29148定义了需求规格说明的推荐结构和质量特性,是管理其内容的主要标准。
History
早期的规格说明大多是自由形式的散文;IEEE 830标准在20世纪90年代使软件需求规格说明正式化,后来的工作引入了用例、用户故事以及基于模型和形式化的表示法,最终形成了整合的ISO/IEC/IEEE 29148标准。
Debates
- 重量级文档与轻量级用户故事
- 计划驱动的实践倾向于全面的规格说明文档,而敏捷实践则偏好即时细化的轻量级用户故事;这种选择权衡了彻底性和契约清晰度与适应性和减少文档开销之间的关系。
Key figures
- Axel van Lamsweerde
- Michael Jackson
- Ian Sommerville
Related topics
Seminal works
- iso29148
- vanlamsweerde2009
- sommerville2015
Frequently asked questions
- 什么使需求可测试?
- 当需求被精确地陈述,使得客观程序可以确定交付的系统是否满足它时,该需求就是可测试的;模糊的术语,如“快速”或“用户友好”,必须量化或给出可测量的验收标准。
- 用户故事是否取代了需求规格说明?
- 用户故事是一种适用于迭代开发的轻量级规格说明风格,但它们仍然需要验收标准,对于复杂或受监管的系统,通常需要补充更详细的文档以确保完整性和可追溯性。