【一人プロジェクトの実演】内部設計(手戻り)【行先ボード⑬】

クラス図もmenDocを作成したので書き直します。

gRCPを使ってみた感じからすると、
gRPCを使用する部分はプロジェクトファイルを分けた方がよさそうです。
元々GUIアプリ(クライアント側)→GUIアプリ(サーバー側)→データベース
というような構成で考えていましたがちょっと方針転換します。

GUIアプリ(クライアント側) → 共通ライブラリ(gRPC) → コンソールアプリ(サーバー側)→データベース
こんな感じで行こうかと思います。

名前を付けておきます。

  • 行先ボード(ユーザー操作用):Destinationboard
  • 行先ボードサーバー(データベース操作用):DestinationboardServer
  • 行先ボード通信ライブラリ(gRPC用):DestinationboardCommunicationLibrary

menDocを使用して設計していきます。

クラス図(Destinationboard)

クラス一覧

No. クラス名 クラスの説明 作成日 作成者
1 MainWindowVM メイン画面のViewModel 2021/03/30 gohya
2 SettingStaffVM 氏名設定画面のViewModel 2021/03/30 gohya
3 SettingActionVM 行先設定画面のViewModel 2021/03/30 gohya
4 SettingApplicationVM アプリケーション設定画面のViewModel 2021/03/30 gohya
5 RegistTimeVM 出社・帰宅画面のViewModel 2021/03/30 gohya
6 RegistTimeHourVM 時間登録(時)画面のViewModel 2021/03/30 gohya
7 RegistTimeMinutesVM 時間登録(分)用画面のViewModel 2021/03/30 gohya
8 RegistMemoVM 備考登録用画面のViewModel 2021/03/30 gohya
9 RegistBeginFinishVM 時間入力画面のViewModel 2021/03/30 gohya
10 RegistActionVM 行先入力画面のViewModel 2021/03/30 gohya
11 ActionPlanListM 行動計画をリスト形式で保持するクラス 2021/03/30 gohya
12 StaffInfoListM 従業員マスターをリスト形式で保持するクラス 2021/03/30 gohya
13 ActionInfoListM 行動マスターをリスト形式で保持するクラス 2021/03/30 gohya
14 DestinationInfoListM 行先情報マスターをリスト形式で保持するクラス 2021/03/30 gohya
15 ActionPlanTable_M テーブル:ActionPlanTableに相当するクラス。
テーブル説明:現在の行動予定一覧表
2021/03/30 gohya
16 StaffMaster_M テーブル:StaffMasterに相当するクラス。
テーブル説明:スタッフマスター
2021/03/30 gohya
17 ActionMaster_M テーブル:ActionMasterに相当するクラス。
テーブル説明:行動マスター
2021/03/30 gohya
18 DestinationMaster_M テーブル:DestinationMasterに相当するクラス。
テーブル説明:行先マスター
2021/03/30 gohya

クラス詳細

クラス名:MainWindowVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionPlanListM ActionPlanList public 行動一覧
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void GetActionPlans() public 行動一覧の取得を行う

クラス名:SettingStaffVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 StaffInfoListM StafInfoList public 従業員情報のリスト
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void RegstStaff(StaffInfoListM) public 従業員情報リストを更新する
2 void MoveUp() public 選択している従業員情報を上の従業員情報と入れ替える(登録ボタンを押すまで反映されない)
3 void MoveDown() public 選択している従業員情報を下の従業員情報と入れ替える(登録ボタンを押すまで反映されない)
4 void DeleteStaff() public 選択している従業員情報を削除する(登録ボタンを押すまで反映されない)
5 void ChangeVisiblity() public 表示/非表示の切り替え

クラス名:SettingActionVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionInfoListM ActionInfoList public 行動情報一覧リスト
2 DestinationInfoListM DestinationInfoList public 行先情報一覧リスト
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void GetActions() public 行動情報一覧の取得関数
2 void GetDestinations() public 行先情報一覧の取得関数
3 void MoveUp() public 選択している行動・行先を上の行の行動と入れ替える
4 void MoveDown() public 選択している行動・行先を下の行の行動と入れ替える
5 void Delete() public 選択している行動・行先を削除する
6 void Close() public 本画面を閉じる

