コードクローン

今日は和歌山大学で講義。コードクローンがテーマである。システム開発のプログラミング工程において似たようなロジックがあった場合、関数として一元化したりコピー&ペーストで流用したりすることがある。前者であれば保守性は悪化しないが後者の場合元のロジックに問題があった場合修正箇所がペースト先にも及ぶため作業が煩雑になる。理想をいえばプログラム設計の際に類似するロジックを別モジュールとして抽出できれば問題ないが、そこまで厳密にプログラム設計するためには労力・時間が必要でなかなか難しい。
今回はそうしたコピー&ペーストにより派生した部分を抽出しようというものだ。大阪大学の研究室が中心となって開発したCCFinderというツールを中心にして説明する。このツール、CやJavaは勿論だがVBのソースも解析可能となっている。講義の準備段階で自分で開発したVBコード資産を解析にかけてみると見事にコードクローンを見つけてくれた。大小問わずシステム開発の保守性を保つために有益な技術であると感じた。