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