软件工程 |软件需求分类
根据 IEEE 标准 729,要求定义如下:
- 用户解决问题或实现目标所需的条件或能力
- 系统或系统组件必须满足或拥有以满足合同、标准、规范或其他正式规定的文件的条件或能力
- 1 和 2 中条件或能力的书面表示。
软件需求可以有 3 种类型:
- 功能要求
- 非功能性需求
- 域要求
功能要求:这些是最终用户作为系统应提供的基本设施而特别要求的要求。所有这些功能都必须作为合同的一部分纳入系统。这些以提供给系统的输入、执行的操作和预期的输出的形式表示或说明。与非功能性需求不同,它们基本上是用户在最终产品中可以直接看到的需求。
例如,在医院管理系统中,医生应该能够检索他的病人的信息。每个高级功能需求都可能涉及系统与外部世界之间的多次交互或对话。为了准确描述功能需求,必须枚举所有场景。
表达功能需求的方法有很多种,例如自然语言、没有严格语法的结构化或格式化语言以及具有适当语法的正式规范语言。
非功能性需求:这些基本上是系统根据项目合同必须满足的质量约束。实施这些因素的优先级或程度因项目而异。它们也被称为非行为要求。
他们基本上处理以下问题:
- 可移植性
- 安全
- 可维护性
- 可靠性
- 可扩展性
- 表现
- 可重用性
- 灵活性
NFR分为以下类型:
- 接口约束
- 性能限制:响应时间、安全性、存储空间等。
- 操作限制
- 生命周期约束:可维护性、可移植性等。
- 经济限制
指定非功能性需求的过程需要了解系统的功能,以及系统将在其中运行的上下文的知识。
领域需求:领域需求是项目的特定类别或领域的特征。特定领域的系统必须表现出的基本功能属于这一类。例如,在维护学校或学院记录的学术软件中,能够访问每个年级的教师列表和学生列表的功能是域要求。因此,这些需求是从该领域模型中识别出来的,而不是特定于用户的。