數(shù)據(jù)流程圖和數(shù)據(jù)結構是需求分析中不可缺少的一環(huán)
需求分析活動要完成4項任務,分別是:
- 問題識別
- 評價和綜合
- 形成規(guī)格說明
- 評審規(guī)格說明
這4項任務中,“問題識別”是要識別出用戶提出軟件需求要解決的問題;“評價和綜合”是要評價數(shù)據(jù)信息的流程和數(shù)據(jù)結構,對軟件功能逐步細化,闡明接口特性,揭示設計約束,并將其綜合成一個總的用戶問題的解法;“形成規(guī)格說明”和“評審規(guī)格說明”,顧名思義,這里不再贅述。
這4個任務中,主要的需求分析活動集中在“評價和綜合”;而評價數(shù)據(jù)流程圖和數(shù)據(jù)結構又是“評價和綜合”中重要的一環(huán)。
首先,建立數(shù)據(jù)結構有助于發(fā)現(xiàn)軟件功能的全貌,防止功能遺漏。
典型的數(shù)據(jù)結構如下圖。
建立這樣的結構是一個自頂向下逐層分解的過程。在每一層分解完成時,通過驗證分解部分的總和是否覆蓋上層院模塊的所有功能,就可以有效地避免功能遺漏。如果不建立這樣的數(shù)據(jù)結構,直接開始對功能的逐個描述,就有可能遺漏某個功能而不自知。
其次,建立數(shù)據(jù)流程圖有助于分析軟件的內外部接口。
數(shù)據(jù)流程圖是一種描述信息流和變換的圖示技術,當數(shù)據(jù)從輸入流動到輸出時就要應用這些變換。它的基本形式如下圖。
在數(shù)據(jù)流程圖中,軟件元素被描述成為一個帶有輸入和輸出數(shù)據(jù)的單個泡,而這些輸入和輸出數(shù)據(jù)分別由進入的箭頭和出去的箭頭來表示。這些數(shù)據(jù)路徑同時也表明了軟件元素之間的接口。當把整個軟件元素及其之間的數(shù)據(jù)流都用數(shù)據(jù)流程圖表現(xiàn)出來,實際上,軟件的內部、外部接口也就表達得很清楚了。
所以,在需求分析的時候先建立數(shù)據(jù)結構和數(shù)據(jù)流程圖,對于做好功能描述、接口分析會有很大幫助。
在GJB438B的需求規(guī)格說明書的內容要求中,并沒有數(shù)據(jù)流程圖和數(shù)據(jù)結構。這樣使得一些依據(jù)438B標準編寫需求規(guī)格說明,進行需求分析的軟件設計師,只知道按照模版要求,在描述完軟件運行狀態(tài)和方式之后,就開始逐條描述軟件功能了。由此就可能帶來前面所說的遺漏需求等問題。要避免這樣的問題,又要符合438B模版的要求,做法很簡單,就是在“1.2系統(tǒng)概述”中增加數(shù)據(jù)流程圖和數(shù)據(jù)結構。因為“系統(tǒng)概述”的內容是介紹系統(tǒng)和軟件的用途,而數(shù)據(jù)流程圖和數(shù)據(jù)結構所展現(xiàn)的軟件的總體功能、數(shù)據(jù)信息,就是軟件的總體介紹,與這一章節(jié)的內容很契合。