コンテキストマップ
TASHIKAのドメインは7つの領域に分解される。各領域は独自の用語とモデルを持ち、領域間は明示的な対応関係で接続される。
領域一覧
| 領域 | 主要エンティティ | 関心事 |
|---|---|---|
| 代行 | 代行事業者, 顧問先, 代行スタッフ | 委託関係の管理、代行スタッフの所属 |
| 組織 | 企業, 事業所, 部署, 従業員 | 企業・人事マスタ管理 |
| 家族 | 家族構成員, 年度属性(Fact) | 家族グラフ、属性の年度管理 |
| 申告 | 申告者, 申告, 控除 | 申告ライフサイクル、控除適用 |
| 給与 | 給与の支払者, 支払事業所, 給与所得者, 税額計算結果, 源泉徴収額 | 給与・税額の計算 |
| アイデンティティ | ユーザー | 認証、ユーザーアカウント管理 |
| サブスクリプション | テナント, 契約, 請求, オプション契約 | 利用契約・課金のライフサイクル管理 |
同じ存在の異なる呼び名
同じ現実世界の存在でも、領域ごとに異なる名前と責務を持つ。
| 現実の存在 | 代行 | 組織 | 申告 | 給与 | 家族 | アイデンティティ | サブスクリプション |
|---|---|---|---|---|---|---|---|
| 会社で働く人 | — | 従業員 | 申告者 | 給与所得者 | 家族構成員(本人) | ユーザー | — |
| 代行事業者のスタッフ | 代行スタッフ | — | — | — | — | ユーザー | — |
| 企業 | 顧問先 | 企業 | — | 給与の支払者 | — | — | テナント |
| 拠点 | — | 事業所 | — | 支払事業所 | — | — | — |
| 代行事業者 | 代行事業者 | — | — | — | — | — | テナント |
これは単なる命名の違いではなく、各領域が持つべき属性・振る舞いが異なることを意味する:
- 従業員: 入社日、部署、雇用形態(人事管理の関心事)
- 申告者: 申告のライフサイクル管理、控除の適用(税務申告の関心事)
- 給与所得者: 給与支払、源泉徴収、税額計算(給与計算の関心事)
- 家族構成員(本人): 家族グラフの起点、親族関係の管理(家族構造の関心事)
コード上でも Employee、Declarant、SalaryEarner、FamilyMember、User と分けることで、各モジュールが自分の関心事だけを持つ設計になる。
なお、アイデンティティ領域は認証(Authentication)を担当する。認可(Authorization)は各ビジネス領域に分散し、各領域のエンティティが「何ができるか」を定義する。sys_admin や sys_support のように、ビジネスエンティティへの対応を持たないユーザーも存在する。