需求是最重要的事情,失去了功能,失去了客户的价值,软件将一无是处。

然而,功能的实现只是架构的开端。

架构首先来自需求,需求驱动架构,然后非功能性需求反映服务等级,面对客观环境的约束,自行引入的架构实现原则,是在高层次以上对需求、约束、和原则的理解和把握。

非功能性需求也可以称为质量属性,我所了解的非功能性需求主要有:

  1. 性能:响应时间或延迟
  2. 可伸缩性:更多用户,请求和数据的处理能力
  3. 可用性:99.9%意味着每天一分钟故障
  4. 安全性: 可以参考OWASP,open web application security project
  5. 灾难恢复:业务连续性过程
  6. 可访问性:www.w3.org/standards/webdesign/accessibility
  7. 监测:只读视图
  8. 管理:操作视图
  9. 审计:日志及虚拟货币的对账
  10. 灵活性:非技术人员修改业务规则的能力
  11. 可扩展性:可以做现在还不能做的事情
  12. 可维护性:可读性,可持续发展
  13. 法律规则:如隐私
  14. 国际化i18n
  15. 本地化i10n

一时想不起更多了,欢迎补充。