可靠性的一些常見的錯誤和缺陷,并可以估計需求分析錯誤相對這些錯誤和缺陷的分布。
為了進(jìn)一步開展軟件需求分析中的可靠性設(shè)計,可以用需求分析中的錯誤或缺陷度量來對需求分析的有關(guān)可靠性指標(biāo)進(jìn)行度量。通過度量,明確主要的軟件錯誤分布及對軟件需求分析可靠性的影響,以及軟件需求分析階段的錯誤或缺陷指標(biāo)后,我們就可以對相關(guān)的錯誤或缺陷進(jìn)行控制。
需求分析中的錯誤或缺陷,主要殘存于需求規(guī)格說明中。對此,可通過仔細(xì)的復(fù)核、審查與評審來降低。當(dāng)然,分析人員素質(zhì)的提高,以及分析工具、方法和說明語言的選擇都相當(dāng)重要。
軟件需求分析階段中的可靠性問題,同樣嚴(yán)重受制于其復(fù)雜性。因此,有效地控制其復(fù)雜性(包括結(jié)構(gòu)的、功能分解的、總體的、規(guī)格說明的復(fù)雜性),是確保需求分析階段可靠性的有效措施。
為了能有效地避免需求分析中的人為因素,需求重用在很多時候是一種非常有效的方法。它包括模型、方法、概念、工具的重用,以及需求規(guī)格說明的片段、甚至完全的重用。
因為軟件需求分析是一項純智力活動,所以需要在這一過程中、尤其在需求分析的后期,進(jìn)行有效的評審和驗證。它們是發(fā)現(xiàn)需求分析錯誤和缺陷的最有效的辦法。當(dāng)然,它們也只能發(fā)現(xiàn)需求分析中的錯誤和缺陷,并不能保證需求分析沒有錯誤和缺陷。此時,采用基于嚴(yán)格數(shù)學(xué)正確性證明和公理證明的非形式化正確性證明方法,會收到意想不到的效果。
四、結(jié)束語
軟件需求分析工作主要解決需求分析的指導(dǎo)原則、方法框架和操作啟示。形式化需求分析技術(shù)在軟件需求分析中的研究與應(yīng)用,推動了軟件需求分析自動化的進(jìn)程,使軟件需求的獲取與分析更加嚴(yán)密、精確。
目前,基于結(jié)構(gòu)化的非形式化需求分析方法是一種使用較為廣泛的需求分析技術(shù),是一種單純的自頂向下、逐步求精的功能分解方法,具有較好的分割、抽象能力,為開發(fā)人員找到了一種中間語言,軟件人員易于掌握。但它難以直接應(yīng)用領(lǐng)域術(shù)語,這無疑為其更廣泛的應(yīng)用設(shè)置了障礙。
隨著面向?qū)ο筌浖_發(fā)技術(shù)的成熟與廣泛應(yīng)用,人們自然也研究了面向?qū)ο筌浖男问交治?。面向?qū)ο蟮男枨蠓治鰪娬{(diào)系統(tǒng)是對現(xiàn)實的模擬,通過對象、狀態(tài)、服務(wù)及對象之間的交互,來同時刻劃軟件系統(tǒng)的動態(tài)、靜態(tài)特征。在形式化的需求分析規(guī)格說明中,Z語言是一個成功的范例。用Z語言進(jìn)行描述時,通常把系統(tǒng)看成一個狀態(tài)機(jī)。在這種意義下,即可用Z語言描述面向?qū)ο蟮南到y(tǒng)。但Z語言未提供描述面向?qū)ο笙到y(tǒng)的足夠機(jī)制。因此,人們又在Z語言的基礎(chǔ)上進(jìn)行了改進(jìn)和擴(kuò)充,如Object-Z和Z++。此外,人們還開發(fā)了基于代數(shù)規(guī)格描述技術(shù)、面向?qū)ο蠓治龅男问交枋稣Z言,如OBJ-3和COLD-K等。
盡管人們已經(jīng)認(rèn)識到了需求工程在軟件產(chǎn)品開發(fā)中的重要性,并
逐步認(rèn)識到需求規(guī)格說明是軟件開發(fā)的基石。但無論從技術(shù)、支持環(huán)境,還是從分析工具與方法上來看,軟件需求分析所獲得的支持都非常有限。目前,它面臨如下困難:
- 應(yīng)用領(lǐng)域與用戶問題的多樣性,以及需求變更的不可預(yù)測性。
- 用戶要求的實效性、多變性、不確定性與模糊性。
- 用戶需求的內(nèi)在矛盾及其潛在沖突。
- 自然概念中存在的本質(zhì)矛盾。
- 用戶需求的獲取過程與描述形式的非形式特征,以及規(guī)范描述的困難性。
- 需求分析方法論和分析工具的缺乏,及其應(yīng)用范圍的局限性。
- 對軟件需求分析認(rèn)識不足、重視不夠。
目前,軟件需求分析的重要性正日益引起人們的普遍關(guān)注和重視,這方面的研究正在大力開展。其中,人工智能中關(guān)于知識表示、知識獲取與知識處理的研究,似乎對進(jìn)一步推動需求分析研究帶來了希望,我們期盼著它的成功。