程式規格書(Program Specification)範本
程式規格書(Program Specification Document)範本 版本:1.0 參照標準:IEEE 1016-2009、ISO/IEC/IEEE 12207:2017、ISO/IEC 8631:1989 適用對象:系統分析師(SA)、開發工程師、委外/外包開發廠商 文件性質:單一程式/批次工作之詳細規格文件,作為程式撰寫與驗收的直接藍圖 📋 使用說明 程式規格書是以「單一程式或批次工作」為撰寫單位的實作藍圖,將 TSD(技術規格文件)的模組/服務層級設計,進一步展開為可直接編碼的輸入輸出欄位、處理邏輯、畫面或報表版面與錯誤代碼。相較於 TSD 偏重物件導向的類別/方法設計,程式規格書更貼近傳統主機、批次、報表與轉檔程式的撰寫方式。 何時使用本範本 批次程式(Batch Job):日結、月結、對帳、資料清算等排程程式 報表程式:產出固定版面報表、對外申報檔案 介面轉檔程式:與外部系統的檔案交換、資料匯入匯出 委外/外包開發:需要逐支程式驗收,規格必須避免「口頭補充」 任何需要精確定義輸入輸出欄位與處理邏輯、無法僅以 TSD 類別設計涵蓋的程式 與其他文件的關係 SDD(如何設計整體架構) → TSD(模組/服務層級技術規格) → 程式規格書(單一程式的實作藍圖) → Source Code ↑ ↑ ↑ ↑ 架構師 開發工程師 SA / 開發工程師 開發工程師 TSD 定義模組內的類別、方法、演算法與資料結構,適合物件導向、微服務式的系統設計 程式規格書 則是「向下再展開一層」:把 TSD 的設計具體落實到單一程式的輸入來源、輸出目的、逐步處理邏輯與例外情境,讓程式撰寫者(含委外廠商)不需回頭詢問即可完成編碼 兩者可搭配使用:物件導向服務層級用 TSD;批次/報表/轉檔類程式或委外驗收則另補程式規格書 填寫原則 輸入輸出明確:每個欄位都需標註型別、長度、必要性與驗證規則,不可只用文字概略描述 處理邏輯可執行:流程敘述與虛擬碼需精確到可直接轉換為程式碼,邏輯表示法建議依循 ISO/IEC 8631 的慣例(結構化流程圖/虛擬碼),避免撰寫者各自發明符號 正常與異常並重:正常流程之外,需完整列出所有已知的例外情境與對應處理、錯誤代碼 可獨立驗收:規格本身應足以作為驗收依據,尤其用於委外開發時 📄 範本正文 [程式代號/程式名稱] 程式規格書 1. 文件資訊 項目 內容 文件編號 PSD-[專案代碼]-[程式代碼]-[序號] 版本 v0.1 建立日期 YYYY-MM-DD 最後更新 YYYY-MM-DD 撰寫者 [SA / 開發工程師姓名] 審核者 [技術主管 / 架構師] 狀態 草稿 / 審查中 / 已核准 版本歷程 版本 日期 修改人 修改內容摘要 v0.1 YYYY-MM-DD [姓名] 初版建立 關聯文件 文件名稱 文件編號 版本 關聯性 技術規格文件(TSD) TSD-XXX-001 v1.0 所屬模組技術設計 系統設計文件(SDD) SDD-XXX-001 v1.0 系統架構來源 2. 程式基本資訊 項目 內容 程式代號 [如 BATCH-CUST-RECON-001] 程式名稱 [程式中文名稱] 程式類型 Online(線上)/ Batch(批次)/ Report(報表)/ Interface(介面轉檔) 所屬系統/模組 [系統名稱] 觸發方式 排程(Cron)/ 人工執行 / 事件觸發 / API 呼叫 執行排程 [如:每月最後一個工作日 02:00] 前置程式 [執行前必須先完成的程式代號,無則填「無」] 後續程式 [本程式完成後接續執行的程式代號,無則填「無」] 預估工時 [人天] 3. 功能說明 3.1 程式目的 一句話說明本程式解決什麼問題、為何需要。 ...