1

背景

为了定义需求,首先要将用户对系统的“功能性需求”与“非功能性需求”提取出来。

功能性需求

功能性需求是指关于“想通过系统做什么”的需求。例如“想要扫描商品的条形码,价格就会在终端上显示出来”“想要统计昨天每个小时的销售额”等内容都是功能性需求。因为功能性需求与客户的日常工作有直接联系,所以很容易定义。

非功能性需求

而所谓非功能性需求,顾名思义,指的是并非功能性的需求,即功能性需求以外的所有需求。在构建系统时,与相关人员仅仅就“想通过系统做什么”达成共识是不够的。如系统的运行时间段(系统提供服务的时间段)、保护系统不受非法攻击的策略(安全性策略)等需求,虽然不属于功能性需求,但对系统而言也是非常重要的。

实例

以大型国际体育活动的票务预订系统为例,“可以预订比赛门票”“座位不能被重复预订”“分配预订座位时不能浪费座位”等想通过票务预订系统完成的工作就是功能性需求。而“可以24小时预订(票务预订系统提供服务的时间段为24小时)”“对用户进行身份识别以防止恶意预订”“预订处理的响应时间(预订按钮按下后到预订处理完成的时间)不能超过10秒”等功能性需求以外的系统特性需求都是非功能性需求。

小结

在系统中,主要由应用程序实现功能性需求,由基础设施实现非功能性需求。因此也可以认为,非功能性需求是应用程序高效稳定的保证。


codecraft
11.9k 声望2k 粉丝

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下...


引用和评论

0 条评论