4.2 面向過程的設計:流程圖


面向過程的設計

4.2 面向過程的總體設計

結構化的總體設計方法

•首先研究、分析和審查數據流圖。 從軟件的需求規格說明中弄清數據流加工的過程,對於發現的問題及時解決。

•然后根據數據流圖決定問題的類型。數據處理問題典型的類型有兩種:變換型和事務型。針對兩種不同的類型分別進行分析處理。

•由數據流圖推導出系統的初始結構圖。

•利用一些啟發式原則來改進系統的初始結構圖,直到得到符合要求的結構圖為止。【系統結構圖】

•修改和補充數據詞典。

在系統結構圖中的模塊

▪傳入模塊 ─ 從下屬模塊取得數據,經過某些處理,再將其傳送給上級模塊。它傳送的數據流叫做邏輯輸入數據流。

▪傳出模塊 ─ 從上級模塊獲得數據,進行某些處理,再將其傳送給下屬模塊。它傳送的數據流叫做邏輯輸出數據流。

▪變換模塊 ─ 它從上級模塊取得數據,進行特定的處理,轉換成其它形式,再傳送回上級模塊。它加工的數據流叫做變換數據流。

▪協調模塊 ─ 對所有下屬模塊進行協調和管理的模塊。

變換型系統結構圖

▪變換型數據處理問題的工作過程大致分為三步,即取得數據,變換數據和給出數據。

▪相應於取得數據、變換數據、給出數據,變換型系統結構圖由輸入、中心變換和輸出等三部分組成。

一般對應四個節點:取得輸入、變換節點、取得輸出、給出輸出。其中“取得輸出”是中心節點,另三個節點都有可能與其他變換結構的節點合並。

事務型系統結構圖

它接受一項事務,根據事務處理的特點和性質,選擇分派一個適當的處理單元,然后給出結果。

在事務型系統結構圖中,事務中心模塊按所接受的事務的類型,選擇某一事務處理模塊執行。各事務處理模塊並列。每個事務處理模塊可能要調用若干個操作模塊,而操作模塊又可能調用若干個細節模塊

變換與事務分析

  • 在很多軟件應用中,存在某種作業數據流,它可以引發一個或多個處理,這些處理能夠完成該作業要求的功能。這種數據流就叫做事務。
  • 與變換分析一樣,事務分析也是從分析數據流圖開始,自頂向下,逐步分解,建立系統結構圖。

變換分析過程

  1. 重畫數據流圖
  2. 區分有效(邏輯)輸入、有效(邏輯)輸出和中心變換部分
  3. 進行一級分解,設計上層模塊
  4. 進行二級分解,設計輸入、輸出和中心變換部分的中、下層模塊

變換分析過程注意事項

  1. 深度遍歷模塊設計
  2. 耦合與內聚
  3. 使用“黑箱”技術
  4. 控制直接下屬模塊數
  5. 停止模塊功能分解的情況

事務分析過程

混合結構分析

•變換分析是軟件系統結構設計的主要方法。

•一般,一個大型的軟件系統是變換型結構和事務型結構的混合結構。

•所以,我們通常利用以變換分析為主、事務分析為輔的方式進行軟件結構設計。

詳細設計工具

可以分為以下三類:

  • 圖形設計符號:流程圖、盒圖等
  • 表格設計符號:決策表等
  • 程序設計語言:PDL等

流程圖(flow chart)

  • •“利用各種方塊圖形、線條及箭頭等符號來表達解決問題的步驟及進行的順序;
  • •是算法的一種表示方式。標准作業流程”(SOP, Standard operating procedure)
  • •企業界常用的一種作業方法, 其目的在使每一項作業流程均能清楚呈現,任何人只要看到流程圖,便能一目了然, 有助於相關作業人員對整體工作流程的掌握。

優點

  • 所有流程一目了然,工作人員能掌握全局。

  • 更換人手時,按圖索驥,容易上手。

  • 所有流程在繪制時,很容易發現疏失之處,可適時予以調整更正,使各項作業更為嚴謹。

流程圖的基本符號


流程圖的基本結構

•順序結構(Sequence)

•選擇結構(Selection)【二元選擇結構、多重選擇結構】

•循環結構(Iteration)【while-do結構、do-while結構】

順序結構(Sequence)

二元選擇結構(基本結構)

語法

If (條件) {
      處理程序1;
} else { 
        處理程序2;
}
If (條件) {
        處理程序3;
}

多重選擇結構

語法

switch (條件) {
    case p=1:
         處理程序1;
    case p=2:
         處理程序2;
         …
    case p=n:
         處理程序n;
}


面向過程的其他組件設計方法:

盒圖(N-S圖)

五種基本控制結構由五種圖形構件表示。

盒圖示例

優點:容易確定局部與全局數據的作用域,易於發現程序結構性錯誤(比如缺少分支)等;

缺點:復雜度接近代碼本身,修改需要重畫整個圖。

PDL (程序設計語言)

  • 是一種用於描述功能模塊的算法設計和加工細節的語言。

  • 它是一種偽碼。偽碼的語法規則分為“外語法”和“內語法”。

  • 具有嚴格的關鍵字外語法,用於定義控制結構和數據結構,同時它的表示實際操作和條件的內語法又是靈活自由的,可使用自然語言的詞匯。

判定表(決策表)

•判定表用於表示程序的靜態邏輯

在判定表中的條件部分給出所有的兩分支判斷的列表,動作部分給出相應的處理

要求將程序流程圖中的多分支判斷都改成兩分支判斷

無多分支流程圖—>判定圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM