關(guān)鍵字:需求分析 軟件可靠性
一、軟件可靠性工程與需求工程的關(guān)系
軟件需求分析是軟件產(chǎn)品開發(fā)設(shè)計的第一步,也是最重要的一步。其工作質(zhì)量的高低,不僅直接影響后續(xù)工程的質(zhì)量,而且決定著所開發(fā)軟件產(chǎn)品的價值。當(dāng)然,完整、嚴(yán)密地描述用戶需求,并不是一件十分容易的事。有些軟件產(chǎn)品之所以功能不完善、性能差、可靠性低、可用度差、甚至不能使用,多數(shù)是因為用戶需求分析工作不徹底所致。但是,目前軟件可靠性工程研究與實踐的重點,在于軟件測試等一些事后的驗證性工作,對軟件可靠性設(shè)計重視不多,這在需求分析等前期階段尤為突出。
二、軟件需求分析
軟件需求分析是軟件設(shè)計的基礎(chǔ)。它采用一系列行之有效的技術(shù)、方法和工具來分析用戶需求,通過特定的形式系統(tǒng)地描述擬開發(fā)軟件的功能、性能,以及行為特征和相關(guān)約束,定義所有內(nèi)外部特征,最后形成既能指導(dǎo)軟件設(shè)計、又能同用戶溝通的軟件需求規(guī)格說明。它覆蓋了軟件設(shè)計之前的各項活動。
軟件需求分析是從用戶最初的非形式化需求,到滿足用戶要求的軟件產(chǎn)品設(shè)計的一個映射。
在軟件計劃的基礎(chǔ)上,從深入分析用戶需求出發(fā),把用戶的需求變換成以計算機為基礎(chǔ)的系統(tǒng)需求。需求分析實際上是調(diào)查、評價、以致肯定用戶對軟件的需求的過程,是一個對用戶意圖不斷進(jìn)行揭示和判斷的過程。其目的在于細(xì)化、精化軟件的作用范圍,確定擬開發(fā)軟件的功能和性能,分析并確認(rèn)其過程,確定軟件成分及接口。
1.軟件需求分析的任務(wù)與步驟
軟件需求分析可分為四個步驟。
①歸納整理用戶提出的各種問題和要求,弄清用戶企圖通過軟件達(dá)到的目的,并把它作為要求和條件予以明確。即分析人員借助各種工具和方法,獲得對用戶需求的基本理解,然后在需求獲取方法的驅(qū)動和指導(dǎo)下,從非形式需求陳述中提取出用戶的實際需求。由此確定軟件的功能、性能、接口關(guān)系及有關(guān)屬性、軟件條件、限制和邊界等,標(biāo)定軟件的作用范圍,確認(rèn)支持性的軟硬件環(huán)境及輔助工具與條件。此階段還為軟件需求分析活動提供了相應(yīng)的過程控制機制。
②在需求獲取的基礎(chǔ)上,建立邏輯模型,使用自頂向下、逐層分解的方法,把用戶對軟件的需求分解成若干子系統(tǒng)或軟件成分,將外部需求賦予軟件的各個功能成分,定義軟件成分的內(nèi)部功能,并標(biāo)定它們之間的接口。
③用準(zhǔn)確、簡練、無二義性的語言將用戶需求規(guī)格化為軟件需求規(guī)格說明,使用戶和開發(fā)人員對擬開發(fā)軟件有共同的理解,它同時還是軟件確認(rèn)、測試、驗收和交付的基準(zhǔn)。
④通過需求評審,對需求獲取、需求定義等進(jìn)行全面審查,力圖發(fā)現(xiàn)需求分析中的錯誤和缺陷,最終確認(rèn)軟件需求規(guī)格說明。同時,以需求規(guī)格說明為輸入,通過符號執(zhí)行、模擬或快速原型等方法,向用戶展示需求規(guī)格說明所刻劃的系統(tǒng)外部行為和相應(yīng)特征。
形式化方法通常有嚴(yán)格定義的分割、抽象、投影機制,其數(shù)學(xué)定義有助于澄清認(rèn)識。規(guī)格說明的構(gòu)造往往是增量式的,但數(shù)學(xué)定義不是所有軟件開發(fā)人員都能輕易掌握的,它與一般應(yīng)用尚存在相當(dāng)?shù)木嚯x。
非形式化方法常常以某種方法學(xué)或方法框架的形式出現(xiàn),非形式化地描述一系列規(guī)格說明的步驟和原則,并定義相應(yīng)的記號。其典型方法有結(jié)構(gòu)化分析方法和面向?qū)ο蠓治龇椒ǖ?。結(jié)構(gòu)化分析方法源于數(shù)據(jù)處理應(yīng)用,是一種單純的自頂向下的功能分解技術(shù)。面向?qū)ο蠓治龇椒ù蠖嗤ㄟ^對象(類)、狀態(tài)、交互行為來刻劃問題及問題的解,強調(diào)對對象及對象類的定義和求精。
在實踐中,人們逐步認(rèn)識到形式化和非形式化方法的不足。于是,力圖尋求一種結(jié)合這兩種方法的長處、并能有效克服其缺點的綜合方法?;谥R表示的方法是這種方法的代表。
知識表示技術(shù)為需求規(guī)格說明奠定了形式基礎(chǔ),而非形式的方法框架給