4. 結構化——概要設計

返回目錄:


一、變換設計方法

變換流的設計是變換特征數據流圖到軟件結構圖的轉換。設計步驟如下:

1. 第1步:設計準備——復審並精華系統模型。

  • 為瞭確保系統的輸入數據和輸出數據符合實際情況而復審其語境
  • 為瞭確保是否需要進一步精化系統的DFD圖而復審其語境

2. 第2步:確定輸入、變換、輸出這三部分之間的邊界。

  • 根據加工的語義和相關的數據流,確定系統的邏輯輸入和邏輯輸出。

3. 第3步:第一級分解——系統模塊結構圖頂層和第一層的設計。

  • 主模塊:位於最頂層,一般以所建系統的名字命名,其任務是協調控制的第一層模塊
  • 輸入模塊部分:為主模塊提供加工數據,有幾個邏輯輸入就設計幾個輸入模塊
  • 變換模塊部分:接受輸入模塊部分的數據,並對內部形式的數據加工,產生系統所有的內部輸出數據
  • 輸出模塊部分:將變換模塊產生的輸出數據,以用戶可見的形式輸出。有幾個邏輯輸出,就設計幾個輸出模塊。

4. 第4步:第二級分解——自頂向下,逐步求精。

(1)對每一個輸入模塊設計其下層模塊

  • 接收數據模塊(即輸入模塊)
  • 把接收的數據變換成它的上級模塊所需的數據(即變換模塊)
  • 直到輸入模塊為物理輸入,則細化停止

(2)對每一個輸出模塊設計其下層模塊

  • 將得到的數據向輸出形式進行轉換
  • 將轉換後的數據進行輸出
  • 直到輸出模塊是物理輸出,則細化停止

(3)對變化模塊進行分解(無通用法則)


二、變換設計案例分析

例1:設計一個“統計輸入文件中單詞數目”程序

第一次分解

第二次分解

例2:安全系統

某基於微處理器的住宅安全系統,使用傳感器(如紅外探頭、攝像頭等)來檢測各種意外情況,如非法進入、火警、水災等。

房主可以在安裝該系統時配置安全監控設備(如傳感器、顯示器、報警器等),也可以在系統運行時修改配置,通過錄像機和電視機監控與系統連接的所有傳感器,並通過控制面板上的鍵盤與系統進行信息交互。在安裝過程中,系統給每個傳感器賦予一個編號(即id)和類型,並設置房主密碼以啟動和關閉系統,設置傳感器事件發生時應自動撥出的電話號碼。當系統檢測到一個傳感器事件時,就激活警報,撥出預置的電話號碼,並報告關於位置和檢測到的事件的性質等信息。

下面以“某基於微處理器的住宅安全系統”的傳感器檢測子系統為例說明變換分析的各個步驟。

(1)復審基本系統模型

基本系統模型是指頂層數據流圖,復審的目的是確保目標系統的輸入和輸出符合實際。“傳感器檢測子系統”的頂層數據流圖如圖所示。

(2)復查和精化數據流圖

(3)劃定輸入流和輸出流的邊界,找出變換中心

(4)完成“第一級分解”

數據流圖被映射成一個特殊的軟件結構,這個結構控制輸入流、變換中心和輸出流三部分

針對“傳感器檢測子系統”的例子,第一級分解得到的功能結構如下圖所示。

(5)完成“第二級分解”

把數據流圖中每個加工映射為結構圖中的一個模塊

(6)精化軟件結構的“雛形”

針對“傳感器檢測子系統”的例子,經過分析發現二級分解後的軟件結構不需要精化和修改。最後把第二級分解的結構合並形成最終軟件結構。


三、事務設計方法

事務流的設計是將事務數據流圖到程序結構的變換。對於具有事務型特征的數據流圖,則采用事務分析的設計方法,步驟如下:

1. 第1步:設計準備——復審並精化系統模型

  • 為瞭確保系統的輸入數據和輸出數據符合實際情況而復審其語境
  • 為瞭確保是否需要進一步精化系統的DFD圖而復審其語境

2. 第2步:確定事務處理中心

3. 第3步:第一級分解——系統模塊結構圖頂層和第一層設計

  • 首先,為事務中心設計一個主模塊
  • 然後,為每一條活動路徑設計一個事務處理模塊
  • 對其輸入部分設計一個輸入模塊
  • 如果一個事務數據流圖的活動路徑集中於一個加工,則設計一個輸出模塊,否則第一層不設計輸出模塊

4. 第4步:第二級分解——自頂向下,逐步求精

  • 對於輸入模塊、輸出模塊的細化,如同變化設計的細化過程
  • 對各條路徑模塊的細化,無設計法則


四、事務設計案例分析

例1:自動櫃員機(ATM)業務

自動櫃員機業務數據流圖

ATM機系統結構


五、混合流設計方法

一般中型以上的系統的數據流圖中,都會既有變換流,又有事務流。這就是混合的數據流圖。具體設計步驟如下:

第一步:確定數據流圖整體上的類型。

第二步:標出局部的數據流圖范圍,確定其類型。

第三步:按整體和局部的數據流圖特征,設計出軟件結構。

一般包含兩種類型的混合流

(1)主圖是變換型,子圖是事務型

(2)主圖是事務型,子圖是變換型

赞(0)