功能需求
![本页使用了标题或全文手工转换](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
功能性需求(functional requirement)为一软体工程用语,功能需求定义一个软体系统或元件的功能,也是一个系统需提供的功能及服务[1]。功能可以用一组输入、行为及输出的组合来表示。功能需求可以是计算、技术细节、资料处理或其他说明系统希望达成功能的内容。功能需求会以非功能性需求(或是品质需求)为其基础,后者会描述设计或实現时的限制条件(例如性能需求、保安性或可靠度等)。
若依照需求工程的定义,功能需求会列出系统的特定结果,而非功能性需求会列出系统的一些整体特性(如成本及可靠度),功能需求有关系统的应用架构,而非功能性需求和系统的技术架构有关。
例如一个计算机的功能需求可能是可计算9位数字的加减乘除及根号,而其非功能性需求是成本需在美金10元以下。
功能需求理论上需要有全面性及一致性,一方面描述用户所需要的所有机能,同时各机能的说明不能前后冲突。不过对于大型的系统,由于系统的复杂及参与人员看待事物的观点不同,要作到全面性及一致性相当困难[1]。
有时需求分析师会在收集许多功能需求后,会依功能需求建立一系列的用例。功能需求的阶层为:使用者或利益相关者的需求->功能->用例->业务规则,每一个用例都会描述一个到多个功能需求所对应的行为。不过有时需求分析师也会从一些用例开始,再从用例中找出用例中需要用的功能需求。
起源
一篇1953年物流学会议的论文将资料处理设备的需求分为二类:分别是功能需求及非功能性需求。[2]
功能需求及非功能性需求的概念最早是在1982年由Raymond T. Yeh在计算机软件及应用会议(COMPSAC)中提出。G.C. Roman在1985年4月的《计算机》杂志中的“A taxonomy of current issues in requirements engineering”也有提到机能需求的特点[3][4]。
程序
典型的功能需求会包括一个不重复的名称及编号,简单的说明及原因。这些资讯有助于读者了解为何需要这些机能,而且可以在系统开发过程中去追踪这些功能需求对应的设计、实现及测试。
功能需求的重点是对于所需行为的描述,这部份必须清楚具体,容易阅读。所需行为可以来自组织或是商业规则,或是由使用者、利益相关者及组织内相关领域的专家一起开会讨论。此时需求分析师会先为需求取一个名字及略作说明,在大家对此需求有些研究,比较了解所需的行为时,再完成功能需求的资料。
相关条目
参考资料
- ^ 1.0 1.1 覃征. 软件工程与管理. 北京: 清华大学出版社. 2005: 78. ISBN 7302109354.
- ^ Dr E. W. Cannon, "Survey of Modern Methods of Data Processing" pg 12. Proceedings, Annual Logistics Conference, No. 4 held in Washington, D.C. 16-19 Mar 1953. http://handle.dtic.mil/100.2/AD0018453[失效链接]
- ^ Compendium of Mathematical Symbols. Math Vault. 2020-03-01 [2020-08-17]. (原始内容存档于2021-08-22) (美国英语).
- ^ CSDL Computer Magazine. [2012-10-05]. (原始内容存档于2015-04-05).