2.2.2 定义非功能性需求
对用户和客户来说,非功能性需求(Non-Functional Requirement,NFR)可能并不直观,但它们的缺失可能对整体的用户体验产生负面影响,并阻碍业务的开展。NFR包括系统的关键方面,如性能、延迟、伸缩性、高可用性和灾难恢复。最常见的非功能性需求如图2-3所示。图2-3显示了以下NFR,供参考:
□性能:
●用户的应用程序加载时间是多长?
●如何处理网络延迟?
图2-3 解决方案设计中的NFR
□安全性与合规性:
●如何保护应用程序免受未经授权的访问?
●如何保护应用程序免受恶意攻击?
●如何满足当地法律和审计要求?
□可恢复性:
●如何从停机中恢复应用程序?
●如何在发生停机时最大限度地缩短恢复时间?
●如何恢复丢失的数据?
□可维护性:
●如何确保应用程序监控和告警?
●如何确保应用程序支持?
□可靠性:
●如何确保应用程序的性能稳定?
●如何检查和排除故障?
□可用性:
●如何确保应用程序的高可用性?
●如何使应用程序具有容错性?
□可伸缩性:
●如何满足日益增长的资源需求?
●如何实现良好的规模,以应对利用率的突然飙升?
□易用性:
●如何简化应用程序的用法?
●如何实现无缝的用户体验?
然而,根据项目的性质,可能会存在仅适用于该项目的NFR(例如,呼叫中心解决方案的语音清晰度)。第3章将对这些属性做进一步的介绍。
解决方案架构师从非常早期的阶段就开始参与项目了,这意味着他们需要通过衡量组织中各个团队的需求来设计解决方案。解决方案架构师需要确保跨系统组件和需求的解决方案设计的一致性。解决方案架构师负责定义跨组织的团队和不同组件的NFR,因为他们要确保解决方案的易用性得到全面实现。
NFR是解决方案设计中不可或缺的重要方面,当团队过于关注业务需求时,NFR往往会被忽略,这可能会影响用户体验。好的解决方案架构师的主要责任是传达NFR的重要性,并确保它们作为解决方案交付的一部分得到实施。