年金をシステム設計的に考える(4)
前回までのあらすじ
年金の目的が「老後の収入確保」であることを確認したことにより派生的に発生した、そもそも「老後の収入確保」に意味はあるのかという点を確認した。今回よりこれを踏まえたうえで、本連載の本筋である年金制度の業務分析に入る。
年金の業務分析
ここからは本連載のタネ本となる「コンサルタントになる人のはじめての業務分析」を元に話を進めていく。ただし、この本で扱われるのは実際のシステム化にあたり行う業務分析であり、ここまで詳細に行う必要は無いものと考えている。基本は踏まえながら、一部ばっさりと省略を行うので、その旨ご容赦いただきたい。
ドメインの定義
近年のオブジェクト指向分析系の本を読むと必ず出てくるのが、このドメインである*1。本連載では、当初から「年金」について書くと言っているので悩む必要はなく、年金がドメインである。ただ、このドメインとしては公的年金を意味するものとし、基本的には私的年金は含めないものとする。私的年金は、加入者が自由に選択するものであり制度がどうあるべきかなどどうでもいい話である。ただし、国家による業務委託のような場合には、当然ドメインの範囲に入る。
業務の抽出
年金における業務としてはどのようなものがあるだろうか。現在の年金業務を以下にざざっと書き出してみる。
- 社会保険庁が国民にお金を請求する
- 国民が社会保険庁にお金を納付する
- 社会保険庁は年金収支、残高などの管理をする
- 社会保険庁は年金資金運用基金に運用を委託する
- 年金資金運用資金はお金を運用する
- 社会保険庁は国民にお金を給付する
- 政府は年金不足額を補填し社会保険庁に渡す
業務という切り口で見ると年金制度もそれほど複雑ではないことがわかる。
ロール(役割)の抽出
次にロールの抽出である。
他のオブジェクト指向分析の本を読まれた方なら「あれっアクターじゃないの?」と思うところである。以前に書いた通り巷に出回っているオブジェクト指向分析の本にはいろいろ問題があると思うわけだが、これもそのひとつである。件の本にも書かれている通り、登場人物をロール(役割)という一段抽象化して考えることにより「その人物がその業務において担当している行為」が明確になるのである。逆にロールを考えないことにより、不適切な分割が行われる可能性もある。
年金業務においても、国民は納付と給付という二つの役割を担っている*2。このような観点からロールの抽出を行うと以下のようになる。
アクティビティの抽出
アクティビティの抽出はロールの抽出に比べれば簡単である。抽出した業務の動詞句部分を抜き出せばよい。
- お金を請求する
- お金を納付する
- 年金収支、残高などの管理する
- 運用を委託する
- お金を運用する
- お金を給付する
- お金を補填する
アクティビティ図の作成
ロールとアクティビティが抽出できたら、成果物としてアクティビティ図を作ることができる(画像をクリックすると拡大します)。
アクティビティが増えとるじゃないかというというご意見もあろうが、それが図を書く意味というものである。図示することによって、本来そこになければならない行為が自然と洗い出されてくるのだ(言い訳)。
次回はこのアクティビティ図を元にユースケース図を作成することにする。