功能需求 (functional requirement规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求 (behavīoral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什 么。注意:用户需求不总是被转变成功能需求。产品特性,所谓特性(feature),是指一组逻辑上相关的功能需求,它们为用户提供某项功能,使业务目标 得以满足。对商业软件而言,特性则是一组能被客户识别,并帮助他决定是否购买的需求,也就是产品说明书中用着重号标明的部分。客户希望得到的产品特性和用 户的任务相关的需求不完全是一回事。一项特性可以包括多个用例,每个用例又要求实现多项功能需求,以便用户能够执行某项任务。
非功能性需求是指依一些条件判断系统运作情形或其特性,而不是针对系统特定行为的需求。
包括安全性、可靠性、互操作性、健壮性、易使用性、可维护性、可移植性、可重用性、可扩充性。
例如
将飞机订票系统中的以下方面做如下的划分,F代表“功能性”,NF代表“非功能性”,X代表“不应当是需求”。简要的说明功能性或非功能性需求的种类。对于不应当是需求的方面,说明其原因。
- 如何输入有关航班、乘客及订票信息。F:输入
- 什么信息要出现在机票和报告中。F:输出
- 如何计算乘机费用。F:计算
- 什么信息必须存储在旅行社和其他人访问的数据库中。F:数据存储
- 这个系统应该设计成可以处理常旅客计划。NF:可扩展性
- 这个系统在任何时候都必须是可用的。一周中只允许有2分钟宕机时间。NF:有效性
- 必须使用某排序算法根据离开时间对航班排序。X:这是一个设计问题