ICT 0417:學習筆記 – 系統生命週期:設計 (第 7.2 節)

歡迎來到系統生命週期的「設計」階段!如果說「分析」是為了找出當前問題及用戶需求,那麼「設計」就是為新系統制定詳細藍圖的過程。你可以把自己想像成繪製房屋平面圖的建築師——在開始施工之前,你必須規劃好每一道牆、每一扇門和每一個插座的位置。

本章至關重要,因為無論後續程式編寫得多好,如果設計不佳,系統最終都會無法使用。讓我們一起確保你的設計既穩健又高效!

1. 設計資料結構 (檔案/資料結構)

設計任何 ICT 系統(尤其是資料庫或試算表)的第一步,是精確決定資料的儲存方式。這被稱為設計檔案/資料結構

資料結構設計的關鍵要素

對於你計劃儲存的每一項資訊 (欄位/Field),你都必須定義以下內容:

  1. 欄位名稱 (Field Name):

    賦予資料的標籤。
    *例子:* 姓氏 (Surname)出生日期 (Date_of_Birth)產品價格 (Product_Price)

  2. 資料類型 (Data Type):

    這定義了該欄位可以輸入什麼類型的資料。

    • 文字 (Text/String): 用於字母、符號或無需計算的數字(如電話號碼、郵遞區號或姓名)。
    • 數值 (Numeric/Number): 用於需要計算的數值(例如:分數、數量)。
      • 子類型包括:整數 (Integer)、小數 (Decimal)、貨幣 (Currency)。
    • 日期/時間 (Date/Time): 專門用於日期或時間的格式化資料。
    • 布林值/邏輯值 (Boolean/Logical): 僅接受兩個值(真/假、是/否、1/0、勾選框)。用於簡單的選擇。
  3. 欄位長度 (Field Length):

    該欄位允許輸入的最大字元數。
    *例子:* 如果身分證號碼長度固定為 12 個字元,你就會將長度設定為 12。這既能節省儲存空間,也有助於防止輸入錯誤。

  4. 資料編碼 (Coding of Data):

    使用簡短、預先定義的代碼來表示較長的資訊。
    *例子:* 與其儲存「男」或「女」,你可能會將其編碼為 M 代表男性,F 代表女性。這可以節省儲存空間並確保一致性(確保每個人使用的拼寫都相同)。

💡 快速回顧: 資料結構會具體規定系統中每一項資料的名稱類型長度編碼

2. 設計輸入格式

使用者將如何把資料輸入到新系統中?設計必須包含輸入格式,通常會透過資料擷取表格 (Data Capture Forms) 來實現。

目標是讓輸入資料的過程變得快速、準確且易於操作。

資料擷取表格的設計要求
  • 清晰的排版: 將相關欄位歸類在一起(例如:所有地址相關資訊)。
  • 適當的間距: 提供足夠的空間,讓使用者輸入時不會感到混亂。
  • 清晰的說明: 準確告訴使用者應該輸入什麼(例如:「請以 DD/MM/YYYY 格式輸入日期」)。
  • 功能的使用: 使用勾選框(針對布林值)、圓形單選按鈕(針對單選題)或下拉式選單,以減少打字需求並提高準確性。
  • 驗證提示: 如果輸入內容必須遵守特定規則(如最大長度限制),應在表格設計中標明。

試想一下,如果你要填寫一份沒有標籤且格子極小的報稅表——那會多令人挫折!一個好的輸入格式設計能有效防止這些錯誤。

3. 設計輸出格式

當系統處理完資料後,必須以實用的方式呈現結果。你必須設計兩種主要的輸出格式:

A. 螢幕佈局 (軟拷貝輸出/Soft Copy Output)

這是使用者在螢幕或行動裝置上看到的內容。良好的螢幕設計著重於易用性(使用者介面/UI)。

  • 清晰度: 使用清晰且不傷眼的字體與顏色。
  • 一致性: 按鈕和導覽選單在每個頁面上應保持相同位置。
  • 導覽: 使用合適的超連結和選單,讓使用者能輕鬆在系統的不同部分之間切換。
  • 相關性: 僅顯示使用者執行該特定任務所需的資訊。
B. 報告佈局 (硬拷貝輸出/Hard Copy Output)

這指的是為了列印而設計的資訊(例如發票、每月摘要或統計報告)。

  • 專業外觀: 包含標誌 (Logo)、清晰的標題和一致的頁邊距。
  • 分頁: 確保頁碼、日期和時間已包含在內,通常位於頁首或頁尾。
  • 對齊: 數值資料應靠右對齊,並正確格式化貨幣符號或百分比。
  • 可讀性: 使用欄位和摘要,讓列印出的資料易於閱讀和分析。
你知道嗎? 設計螢幕佈局有時被稱為設計使用者介面 (User Interface, UI)。如果 UI 設計得很差,即使系統功能再強大,最終也會失敗,因為人們根本不想用它!

4. 設計驗證程序

驗證 (Validation) 是電腦在輸入資料時自動執行的檢查,以確保資料是合理明智的。這是設計過程中減少輸入錯誤的關鍵步驟。

驗證並不檢查資料是否百分之百正確(那是「確認/Verification」的工作),而是檢查它是否在預期的參數範圍內。

類比:驗證就像檢查你提交的學校作業是否在 5 到 10 頁之間(合理性)。確認則是在檢查作業內容是否為正確答案(正確性)。

你必須在系統中設計適當的驗證程序。以下是你需要掌握的類型:

七種驗證檢查類型

記憶口訣: 使用短語:Really Curious Learners Try Finding Perfect Codes (RCLTFPC)

  1. 範圍檢查 (Range Check):

    檢查資料是否落在指定的最小值和最大值之間。
    *例子:* 如果分數必須在 0 到 100 之間,輸入 105 或 -5 將會驗證失敗。

  2. 字元檢查 (Character Check):

    檢查輸入的資料是否僅包含預期的字元(例如:僅字母,或僅數字)。
    *例子:* 若欄位要求輸入年齡(數值),當有人輸入文字「二十」時應會失敗。

  3. 長度檢查 (Length Check):

    檢查輸入的資料是否包含正確數量的字元。
    *例子:* 密碼必須至少 8 個字元長(最小長度檢查),或電話號碼必須正好 10 位數(固定長度檢查)。

  4. 類型檢查 (Type Check):

    確保輸入的資料與結構中定義的資料類型相符。
    *例子:* 如果欄位被設計為日期/時間類型,輸入像「昨天」這樣的字詞將會失敗。

  5. 格式檢查 (Format Check):

    檢查資料是否遵循特定的模式或結構。
    *例子:* 身分證號碼可能被定義為兩個字母後接六個數字 (LL######)。電子郵件地址必須包含「@」符號和一個「.」(點)。

  6. 存在檢查 (Presence Check):

    確保欄位沒有留空。如果資料是強制性的,系統必須檢查其是否存在。
    *例子:* 如果沒有提供送貨地址,你將無法提交線上訂單。

  7. 檢查數位 (Check Digit):

    主要用於識別代碼(如條碼、ISBN 或銀行帳號)。代碼的最後一位數字是根據其餘所有數字,透過演算法計算出來的。當代碼被輸入時,系統會再次執行該計算。如果計算出的數字與輸入的檢查數位不符,則該代碼無效。
    *目的:* 這能抓出輸入過程中的簡單錯誤,例如兩個數字的「位置顛倒 (Transposing)」。

⚠️ 常見錯誤警示!

學生經常搞混字元檢查 (Character Check)類型檢查 (Type Check)。雖然它們很相似,但字元檢查通常著重於排除不想要的符號(例如防止姓名欄位中出現數字),而類型檢查則嚴格執行定義好的資料類型(文字、數值、日期、布林值)。

設計階段的關鍵總結

設計階段將分析階段識別出的抽象需求轉化為具體、詳細的計劃。這些涵蓋資料結構、輸入、輸出和驗證的計劃,是開發人員構建系統時所依據的藍圖。一個設計良好的系統不僅高效,還能減少錯誤並具備良好的使用者體驗。