驗證軟件需求

3.8 驗證軟件需求

3.8.1 從哪些方面驗軟件需求的正確性

    需求分析階段的工作結果是開發件系統的重要基礎,大量統計數字表明,軟件系統中15%的錯誤起源於錯誤的需求,爲了高軟件質量,確保軟件開發成功,降低較件開發成本,一旦對目標系統提出一組要求之後,必須嚴格驗證這些需求的正確性,一般說來,應該從下述4個方面進行驗證

(1)一致性 所有需求必須是一致的,任何一條需求不能和其他需求互相矛。
(2)完整性 需求必須是完整的,規格說明書應該包括用戶需要的每一個功能或性能
(3)現實性 指定的需求應該是用現有的硬件技術和軟件技術基本上可以實現的。對硬件技術的進步可以做些預測,對就件技術的進步則很難做出預測,只能從現有技術水平出發判斷需求的現實性。
(4)有效性 必須證明需求是正確有數的,確實能解決用戶面對的問題

3.8.2 驗證軟件需求的方法

上一小節已經指出,至少必須從一致性、完整性、現實性和有效性這4個不同角度驗證軟件需求的正確性,那麼,怎樣驗證軟件需求的正確性呢?驗證的角度不同,驗證的方法也不同。

1.驗證需求的一致性
    
    當需求分析的結果是用自然語言書寫的時候,除了靠人工技術審查驗證軟件系統規格說明書的正確性之外,目前還沒有其他更好的“測試”方法。但是,這種非形式化的規格說明書是難於驗證的,特別在目標系統規模度大、規格說明書篇幅很長的時候,人工審查的效果是沒有保證的,冗餘、遺樓和不一致等問題可能沒被發現而繼續保留下來,以致軟件開發工作不能在正確的基礎上順利進行。
    爲了克服上述困難,人們提出了形式化的描述軟件需求的方法。當軟件需求規格說明書是用形式化的需求陳述語言書寫的時候,可以用軟件工具驗證需求的一致性(見需求分析的軟件工具),從而能有效地保證軟件需求的一致性。

2,驗證需求的現實性

    爲了驗證需求的現實性,分析員應該參照以往開發類似系統的經驗,分析用現有的軟、硬件技術實現目標系統的可能性。必要的時候應該採用仿真或性能模擬技術,輔助分析件需求規格說明書的現實性。

3,驗證需求的完整性和有效性

    只有目標系統的用戶才真正知道軟件需求規格說明書是否完整、準確地描述了他們的需求。因此,檢驗需求的完整性,特別是證明系統確實滿足用戶的實際需要(即,需求的有效性),只有在用戶的密切合作下才能完成。然而許多用戶並不能清楚地認識到他們的需要(特別在要開發的系統是全新的,以前沒有使用類似系統的經驗時,情況更是如此)不能有效地比較陳述需求的語句和實際需要的功能。只有當他們有某種工作着的軟件系統可以實際使用和評價時,才能完整確切地提出他們的需要。
    理想的做法是先根據需求分析的結果開發出一個軟件系統,請用戶試用一段時間以使能認識到他們的實際需要是什麼,在此基礎上再寫出正式的“正確的”規格說明書。但是,這種做法將使軟件成本增加一倍,因此實際上幾乎不可能採用這種方法。使用原型系是一個比較現實的替代方法,開發原型系統所需要的成本和時間可以大大少於開發實際系統所需要的,用戶通過試用原型系統,也能供得許多寶貴的經驗,從面可以提出更符合實際的要求。
    使用原型系統的目的,通常是顯示目標系統的主要功能而不是性能,爲了達到這個目的可以使用本章3.2.4小節介紹的方法快速建立原型系統,並且可以適當降低對接口、可靠性和程序質量的要求,此外還可以省掉許多文檔資料方面的工作,從面可以大大降低原型系統的開發成本。

3.8.3 用於需求分析的軟件工具

    爲了更有效地保證軟件需求的正確性,特別是爲了保證需求的一致性,需要有適當的軟件工具支持需求分析工作,這類軟件工具應該滿足下列要求

(1)必須有形式化的語法(或表),因此可以用計算機自動處理使用這種語法說明的內容。
(2)使用這個軟件工具能夠導出詳細的文檔。
(3)必須提供分析(測試)規格說明書的不一致性和冗餘性的手段,並且應該能夠產生一組報告指明對完整性分析的結果。
(4)使用這個軟件工具之後,應該能夠改進通信狀況。

    作爲需求工程方法學的一部分,在1977年設計完成了RSL.(需求陳述語言),RSL.中的語句是計算機可以處理的,處理以後把從這些語句中得到的信息集中存放在一個稱爲ASSM(軸象系統語義模型)的數據庫中,有一組軟件工具處理ASSM數據庫中的信息以產生出用 PASCAL語言書寫的模擬程序,從而可以檢驗需求的一致性,完整性和現實性。
    1977年美國密執安大學開發了PSL/PSA(問題陳述語言/問題陳述分析程序)系統。這個系統是 CADSAT(計算機輔助設計和規格說明分析工具)的一部分,它的基本結構類似於RSL.其中PSL是用來描述系統的形式語言,PSA是處理PSL描述的分析程序用。用PSL描述的系統屬性放在一個數據庫中,一且建立起數據庫之後即可增加信息、刪除信息或修改信息,並且保持信息的一致性,PSA對數據庫進行處理以產生各種報告,測試不一致性或遺漏,並且生成文檔資料。
    PSL/PSA系統的功能主要有下述4種
