netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-04-20 [長年日記] ▲
_ [論文] アスペクトの処理をベースコードと一緒に読むエディタの提案 ▲
やはり時間は経過したけれど,SPLAT 2006 の論文からいくつか面白かったものを整理.
Michael Desmond, Margaret-Anne Storey, Chris Exton: Fluid Source Code Views for Just In-Time Comprehension. Proceedings of SPLAT 2006.
あるソースコードを読んでいるとき,そこから呼び出しているメソッドの中身や,実行されるアドバイスの中身が気になることがあるので,最近の開発環境で使える「メソッドの折りたたみによる非表示化」の逆で,メソッドの中身やアドバイスの中身をその場(メソッドならその呼び出し文の直後とか,アドバイスが動く場所)に展開してソースをまとめて読めるようにしよう,というもの.多態性については,複数の候補のどれを見たいか選んだりする.
複数のエディタ,あるいは1ファイル内の複数の場所をあちこち移動しているうちに本筋の処理を見失ってしまうことがあるので,その手間を省こう,というのがコンセプトのようで,アイディアとしては面白い.
この手法の弱点(かもしれないもの)として指摘されていたのは,「あまり調子に乗ってコードを展開しすぎたり,展開先のコードが100行以上あったりしたら,本来の処理が何だったか分からなくなりそう」というもの.展開した状態を保存・再現したり,エイリアス解析を使って多態性の解決を自動化したりとか,実装上はかなり工夫の余地がありそう.発表してた人とも少し話してみたら,いくらかアイディアは持ってるみたい.個人的には,プログラムスライシングとかの適用結果の出力方法として使えそうなので,有望そうな情報表示方法の1つとして参考文献入りにしておく.
それから,別の人が「アスペクトはコードの挿入ではないので,そういう表示方法だと,誤解を招くことがあるのではないか」といった指摘をしていた.分かるような分からないような.
_ [論文] 小さな単位でポイントカットを定義したほうが再利用性がよくなる(かもしれない) ▲
Bert Lagaisse, Wouter Joosen: Decomposition into Elementary Pointcuts: A Design Principle for Improved Aspect Reusability. Proceedings of SPLAT 2006.
アスペクト内でポイントカットをいくつも定義するとき,AかつB,A’かつB,A”かつB,といったようによく似たポイントカットがたくさん登場するので,アスペクトを継承して子アスペクトでポイントカットを使いまわすときにはAとBは個別に名前付きポイントカットとして定義しておいたほうが実は再利用しやすく便利になる,という話.
「1つのイベントに1つの名前」というのは,「1つのメソッドは1つの仕事」という概念に近いのではないか,というような賛同意見が出ていた.個人的にも,構文ベースで選択されるジョインポイントに,早めに名前をつけて意味を与えたほうが変更の波及を防げる気がするし, 分割するよりは統合するほうが簡単なので(AかつBというポイントカットに新しく名前をつければ良い),もしかしたら将来的には当たり前のデザインになっているかもしれない,と思ったりする.