« 【感想】Kansai.pm 第1回Perl翻訳フェスタ | トップページ | Ruby関西はかなり甘口です »

2006/06/18

【感想】SEA Forum in Osaka~アスペクト指向技術は実用に使えるか

 「SEA Forum in Osaka~アスペクト指向技術は実用に使えるか」セミナーへ行ってきた。
 和気藹々、そして白熱したパネルディスカッションもあり、面白かったー。

 2年前に刺激を受けたAspectセミナーでは、アスペクトは非機能要件でしか使えないという話だったが、技術は確実に進んでいた。

【1】Aspectを使うコツはポイントカットにある(増岡さんの講演から)

 東大の増岡さんの講演は、初心者向けのお話で、例が多くて分かりやすかった。
 その中で、before, after, aroundなどのアドバイスを図形エディタで使ったサンプルを良く見ると、メソッド呼び出しのタイミング(ポイントカット)に制約をつけるのがキーだった。
 cflowのようにメソッド呼び出しスタックの履歴を使って、メソッド呼び出し先に他のメソッドが呼ばれているかチェックできる例もあった。

 後のディスカッションでも、ポイントカットの研究は盛んで、メソッド呼び出しの実行履歴からアドバイスを制御する研究もあるらしい。

 ポイントカットを使った他の例として、関数呼び出しのルールをアスペクトで書くツールの紹介もあった。
 FindBugsとかLintみたいなものかな。
 こういうツールは品質を高めるのに使えそう。

【2】アノテーションを使えば、Aspectをより簡単に使いこなせる(山根さんの講演から)

 ポイントカットを書く時に、どのメソッド呼び出しを制御するか、というために、メソッド名を正規表現でマッチするものを選択する手法しか今までなかった。
 だから、フレームワークのように、将来のシステムでも修正作業が閉じていないシステムではリスクがあると言う問題があった。
 アノテーションを使うと、メソッド名にタグ付けすることによって、ポイントカットするメソッドを特定できるようになるので、より安全にAspectを使えるという話。
 この手法は、Javaだけでなく、C#でも使えるね。

【3】Aspectの思想は、SoftwareProductLineに通じる

 パネルディスカッションで、小林さんが、Aspectとソフトウェアプロダクトラインに関連があると指摘した点は非常に興味を持った。
 どうやら、メソッドの振る舞いに着目するアスペクトと、ソースの変化に着目するソフトウェアプロダクトラインは動機こそ違う。
 でも、オブジェクト指向のようなクラス単位ではなく、フィーチャーという構造化設計のような機能単位で機能を切り出す点が似通っているようで、AOPとソフトウェアプロダクトラインを組み合わせた研究も韓国の研究者がやっているらしい。

 関西のIT業界は、組み込み系技術者が多い。
 その組み込み系プロジェクトでは、製品ごとに機能を少しだけ変えるプロジェクトが多い背景から、ソフトウェアプロダクトラインに興味を持つ人は多い。
 アスペクト志向をそんな視点から考える発想はすごく刺激的だった。

 アスペクトにしてもソフトウェアプロダクトラインにしても、プログラムの再利用について、一つの解決方法を提示している。
 この2つの話はちょっと目が離せないな。

|

« 【感想】Kansai.pm 第1回Perl翻訳フェスタ | トップページ | Ruby関西はかなり甘口です »

日記・コラム・つぶやき」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 【感想】SEA Forum in Osaka~アスペクト指向技術は実用に使えるか:

« 【感想】Kansai.pm 第1回Perl翻訳フェスタ | トップページ | Ruby関西はかなり甘口です »