(1)描述任何應用領域的信息系統
(2)創建一個數據庫保存對該信息系統的描述符
(3)對描述符施加增加,除和更改等操作
(4)產生格式化的文檔和關於規格說明書的各種分析報告
    PSL/PSA系統用描述符從系統信息流、系統結構、數據結構、數據導出、系統規模、系統動態、系統性質和項目管理共8個方面描述信息系統。
    用PSL對系統做了完整描述,就可以調用PSA產生一組分析報告,其中包括所有修改規格說明數據庫的記錄,用各種形式描述數據庫信息的參照報告(包括圖形形式的描述),關於項目管理信息的總結報告,以及評價數據庫特性的分析報告。
    藉助PSL/PSA系統可以邊對目標系統進行自頂向下的逐層分解,邊將需求分析過程中遇到的數據流、文件、處理等對象用PSL描述出來並輸入到PSL/PSA系統中,PSA將對輸人信息作一致性和完整性檢查,並且保存這些描述信息。
    PSL/PSA系統的主要優點是它改進了文檔質量,能保證文檔具有完整性、一致性和無二義性,從面可以減少管理和維護的費用,數據存放在數據庫中,便於增加、刪除和更改,這也是它的一個優點。

3.9 小結
    傳統軟件工程方法學使用結構化分析技術,完成分析用戶需求的工作。需求分析是發現、求精、建模、規格說明和複審的過程,需求分析的第一步是進一步瞭解用戶當前所處的情況,發現用戶所畫臨的問題和對目標系統的基本需求接下來應該與用戶深人交流,對用戶的基本需求反覆細化遙逐步求精,以得出對目標系統的完整、準確和具體的需求。具體地說,應該確定系統必須具有的功能、性能,可靠性和可用性,必實現的出錯處理需求,接口需求和逆向需求,必須滿足的約束條件以及數據需求,並且預測系統的發展前景。
    爲了詳細地瞭解並正確地理解用戶的需求,必須使用適當方法與用戶溝通。訪談是與用戶通信的歷史悠久的技術,至今仍被許多系統分析員採用。從可行性研究階段得到的數據流圖出發,在用戶的協助下面向數據流自頂向下逐步求精,也是與用戶溝通獲取需求的一個有效的方法。爲了促使用戶與分析員齊心協力共同分析需求,人們研究出一種面向團隊的需求收集法,稱爲簡易的應用規格說明技術,現在這種技術已經成爲信息系統領城使用的主流技術。實踐表明,快速建立軟件原型是最準確,最有效和最強大的需求分析技術。快速原型應該具備的基本特性是“快速”和“容易修改”,因此,必須用適當的軟件工具支持快速原型技術。通常使用第四代技術、可重用的軟件構件及形式化規格說明與原型環境,快速地構建和修改原型。
    爲了更好地理解問題,人們常常採用建立模型的方法,結構化分析實質上就是一種建模,在需求分析階段通常建立數據模型、功能模型和行爲模型。
    除了創建分析模型之外,在需求分析階段還應該寫出軟件需求規格說明書,經過嚴格評審並得到用戶確認之後,作爲這個階段的最終成果,通常主要從一致性,完整性,現實性和有效性4個方面複審件需求規格說明書。
    多數人習慣於使用實體-聯繫圖建立數據模型,使用數據流圖建立功能模型,使用狀態圖建立行爲模型,讀者應該掌據這些圖形的基本符號,並能正確地使用這些符號建立軟件系統的模型。
    數據字典描述在數據模型、功能模型和行爲模型中出現的數據對象及控制信息的特性,給出它們的準確定義,因此,數據字典度成爲把3種分析模型粘合在一起的“粘合劑”,是分析模型的“心”,爲了提高可理解性,還可以用層次方框圖或 Warnier圖等圖形工具軸助描系統中的數據結構。爲了減少冗餘、簡化修改步驟,往往需要規範數據的存儲結構。
    算法也是重要的,分析的基本目的是確定系統必須做什麼。概括地說,任何一個計算機系統的基本功能都是把輸人數據轉變成輸出信息,算法定義了轉變的規則,因此,沒有對算法的瞭解就不能確切知道系統的功能,IPO圖是描述算法的有效工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章