大學生們往往有些物品捨不得丟掉,但不處理又佔用太多空間。本軟體旨在幫助這些物品找到新的用途,或者幫助擁有者更好地管理這些物品。透過使用物品“復活”軟體,使用者可以新增、管理和查詢物品,記錄它們的詳細資訊,方便日後的利用或者轉贈。
1.Planning(計劃)
Estimate(估計):
需求分析:1小時
設計:2小時
程式碼實現:4小時
程式碼複審:1小時
測試:2小時
總結和改進:1小時
總計時間:大約10小時。
2.Development(開發)
2.1 Analysis(分析需求)
需求分析:
軟體的核心需求是允許大學生管理一些閒置物品,包括“新增物品”“刪除物品”“查詢物品”“顯示物品列表”。
需要一個本地資料庫(SQLite)來儲存物品資訊,每個物品包括:名稱、描述和聯絡資訊。
軟體應有使用者友好的 GUI,方便使用者管理物品。
完成情況:程式碼中使用了 SQLite 資料庫管理物品資料,功能涵蓋了需求的增、刪、查、顯示,並實現了 GUI 介面。
2.2 Design Spec(生成設計文件)
設計文件:
系統結構:包括前端 GUI 介面(透過 tkinter)和後端資料庫(透過 sqlite3)。
類的定義:
Item 類用於定義物品資料。
ItemApp 類用於實現所有物品管理功能,包括資料庫的操作和使用者介面。
資料庫設計:物品資料庫 items.db,包含一個表 items,表欄位包括 name(物品名稱,主鍵)、description(物品描述)、contact(聯絡人資訊)。
完成情況:透過檢視程式碼,可以推測設計過程得到了良好的實現,模組劃分明確。
2.3 Design Review(設計複審)
設計複審:
複審內容:
資料庫設計合理,符合物品資訊儲存需求。
物件導向設計:Item 和 ItemApp 類的職責明確。
介面設計:GUI 介面功能完善,但可以進一步改進使用者體驗,例如更豐富的互動提示。
完成情況:程式碼結構清晰,但可以進一步改進 GUI 方面以提供更好的使用者體驗。
2.4 Coding Standard(程式碼規範)
程式碼規範:
使用 Python 編寫,遵循 Python 程式碼的規範PEP8,包括函式和變數命名符合標準。
程式碼中使用了清晰的註釋,函式和方法的名稱能夠清晰表達功能意圖。
改進建議:建議在整個程式碼中保持一致的縮排和註釋風格,適當拆分複雜函式以提高可讀性。
完成情況:程式碼總體規範良好,具有可讀性和維護性。
2.5 Design(具體設計)
具體設計:
程式碼實現了一個 Item 類用於物品屬性的定義,一個 ItemApp 類來處理應用程式的邏輯。
介面設計上,透過 tkinter 實現了增、刪、改、查的功能按鈕。
資料庫使用了 sqlite3,並將各項操作封裝在應用邏輯中。
完成情況:模組化設計較好,清晰地劃分了類和功能。
2.6 Coding(具體編碼)
具體編碼:
實現了物品增、刪、查、顯示的所有主要功能。
透過 tkinter 實現了圖形使用者介面,並整合了 SQLite 資料庫。
編碼細節:每個功能模組(如新增、刪除、查詢物品)都在獨立的函式中實現,程式碼易於理解和修改。
完成情況:功能實現完整,邏輯清晰。
2.7 Code Review(程式碼複審)
程式碼複審:
複審內容:
邏輯檢查:確保每個功能模組的邏輯正確且處理了所有可能的異常情況。
潛在改進:考慮程式碼的可擴充套件性和錯誤處理。
完成情況:複審內容顯示程式碼邏輯合理,且具備良好的可讀性。
2.8 Test(測試)
測試:
對新增、刪除、顯示、查詢物品功能進行單元測試和整合測試。
確保所有功能能夠在正常和異常輸入下正確執行,例如測試新增重複名稱的物品是否有合理的提示。
測試改進:可以增加對 GUI 元素操作的自動化測試。
完成情況:功能測試已基本完成,程式碼透過手動測試來確保其可靠性。
3.其他活動
3.1 Record Time Spent(記錄用時)
記錄用時:為每個階段記錄具體的開發時間,方便後續評估和改進。
3.2 Test Report(測試報告)
測試報告:
測試目的:驗證各功能是否符合設計需求。
測試結果:所有功能均按預期執行,未發現嚴重缺陷。
改進建議:在異常輸入情況下增加更多提示,確保使用者體驗。
3.3 Size Measurement(計算工作量)
程式碼行數:該程式有大約500行程式碼。
複雜度:整體複雜度中等,程式碼結構清晰,類和方法的職責劃分明確。
3.4 Postmortem(事後總結)
優點:
物件導向的設計,模組化明確。
使用 GUI 介面讓程式易於操作。
不足:
介面設計可以更美觀,使用者體驗有提升空間。
可以增加對輸入錯誤和異常情況的處理。
3.5 Process Improvement Plan(提出過程改進計劃)
改進計劃:
GUI 改進:增加更美觀的介面元素,提升使用者體驗。
錯誤處理:加強異常輸入的處理,確保程式健壯性。
功能最佳化:考慮新增匯出\匯入為csv檔案等的功能,提升使用者體驗。
測試自動化:為關鍵功能增加自動化測試,減少迴歸測試的時間。