專案地址:https://github.com/specture724/ItemReviveApp
作業要求
大學生經常有些物品覺得扔掉可惜,不處理又覺得浪費自己的地方。請你編寫一個物品“復活”軟體
該程式允許新增物品的資訊(物品名稱,物品描述,聯絡人資訊),刪除物品的資訊,顯示物品列表,也允許查詢物品的資訊
你實現的程式可以採用命令列方式使用,但是鼓勵提供GUI
程式實現完畢後,釋出在Github上
進行PSP資料的統計,釋出在你的技術部落格上(內容請按照下表)
PSP分析報告
PSP 分析文件
專案程式碼量:150 行 Python 程式碼
開發目標:編寫、除錯並完善一段 Python 程式碼,符合專案需求並透過測試。
1. 計劃階段 (Planning)
- 任務:明確需求和相關因素,估算時間、成本和依賴關係。
- 時間估計:30 分鐘
- 說明:分析 ItemReviveApp.py 專案的基本功能(增,刪,查),使用者介面設計、資料管理和基本的增刪查功能需求。預估專案程式碼量(約 150 行),並分配各階段的開發時間。
2. 開發階段 (Development)
2.1 需求分析 (Analysis)
- 任務:分析程式碼的具體需求,包括輸入、輸出、功能和邊界條件。
- 實際時間:20 分鐘
- 說明:明確應用的主要功能:允許使用者新增物品資訊、刪除物品、顯示所有物品、按名稱查詢物品,並透過雙擊檢視物品詳情。需求中包含對資料持久化(儲存至 JSON 檔案)、介面互動(Listbox 列表顯示)等具體要求。
2.2 設計文件生成 (Design Spec)
- 任務:編寫設計文件,詳細描述程式碼的實現方式、主要模組和關鍵演算法。
- 實際時間:30 分鐘
- 說明:在設計文件中確定應用的各個模組,包括資料載入與儲存(透過 JSON 檔案)、介面元件(Listbox 和按鈕等)、增刪查功能實現,以及雙擊顯示詳細資訊的功能。定義模組間的介面和功能呼叫順序,確保各模組可以協同工作。
2.3 設計複審 (Design Review)
- 任務:複查設計文件,確保設計合理,發現潛在問題。
- 實際時間:15 分鐘
- 說明:複查設計文件,檢查各模組的介面和互動是否合理,確保資料儲存、介面互動等細節設計正確無誤。特別確認雙擊檢視詳情的功能邏輯,以避免資料在查詢過濾後顯示錯誤的情況。
2.4 程式碼規範 (Coding Standard)
- 任務:為開發制定合適的程式碼規範,包括命名、註釋、程式碼格式等。
- 實際時間:10 分鐘
- 說明:確定程式碼風格,如函式和變數命名規範、註釋標準、縮排等,確保程式碼在增刪查、資料持久化、介面更新等操作中保持一致性。為 tkinter 介面元件和功能模組的命名制定規則,便於程式碼的可讀性和後續維護。
2.5 具體設計 (Design)
- 任務:根據設計文件進行詳細設計,準備編碼。
- 實際時間:25 分鐘
- 說明:在詳細設計中,將整體介面劃分為功能區域:物品列表顯示區(Listbox)、操作按鈕區(新增、刪除、查詢、顯示所有)和詳細資訊視窗設計。並詳細規劃資料的載入和儲存邏輯,以確保操作完成後資料會更新到 items.json 檔案中。
2.6 編碼 (Coding)
- 任務:根據設計文件實現程式碼,編寫具體功能模組。編碼先實現了基於命令列的原始版本,後面將其改為GUI
- 實際時間:90 分鐘 = 30 分鐘命令列版本 + 60 分鐘GUI版本
- 說明:完成專案的程式碼實現,包括主程式結構、各功能按鈕的實現、雙擊檢視詳情的功能、資料載入和儲存的實現(JSON 檔案讀寫)等。確保每個功能模組獨立、清晰,並在程式碼中加入註釋,便於後續除錯和維護。
2.7 程式碼複審 (Code Review)
- 任務:複查程式碼,確保程式碼符合規範,檢查潛在問題。
- 實際時間:15 分鐘
- 說明:複查程式碼的邏輯,檢查輸入處理、異常處理、資料更新(儲存至 JSON 檔案)是否正確,確保所有功能模組在不同情況下(如搜尋狀態和非搜尋狀態)均能正確工作。重點檢查雙擊檢視詳情功能在搜尋後是否能夠顯示正確的資料。
2.8 測試 (Test)
- 任務:對程式碼進行自測和修正,確保程式碼符合功能需求。
- 實際時間:45 分鐘
- 說明:對應用進行全面測試,包括基本功能(增、刪、查)和介面互動的正確性。特別測試雙擊檢視詳情是否能在搜尋結果中正確顯示詳細資訊,確認資料在 JSON 檔案中的正確性。修復在測試中發現的 3 個缺陷,分別涉及輸入處理、資料持久化和查詢功能邏輯。
3. 時間記錄 (Record Time Spent)
- 任務:記錄每個階段的時間,方便後續分析和最佳化。
- 總時間:280 分鐘
4. 測試報告 (Test Report)
- 任務:記錄測試結果和缺陷修復情況,確保程式碼質量。
- 缺陷數:3 個
- 缺陷修復時間:15 分鐘
- 說明:在測試中發現 3 個缺陷,涉及輸入處理、邊界條件和異常處理,修復時間為 15 分鐘。
5. 程式碼量統計 (Size Measurement)
- 任務:統計程式碼行數(LOC)。
- 程式碼行數:150 行
6. 事後總結 (Postmortem)
- 總結:本專案按時完成了功能實現,並進行了多次複查和修復,最終透過了測試。
- 改進點:
- 加強需求分析階段,儘早識別潛在的邊界情況。
- 在編碼前確保設計文件詳細到位,以減少編碼過程中的不確定性。
7. 過程改進計劃 (Process Improvement Plan)
- 改進建議:
- 提高設計階段的時間分配,確保所有細節在編碼前準備好。
- 加強測試階段的缺陷預防,透過更早的設計複查和程式碼複審減少後續的修復工作量。
此 PSP 分析文件可以幫助您評估專案的開發過程,總結經驗並制定未來的改進措施,以提升開發效率和程式碼質量。