年金をシステム設計的に考える(4)

前回までのあらすじ

年金の目的が「老後の収入確保」であることを確認したことにより派生的に発生した、そもそも「老後の収入確保」に意味はあるのかという点を確認した。今回よりこれを踏まえたうえで、本連載の本筋である年金制度の業務分析に入る。

年金の業務分析

ここからは本連載のタネ本となる「コンサルタントになる人のはじめての業務分析」を元に話を進めていく。ただし、この本で扱われるのは実際のシステム化にあたり行う業務分析であり、ここまで詳細に行う必要は無いものと考えている。基本は踏まえながら、一部ばっさりと省略を行うので、その旨ご容赦いただきたい。

ドメインの定義

近年のオブジェクト指向分析系の本を読むと必ず出てくるのが、このドメインである*1。本連載では、当初から「年金」について書くと言っているので悩む必要はなく、年金がドメインである。ただ、このドメインとしては公的年金を意味するものとし、基本的には私的年金は含めないものとする。私的年金は、加入者が自由に選択するものであり制度がどうあるべきかなどどうでもいい話である。ただし、国家による業務委託のような場合には、当然ドメインの範囲に入る。

業務の抽出

年金における業務としてはどのようなものがあるだろうか。現在の年金業務を以下にざざっと書き出してみる。

業務という切り口で見ると年金制度もそれほど複雑ではないことがわかる。

本来であれば、政府が入る以上税金という流れもあるが、ドメインの範囲から外れるため、社会保険庁との関係のみで分断する。

ロール(役割)の抽出

次にロールの抽出である。

他のオブジェクト指向分析の本を読まれた方なら「あれっアクターじゃないの?」と思うところである。以前に書いた通り巷に出回っているオブジェクト指向分析の本にはいろいろ問題があると思うわけだが、これもそのひとつである。件の本にも書かれている通り、登場人物をロール(役割)という一段抽象化して考えることにより「その人物がその業務において担当している行為」が明確になるのである。逆にロールを考えないことにより、不適切な分割が行われる可能性もある。

年金業務においても、国民は納付と給付という二つの役割を担っている*2。このような観点からロールの抽出を行うと以下のようになる。

  • 納付者(国民より抽出)
  • 徴収者(社会保険庁より抽出)
  • 管理者(社会保険庁より抽出)
  • 運用者(年金資金運用基金より抽出)
  • 給付者(社会保険庁より抽出)
  • 受給者(国民より抽出)
  • 補填者(政府より抽出)

アクティビティの抽出

アクティビティの抽出はロールの抽出に比べれば簡単である。抽出した業務の動詞句部分を抜き出せばよい。

  • お金を請求する
  • お金を納付する
  • 年金収支、残高などの管理する
  • 運用を委託する
  • お金を運用する
  • お金を給付する
  • お金を補填する

アクティビティ図の作成

ロールとアクティビティが抽出できたら、成果物としてアクティビティ図を作ることができる(画像をクリックすると拡大します)。

アクティビティが増えとるじゃないかというというご意見もあろうが、それが図を書く意味というものである。図示することによって、本来そこになければならない行為が自然と洗い出されてくるのだ(言い訳)。

次回はこのアクティビティ図を元にユースケース図を作成することにする。

*1:個人的な見解としては、ドメイン分析というものを私は信用していない。開発初期において不変なものは目的だけであり、ドメインの範囲は増減する可能性がある。初期にドメインを決めてしまうことによって見落としが発生することを考えると、重要視すべきは目的分析であって、ドメインについては確認程度に留めておくべきではないだろうか。

*2:近代経済学において国民は労働者であると同時に資本家(消費者)であるが、マルクス経済学において国民は労働者であり常に搾取される。○経の連中もロールを使って分析していれば、早々に馬鹿な考えから脱却できたであろうに(w