Tsantalisというデザインパターン検出ツールが「edubase Stream ソフトウェアパターン第9回ツール活用」で紹介されていた。 Tsantalis デザインパターン検出ツールとは、既存のソフトウェアについて既知のパターンが適用されているかどうかを検出するツール。 既存のプログラムの理解を容易にし、プログラムを修正しやすくなる。 TsantalisはJavaのクラスファイル集合から12のGoFデザインパターンを検出する。 複数のデザインパターンの重ね合わせを扱うことができ、軽快で精度がいい。 割り切れば使える、とのこと。 Tsantalisが検出する仕組みは、対象ソフトウェアをグラフ化し、既知デザインパターンのグラフが含まれるかを判定する。 部分グラフの同型判定問題である。 規模の大きいJavaプログラムを読む時には、試してみる価値がありそうだ。