ICT 0417:學習筆記 – 系統生命週期:設計 (第 7.2 節)
歡迎來到系統生命週期的「設計」階段!如果說「分析」是為了找出當前問題及用戶需求,那麼「設計」就是為新系統制定詳細藍圖的過程。你可以把自己想像成繪製房屋平面圖的建築師——在開始施工之前,你必須規劃好每一道牆、每一扇門和每一個插座的位置。
本章至關重要,因為無論後續程式編寫得多好,如果設計不佳,系統最終都會無法使用。讓我們一起確保你的設計既穩健又高效!
1. 設計資料結構 (檔案/資料結構)
設計任何 ICT 系統(尤其是資料庫或試算表)的第一步,是精確決定資料的儲存方式。這被稱為設計檔案/資料結構。
資料結構設計的關鍵要素
對於你計劃儲存的每一項資訊 (欄位/Field),你都必須定義以下內容:
- 欄位名稱 (Field Name):
賦予資料的標籤。
*例子:* 姓氏 (Surname)、出生日期 (Date_of_Birth)、產品價格 (Product_Price)。 - 資料類型 (Data Type):
這定義了該欄位可以輸入什麼類型的資料。
- 文字 (Text/String): 用於字母、符號或無需計算的數字(如電話號碼、郵遞區號或姓名)。
- 數值 (Numeric/Number): 用於需要計算的數值(例如:分數、數量)。
- 子類型包括:整數 (Integer)、小數 (Decimal)、貨幣 (Currency)。
- 日期/時間 (Date/Time): 專門用於日期或時間的格式化資料。
- 布林值/邏輯值 (Boolean/Logical): 僅接受兩個值(真/假、是/否、1/0、勾選框)。用於簡單的選擇。
- 欄位長度 (Field Length):
該欄位允許輸入的最大字元數。
*例子:* 如果身分證號碼長度固定為 12 個字元,你就會將長度設定為 12。這既能節省儲存空間,也有助於防止輸入錯誤。 - 資料編碼 (Coding of Data):
使用簡短、預先定義的代碼來表示較長的資訊。
*例子:* 與其儲存「男」或「女」,你可能會將其編碼為 M 代表男性,F 代表女性。這可以節省儲存空間並確保一致性(確保每個人使用的拼寫都相同)。
2. 設計輸入格式
使用者將如何把資料輸入到新系統中?設計必須包含輸入格式,通常會透過資料擷取表格 (Data Capture Forms) 來實現。
目標是讓輸入資料的過程變得快速、準確且易於操作。
資料擷取表格的設計要求
- 清晰的排版: 將相關欄位歸類在一起(例如:所有地址相關資訊)。
- 適當的間距: 提供足夠的空間,讓使用者輸入時不會感到混亂。
- 清晰的說明: 準確告訴使用者應該輸入什麼(例如:「請以 DD/MM/YYYY 格式輸入日期」)。
- 功能的使用: 使用勾選框(針對布林值)、圓形單選按鈕(針對單選題)或下拉式選單,以減少打字需求並提高準確性。
- 驗證提示: 如果輸入內容必須遵守特定規則(如最大長度限制),應在表格設計中標明。
試想一下,如果你要填寫一份沒有標籤且格子極小的報稅表——那會多令人挫折!一個好的輸入格式設計能有效防止這些錯誤。
3. 設計輸出格式
當系統處理完資料後,必須以實用的方式呈現結果。你必須設計兩種主要的輸出格式:
A. 螢幕佈局 (軟拷貝輸出/Soft Copy Output)
這是使用者在螢幕或行動裝置上看到的內容。良好的螢幕設計著重於易用性(使用者介面/UI)。
- 清晰度: 使用清晰且不傷眼的字體與顏色。
- 一致性: 按鈕和導覽選單在每個頁面上應保持相同位置。
- 導覽: 使用合適的超連結和選單,讓使用者能輕鬆在系統的不同部分之間切換。
- 相關性: 僅顯示使用者執行該特定任務所需的資訊。
B. 報告佈局 (硬拷貝輸出/Hard Copy Output)
這指的是為了列印而設計的資訊(例如發票、每月摘要或統計報告)。
- 專業外觀: 包含標誌 (Logo)、清晰的標題和一致的頁邊距。
- 分頁: 確保頁碼、日期和時間已包含在內,通常位於頁首或頁尾。
- 對齊: 數值資料應靠右對齊,並正確格式化貨幣符號或百分比。
- 可讀性: 使用欄位和摘要,讓列印出的資料易於閱讀和分析。
4. 設計驗證程序
驗證 (Validation) 是電腦在輸入資料時自動執行的檢查,以確保資料是合理且明智的。這是設計過程中減少輸入錯誤的關鍵步驟。
驗證並不檢查資料是否百分之百正確(那是「確認/Verification」的工作),而是檢查它是否在預期的參數範圍內。
類比:驗證就像檢查你提交的學校作業是否在 5 到 10 頁之間(合理性)。確認則是在檢查作業內容是否為正確答案(正確性)。
你必須在系統中設計適當的驗證程序。以下是你需要掌握的類型:
七種驗證檢查類型
記憶口訣: 使用短語:Really Curious Learners Try Finding Perfect Codes (RCLTFPC)
- 範圍檢查 (Range Check):
檢查資料是否落在指定的最小值和最大值之間。
*例子:* 如果分數必須在 0 到 100 之間,輸入 105 或 -5 將會驗證失敗。 - 字元檢查 (Character Check):
檢查輸入的資料是否僅包含預期的字元(例如:僅字母,或僅數字)。
*例子:* 若欄位要求輸入年齡(數值),當有人輸入文字「二十」時應會失敗。 - 長度檢查 (Length Check):
檢查輸入的資料是否包含正確數量的字元。
*例子:* 密碼必須至少 8 個字元長(最小長度檢查),或電話號碼必須正好 10 位數(固定長度檢查)。 - 類型檢查 (Type Check):
確保輸入的資料與結構中定義的資料類型相符。
*例子:* 如果欄位被設計為日期/時間類型,輸入像「昨天」這樣的字詞將會失敗。 - 格式檢查 (Format Check):
檢查資料是否遵循特定的模式或結構。
*例子:* 身分證號碼可能被定義為兩個字母後接六個數字 (LL######)。電子郵件地址必須包含「@」符號和一個「.」(點)。 - 存在檢查 (Presence Check):
確保欄位沒有留空。如果資料是強制性的,系統必須檢查其是否存在。
*例子:* 如果沒有提供送貨地址,你將無法提交線上訂單。 - 檢查數位 (Check Digit):
主要用於識別代碼(如條碼、ISBN 或銀行帳號)。代碼的最後一位數字是根據其餘所有數字,透過演算法計算出來的。當代碼被輸入時,系統會再次執行該計算。如果計算出的數字與輸入的檢查數位不符,則該代碼無效。
*目的:* 這能抓出輸入過程中的簡單錯誤,例如兩個數字的「位置顛倒 (Transposing)」。
學生經常搞混字元檢查 (Character Check) 和類型檢查 (Type Check)。雖然它們很相似,但字元檢查通常著重於排除不想要的符號(例如防止姓名欄位中出現數字),而類型檢查則嚴格執行定義好的資料類型(文字、數值、日期、布林值)。
設計階段的關鍵總結
設計階段將分析階段識別出的抽象需求轉化為具體、詳細的計劃。這些涵蓋資料結構、輸入、輸出和驗證的計劃,是開發人員構建系統時所依據的藍圖。一個設計良好的系統不僅高效,還能減少錯誤並具備良好的使用者體驗。