非功能需求

在软件开发过程中,除了功能需求(用户可以购物,可以下订单等)之外,还有很多需求需要确定。这些需求与具体的业务需求没有关系,却对整个系统有着十分重要的影响。

这里略举几个例子:

  • 安全性
  • 吞吐量
  • 负载
  • 响应速度
  • 日志记录
  • 备份方案(归档)
  • 可扩展性(横向扩展,水平扩展)

每个业务系统都或多或少需要涉及这些非功能需求,但是各个系统的要求有不尽相同。一个网上银行系统,和一个企业内部的知识管理系统对安全性的要求就完全不一样。业务面向全球的电商网站,和西安市的驾校预约网站对吞吐量和响应速度的要求也不会一样。

在梳理了业务方面的需求之后,我们还需要对非功能需求进行深入的讨论和了解,这在我们做技术选型时会有巨大的影响。