Data Flow Diagram 資 科 系 林 偉 川 DFD 一 般 的 軟 體, 最 基 本 上 可 分 為 輸 入 處 理 輸 出 三 部 份 DFD 圖 的 精 神 就 在 於 資 料 流 程 的 規 劃 各 處 理 單 元 的 動 作 並 且 可 以 作 更 深 一 步 的 切 分 2 1
DFD 之 定 義 DFD 圖 有 幾 個 符 號 : 外 部 儲 存 體 (External Entity) 轉 換 程 序 (Process) 執 行 輸 入 資 料 處 理 轉 換 成 輸 出 資 料 的 單 元 資 料 流 (Data Flow) 用 以 連 接 不 同 的 程 序, 以 表 示 資 料 傳 送 的 方 向 上 方 必 有 資 料 標 籤 資 料 儲 存 所 (Data Store) 資 料 儲 存 的 地 方, 箭 頭 表 示 資 料 的 來 源 及 輸 出 的 方 向 3 資 料 流 程 圖 的 符 號 4 2
資 料 流 程 圖 一 個 圖 形 模 型, 它 顯 示 資 訊 系 統 的 全 部 主 要 需 求 輸 入 與 輸 出 處 理 程 序 資 料 儲 存 容 易 閱 讀 與 了 解 5 環 境 圖 (Context Diagram) DFD 的 第 一 張 圖, 有 時 候 稱 為 圖 0 摘 要 所 有 處 理 活 動 的 DFD 描 述 系 統 最 抽 象 之 觀 點 顯 示 系 統 範 圍 系 統 的 範 圍 藉 著 單 一 處 理 程 序 與 外 部 代 理 人 表 示 6 3
訂 單 輸 入 子 系 統 的 環 境 圖 7 DFD 片 段 表 示 在 單 一 處 理 程 序 符 號 中, 系 統 對 於 一 個 事 件 的 回 應 獨 立 的 模 型 重 點 放 在 系 統 的 單 一 部 份 上 只 顯 示 需 要 回 應 事 件 的 資 料 儲 存 8 4
事 件 分 割 系 統 模 型 一 個 塑 模 系 統 需 求 的 DFD, 它 使 用 單 一 的 處 理 程 序 給 系 統 與 子 系 統 中 的 各 個 事 件 可 分 解 內 容 的 層 級 可 分 解 為 更 詳 細 的 DFD 分 段 9 分 解 DFD 分 段 有 時 候 需 要 對 DFD 分 段 做 更 詳 細 的 探 索 分 解 為 子 處 理 程 序 提 供 更 詳 細 的 內 容 編 號 結 構 不 等 於 執 行 的 順 序 10 5
訂 單 輸 入 子 系 統 的 DFD 分 段 11 個 案 中 的 DFD 分 段 12 6
建 立 新 訂 單 的 詳 圖 13 合 併 DFD 分 段 14 7
實 體 與 邏 輯 DFD 邏 輯 模 型 假 定 系 統 是 在 完 美 科 技 的 環 境 下 實 作 無 法 解 說 系 統 是 如 何 實 作 的 實 體 模 型 描 述 實 作 技 術 的 假 設 在 分 析 的 最 後 階 段 或 設 計 的 初 期 開 發 15 評 估 DFD 的 品 質 可 讀 性 內 部 一 致 性 正 確 表 示 系 統 內 容 降 低 資 訊 超 載 將 需 要 的 介 面 數 減 到 最 少 16 8
資 料 流 的 一 致 性 問 題 在 處 理 程 序 與 它 的 處 理 程 序 分 解 間 資 料 流 內 容 的 差 異 資 料 流 出 卻 沒 有 相 對 應 的 資 料 流 入 資 料 流 入 卻 沒 有 相 對 應 的 資 料 流 出 造 成 不 平 衡 的 DFD 17 一 致 性 規 則 全 部 流 入 處 理 程 序 的 資 料 必 須 流 出 該 處 理 程 序, 或 是 被 用 來 產 生 流 出 該 處 理 程 序 的 資 料 全 部 流 出 處 理 程 序 的 資 料 必 須 已 流 入 該 處 理 程 序, 或 是 從 流 入 這 個 處 理 程 序 的 資 料 所 產 生 18 9
不 必 要 之 資 料 輸 入 : 黑 洞 ( 因 無 輸 出 ) 19 不 必 要 之 資 料 輸 入 的 處 理 程 序 20 10
不 可 能 資 料 輸 出 的 處 理 程 序 : 奇 蹟 ( 不 可 能 產 出 ) 21 不 可 能 之 資 料 輸 出 的 處 理 程 序 22 11
DFD 元 件 的 說 明 文 件 (Data Dictionary) 最 低 層 級 的 處 理 程 序 都 需 要 詳 細 描 述 需 要 描 述 資 料 流 的 內 容 需 要 以 資 料 元 素 描 述 必 要 的 資 料 儲 存 需 要 描 述 每 個 資 料 元 素 有 不 同 選 項 可 以 定 義 處 理 程 序 23 DFD 之 資 料 字 典 定 義 資 料 字 典 (Data Dictionary): 用 於 說 明 DFD 中 Data Flow 的 內 涵 架 構, 用 來 定 義 資 料 流 中 的 各 部 分 ( 與 DFD 須 一 起 考 慮 ) 符 號 := 表 全 等,+ 表 和,[ ] 表 其 中 之 一,{ } 表 重 覆,( ) 表 可 有 可 無,* 表 說 明 部 分 其 依 賴 資 料 流 資 料 元 素 檔 案 及 處 理 程 序 之 分 類 編 製 各 項 目 結 構 化 英 語 (Structured English): 用 於 說 明 DFD 中 Process 的 詳 細 邏 輯, 由 一 些 簡 單 的 字 彙 和 文 法 組 成, 含 有 三 種 結 構 : 順 序 結 構 選 擇 結 構 與 重 複 結 構 也 就 是 一 種 擬 似 碼 (Pseudo-Code), 其 代 表 的 是 控 制 流 程! 24 12
DFD 整 合 了 事 件 表 與 ERD 25 DFD 與 抽 象 的 層 級 DFD 可 以 分 解 為 其 他 的 圖 表 提 供 不 同 的 詳 細 程 度 層 級 愈 高 的 內 容 愈 一 般 性 ( 數 字 愈 小 ) 層 級 愈 低 的 內 容 愈 詳 細 ( 數 字 愈 大 ) 26 13
DFD 的 抽 象 層 級 27 DFD 之 檢 驗 DFD 資 料 流 一 致 性 檢 驗 28 14
DFD 範 例 舉 一 個 銀 行 自 動 櫃 員 機 的 DFD 圖 終 端 機 鍵 盤 提 款 卡 密 碼 櫃 員 機 系 統 付 款 訊 息 點 鈔 付 款 提 款 金 額 29 DFD 範 例 這 是 最 初 步 且 未 經 細 部 規 劃 的, 一 個 雛 型 已 經 產 生 了 下 一 步 工 作 是 逐 步 的 將 DFD 圖 分 解 成 細 節 終 端 機 鍵 盤 提 款 卡 密 碼 總 行 電 腦 查 核 帳 戶 資 訊 訊 息 提 款 金 額 查 核 結 果 帳 戶 銀 行 的 輔 助 除 存 裝 置 提 款 金 額 櫃 員 機 電 腦 付 款 訊 息 點 鈔 付 款 30 15
DFD 範 例 終 端 機 鍵 盤 提 款 卡 密 碼 提 款 金 額 櫃 員 機 系 統 付 款 訊 息 點 鈔 付 款 提 款 金 額 提 款 金 額 總 行 電 腦 查 果 核 查 核 結 櫃 員 機 電 腦 帳 戶 付 款 訊 息 銀 行 的 輔 助 除 存 裝 置 31 DFD 之 模 組 一 個 模 組 沒 有 什 麼 好 限 制 的, 也 沒 什 麼 標 準 可 以 用 來 明 確 訂 定 模 組 該 有 多 大 多 小 在 某 些 軟 體 專 案 可 能 會 用 長 度 來 限 制 模 組 大 小, 以 達 到 模 組 化 目 的 但 設 計 師 仍 然 可 以 投 機 取 巧, 先 撰 寫 好 程 式, 再 依 一 定 長 度 來 切, 不 過 以 這 種 方 式 所 產 生 的 模 組 大 概 都 不 會 是 很 好 的 模 組 如 何 衡 量 某 個 模 組 是 不 是 太 大, 該 減 肥 了 呢? 應 該 可 由 衡 量 模 組 緊 密 性 的 觀 點 來 看 太 長 的 模 組 不 僅 不 易 了 解 及 偵 錯, 或 許 還 能 再 被 細 分 成 更 小 的 模 組 32 16
DFD 之 模 組 由 模 組 本 身 內 部 的 內 容 來 看, 分 析 其 內 容 的 緊 密 性, 這 就 像 一 個 工 廠 的 生 產 線, 其 工 作 內 容 是 否 相 關, 可 能 某 些 工 人 的 工 作 是 在 鍛 造 鋼 板, 有 些 是 在 焊 結 鋼 板, 這 些 都 算 是 蠻 密 切 的 關 係, 但 有 些 工 人 作 的 事 是 織 布, 這 之 間 的 關 係 就 小 了 由 模 組 與 模 組 間 的 關 聯 性, 這 就 像 一 棟 大 廈 中 的 住 戶 間 的 關 係, 有 的 是 親 戚, 有 的 是 朋 友 或 同 事, 但 也 可 能 毫 無 關 係 33 DFD 之 模 組 緊 密 性 緊 密 性 或 內 聚 力 ( 愈 大 愈 好 ), 為 量 度 一 個 模 組 內 部 相 互 功 能 的 強 度 (coherence) 偶 然 緊 密 性 : 一 個 單 一 模 組 或 許 做 了 幾 件 工 作, 但 這 幾 件 工 作 都 沒 什 關 聯, 充 其 量 只 是 一 種 隨 機 的 組 合 這 種 情 況 像 是 一 家 百 貨 公 司, 東 西 賣 得 很 多, 不 過 彼 此 實 在 沒 什 關 聯 34 17
DFD 之 模 組 緊 密 性 邏 輯 緊 密 性 : 一 個 模 組 裡 的 工 作 是 有 關 係 的 像 是 美 食 街 這 類 餐 館 一 樣, 賣 的 都 是 食 物, 是 要 填 飽 肚 子 的 時 間 緊 密 性 : 如 果 一 個 模 組 裡 的 工 作 必 需 在 同 一 段 時 間 內 執 行, 便 具 有 此 特 性 例 如 開 門 鎖 這 件 工 作 一 樣, 在 轉 動 鑰 匙 的 當 時, 還 要 用 手 轉 動 門 把 才 行 程 序 緊 密 性 : 如 一 模 組 內 的 單 一 工 作 有 一 定 的 執 行 順 序, 便 稱 為 具 備 了 程 序 緊 密 性 必 需 先 打 開 電 源, 才 能 用 電 腦 一 樣 35 DFD 之 模 組 緊 密 性 溝 通 緊 密 性 : 如 一 模 組 內 的 工 作 集 中 的 存 取 某 一 些 特 定 的 相 同 資 料, 例 如 班 上 的 同 學 為 了 交 老 師 的 報 告, 必 需 參 考 一 些 資 料, 但 相 信 不 少 人, 甚 至 大 部 份 人 都 會 找 同 一 本 書 來 參 考 順 序 緊 密 性 : 如 果 一 個 模 組 內 的 很 多 工 作 有 先 後 的 順 序, 和 程 序 緊 密 性 的 單 一 不 同 例 如 先 得 爬 上 二 樓, 才 能 上 三 樓, 然 後 再 上 五 樓 功 能 緊 密 性 : 假 如 一 個 模 組 的 工 作 都 是 相 同 的 話 例 如 某 個 模 組 的 功 能 就 僅 僅 是 作 兩 整 數 A 與 B 的 相 加 而 已 36 18
DFD 之 模 組 關 聯 性 關 聯 性 或 聯 結 力 ( 愈 小 愈 好 ), 為 測 量 系 統 中 各 模 組 之 間 相 關 的 程 度 (Coupling) 缺 乏 關 聯 性 : 這 由 字 面 上 就 知 道, 模 組 和 模 組 間 毫 無 瓜 葛 記 號 關 聯 性 : 模 組 與 模 組 間 傳 遞 資 料 的 方 式 不 是 傳 遞 一 個 個 單 一 的 參 數 列, 而 是 整 個 資 料 結 構 ( 資 料 的 聚 合 體 ) 就 像 寫 信 給 某 人, 寄 的 不 是 一 張 張 的 信 紙, 而 是 一 本 書 加 上 幾 盒 磁 片, 或 許 還 有 油 畫 等 37 DFD 之 模 組 關 聯 性 控 制 關 聯 性 : 模 組 間 所 傳 遞 的 資 料 若 不 是 單 純 的 資 料, 而 是 一 些 控 制 的 旗 號 這 就 像 美 國 總 統 下 給 駐 波 斯 灣 官 兵 的 命 令 不 是 一 本 厚 厚 的 攻 擊 計 劃, 而 只 是 攻 擊 的 代 碼 而 已 資 料 關 聯 性 : 模 組 之 間 傳 遞 的 資 料 是 一 個 個 參 數 38 19
DFD 之 模 組 關 聯 性 外 界 關 聯 性 : 模 組 與 模 組 共 同 運 用 一 個 特 定 的 I/O 裝 置 共 同 關 聯 性 : 模 組 與 模 組 之 間 共 用 同 一 部 份 的 資 料 就 像 薪 資 模 組 和 出 席 模 組 共 用 人 事 資 料 一 樣 內 容 關 聯 性 : 若 一 個 模 組 會 用 到 另 一 個 模 組 的 控 制 資 料, 或 者 可 以 從 另 一 模 組 中 間 開 始 執 行 這 種 情 況 必 需 盡 力 避 免 39 模 組 最 好 為 何 模 組 內 的 緊 密 度 越 高 越 好, 而 模 組 間 的 關 聯 度 越 低 越 好 透 過 模 組 化 的 設 計 方 式, 可 以 一 步 步 的 建 立 通 用 性 的 程 式 庫 (libraries), 也 可 以 引 用 過 去 所 建 立 好 的 程 式 庫 40 20