需求定義語言簡介
需求定義語言(requirements definition language) 用于書寫軟件需求定義的語言。軟件需求包括功能需求和非功能需求兩個方面。功能需求從用戶角度明確了軟件系統(tǒng)必須具有的功能行為,它是整個軟件需求的核心所在。在功能需求的基礎(chǔ)上,非功能需求對軟件需求作進(jìn)一步的刻畫,它包括功能限制、設(shè)計限制、環(huán)境描述、數(shù)據(jù)與通信規(guī)程和項目管理等。軟件需求定義主要面向用戶,采用基于現(xiàn)實世界的描述模型,以便于用戶理解。1
發(fā)展第一階段
從20世紀(jì)60年代末期到70年代初期為第一階段。在計算機發(fā)展早期,由于問題規(guī)模較小,需求定義語言研究的重要性并未引起足夠重視,人們常采用自然語言來書寫一些簡單的需求。自然語言對于規(guī)模較小的應(yīng)用還能夠應(yīng)付,但對于大型軟件系統(tǒng),其內(nèi)在的非形式性導(dǎo)致需求定義中經(jīng)常出現(xiàn)錯誤,并且由于由機器自動處理自然語言的非形式性異常閑難而使得糾正需求定義中的錯誤不僅代價高而且費時。隨計算機應(yīng)用規(guī)模的不斷擴大,特別是自1968年在大兩洋公約學(xué)術(shù)會議提出軟件工程以來,人們逐漸認(rèn)識到需求定義語言的重要性,開始研究各種類型的需求定義語言。1
第二階段
從70年代初期到80年代中期為第二階段。由于認(rèn)識到:非形式自然語言給需求定義帶來的種種不足,人們以軟件方法學(xué)為基礎(chǔ),開始研究需求定義語言的形式化問題。提出諸如基于自頂向下途徑的SA,基于自底向上途徑的問題陳述語言PSL,以及基于面向?qū)ο笏枷氲男枨蠖x語者RML等,這類語言的重要特征是較自然語言有比較精確的語法和語義定義,從而便于分析其各種性質(zhì),利于用計算機提供自動化的支持。
第三階段
80年代中期迄今為第三階段。隨著軟件系統(tǒng)復(fù)雜性的提高和規(guī)模的增大,需求定義愈加困難和耗時;傳統(tǒng)的需求定義語言由于采用的模型和問題領(lǐng)域差距較大,從而使得需求定義的易理解性和易維護性較差。而面向?qū)ο竽P陀捎诤蛦栴}結(jié)構(gòu)之間有良好的對應(yīng)關(guān)系而較好地滿足需求定義的需要。因此,面向?qū)ο笮枨竽P偷难芯砍蔀闊衢T課題并展示出良好的前景,代表性的工作有J.Rumbaugh等提出的模型以及D.W.Embley等提出的模型,這些模型以對象及其相互間的關(guān)系為核心,以圖形化表示機制為手段來刻畫系統(tǒng),不僅能反映系統(tǒng)的靜態(tài)結(jié)構(gòu)關(guān)系,而且能反映系統(tǒng)的動態(tài)變化行為,為解決傳統(tǒng)功能分解模型中存在的功能本身的易變性、分解結(jié)構(gòu)的隨意性以及功能結(jié)構(gòu)與問題結(jié)構(gòu)常難對應(yīng)等問題提供有效途徑。
形式化非形式需求定義語言是指未作任何限制的自然語言。一般說來,非形式需求定義語言具有易理解、易使用的特點,易于為一般用戶所接受。但是由于自然語言的非形式性而使得需求定義中常出現(xiàn)錯誤,并且難以用計算機系統(tǒng)提供自動化的支持。半形式需求定義語言是指在宏觀上對語言的語法和語義有較精確的描述,而在某些局部方面則允許使用非形式的自然語言。這類語言既便于用戶的表達(dá)和理解相應(yīng)的需求定義,又可在某種程度上用機器對相應(yīng)的需求定義進(jìn)行管理和進(jìn)行部分的正確性檢查。形式需求定義語言是指其語法和語義均精確定義的語言。一般說來,形式化需求定義語言具有良好的數(shù)學(xué)基礎(chǔ),易于分析需求定義的各種性質(zhì)。然而,形式需求定義語言往往要求具有較高的數(shù)學(xué)修養(yǎng),且相對說來,所書寫的需求定義較難理解。
需求描述語言簡介需求描述語言(requirement description language)是從用戶的角度對世界客觀存在的知識進(jìn)行更加精確描述的語言。自然語言作為一種用戶熟悉、易于掌握的需求描述語言,在很長一段時間內(nèi)都發(fā)揮著重要的作用,沿用至今。自然語言處理NLP(Natural Language Processing)技術(shù)能夠幫助在自然語言形式的需求文檔中抽取需求,雖然該技術(shù)尚不能完全理解文檔,但是能夠支持從文檔中摘錄相關(guān)的需求信息。為了防止在需求獲取的過程中引入不精確的內(nèi)容,研究組織提出了一種類自然語言形式的需求描述語言。2
特點(1)需求描述語言的理解可以與具體的物理通道完全無關(guān)。由于字符串本身就可以完全定義清楚語義,從而對這種編碼的理解可以完全不依賴于特定的物理通道。這樣,采用需求描述語苦的消息控制系統(tǒng)可以理想地實現(xiàn)媒體與控制的徹底分離。
(2)編碼的效率遠(yuǎn)遠(yuǎn)低于機器碼和匯編碼。字符串的編碼方式存在大量的冗余,這種冗余的程度只要看一下字符文件幾倍甚至上十倍的壓縮潛力就可以有所體驗了。但是,冗余本身也意味著這種編碼方式對誤碼的敏感度不高,從而可以降低對網(wǎng)絡(luò)控制通道的誤特性要求,甚至可以不用任何附加的檢錯糾錯技術(shù)就可以在編碼本身的語義級提供檢錯糾錯功能。事實上,檢錯糾錯技術(shù)本質(zhì)上就是通過編碼的冗余來實現(xiàn)的。
(3)對控制通道可完全統(tǒng)計復(fù)用??刂仆ǖ览寐士梢赃_(dá)到最佳狀態(tài)。3
(4)編碼的設(shè)計可以非常靈活和簡單。
(5)編碼的擴展能力可達(dá)到理想狀態(tài)。字符串可以是不定長度的,并且總長度也沒有明確的限制。這使需求描述語言幾乎具有無限的編碼空間,從而具有無限的可擴展能力。
(6)容錯性和可理解性最佳化。需求描述語言接近自然語言,具有最高的可理解性。