«前の日記(2006-01-19) 最新 次の日記(2006-01-21)» 編集

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2006-01-20 [長年日記]

_ [論文] AOPで書き直した場合のメトリクス値の変化

Tsang, S. L., Clarke, S. and Baniassad, E.: Object Metrics for Aspect Systems: Limiting Empriical Inference Based on Modularity.

Trinity College Dublin technical report.

ある traffic simulator を改造して,非同期処理とかメモリ管理とかをアスペクトとして実装しなおしたとき,AOPでの実装はOOPでの実装に比べてどう変わってるのか,というのをCKメトリクスに基づいて調べた論文.CKメトリクスはそのままでは使えないので,クラスの数としてアスペクトの数も数える,といった簡単な拡張をしている.

アスペクトによって結合が弱まるけれど,登場人物数は増えるので,CBO (Coupling Between Objects) が大きく減少するかわり WMC (Weighted Methods per Class),RFC (Response For a Class) は増えてしまう.その結果,保守性は大きく向上していたが,WMC と RFC が保守性と理解容易性の足を引っ張る部分がある,と述べている.再利用性は,RFC の影響は受けないと考えられるため向上しており,テスト容易性はほとんど変化がないようだと述べている.

一点,よく分からなかったところは,論文では表を作ってどのメトリクスが保守性・理解容易性・再利用性・テスト容易性のどれに影響を与えるかを示しているが,文章の書き方からして,具体的数値で(たとえば,CBOの減った値に対してRFCの上昇値がどう,とか)向上や悪化を判断しているわけではなさそうなところ.

(追記)An Evaluation of Aspect-Oriented Programming for Java-Based Real-Time Systems Development というタイトルで,ISORC 2004, pp.291-300 に採録されているものがたぶん同じ話だと思われる.

_ [論文] 依存関係を表明として記述

Jackson, D.: Abstract Analysis with Aspect. Proceedings of ISSTA 1993, pp.19-27, Cambridge, MA, USA.

アスペクトといっても,アスペクト指向のアスペクトではなく,筆者が提案している解析手法のこと.要は手続きごとに,出力変数 x は入力変数 y に依存している,といったデータフロー関係を記述することで,それがない場合にはエラーとみなす.これによって,大事な変数の中身を途中で上書きしてしまうといったエラーを検出することができる.

「少なくともなくてはならない」条件を書くだけなので,仕組みとしては単純だし,誤検出なんかは起きない(そのかわり完全な条件ではないので,素通りの可能性はある).実現の方法とか,その辺はあんまり書いてなかったので適当だが.

_ [論文] Aspectual Caml の論文を再び読み直してみた

Hidehiko Masuhara, Hideaki Tatsuzawa, Akinori Yonezawa: Aspectual Caml: an Aspect-Oriented Functional Language.

Proceedings of ICFP 2005, pp.320-330, Tallinn, Estonia, Sep 205.

関数呼び出しが join point なのはいいとして,関数自体が変数に束縛されて違う場所で使われたりするから within みたいな静的スコープのポイントカットの使用がちょっと怖い気がした.

関数型言語的に嬉しくなさそうな副作用を伴う処理を全部アスペクト側に追い出すと,プログラムが簡潔になったりするのかなぁ,と思ってみたり.いわゆる計算方法自体と,入出力系などはまったく違うものだから分けて記述しましょう,という考え方はよさそうな気がするけど….誰かに試してみてほしいような,別にどうでもいいような.

お名前:
E-mail:
右の画像に書かれている文字列を入力してください:
コメント: