netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2003-12-15 古い日記からの変換データ [長年日記] ▲
_ 論文 ▲
APSEC2003 の proceedings を見せてもらったのだが,今回は,読みたいと思うものが少ない.
Jun Han and Ksze Kae Ker:Ensuring Compatible Interactions within Component-based Software Systems,Proceedings of APSEC 2003, pp.436-445 (2003).
インタフェース定義として Rich IDL を使って,それに加えてコンポーネントごとのメソッド呼び出し順序などの規定を記述する言語を追加している.たとえば COMPONENT Account { setupAccount BEFORE (deposit, withdraw);} といった感じ.で,この記述から eFSM を作って実行時にテストしてやろうというもの.
FSM で実現する場合,コンポーネントの「状態」が問題になるが,現実にはインタフェースには状態は現れてこないので,制御に関する条件のほうがユーザには分かりやすい,と言っている.
基本的に記述はあるコンポーネント単体に対して行う(他のコンポーネントに対する条件は限定的にしか記述できない).そのかわり,コンポーネント単体だけで適用できるようになっているので,すべてのコンポーネントに仕様を書かなくても,書いた場所だけチェックしてくれるので導入はしやすい.
_ 論文 ▲
メーリングリストに流れてたので拾ってみた.
Bruno Dufour, Christopher Goard, Laurie Hendren, Clark Verbrugge, Oege de Moor and Ganesh Sittampalam:Measuring the Dynamic Behaviour of AspectJ Programs.Sable Technical Report No. 2003-8 (2003).
AspectJ プログラムの動的メトリクスとして,従来から利用可能な
・実行時間
・実行されたバイトコードの命令数
・ロードされたバイトコードサイズ
・確保されたメモリ
に加えて,AspectJ 独自のメトリクスとして
・Tag Mix(実行されたバイトコードが,Javaコード,AspectJコード,CFlow の準備,アドバイスの実行条件のチェックなど,どの種類に属するかという比率を調べる)
・アドバイスの実行条件のテスト回数 (そのうち常に成功しているものや常に失敗しているものの割合)
・コードのカバレッジ(ロードされたうち実行されたバイトコードのサイズ)
を定義している.いくつかのアプリケーションを実行して,これらの値を計測しているのだが,cflow や args などがアスペクトのオーバーヘッドのかなりの割合を占めている様子.
これらはあくまでパフォーマンス上の話のことで,期待していたような実行時の複雑度の話とかではなかった.残念.