需求定義語言
簡介
需求定義語言(requirements definition language) 用於書寫軟體需求定義的語言。軟體需求包括功能需求和非功能需求兩個方面。功能需求從用戶角度明確了軟體系統必須具有的功能行為,它是整個軟體需求的核心所在。在功能需求的基礎上,非功能需求對軟體需求作進一步的刻畫,它包括功能限制、設計限制、環境描述、數據與通信規程和項目管理等。軟體需求定義主要面向用戶,採用基於現實世界的描述模型,以便於用戶理解。
發展
第一階段
從20世紀60年代末期到70年代初期為第一階段。在計算機發展早期,由於問題規模較小,需求定義語言研究的重要性並未引起足夠重視,人們常採用自然語言來書寫一些簡單的需求。自然語言對於規模較小的套用還能夠應付,但對於大型軟體系統,其內在的非形式性導致需求定義中經常出現錯誤,並且由於由機器自動處理自然語言的非形式性異常閒難而使得糾正需求定義中的錯誤不僅代價高而且費時。隨計算機套用規模的不斷擴大,特別是自1968年在大兩洋公約學術會議提出軟體工程以來,人們逐漸認識到需求定義語言的重要性,開始研究各種類型的需求定義語言。
第二階段
從70年代初期到80年代中期為第二階段。由於認識到:非形式自然語言給需求定義帶來的種種不足,人們以軟體方法學為基礎,開始研究需求定義語言的形式化問題。提出諸如基於自頂向下途徑的SA,基於自底向上途徑的問題陳述語言PSL,以及基於面向對象思想的需求定義語者RML等,這類語言的重要特徵是較自然語言有比較精確的語法和語義定義,從而便於分析其各種性質,利於用計算機提供自動化的支持。
第三階段
80年代中期迄今為第三階段。隨著軟體系統複雜性的提高和規模的增大,需求定義愈加困難和耗時;傳統的需求定義語言由於採用的模型和問題領域差距較大,從而使得需求定義的易理解性和易維護性較差。而面向對象模型由於和問題結構之間有良好的對應關係而較好地滿足需求定義的需要。因此,面向對象需求模型的研究成為熱門課題並展示出良好的前景,代表性的工作有J.Rumbaugh等提出的模型以及D.W.Embley等提出的模型,這些模型以對象及其相互間的關係為核心,以圖形化表示機制為手段來刻畫系統,不僅能反映系統的靜態結構關係,而且能反映系統的動態變化行為,為解決傳統功能分解模型中存在的功能本身的易變性、分解結構的隨意性以及功能結構與問題結構常難對應等問題提供有效途徑。
形式化
非形式需求定義語言是指未作任何限制的自然語言。一般說來,非形式需求定義語言具有易理解、易使用的特點,易於為一般用戶所接受。但是由於自然語言的非形式性而使得需求定義中常出現錯誤,並且難以用計算機系統提供自動化的支持。半形式需求定義語言是指在巨觀上對語言的語法和語義有較精確的描述,而在某些局部方面則允許使用非形式的自然語言。這類語言既便於用戶的表達和理解相應的需求定義,又可在某種程度上用機器對相應的需求定義進行管理和進行部分的正確性檢查。形式需求定義語言是指其語法和語義均精確定義的語言。一般說來,形式化需求定義語言具有良好的數學基礎,易於分析需求定義的各種性質。然而,形式需求定義語言往往要求具有較高的數學修養,且相對說來,所書寫的需求定義較難理解。
需求描述語言
簡介
需求描述語言(requirement description language)是從用戶的角度對世界客觀存在的知識進行更加精確描述的語言。自然語言作為一種用戶熟悉、易於掌握的需求描述語言,在很長一段時間內都發揮著重要的作用,沿用至今。自然語言處理NLP(Natural Language Processing)技術能夠幫助在自然語言形式的需求文檔中抽取需求,雖然該技術尚不能完全理解文檔,但是能夠支持從文檔中摘錄相關的需求信息。為了防止在需求獲取的過程中引入不精確的內容,研究組織提出了一種類自然語言形式的需求描述語言。
特點
(1)需求描述語言的理解可以與具體的物理通道完全無關。由於字元串本身就可以完全定義清楚語義,從而對這種編碼的理解可以完全不依賴於特定的物理通道。這樣,採用需求描述語苦的訊息控制系統可以理想地實現媒體與控制的徹底分離。
(2)編碼的效率遠遠低於機器碼和彙編碼。字元串的編碼方式存在大量的冗餘,這種冗餘的程度只要看一下字元檔案幾倍甚至上十倍的壓縮潛力就可以有所體驗了。但是,冗餘本身也意味著這種編碼方式對誤碼的敏感度不高,從而可以降低對網路控制通道的誤特性要求,甚至可以不用任何附加的檢錯糾錯技術就可以在編碼本身的語義級提供檢錯糾錯功能。事實上,檢錯糾錯技術本質上就是通過編碼的冗餘來實現的。
(3)對控制通道可完全統計復用。控制通道利用率可以達到最佳狀態。
(4)編碼的設計可以非常靈活和簡單。
(5)編碼的擴展能力可達到理想狀態。字元串可以是不定長度的,並且總長度也沒有明確的限制。這使需求描述語言幾乎具有無限的編碼空間,從而具有無限的可擴展能力。
(6)容錯性和可理解性最佳化。需求描述語言接近自然語言,具有最高的可理解性。