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