クラス図も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 |
更新者 |
まとめ
このままソースコードまで出力できたら、より設計に集中できそうです。
ちょっと考えてみます。
おわり
コメントを残す