功能需求
功能性需求(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).