設計書や仕様書などのドキュメントが十分に整備されていないシステムについて,その利用や改修を行うためにソースコードの解析,ドキュメントの整備を行う場合,目的によっては必ずしもシステム全体を解析する必要がない場合も多い.課題に対してシステムの必要な部分のみを解析するといったことは,実務ではよく行われるが,その具体的な手法について体系的にまとめられたものはなかなか見受けられない.本稿では,公的年金財政検証プログラムを対象として,いかにして短期間でソースコードの解析を行い,プログラムの改修を行ったかについて,その実践事例を示す.設計書や仕様書を網羅的に作成するのではなく,目的に合った解析を集中的に行うことで,プログラム解析の工数削減を行うことができた.

1.はじめに

 長期にわたって運用されているシステムでは,設計書や仕様書などのドキュメントが十分に整備されておらず,ソースコードを解析しながら利用・改修している場合が多い.そのため,ソースコードを自動的に解析して設計書を生成するためのソフトウェアやそのようなサービスも多く提供されている.しかしながら,実際には,システム全体についての解析は必ずしも必要でないこともあり,その場合,ブラックボックス化しても問題ないモジュールと詳しく解析すべきモジュールを区分した上で,後者にリソースを集中する方法は極めて有効である.

 厚生労働省の公的年金財政検証プログラム(以下,「財政検証プログラム」と呼ぶ)は,そのソースコードがすべて公開されており,前提条件を変更した場合の試算などを理論的には実施することが可能である.しかしながら,ソースコードのみが公開されており,設計書や仕様書,利用手順等は公開されていない.さらに,前提条件の変更にはソースコード自体にも手を入れる必要がある.そこで(一社)年金綜合研究所では,財政検証プログラムを解析し,主に研究者を対象として,研究ニーズに合ったより利用しやすいツールを開発することを目指した研究会(年金財政シミュレーションツール開発研究プロジェクト)を2013年4月に発足させた.筆者らは,この研究会にシステムの専門家として参加しており,プログラムの解析と機能追加のための改修を主として担当している.この公開されている財政検証プログラムは,まさに,「設計書や仕様書などのドキュメントが十分に整備されておらず,ソースコードを解析しながら利用・改修している」典型例となっている.この年金財政シミュレーションツールの機能については,稲垣,小澤,寺西,日隈,石田[1]が発表しているが,そのためのソースコードの解析やドキュメントの整備方法といった実務については触れていない.

 本稿では,このツールの作成過程において,いかに財政検証プログラムの全体像を把握し,詳しく解析すべきモジュールを抽出・解析して短期間での機能追加のためのプログラム改修にこぎつけたか,システムの専門家の視点からその手法について述べる.第2章では,財政検証プログラムの概要と特徴を示し,第3章では,具体的なソースコードの解析方法について述べるとともに,作成したドキュメント類を示す.最後に,第4章において,この方法論に関する評価と類似の他業務への応用などについて考察する.

 以降,財政検証プログラム全体を「プログラム」,5つのパートに分かれている各部を「サブシステム」,各サブシステムに含まれる関数やサブルーチンを「モジュール」と呼ぶこととする.

2.公的年金の財政検証プログラム

2.1 公的年金の財政検証とは

 昨今,少子高齢化の進行する社会において,公的年金に対する不安感は大きく,若い人の間では,自分は将来十分な年金を受給できないのではないか,あるいは年金制度が破たんするのではないかなどといった懸念が広まっている.こうした懸念を払しょくし,公的年金制度を健全に運営していくことは政府としての責務であることから,公的年金制度を所管している厚生労働省では,5年ごとに公的年金に関する財政シミュレーションを実施し,長期的な財政の持続可能性の確認を行っている.これを「財政検証」と呼んでいる.

 この財政検証を行うプログラムは,複雑な年金制度を反映し,複雑で大規模なものとなっている.我が国の公的年金制度は,基礎年金と報酬比例年金からなる2階建ての仕組みであり,職業によって加入する制度が異なっている.具体的には,厚生年金保険のほか共済組合や国民年金など多くの制度に分かれており,年金の給付要件や年金額の算定式,保険料水準なども多様である.これらの制度は,基本的には一元化される方向ではあるが,過去に存在していた制度における加入状況が将来の年金額に反映されること,制度間での財政調整の仕組みも存在することなどから,財政検証のためのシミュレーションでは,数多くの種類の入力データに基づいて,複雑で大規模な計算を行う必要がある.

 このプログラムはかつては公開されていなかったが,年金制度の研究者の間にあった計算結果に対する不信感を解消する観点などから,だれでも計算が再現できるよう,2004年財政再計算から一般に公開されるようになった.直近の2009年財政検証のためのプログラムのソースコードと基礎データは,Webサイト上[2]に公開されている.また,いわゆる設計書や仕様書は公開されていないが,財政検証の計算手順の概要や主要な計算式などは,「平成21年財政検証結果レポート」[3]としてまとめられている.しかし,厚生労働省の検証結果の再現は可能であるが,入力データや出力データの仕様が不明であることなどから,前提条件を変更したシミュレーションの実行や,出力結果の検証をするなどといった,研究者が望むような利用しやすいプログラムにはなっていない.