功能需求通过对系统输入、行为、输出和异常的描述定义系统或系统组件的功能,有时也被称作行为需求(behavioral requirement)或操作需求(operational requirement)。在某些情况下,功能需求还会陈述系统不应该做什么。
功能需求的典型例子包括功能描述、过程描述、数据需求和接口需求的描述等,常常采用用例和场景对其进行描述。其中用例侧重于描述系统或系统功能与外部活动者之间的关系;场景则侧重描述环境对于系统的期望,尤其适合于描述接口和过程。
功能需求是一种面向解决方案的需求,通常使用3个互补但部分重叠的视图来进行文档化:数据视图、功能视图和行为视图。数据视图常常采用实体-关系模型(E-R模型)、类图等进行文档化;功能视图常常采用数据流模型、本质模型等进行文档化;行为视图常常采用状态图、交互图等进行文档化。
功能需求与用户需求的关系可解释为,功能需求描述的是开发人员需要实现什么,而用户需求是指用户为达成业务目标而提出的要求。功能需求是用户需求归类分解为计算机可以实现的子系统和功能模块,用设计语言描述和解释用户的需求,即将具体的用户需求变成软件的功能要求。注意,无法利用计算机达成的用户需求不会被转变成功能需求。例如:用户需求,用户希望将交通事故照片通过app发给保险公司;功能需求,系统应该具有提交报险事故照片的功能,能够上传现场照片。
功能需求与非功能需求的关系可解释为,功能需求说明系统应该执行的活动,而非功能需求则说明系统应该具备的性质,如可靠性、安全性等。功能需求往往采用句式“系统应该做……(The system should do