软件架构中的隐形支柱:如何避免非功能性需求陷阱
非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括性能、安全性、可靠性、可扩展性、可用性等多个维度。简而言之,功能需求定义系统“做什么”,而非功能性需求规定系统“做到什么程度”、“以什么方式运行”。如果把软件系统比作一辆汽车,那么功能需求是它的基本运输能力,而非功能性需求则是它的最高时速、安全系数、燃油效率和驾驶舒适度。功能性、可靠性、易用性、效率、可维护性和可移植性,其中后五个类别主要涉及非功能性需求。这一标准框架为我们系统化理解非功能性需求提供了基础。