netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-03-21 久々にプログラムを書く. ▲
_ [hyCalendar]Towards 1.0.1 ▲
ヒントウィンドウの多重ポップアップの実装途中で放り出していたのを久しぶりにつついてみる.何をどこまで実装したかがテストケースしか手がかりがなかったりするあたり厳しい.
2007-03-21 ▲
_ [論文] ほぼコピーのコードでも変種が存在する ▲
Magiel Bruntink, Arie van Deursen, Maja D'Hondt, Tom Tourwe: Simple Crosscutting Concerns Are Not So Simple - Analysing Variability in Large-Scale Idioms-Based Implementations.
Proceedings of AOSD 2007, pp.199-211, Vancouver, BC, Canada, March 2007. [ACM site]
コードクローンの情報をアスペクトとしてくくりだそうとしていた人たちの研究です.
ロギング(いわゆる実行トレース)のコードが各メソッドの先頭に埋め込まれていたので,それを抽出して,どのくらい,どんな変種があるかを調査しています.
その結果,「いつ,どこでトレースを取るか」はちゃんと決まっていたにも関わらず,文字列型以外のパラメータを文字列に変換する部分に明確なガイドラインがないために変種が出現していた,と指摘しています.ポイントカットは分かっていても,アドバイスに相当する処理が違うので,単純にアスペクトに括り出すわけにはいかなかったようです.
変種を調べるにあたっては,変数名と関数名を使っての concept analysis を使っています.極端なペアの偏りがあった場合は,accidental な変種ではないかと判断していたようです(プレゼンを聞いてた限りでは).
「広範囲に分散したコードほど共通コードでの括り出しが難しくなる」というのは,当たり前といえば当たり前なんですが,アスペクトマイニングおよびコードクローン系の研究では参考になると思います.