netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-05-24 [長年日記] ▲
_ [論文] コードの使い方の例を見つける ▲
Reid Holmes and Gail C. Murphy: Using Structural Context to Recommend Source Code Examples.
Proceedings of International Conference on Software Engineering 2005, pp.117-125, May 2005.
フレームワークなどを使うときには開発者が適切な順番でクラスのインスタンス化や準備用メソッドの呼び出しを行う必要があるが,それを調べるのはけっこう大変なので,自動でコード片を探してこようというもの.
基本的には,開発者が書きかけのコード片から,使っているクラスやメソッド名を取ってきて,リポジトリ内にあるメソッドが使っているクラスやメソッドとマッチを行うというもの."Structural Context"という響きにちょっと期待したのだけど,特別なものではなかった.
呼び出す相手のクラスやメソッドは分かっていても,そのインスタンスをどこからもらってくるといいのか分からないときなどに使える.
Eclipse を実験相手にして,与えたタスクは一通り実現されたらしいが,適切な例が見つからないものもあった.ただ,それがマッチさせる基準の問題なのか,そもそも例がなかったのかは不明とのこと.
動機の部分(フレームワークを,ドキュメントなどをもとに正しく使うのはけっこう大変というあたり)は別のところで使いそう.
_ [論文] 動的なロールのバインディング ▲
Tetsuo Tamai, Naoyasu Ubayashi, Ryoichi Ichiyama: An Adaptive Object Model with Dynamic Role Binding.
Proceedings of International Conference on Software Engineering 2005, pp.166-175, May 2005.
複数のオブジェクトが相互作用するための "Context" というオブジェクトを作って,Context の中に定義された各 Role に対してインスタンスを割り付けると,Role に定義されているメソッドが使えるようになるというもの.
メソッド名のバインディングや,Role を担当するインタフェースへの require などの要素もあるので,一般的なアスペクトの逆で「オブジェクトから明示的にバインドされて使われるアスペクト」として,しっかり作られたモデルという印象.
コンテキストのインスタンス数がコントロール可能で,インスタンスごとにバインディングの設定が可能で,クラス側ではなくコンテキスト側の再利用が容易となっている(AspectJ や Caesar のように抽象アスペクトと具象アスペクトを区別しなくてよい).ちょっとコーディング上の工夫をすれば,Association Aspect でやりたいと思った Role の1対N関係などの管理なんかもできるかも?
_ [hyCalendar]六曜表示モジュール ▲
六曜計算ライブラリの再配布の許諾がいただけたので,セットでの配布開始.