2009年5月12日星期二

IDEA #207:電子家計簿

做軟件,無論規模大少,一定要畫設計圖,才可及早發現邏輯和設計上的問題。

最近,公司的新產品便因為設計上的不完善(所有產品都沒有設計圖),加上沒有安排新舊系統的並排運行(Parallel Run),引至某客戶數萬個紀錄出現錯誤,最後只好roll-back回舊版本,暫時不作升級。

早前試驗利用信封進行envelope-budgeting,效果不太理想。問題主要發生在計算上,畢竟計算是電腦的強項,最後還是不得不將有關工作交會給電腦處理。既然離不開電腦,也就乾脆把整個系統搬到電腦中進行罷了。

在早前購買的Bento軟件中建立了一個叫「家計簿」的資料庫。對於資料庫我有以下的需求(Requirements):


  • 預算管理 - 能於介面中輸入各個項目的支出預算,並能根據支出預算預測該月的總支出

  • 支出統計 - 能計算當月各支出項目(費目)的支出總計,及顯示該月的總體支出(支出計)

  • 收入統計 - 能計算當月的總收入(收入計)

  • 戶口結餘統計 - 能根據實際支出/收入情況,實時計算當前銀行戶口結餘(現在の口座殘高)

  • 現金結餘統計 - 能根據實際支出/收入情況、提款情況、及前一個月的盈餘・赤字(先月繰越),實時計算手頭上現金的數量(現金計)

經過一個月的設計和調試,現時資料庫已經可以滿足大部分的需求,本月可以輸入真實數據,測試計算方程是否有誤。 此外,上月盈餘(先月繰越)的計算邏輯與及某些部分的命名方式還需要進一步檢討。如健康問題不大,希望五月內能夠完成以上工作,達成本年"設計及履行個人財務管理基建(Design and implement infrastructure for personal finance)"的目標。運行暢順後,未來便可以加入更多的功能。

以下為現時資料庫的設計圖如使用介面(數據只作演示用途)。設計圖的表達方式仍待改善,稍後檢討資料庫設計後將重新繪製。




沒有留言: