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