介紹
軟件需求知識領域(KA)涉及軟件需求的獲取、分析、規范和驗證,以及軟件產品整個生命周期的需求管理。研究人員和行業從業者普遍認為,當需求相關的活動執行得不好時,軟件項目是非常脆弱的。
軟件需求表達了軟件產品上的需求和約束,這些需求和約束有助于解決一些現實世界的問題。
術語“需求工程”在該領域中被廣泛使用,以表示對需求的系統處理。出于一致性的原因,除了軟件工程本身之外,術語“工程”將不會在這個知識領域中使用。
出于同樣的原因,在一些文獻中出現的術語“需求工程師”也不會被使用。相反,術語“軟件工程師”或者,在某些特定的情況下,“需求專家”將被使用,后者所涉及的角色通常是由個人而不是軟件工程師來執行的。然而,這并不意味著軟件工程師不能執行該功能。
擬議故障的內在風險是,可能會推斷出類似瀑布的過程。為了防止這種情況發生,主題2,需求過程,被設計為通過列出過程運行和配置它的資源和約束來提供一個高層次的需求過程概述。
可選的分解可以使用基于產品的結構(系統需求、軟件需求、原型、用例,等等)。基于過程的分解反映了這樣一個事實,即需求過程如果要成功,就必須被看作是一個包含復雜的緊密耦合活動(包括順序的和并發的)的過程,而不是在軟件開發項目開始時執行的離散的、一次性的活動。
軟件需求知識領域與軟件設計、軟件測試、軟件維護、軟件配置管理、軟件工程管理、軟件工程過程、軟件工程模型和方法、軟件質量知識領域密切相關。
1.軟件需求基本面
1.1軟件需求的定義
從最基本的意義上說,軟件需求是為了解決現實世界中的某些問題而必須表現出來的一種屬性。它的目標可能是自動化某個人的部分任務,以支持組織的業務過程,糾正現有軟件的缺陷,或控制設備——這只是軟件解決方案可能解決的眾多問題中的一小部分。用戶、業務過程和設備的運作方式通常是復雜的。因此,通過擴展,對特定軟件的需求通常是來自組織不同級別的各種人員的復雜組合,這些人員以某種方式涉及到或與軟件將在其中運行的環境中的此特性有關。
所有軟件需求的一個基本屬性是,它們可以作為功能需求的單個特性進行驗證,或者在系統層面上作為非功能需求進行驗證。驗證某些軟件需求可能是困難的或昂貴的。例如,驗證呼叫中心的吞吐量需求可能需要開發仿真軟件。軟件需求、軟件測試和質量人員必須確保在可用的資源限制范圍內驗證需求。
除了行為屬性之外,需求還有其他屬性。常見的例子包括在資源有限的情況下使用優先級評級來進行權衡,以及使用狀態值來監控項目進度。通常,軟件需求是唯一確定的,這樣它們就可以在整個軟件特性和軟件的生命周期中接受軟件配置管理。
1.2產品和過程要求
產品需求是對要開發的軟件的需求或約束(例如,“在學生注冊一門課程之前,軟件應該驗證他或她滿足了所有的先決條件”)。過程需求本質上是軟件開發的約束(例如,“軟件應該使用RUP過程開發”)。
一些軟件需求生成隱式過程需求。選擇驗證技術就是一個例子。另一種可能是使用特別嚴格的分析技術(例如形式規范方法)來減少可能導致不充分可靠性的錯誤。過程需求也可能由開發組織、他們的客戶或第三方(如安全監管者)直接施加。
1.3功能性和非功能性需求
功能需求描述軟件要執行的功能;例如,格式化一些文本或調制一個信號。它們有時被稱為功能或特性。功能性需求也可以被描述為可以為其編寫有限的測試步驟集來驗證其行為的需求。
非功能性需求是用來約束解決方案的需求。非功能性需求有時被稱為約束或質量需求。根據它們是性能需求、可維護性需求、安全性需求、可靠性需求、安全性需求、互操作性需求還是許多其他類型的軟件需求之一,它們可以被進一步分類(參見軟件質量知識領域中的模型和質量特征)。
1.4突現屬性
有些需求代表了軟件的突現特性——也就是說,這些需求不能由單個組件解決,而是依賴于所有軟件組件如何互操作。例如,呼叫中心的吞吐量需求取決于電話系統、信息系統和操作員在實際操作條件下如何相互作用。突現屬性非常依賴于系統架構。
1.5可量化的需求
軟件需求應該盡可能清晰和明確地表述,如果合適的話,還應該定量地表述。重要的是要避免模糊和無法驗證的需求,這些需求依賴于主觀判斷的解釋(“軟件應該是可靠的”;“本軟件應易于使用”)。這對于非功能性需求尤其重要。量化需求的兩個例子如下:呼叫中心的軟件必須將該中心的吞吐量提高20%;和一個系統都有一個概率生成一個致命錯誤在任何小于1 * 10-8小時的運行。吞吐量需求處于非常高的水平,將需要用于派生許多詳細的需求。可靠性要求將嚴格限制系統的架構。
1.6系統需求和軟件需求
在本主題中,“系統”指的是實現既定目標的要素相互作用的組合。這些包括硬件、軟件、固件、人員、信息、技術、設施、服務和其他支持元素,根據國際軟件和系統工程委員會(INCOSE)的定義。
系統需求是對整個系統的需求。在一個包含軟件組件的系統中,軟件需求是從系統需求派生出來的。
這個知識領域以一種受限的方式定義了“用戶需求”,即系統的客戶或最終用戶的需求。相比之下,系統需求包含用戶需求、其他利益攸關方的需求(比如監管部門),以及沒有可識別的人力資源的需求。
責任編輯:PSY
原文標題:軟件需求基本面
文章出處:【微信公眾號:汽車電子硬件設計】歡迎添加關注!文章轉載請注明出處。
-
軟件
+關注
關注
69文章
5013瀏覽量
88084 -
智能硬件
+關注
關注
205文章
2352瀏覽量
107943 -
需求量
+關注
關注
0文章
3瀏覽量
2392
原文標題:軟件需求基本面
文章出處:【微信號:QCDZYJ,微信公眾號:汽車電子工程知識體系】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
架構性需求的基礎知識
![架構性<b class='flag-5'>需求</b>的基礎<b class='flag-5'>知識</b>](https://file1.elecfans.com/web2/M00/0B/B0/wKgZomc2uq-AEbQVAAAlchtFtdw814.png)
堆棧和內存的基本知識
![堆棧和內存的<b class='flag-5'>基本知識</b>](https://file1.elecfans.com/web2/M00/05/7C/wKgaombQES2AFnb1AAEisWjn2dk976.png)
光刻工藝的基本知識
![光刻工藝的<b class='flag-5'>基本知識</b>](https://file1.elecfans.com/web2/M00/04/26/wKgZombL5BmAJfOCAAAFAVz8vP4007.jpg)
斑馬技術:用軟件創造需求,硬件滿足需求
![斑馬技術:用<b class='flag-5'>軟件</b>創造<b class='flag-5'>需求</b>,硬件滿足<b class='flag-5'>需求</b>](https://file1.elecfans.com//web2/M00/03/5D/wKgZombDB02AVQmLAAQkSTfhWbQ292.jpg)
評論