«前の日記(2005-03-23) 最新 次の日記(2005-03-25)» 編集

netail.net

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

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


2005-03-24 AOSDの論文読みはまだ続く… [長年日記]

_ 失敗知識データベース

「失敗学」で前から知られていた失敗知識データベースが,一般公開された.URLはhttp://shippai.jst.go.jp/.情報系の事例はあまり多くない.「動かないコンピュータ」は日経で特集されるくらいいっぱいあるらしいけど,こういうデータベースに載るようなものはさすがに少ないか.

_ [論文] データ構造の一貫性検査のための横断的性質記述

Patrick Lam, Viktor Kuncak, Martin Rinard: Crosscutting Techniques in Program Specifications and Analysis.

Proceedings of AOSD 2005, pp.169-180, Chicago, Illinois, March 2005.

データ構造の一貫性を検査しようとすると,一般的には手続き単位での事前条件・事後条件などを記述することになるが,そうした場合に,手続きの条件が,その中で使っている手続きの事前条件や事後条件を含まないといけなくなり,同種の条件があちこちに散らばっていき,スケーラビリティを失ってしまう,らしい.

問題解決のためのアプローチとしては,Listに参加するNode型はnextとprevを持つ,といったデータ構造用の変数をListモジュール自身が保持しておき,Node型の実体としてCellクラスを使うと宣言した時点でCellにNode用のデータ構造が自動追加される,というった感じに見える.

同じオブジェクトが複数のデータ構造に参加している場合に,データ構造単位で検証を行える(対象オブジェクト内に複数のデータ構造の情報が混ざらない)のが利点といえるか.

_ [論文] Adaptive Programming用のJAsCo拡張

Wim Vanderperren, Davy Suvee, Bart Verheecke, Maria Agustina Cibran, Viviane Jonckers: Adaptive Programming in JAsCo.

Proceedings of AOSD 2005, pp.75-86, Chicago, Illinois, March 2005.

動的AOPの実装であるJAsCoでは,Aspect Beansとして,フックをかける対象(pointcut)をパラメータとして受け取れるような機構を持っていて,実際にどのようなインスタンス・メソッドが処理対象となるかをconnectorとして定義するらしい.また,アスペクト内部からクラスへのアクセス用のメソッドを,"refinable" としておくことで,後で適用先のクラスにあわせて定義を差し替えることができるようにしている.

で,これに traversal connector という新しいタイプのconnectorを導入して,AspectJ Pointcut 系の定義ではなく Adaptive Programming の "visiting" 系の定義を受け取れるようにしました,という話らしい.どちらかというとAdaptiveなvisitorを便利に使うためにJAsCoの既存のconnector枠組みを使っている,というほうが正しいのかもしれないが.

記述を便利にするという話はいいけど,開発者はどこまでプログラムの複雑さを管理できるんだろう.可読性とかも謎.Generics+メタデータ+AOPの連携のおかげで,最近,急に使えるテクニックが増えているような気がする.

_ [論文] QoS管理のためのアスペクト

Aleksandra Tesanovic, Mehdi Amirijoo, Mikael Bjork, Jorgen Hansson: Empowering Configurable QoS Management in Real-Time Systems.

Proceedings of AOSD 2005, pp.39-50, Chicago, Illinois, March 2005.

システムのQoS管理をアスペクトとして分離したというケーススタディな論文.QoS管理パッケージをアスペクトで書いて,無事QoSの目標を達成できたらしい.が,アスペクトとして分離するほど構成管理や再利用は容易になるが保守はしにくい,といった話を引用することになる,かも?

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