クラス名:SettingApplicationVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 string IPAddress public IPアドレス
2 int Port public ポート番号
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void Save() public 保存ボタン
2 void Close() public 閉じるボタン

クラス名:RegistTimeVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionPlanTable_M ActionPlan public 単体の行動情報を保持する
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void Close() public 画面を閉じる処理
2 void RegistAction() public 行動の登録処理
3 void SelectFromHour public From時間(時)の選択処理
4 void SelectFromMiniutes public From時間(分)の選択処理
5 void SelectToHour public To時間(時)の選択処理
6 void SelectToMinutes public To時間(分)の選択処理

クラス名:RegistTimeHourVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionPlanTable_M ActionPlan public 単体の行動情報を保持する
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void Close() public 画面を閉じる処理
2 void OnTimeButton() public ボタンを押した際に動作する処理

クラス名:RegistTimeMinutesVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionPlanTable_M ActionPlan public 単体の行動情報を保持する
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void Close() public 閉じる処理
2 void OnTimeButton() public ボタンを押した際に動作する処理

クラス名:RegistMemoVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionPlanTable_M ActionPlan public 単体の行動情報を保持する
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void Close() public 閉じる処理
2 void RegistAction() public 行動の登録処理

クラス名:RegistBeginFinishVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionPlanTable_M ActionPlan public 単体の行動情報を保持する
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void Close() public 閉じる処理
2 void RegistAction() public 行動の登録処理

クラス名:RegistActionVM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ActionPlanTable_M ActionPlan public 単体の行動情報を保持する
  • 関数情報
No. 戻り値 関数名 修飾子 説明
1 void Close() public 閉じる処理
2 void RegistAction() public 行動の登録処理

クラス名:ActionPlanListM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ModelList\ ActionPlanList public 行動情報のリスト
  • 関数情報

    • なし

クラス名:StaffInfoListM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ModelList\ StaffInfoList public 従業員情報のリスト
  • 関数情報

    • なし

クラス名:ActionInfoListM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ModelList\ ActionList public 行動一覧
  • 関数情報

    • なし

クラス名:DestinationInfoListM

  • 変数情報
No. パラメータ名 修飾子 説明
1 ModelList\ DestinationList public 行先情報をリストで保持する
  • 関数情報

    • なし

クラス名:ActionPlanTable_M

  • 変数情報
No. パラメータ名 修飾子 説明
1 String StaffID public スタッフID
2 String StaffName public スタッフ名
3 String ActionID public 行動ID
4 String ActionName public 行動名
5 String DestinationID public 行先ID
6 String DestinationName public 行先名
7 DateTime? FromTime public 開始時刻
8 DateTime? ToTime public 終了時刻
9 String Memo public 備考
  • 関数情報

    • なし

クラス名:StaffMaster_M

  • 変数情報
No. パラメータ名 修飾子 説明
1 String StaffID public 従業員ID
2 String StaffName public 従業員名
3 bool Display public 表示(True)/非表示(False)
4 DateTime CreateDate public 作成日時
5 String CreateUser public 作成者
  • 関数情報

    • なし

クラス名:ActionMaster_M

  • 変数情報
No. パラメータ名 修飾子 説明
1 String ActionID public 行動ID
2 String ActionName public 行動名
3 DateTime CreateDate public 作成日時
4 String CreateUser public 作成者
5 DateTime UpdateDate public 更新日時
6 String UpdateUser public 更新者
  • 関数情報

    • なし

クラス名:DestinationMaster_M

  • 変数情報
No. パラメータ名 修飾子 説明
1 String DestinationID public 行先ID
2 String DestinationName public 行先名
3 String ActionID public 行動ID
4 DateTime CreateDate public 作成日時
5 String CreateUser public 作成者
6 DateTime UpdateDate public 更新日時
7 String UpdateUser public 更新者
  • 関数情報

    • なし

まとめ

このままソースコードまで出力できたら、より設計に集中できそうです。
ちょっと考えてみます。

おわり

PR

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です