需求分析是非常关键的过程, 可以评估系统或软件项目的成功。需求通常分为两种类型:功能性和非功能性要求.
功能要求:这些是最终用户作为系统应提供的基本设施而特别要求的要求。所有这些功能都必须作为合同的一部分并入系统中。这些以要提供给系统的输入, 执行的操作和预期的输出的形式表示或陈述。与非功能性需求不同, 它们基本上是用户可以直接在最终产品中看到的用户陈述的需求。
这些基本上是系统根据项目合同必须满足的质量约束。在一个项目之间, 实施这些因素的优先级或程度各不相同。它们也称为非行为要求。
他们基本上处理以下问题:
可移植性
安全
可维护性
可靠性
可扩展性
性能
可重用性
灵活性
以下是功能需求和非功能需求之间的区别
功能要求 | 非功能性要求 |
---|---|
功能需求定义了系统或其组件。 | 非功能性需求定义了软件系统的质量属性。 |
它指定"软件系统应该做什么?" | 它对"软件系统应如何满足功能要求?"施加了限制。 |
功能要求由用户指定。 | 非功能性要求由技术人员指定, 例如架构师, 技术主管和软件开发人员。 |
这是强制性的。 | 这不是强制性的。 |
它是在用例中捕获的。 | 它被捕获为质量属性。 |
在组件级别定义。 | 应用于整个系统。 |
帮助你验证软件的功能。 | 帮助你验证软件的性能。 |
完成了系统, 集成, 端到端, API测试等功能测试。 | 完成非功能测试, 如性能, 压力, 可用性, 安全性测试等。 |
通常容易定义。 | 通常很难定义。 |
例子 1)每当用户登录系统时进行身份验证。 |
例子 1)发送此类电子邮件的延迟应不超过12小时。 |