Pythonで家計簿アプリを作る その2、要件定義など
今回は参考にしたブログに倣って、開発前に行った設計を紹介します。(開発終盤の現在振り返ると実際のプログラムと食い違った部分もあるので、その都度注をいれます。)自分はITエンジニアではなく、最初から大規模なプログラムを書くつもりで大規模なプログラムを書いたこともないのでこのような経験は初めてです。おかしなことを書いていたら申し訳ないです。
要件定義
”家計簿データ”を金額・日付・カテゴリ等、明細に関する情報をひとまとめにしたデータと定義する。また家計簿データを収入・支出に関する”フロー”のデータと資産に関する”ストック”のデータに分け、それぞれについて以下の機能を有すること。
- 家計簿データの入力機能
- できるだけ簡単で直感的なGUIで家計簿データを入力できること
- 既に入力したデータをユーザ側から書き換える変更機能もあること
- 固定収入/支出の自動入力や外部データからの自動入力機能などの拡張余地を確保すること
- 家計簿データの表示機能
- わかりやすいフォーマットで家計簿データを表示すること
(最初は表のみでいいが、最終的にはカレンダー表示させたい)
- わかりやすいフォーマットで家計簿データを表示すること
- 家計簿データの分析機能
- 家計簿データを解析し、グラフなどを出力するサブ関数群が入る拡張余地を確保すること
- その他システム要件
- PC1台で動くスタンドアローン式のソフトであること
- WindowsとMacOSのクロスプラットフォームであること
- 使用に支障をきたす程のラグが生じない程度のパフォーマンスを有すること
を要件とします。解析用のサブ関数に関しては開発が終わった後も必要に応じて解析パターンを追加する、というよりもデータを見つつ解析プログラムを考えようと思っています。Windows互換性に関しては共有したい人が大体Windowsユーザだからなのと、折角クロスプラットフォームなフレームワーク(Qt)を使っているのだからやってみよう程度の意気込みです。
プログラム基本設計とGUI設計
まずソフトウェアとDBがどのように関わり合うかを概念図としてまとめました。
次にGUIのイメージをfig化しました。こういったForm的なものを書いたのは中学生の時にHTML・Javascriptをかじった以来なので、どれくらい労力がいるかなどは想像もつかない中設計しました。難しすぎる課題を自分に課して挫折するのを避けるために、初期目標と最終目標の二つの画面を作りました。
以上、要件定義・基本設計・GUI設計を紹介したところで今回は終わります。次回はデータベース設計について紹介します。