軟 體 工 程 期 末 報 告 網 路 麻 將 91703014 資 科 三 黃 偉 嘉 91703024 資 科 三 丘 祐 瑋 91703030 資 科 三 江 致 廣 1
目 次 壹 前 言 (Preface) P.4 貳 計 畫 簡 述 及 預 期 效 益 (Project Description and Expected Results) P.4 參 系 統 開 發 需 求 (System Development Requirements) P.4 一 相 關 技 術 (Related Technologies) P.4 二 軟 體 需 求 (Software Requirements) P.4 三 硬 體 需 求 (Hardware Requirements) P.5 四 網 路 需 求 (Network Requirements) P.5 肆 系 統 架 構 (System Architecture) P.5 伍 系 統 需 求 (System Requirements) P.6 一 功 能 性 需 求 (Functional Requirements) P.6 二 非 功 能 性 需 求 (Non-Functional Requirements) P.6 陸 可 行 性 分 析 (Feasibility Analysis) P.6 一 工 作 區 間 及 相 依 性 (Task Durations and Dependencies) P.6 二 活 動 網 路 (Activity Network) P.8 三 活 動 時 程 (Activity Timeline) P.8 四 人 力 配 置 表 (Staff Allocation) P.9 五 風 險 性 評 估 (Software Risks Risks and Risks Types Risk Analysis Risk Management Strategies) P.9 柒 需 求 分 析 及 設 計 (Requirements Analysis and Design) 一 需 求 定 義 與 分 析 (Requirements Definitions& Specifications) P.11 二 系 統 設 計 (System Design) P.14 2
捌 程 式 開 發 (Programs Development) P.21 一 程 式 架 構 (Programs Architecture) P.21 二 系 統 程 式 (System Programs) P.21 三 使 用 者 介 面 (User Interface) P.21 四 系 統 輸 入 (System Input) P.23 五 系 統 輸 出 (System Output) P.25 六 網 路 連 結 (Network Connection) P.26 玖 系 統 測 試 (System Testing) P.27 一 模 組 測 試 (Module Test) P.27 二 整 合 測 試 (Integration Test) P.29 三 網 路 測 試 (Network Test) P.29 拾 系 統 安 裝 及 操 作 手 冊 (System Installation and User's Manual) P.30 一 安 裝 環 境 及 需 求 (Installation Environment and Requirements) P30 二 安 裝 程 序 (Installation Procedure) P.30 三 操 作 手 冊 (User's Manual) P.35 拾 壹 結 語 及 建 議 事 項 (Conclusions and Suggestions) P.38 拾 貳 參 考 書 目 與 資 料 (References) P.38 附 錄 (Appendix) ( 見 檔 案 Appendix) 程 式 碼 (Program Codes) 3
壹 前 言 (Preface) 麻 將 是 一 款 需 要 四 個 人 才 能 同 時 進 行 的 益 智 遊 戲, 由 於 缺 一 不 可 的 設 計, 使 得 大 多 數 人 都 會 因 為 找 不 到 牌 有 而 苦 惱 以 久 鑒 於 這 個 原 因, 我 們 想 開 發 一 款 電 腦 上 的 麻 將 遊 戲, 除 了 可 以 在 電 腦 上 跟 電 腦 玩 家 對 打, 更 可 以 在 網 際 網 路 的 世 界 中 與 他 人 共 同 遊 戲 開 發 一 個 屬 於 自 己 的 Game 是 個 不 錯 的 挑 戰 及 憧 憬 考 量 到 目 前 網 路 遊 戲 的 風 行 與 麻 將 在 生 活 中 的 普 遍, 我 們 決 定 開 發 出 一 款 具 有 網 路 連 線 功 能 的 麻 將, 提 供 自 娛 娛 人 的 效 果 貳 計 畫 簡 述 及 預 期 效 益 (Project Description and Expected Results) Project Description 1 設 計 出 一 個 可 供 最 多 4 人 同 時 上 線 共 同 打 麻 將 的 遊 戲 軟 體, 並 且 可 以 以 電 腦 玩 家 代 替 真 人 一 同 在 虛 擬 世 界 中 遊 戲 以 彌 補 現 實 生 活 中 遊 戲 人 數 不 足 四 人 而 使 得 麻 將 遊 戲 無 法 進 行 的 缺 點 2 搭 配 線 上 聊 天 系 統, 使 得 再 進 行 網 路 遊 戲 的 時 候, 可 以 以 文 字 對 話 來 分 享 現 在 的 心 情 與 其 他 玩 家 互 動, 達 到 真 正 的 遊 戲 天 涯 若 比 鄰 Expected Result 1 各 玩 家 都 能 在 本 遊 戲 軟 體 上 獲 得 樂 趣 而 深 受 大 家 喜 愛 2 使 得 本 遊 戲 軟 體 能, 而 身 為 系 統 管 理 者 的 我 們 能 依 不 同 玩 家 的 需 求 加 入 遊 戲 新 的 元 素 增 加 遊 戲 趣 味 性 並 維 護 系 統 以 增 加 使 用 者 人 數, 確 保 此 軟 體 的 持 續 發 展 參 系 統 開 發 需 求 (System Development Requirements) 一 相 關 技 術 (Related Technologies) 語 言 使 用 : J2SE (J2SDK 1.4.2) 網 路 技 術 :HTTP 通 訊 協 定 開 發 工 具 : Eclipse 3.0 二 軟 體 需 求 (Software Requirements) J2SDK 1.4.2 建 議 使 用 Windows98 以 上 Windows 相 容 OS 4
三 硬 體 需 求 (Hardware Requirements) Server 端 : 1. 支 援 TCP/IP 傳 輸 協 定 的 網 路 設 備 2. IBM PC 或 100% 相 容 IBM PC 的 機 種 3. 處 理 器 等 級 CPU Pentium 以 上 4. 記 憶 體 32MB 以 上 5. 硬 碟 100MB 以 上 Client 端 : 1. IBM PC 或 100% 相 容 IBM PC 的 機 種 2. 處 理 器 等 級 CPU Pentium 以 上 3. 記 憶 體 32MB 以 上 4. 硬 碟 100MB 以 上 5. 支 援 TCP/IP 傳 輸 協 定 的 網 路 設 備 6. 滑 鼠 四 網 路 需 求 (Network Requirements) Client 端 與 Server 端 皆 必 須 具 有 穩 定 傳 輸 的 網 路 環 境 具 體 而 言 : 建 議 使 用 512KB ADSL 以 上 的 寬 頻 網 路 擁 有 TCP/IP 通 訊 協 定 的 網 路 系 統 肆 系 統 架 構 (System Architecture) 5
伍 系 統 需 求 (System Requirements) 一 功 能 性 需 求 (Functional Requirements) 藉 由 選 單 互 動 可 以 選 擇 遊 戲 的 進 行 選 擇 不 同 人 物 進 行 遊 戲 加 入 電 腦 玩 家, 進 行 單 人 遊 戲 建 立 玩 家 間 的 連 線, 建 立 多 人 遊 戲 即 時 傳 達 訊 息 給 予 其 他 玩 家 系 統 利 用 遊 戲 規 則 判 斷 現 況 及 結 果 產 生 電 腦 玩 家 補 足 不 足 的 遊 戲 者 遊 戲 結 束 後 其 他 獎 勵 的 分 配 與 狀 態 儲 存 二 非 功 能 性 需 求 (Non-Functional Requirements) 穩 定 的 系 統 網 路 進 行 遊 戲 的 流 暢 度 易 上 手 的 操 作 圖 型 界 面 介 面 簡 單 明 瞭 的 遊 戲 規 則 提 示 適 合 各 玩 家 的 人 工 智 慧 可 簡 易 擴 充 性 功 能 系 統 管 理 者 方 便 管 理 陸 可 行 性 分 析 (Feasibility Analysis) 一 工 作 區 間 及 相 依 性 (Task Durations and Dependencies) 6
7
二 活 動 網 路 (Activity Network) 三 活 動 時 程 (Activity Timeline) 8
四 人 力 配 置 表 (Staff Allocation) 五 風 險 性 評 估 (Software Risks Risks and Risks Types Risk Analysis Risk Management Strategies) a. 軟 體 風 險 (Software Risks) Risk Risk type Description 成 員 風 險 Project 成 員 因 學 校 課 業 或 個 人 因 素 使 得 工 作 無 法 如 期 進 行 分 工 風 險 Project 當 初 制 定 工 作 內 容 模 糊, 使 得 部 份 區 域 不 支 由 誰 處 理 低 估 程 式 大 小 Project 導 致 程 式 最 後 無 法 如 期 交 件 規 格 制 定 延 遲 Project Product 成 員 間 未 作 好 良 善 溝 通 Project Product 使 得 成 員 無 法 如 期 開 始 進 行 計 畫 也 影 響 了 其 餘 介 面 的 制 定 供 使 用 者 跟 開 發 者 參 考 1. 導 致 產 生 出 來 的 產 品 不 如 預 期 2. 整 合 上 產 生 困 難 9
不 符 合 原 有 需 求 Product 使 得 產 品 本 身 不 為 客 戶 接 受 產 品 缺 乏 實 用 性 Business 使 得 程 式 不 受 市 場 歡 迎, 降 低 產 品 本 身 的 價 值 b. 風 險 內 容 及 類 型 (Risks and Risks Types) Risk type Possible risks Technology People Organization Tools Requirements Estimation Server 端 所 同 一 時 間 可 存 取 放 出 的 資 訊 超 出 原 本 預 期, 因 為 多 個 玩 家 同 一 時 間 提 出 需 求 而 造 成 給 予 資 訊 錯 誤 及 資 料 被 覆 寫 的 情 況 產 生 成 員 沒 有 足 夠 的 技 巧 如 期 交 件, 並 做 好 整 合 軟 體 的 工 作 整 個 軟 件 的 分 工 配 置 不 當 導 致 導 致 產 生 多 餘 需 要 負 責 的 區 塊, 使 得 原 有 成 員 得 多 負 責 那 些 多 出 來 的 區 塊 使 得 軟 件 無 法 如 期 交 件 運 用 不 同 IDE 及 工 作 平 台 寫 出 的 code 有 可 能 增 加 整 合 時 的 額 外 負 擔 需 求 的 改 變 導 致 工 作 將 重 新 分 配, 增 加 開 發 時 間 系 統 大 小 跟 完 成 時 間 會 被 低 估 導 致 無 法 如 期 交 件 c. 風 險 分 析 (Risk Analysis) Risk Probability Effects Server 給 予 資 訊 錯 誤 或 Low 資 料 被 不 當 覆 寫 的 情 況 產 生 成 員 沒 有 足 夠 的 技 巧 完 Moderate 成 自 己 的 部 分 成 員 未 能 做 好 整 合 的 工 High 作 需 求 的 改 變 導 致 工 作 將 High 重 新 分 配, 增 加 開 發 時 間 分 工 配 置 不 當 導 致 導 致 Very High 產 生 多 餘 需 要 負 責 的 區 塊 Catastrophic Catastrophic Catastrophic Serious Serious 10
運 用 不 同 開 發 工 具 導 致 Very Low Tolerable 整 合 負 擔 系 統 大 小 被 低 估 High Tolerable 完 成 時 間 被 低 估 Very High Insignificant d. 風 險 處 理 (Risk Management Strategies) Risk Strategy Server 給 予 資 訊 錯 誤 或 資 料 被 重 新 trace 網 路 撰 寫 的 code 以 及 各 元 件 不 當 覆 寫 的 情 況 產 生 整 合 的 部 分, 找 出 bug 的 可 能 位 置 並 改 正 成 員 沒 有 足 夠 的 技 巧 完 成 自 己 的 使 成 員 多 多 學 習 自 己 要 撰 寫 的 部 分, 並 由 部 分 比 較 了 解 這 一 方 面 技 術 的 同 學 給 予 指 導 成 員 未 能 做 好 整 合 的 工 作 事 前 要 制 定 出 良 好 的 regulation 並 在 每 一 階 段 coding 時 都 要 有 良 好 的 溝 通, 使 得 整 合 不 會 拖 到 軟 件 交 付 的 時 間 需 求 的 改 變 導 致 工 作 將 重 新 分 一 開 始 就 制 定 良 好 的 API 以 及 Regulation 配, 增 加 開 發 時 間 使 得 中 途 不 會 再 改 變 需 求 分 工 配 置 不 當 導 致 導 致 產 生 多 餘 將 多 餘 的 工 作 平 均 分 攤 下 去 給 那 一 部 分 需 要 負 責 的 區 塊 專 精 的 同 學 以 減 少 開 發 的 時 間 運 用 不 同 開 發 工 具 導 致 整 合 負 擔 一 開 始 即 溝 通 使 用 的 平 台 開 發 工 具 一 致 系 統 大 小 被 低 估 完 成 時 間 被 低 估 刪 減 不 必 要 的 功 能, 減 少 成 員 負 擔 而 可 以 如 期 完 成 客 戶 所 交 付 的 功 能 再 計 畫 進 行 的 每 一 階 段 都 要 做 重 新 的 評 估, 以 免 時 間 到 了 無 法 交 件 柒 需 求 分 析 及 設 計 (Requirements Analysis and Design) 一 需 求 定 義 及 規 格 (Requirements Definitions & Specifications) Definition: 1. 使 用 者 選 擇 遊 戲 模 式 Specifications: 1.1 使 用 者 選 擇 進 入 單 人 遊 戲, 遊 戲 會 切 換 至 單 人 遊 戲 模 式 選 單 1.2 使 用 者 選 擇 進 入 多 人 遊 戲, 遊 戲 會 切 換 至 多 人 遊 戲 模 式 選 單 11
1.3 使 用 者 選 擇 離 開 遊 戲, 遊 戲 會 詢 問 是 否 離 開 遊 戲. 選 擇 ( 是 ) 即 離 開, ( 否 ) 即 跳 回 開 頭 選 單 Definition: 2. 使 用 者 增 加 修 改 個 人 資 訊 Specifications: 2.1 使 用 者 可 以 輸 入 自 己 的 名 稱 作 為 遊 戲 代 號 2.2 使 用 者 可 以 選 擇 使 用 者 圖 片 供 其 餘 玩 家 辨 識 2.3 使 用 者 可 以 紀 錄 遊 戲 最 高 得 分 Definition: 3. 使 用 者 可 以 連 線 到 其 他 電 腦 進 行 遊 戲 Specifications: 3.1 使 用 者 輸 入 對 方 電 腦 的 IP 位 址 3.2 IP 輸 入 錯 誤 / 連 線 失 敗, 則 要 求 重 新 輸 入 或 回 到 開 頭 畫 面 3.3 連 線 時 間 過 久 會 自 動 終 止 連 線 3.4 建 立 雙 方 的 連 線 3.5 需 輸 入 進 入 遊 戲 正 確 密 碼 密 碼 3.6 輸 入 錯 誤 密 碼 超 過 三 次 會 被 自 動 剔 除 3.7 輸 入 正 確 即 可 正 式 進 入 多 人 遊 戲 模 式 Definition: 4. 使 用 者 可 以 主 持 一 個 網 路 遊 戲 Specifications: 4.1 剔 除 不 友 善 的 使 用 者 12
4.2 網 路 遊 戲 可 以 加 密 碼 控 制 使 用 者 的 來 源 4.3 使 用 者 可 以 選 擇 是 否 開 始 遊 戲 4.4 使 用 者 可 以 選 擇 加 入 電 腦 玩 家 以 補 足 不 足 的 遊 戲 者 4.5 當 人 數 足 夠 時, 使 用 找 可 以 開 始 遊 戲 Definition: 5. 使 用 者 可 以 進 行 遊 戲 Specifications: 5.1 使 用 者 被 分 配 一 定 量 的 賭 金 5.2 使 用 者 可 以 選 擇 丟 牌, 吃 牌, 碰 牌, 胡 牌, 聽 牌, 槓 牌 等 指 令 5.3 使 用 者 可 以 丟 訊 息 予 其 他 玩 家 互 動 5.4 使 用 者 可 以 查 詢 其 他 使 用 者 的 資 料 5.5 使 用 者 賭 金 歸 零 或 選 擇 離 開 遊 戲 時, 遊 戲 終 止 5.6 使 用 者 選 擇 離 開 遊 戲, 遊 戲 會 詢 問 是 否 離 開 遊 戲. 選 擇 ( 是 ) 即 離 開, ( 否 ) 即 跳 回 開 頭 選 單 二 系 統 設 計 (System Design) 13
14
15
16
17
18
19
20
捌 程 式 開 發 (Programs Development) 一 程 式 架 構 (Programs Architecture) 主 程 式 Game Chat 二 系 統 程 式 (System Programs) 主 程 式 Chat 麻 將 遊 戲 三 使 用 者 介 面 (User Interface) 21
22
四 系 統 輸 入 (System Input) 利 用 滑 鼠 點 選 要 打 的 牌 利 用 滑 鼠 點 選 要 選 擇 的 選 項 23
利 用 滑 鼠 點 選 要 選 擇 的 遊 戲 模 式 利 用 滑 鼠 點 選 要 選 擇 的 遊 戲 模 式 24
傳 送 訊 息 鍵 入 想 說 的 話 五 系 統 輸 出 (System Output) 打 出 的 牌 25 選 擇 的 圖 像 補 牌
顯 示 對 話 內 容 六 網 路 連 結 (Network Connection) Client 端 Client 端 1 Client 端 2 Client 端 3 Server 端 Client 端 訊 息 傾 聽 執 行 緒 指 令 廣 播 執 行 緒 總 控 制 執 行 緒 執 行 緒 Client 端 1 Client 端 2 Client 端 3 26
玖 系 統 測 試 (System Testing) 一 模 組 測 試 (Module Test) a 測 試 環 境 (Test Environment) (1) 測 試 平 台 : 四 台 具 備 TCP/IP 傳 輸 協 定 網 路 的 電 腦 設 備 CPU: P4 2.8G Ram: 256MB OS: Windows 2000 professional (2) 網 路 環 境 : 學 校 宿 舍 網 路 (100Mbps) 27
主 程 式 測 試 項 目 : 1. 選 單 使 用 2. 進 入 遊 戲 3. 離 開 遊 戲 測 試 結 果 : 運 作 正 常, 各 測 試 項 目 功 能 都 正 常 進 行 聊 天 功 能 測 試 項 目 : 1. 開 啟 伺 服 器 2. 建 立 連 線 3. 傳 送 訊 息 測 試 結 果 : 運 作 正 常, 各 測 試 項 目 功 能 都 正 常 進 行 麻 將 遊 戲 測 試 項 目 : 1. 發 牌 2. 補 牌 3. 吃, 碰 牌 4. 胡 牌 5. 打 牌 測 試 結 果 : 發 牌 能 正 常 進 行, 其 餘 項 目 無 法 如 期 使 用 28
二 整 合 測 試 (Integration Test) 二 整 合 測 試 (Integration Test) 測 試 流 程 : 模 組 一 ( 主 程 式 ) 整 合 測 試 ( 模 組 一, 模 組 二, 模 組 三 ) 開 始 主 程 式 起 始 畫 面 選 擇 遊 戲 多 人 遊 戲 建 立 連 線 聊 天 功 能 麻 將 遊 戲 終 止 遊 戲 結 束 主 程 式 單 人 遊 戲 麻 將 遊 戲 整 合 測 試 ( 模 組 一, 模 組 二 ) 三 測 試 結 果 : 1. 進 入 主 程 式, 選 擇 遊 戲 功 能, 及 圖 形 介 面 運 行 正 常. 2. 單 人 遊 戲 整 合, 麻 將 遊 戲 跟 主 程 式 能 共 同 同 時 進 行. 而 使 使 用 者 可 以 與 電 腦 在 圖 形 介 面 上 互 動. 3. 多 人 遊 戲 方 面, 由 於 網 路 功 能 及 遊 戲 未 整 合 完 成, 所 以 只 有 聊 天 功 能 照 預 期 進 行 四 網 路 測 試 (Network Test) 聊 天 功 能 : 可 以 正 常 進 行, 傳 輸 訊 息 沒 有 延 遲 或 無 法 傳 遞 的 現 象 網 路 遊 戲 功 能 : 尚 未 整 合 完 成, 只 能 進 行 簡 單 的 發 牌 動 作 29
拾 系 統 安 裝 及 操 作 手 冊 (System Installation and User's Manual) 一 安 裝 環 境 及 需 求 (Installation Environment and Requirements) (A) 環 境 設 定 (Environment Setup) 1. windows platform 2. J2SDK 1.4.2 (B) 安 裝 需 求 (Installation Requirements) 具 備 win98 以 上 的 相 關 windows OS 及 JVM 環 境 (C) 安 裝 程 序 (Installation Procedure) 將 遊 戲 放 到 OS Platform 上 的 任 一 目 錄 即 完 成 安 裝 二 安 裝 程 序 (Installation Procedure) Step1 將 檔 案 放 置 目 錄 下 1. 抓 下 應 用 檔 案 ( 目 錄 MJ, 檔 案 MJ.jar) 2. 將 檔 案 ( 目 錄 MJ, 檔 案 MJ.jar) 放 到 OS Platform 上 的 任 一 目 錄 完 成 安 裝. 30
Step2 用 滑 鼠 右 鍵 點 選 MJ.jar 選 項 選 開 啟 檔 案 Step3 選 擇 javaw 接 著 按 確 定 以 執 行 程 式 31
Step4 遊 戲 就 開 始 執 行 P.S 若 上 續 動 作 無 法 執 行 遊 戲, 請 將 目 錄 MJ 下 的 所 有 檔 案 編 譯 成 副 檔 名 為 class 的 檔 案 再 執 行 DeskTop.class 即 可 執 行 遊 戲. 以 Eclipse 為 例 : 把 目 錄 MJ 放 到 Eclipse 的 WorkSpace 32
點 選 這 個 鍵, 選 run 點 選 Java Application 後 選 new 33
點 選 Search 點 選 DeskTop 後 選 ok 34
選 run 就 可 執 行 三 操 作 手 冊 (User'sManual) 35
36
37
拾 壹 結 語 及 建 議 事 項 (Conclusions and Suggestions) 結 語 : 1. 這 次 的 課 程 讓 我 們 體 認 到 共 同 合 作 完 成 一 件 軟 件 事 相 當 不 容 易 的 事, 不 但 需 要 組 員 間 好 好 的 溝 通, 更 需 要 妥 善 的 計 畫 2. 歸 咎 於 未 好 好 利 用 時 間, 導 致 於 時 間 內 未 完 成 遊 戲 全 部 的 整 合, 而 只 是 完 成 三 人 各 自 的 模 組 並 指 整 合 成 功 單 人 遊 戲 的 部 分, 多 人 遊 戲 所 產 生 的 錯 誤 留 待 日 後 解 決 拾 貳 參 考 書 目 與 資 料 (References) 書 名 :JAVA Swing 第 二 版 基 礎 篇 ( 涵 蓋 Java2 SDK 1.4) 作 者 :Robert Eckstein, Marc Loy & Dave Wood 書 名 :Java 網 路 遊 戲 程 式 設 計 作 者 : 黃 嘉 輝 臺 北 市 文 魁 資 訊 民 92 書 名 :Eclipse 整 合 開 發 工 具 臺 北 市 歐 萊 禮 民 93 38