功能需求
![本页使用了标题或全文手工转换](http://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).