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)使用這個軟體工具之後,應該能夠改進通訊狀況。
作為需求工程方法學的一部分,在2023年設計完成了rsl.(需求陳述語言),rsl.中的語句是計算機可以處理的,處理以後把從這些語句中得到的資訊集中存放在乙個稱為assm(軸象系統語義模型)的資料庫中,有一組軟體工具處理assm資料庫中的資訊以產生出用 pascal語言書寫的模擬程式,從而可以檢驗需求的一致性,完整性和現實性。
2023年美國密執安大學開發了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圖是描述演算法的有效工具。
軟體測試 軟體需求
目錄 測試中對軟體需求的理解 軟體需求的相關概念 軟體需求的定義 軟體需求的規格 軟體需求規格說明書的作用 軟體需求規格說明書的特性 軟體需求層次 1.軟體需求由產品給出,在開發專案之前收到需求文件,開發和測試人員都以需求文件作為標準進行開發測試 2.開發前進行需求評審大會,參會人員對需求不清楚處提...
軟體工程 2(軟體需求與軟體需求規約)
一.需求分析 通過分析分配給軟體的那些系統需求,確定軟體需求。是開發人員經過深入細緻的調研和分析,準確理解使用者和專案的功能 效能 可靠性等具體要求,將使用者非形式的需求表述轉化為完整的需求定義,從而確定系統必須做什麼的過程 二.需求及需求的基本性質?需求 是乙個 要予構造 的陳述,描述了待開發產品...
軟體需求分析
本章共分為四個部分,一軟體需求的任務和過程 二結構化分析方法 三,原型化方法四,動態分析方法。本章學習的要點是 1。了解軟體需求分析的目標和任務 2.了解軟體需求的獲得方法 3.掌握結構化的分析方法 4.了解需求規格說明和需求評審的主要內容。軟體需求分析的主要任務 深入描述軟體的功能和效能 確定軟體...