netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2004-12-31 古い日記からの変換データ [長年日記] ▲
_ [論文]動的アスペクトマイニングへの静的情報の付与 ▲
Silvia Breu:Towards Hybrid Aspect Mining: Static Extension to Dynamic Aspect Mining.1st Workshop on Aspect Reverse Engineering.
実行履歴から呼び出しパターンを解析するアスペクトマイニングでは,メソッド呼び出しが全部具象クラスになってしまって,クラスAとBが継承関係にあるときにA のメソッド実行と B のメソッド実行の関連情報が落ちてしまう.
そこで,呼び出し文で使っている型,あるいは親クラスへクラス情報だけを書き換えた状態でマイニングしたらどうか,と考えているらしい.パターン認識のコストはちょっと上がるだけで済みそうだが,効果は不明.
_ [論文]コードクローンでのアスペクトマイニング ▲
Magiel Bruntink:Aspect Mining using Code Clone Metrics.Workshop on Aspect Reverse Engineering.
エラー処理,動的実行トレース,関数のパラメータチェック,メモリ確保の4つが主な横断的関心事であるとして,コードクローンを取得して,クローンクラス全体のコード量と分散している関数の個数の積でランキングをとって,上位20件を調べるという実験をしている.
結果としては,上位に入ったクローンクラスで上記の4つを含んでいるものは見つけられたらしい.ただ,1個のクローンクラスで特定の Concern に関するコードを全部カバーできるというわけではなく,複数のクローンクラスのを合わせてみないと分からない.
また,エラー処理(エラーコード変数の初期化〜設定など)は他のメイン処理にあたる初期化処理なども含んでしまって,そう簡単にアスペクトとして抽出できるというわけではなかったらしい.
今のところ,それらしいコードを見つけることはできても,分離して役立つコード,分離できるコード,という基準が明確でないところが微妙.
_ [Delphi]RichEdit の Protected 属性 ▲
TRichEdit には一部領域の編集を防ぐ Protected 属性が付加できるのだが,一度 Protected をセットすると解除してよいかどうかを OnProtectChange イベントで許可を出す必要がある.
クリップボードへのコピーなど変更を伴わない作業も保護されてしまうので,いくつかの特定の処理中(e.g. cflowbelow(LoadFromFile), cflowbelow(CopyToClipboard)) だけは許可を出す,というのでモジュールレベルのフラグ管理だらけになりつつある.
cflowbelow などよりももうちょっと抽象的な「今何をしているか」をシステム自身が認識できれば少しはまっとうに解決する?