##背景 为了定义需求,首先要将用户对系统的“功能性需求”与“非功能性需求”提取出来。 ##功能性需求 功能性需求是指关于“想经过系统作什么”的需求。例如“想要扫描商品的条形码,价格就会在终端上显示出来”“想要统计昨天每一个小时的销售额”等内容都是功能性需求。由于功能性需求与客户的平常工做有直接联系,因此很容易定义。 ##非功能性需求 而所谓非功能性需求,顾名思义,指的是并不是功能性的需求,即功能性需求之外的全部需求。在构建系统时,与相关人员仅仅就“想经过系统作什么”达成共识是不够的。如系统的运行时间段(系统提供服务的时间段)、保护系统不受非法攻击的策略(安全性策略)等需求,虽然不属于功能性需求,但对系统而言也是很是重要的。 ##实例 以大型国际体育活动的票务预订系统为例,“能够预订比赛门票”“座位不能被重复预订”“分配预订座位时不能浪费座位”等想经过票务预订系统完成的工做就是功能性需求。而“能够24小时预订(票务预订系统提供服务的时间段为24小时)”“对用户进行身份识别以防止恶意预订”“预订处理的响应时间(预订按钮按下后到预订处理完成的时间)不能超过10秒”等功能性需求之外的系统特性需求都是非功能性需求。 ##小结 在系统中,主要由应用程序实现功能性需求,由基础设施实现非功能性需求。所以也能够认为,非功能性需求是应用程序高效稳定的保证。安全