大型的硬件或軟件系統,如航天器,有著復雜的要求。需求是對應該構建什么、系統應該如何運行的規范,需求工程(Requirements engineering)是在構建系統之前使用良好的工程實踐來理解需求的過程。它之所以具有重要意義是因為系...
大型的硬件或軟件系統,如航天器,有著復雜的要求。需求是對應該構建什么、系統應該如何運行的規范,需求工程(Requirements engineering)是在構建系統之前使用良好的工程實踐來理解需求的過程。它之所以具有重要意義是因為系統的涉眾本身并不清楚他們的需求,并且有不同的需求

女人在電腦前倒立一個復雜的系統可能會有許多利益相關者,例如系統的委托人、使用該系統的用戶系統的一個或多個方面,以及從系統中受益的人。利益相關者也可能包括受系統某些特性影響的公眾成員。利益相關者有自己的特殊需求。另一方面,開發系統的人可能具有技術能力,但可能無法完全理解涉眾的觀點。需求工程是連接這些方面的基本能力。形式上,需求工程活動是分開的需求開發分為需求開發和需求管理。需求開發由啟發、分析、說明和驗證組成。需求管理是對整個需求過程的控制,尤其是處理需求的任何變化。與此相反,一些實踐者稱之為整個活動作為需求分析從利益相關者那里獲取需求變得很有必要,因為利益相關者通常沒有完全明確說明他們的需求,也不了解新系統的含義。利益相關者可能不會敞開心扉,因為他們可能會擔心對他們當前工作的影響。因此,引出是一種謹慎的,而且可能,這是一個需要同理心和微妙心理的長期過程。我們必須注意,不同利益相關者和開發人員之間的文化差異被彌合起來。有幾種技術被用來引出需求可以通過個人訪談、小組會議和觀察人們的任務來引出。提出需求的技術包括焦點小組、創建優先列表、原型設計和與其他正在運行的系統的比較。引出的需求包括系統的業務需求,用戶在使用系統時的業務流程,以及系統的功能特性。此外,還需要引出非功能性需求,如響應時間、系統可用性和易用性在需求工程中,低層次需求將滿足最初的高層次需求。這包括創建概念模型和原型,以確定需求的完整性。不同利益相關者需求中的沖突更多地是通過模型和原型發現的,而不是僅僅從一個列表中發現需求。分析員需要在需求中加入期望的系統特性,如安全性、靈活性和可維護性為了便于所有利益相關者理解,在軟件領域,該文件被稱為SRS,它代表軟件需求規范,需求由關鍵干系人驗證,這主要是通過演示和規范文件,但有時也有與需求相對應的測試用例。需求工程主要是一種溝通、活動,而不是技術性的。它需要多學科的技能。需求工程幫助涉眾開發人員可以解決沖突并將它們統一到目標中;這將導致一個健壯的系統。