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