結構化方法
結構化分析是壹種對數據流進行需求分析的方法。20世紀70年代末,由Yourdon E .、Con ˉ Constantine L .、De Marco T .等人提出並發展,至今得到廣泛應用。結構化方法的壹些重要概念也滲透在其他開發方法中。例如,結構化分析與設計技術(SADT)、面向對象技術(OOT)、IDEF方法等。
適用於數據處理的結構化方法軟件需求分析。由於使用圖形來表達需求,所以清晰、簡潔,易於學習和掌握。具體來說,結構化方法使用抽象模型的概念,按照軟件內部數據傳遞和轉換的關系,自頂向下逐層分解,直到找到所有滿足功能需求的可實現軟件。DeMarco介紹,結構化方法使用的工具有:數據流圖、數據字典、結構化英語、決策表、決策樹。結構化方法有兩個明顯的特征。
使用簡潔直觀的描述。
1.數據流圖
數據流圖也叫氣泡圖或數據流圖。是描述數據處理過程的工具。數據流圖從數據傳輸和處理的角度,形象地描繪了數據流從輸入到輸出的運動和轉換過程。
(1)數據流圖的主要圖形元素
從數據流圖中可以看出,數據流圖中有四個基本圖形元素。
數據流是沿箭頭方向傳輸數據的通道。大多數是在加工之間傳遞加工數據的命名通道,也有連接數據存儲文件和加工的未命名數據通道。雖然這些數據流沒有命名,但是它們的含義很清楚,因為它們與著名的處理和著名的文件相關聯。同壹數據流圖上不能有同名的數據流。多個數據流可以指向同壹個流程,或者多個數據流可以從壹個流程發出。
處理以數據結構或數據內容為處理對象。處理的名稱通常是壹個動詞短語,它簡明地表明完成了什麽處理。
文件在數據流圖中起到保存數據的作用,所以稱為數據存儲。它可以是數據庫文件或任何形式的數據組織。指向文件的數據流可以理解為寫入文件或查詢文件,從文件引出的數據流可以理解為從文件中讀取數據或獲取查詢結果。
數據流圖中的第四個元素是數據源點或接收點,它指示要在圖中處理的數據的輸入源以及處理結果發送到的位置。因為它在圖中的出現只是壹個符號,不需要以軟件的形式來設計和實現,所以它只是數據流圖外圍環境中的壹個實體,所以稱為外部實體。在實際問題中,可能是計算機外設,也可能是傳感設備。
(2)數據流與處理的關系
在數據流圖中,如果有兩個以上的數據流指向壹個流程,或者從壹個流程中引出兩個以上的數據流,那麽這些數據流之間往往存在壹定的關系。
(3)分層數據流圖
為了表達數據處理過程中的數據處理情況,僅僅用壹個數據流圖是不夠的。為了表達壹個稍微復雜壹點的實際問題,需要按照問題的層次結構逐層分解,用壹個層次化的數據流圖來反映這種結構關系。
第壹,將整個數據處理過程視為壹個過程,其輸入數據和輸出數據實際上反映了系統與外部環境的接口。這是分層數據圖的頂層。然而,這壹數字本身並不能表明數據的處理要求,需要進壹步完善。如果這個數據處理包括三個子系統,我們可以畫出這三個子系統的處理和相關數據流1,2,3。這是頂層下面的第壹層數據流圖,標記為DFD/L1。如果繼續分解這三個子系統,可以得到第二層數據流圖DFD/L2.1,DFD/L2.2和DFD/L2.3,分別是子系統。1,2,3的細化。以DF/2為例,四個流程的序號可以鏈接到上層圖中的子系統2。這樣得到的多層數據流圖可以清晰地表達整個數據處理系統的真實情況。對於數據流圖的任何壹層,其上層圖稱為父圖,其下層圖稱為子圖。
在多層數據流圖中,可以區分頂部流程圖、底部流程圖和中間流程圖。頂層流程圖只包含壹個流程,它代表開發的系統。它的輸入流是系統的輸入數據,它的輸出流是系統的輸出數據。頂層流程圖的作用是顯示所開發系統的範圍及其與周圍環境的數據交換關系。底層流程圖是指其處理不需要分解的數據流圖,其處理稱為?原子處理?。中間層流圖表示其上部母圖的細化。每個處理可以進壹步細化以形成子圖。中間層次的數量取決於系統的復雜程度。
(4)數據流繪制方法
壹般來說,繪制數據流圖的基本步驟是從外到內,從上到下,層層細化,完善細化。具體步驟可以這樣做。
①先找到系統的數據源和數據宿。它們是外部實體,決定系統與外界的接口。②找出外部實體的輸出數據流和輸入數據流。③在圖形的邊上畫出系統的外部實體。
(4)從外部實體(即系統的源點)的輸出數據流開始,根據系統的邏輯需求,壹步步畫出壹系列的邏輯處理,直到找到外部實體(即系統的匯點)所需的輸入數據流,從而形成壹個封閉的數據流。⑤根據下面給出的原則進行檢查和修改。
⑥根據以上步驟,從每個處理中畫出需要的子圖。
(5)檢查和修改的原則
①數據流圖上的所有圖形符號僅限於上述四種基本圖形元素。(2)數據流主圖必須包括以上四個基本要素,缺壹不可。
③數據流圖主圖上的數據流必須被圍在外部實體之間,外部實體可以不止壹個。④每個流程至少有壹個輸入數據流和壹個輸出數據流。
⑤在數據流圖中,處理幀應逐層編號。數字表示加工位於哪壹層,以及上下兩層的父圖與子圖的對應關系。
⑥任何數據流子圖必須對應其上層的壹個流程,兩者的輸入數據流和輸出數據流必須壹致。也就是父圖與子圖的平衡,說明在細化的過程中,輸入和輸出不能丟失,也不能相加。⑦圖上的每個元素都必須有壹個名稱。指出什麽是數據流和數據文件,處理做什麽。
⑧數據流圖中不能夾帶控制流。因為數據流圖是實際業務流程的客觀形象,解釋系統?做什麽?不是為了顯示系統嗎?怎麽做?,所以不是系統的執行順序,不是程序流程圖。⑨在繪畫初期可以忽略瑣碎的細節,從而專註於主要的數據流。
在需求分析期間,有時需要修改系統的某些方面。使用數據流圖可以很容易地分離出需要修改的區域。只要清楚地了解通過要修改的區域邊界的數據流,就可以為將來的修改做好充分的準備,而不會幹擾系統的其他部分。