«前7日分 最新 次7日分» 追記

netail.net

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

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


2003-02-26 古い日記からの変換データ [長年日記]

_ 卒論

先生が忙しいので,かわりに卒論の添削作業.やっぱり論文を初めて書くだけあってか,論説文っぽい感じに陥ってしまっているのでばしばし直す.

自分の論文もこうやって直せないようではダメなんだろうなぁ,と思って自分の投稿用論文も直してたら,この作業だけで1日が過ぎ去ってしまった.


2003-02-24 古い日記からの変換データ [長年日記]

_ AspectJ

AspectJでは,配列変数に対する set(array) の定義はarray[i] = hoge;には反応しないらしい.get(array)だけが動作する.ということは,配列の中身への代入はAspectJ ではトラップできないのかなぁ.

_ 読書

ダシール・ハメット「マルタの鷹」,アン・マキャフリィ,パーンの竜騎士6「竜の太鼓」を読了.

未読本入れにはまだあと9冊.しばらく消化に専念といいたいところだが,紅茶が切れそうなので,それを補充に行くついでに次の本を買ってしまいそうだ.


2003-02-22 古い日記からの変換データ [長年日記]

_ 論文

何となく検索してたら見つけた論文.

Doug Palmer: "Dynamic Aspect-Oriented Programming in an Untrusted Environment"

動的アスペクトの世界(JACなど)では,特に分散環境の場合,アスペクトが信頼できるかどうかが重要となる.

で,アスペクトを Wrapper として考えたとき,External Wrapper (事前・事後条件と関係ない)とInternal Wrapper (事前・事後条件を維持する)に分類できる.

External Wrapper はアクセス制御アスペクトなど,メッセージを握りつぶすようなものでもよい.なお,Internal Callに対しては External Wrapper は動作しない.

各メソッドに,事後条件を定義しておくと,Internal Wrapper の終了時点で事後条件を検査し,違反していたら処理をロールバックするような仕組みを導入する,(この処理そのものは Validator アスペクトがやる)というもの.考え方としては妥当な気もするが,Wrapper がInternal かExternal かを決めるのは誰の仕事なんだろう.また,悪意あるExternal Wrapperなんかはどうやって対処するんだろう.ディジタル署名とかかなぁ.いちおう,変なinternal wrapperのせいで振る舞いが壊れる可能性は検出できるのかな? 6ページの短いpaperで実験的な評価がないので詳細は不明.

_ 論文

先の論文で関連研究として挙げていたものは次のとおり.

Software Reconnaissanceテストケースを複数用意して,あるfeatureを「使っている」ケースと「使わない」ケースを用意して,その実行時の違いから Concept Analysis を行う.

BEE++: C++ベースの,分散システムの動的解析フレームワーク.アプリケーションのどこを解析するかは手作業で指定.

ATOM: プログラム解析ツールを作るためのフレームワーク.オブジェクトファイルレベルで行うので,ソース情報は取れない.

Form: 実行時情報取得ツール.実行時のデータからコールグラフを構築する.JVMPI で実装しているので,詳細な情報までは取れない.

_ 論文

久々に論文読み.Thomas Gschwind, Johann Oberleitner:"Improving Dynamic Data Analyhsis with Aspect-Oriented Programming"To appear in Proccedings of the 7th European Conference on Software Maintenance and Reengineering, March 26--28, 2003, Benevento, Italy, Europe

プログラムの実行時解析で,現在利用可能な方法には次のような問題がある.

- トレースを実行するまでに色々手間がかかる.

- トレースをオブジェクトごとに有効にすることができない

- 特定インスタンスやメソッドごとに指定することができない.

- 引数などへアクセスできない.など.

で,筆者らはARE: A Reverse Engineering tool というものをAspectJ を使ってARE の解析モジュールを作成している.AspectJ の利点は,細かいアクセスが設定できること.ここから,オブジェクトごとのアクセストレースを作れる.具体的には, before() call と after() call を使う.

利点は,

- アスペクトは自動的に組み込まれる.

- AspectJ は JIT をオフにしなくてよい(JVMDIに比べて有利).

- Join Points からソースコードへのマッピングが取れる.

- 呼び出しのときの引数へのアクセスや,インスタンスの識別ができる.

- 開発者が対象のソースコードを読まなくてもよい.

- リフレクションを使っていても大丈夫.

- 引数などの情報も取れる.

- 余分な情報をフィルタリングできる.

- 利用が簡単.

動的解析をして,インスタンスを識別したシーケンス図のようなものを作っているだけで,静的解析との組み合わせは将来の課題としている.

やはり,同じことを考える人はいるらしい.


2003-02-21 古い日記からの変換データ [長年日記]

_ LaTeX

LaTeX で,表の幅がどうしても広くなってしまう.横方向の位置を指定する lrc のかわりに列幅指定の p を使うと位置指定ができない,と困っていたら,表のセルの中で makebox{幅}{文字列} としていればよかったらしい.

_ Libretto

Librettoを他人に譲渡すべく,ひたすらアンインストール作業.Visual Studio, Office XP, Acrobat, Al-Mail, ...

でも,意外なことに,OS が不安定になったりしないのね.さすが Windows 2000 というべきか.昔は,体験版アンインストールしても ini ファイルにごっそり情報が残ったり,動作がすごく不安定になったりしていたのに…….

_ AspectJ

AspectJ1.1に向けて,SourceLocation.getColumnがdeprecated指定になってしまっていた.バイトコードには行番号は保存されるが,Columnは保存されないので実装できない,ということらしい.まあ,普通は使用しないので問題ないのだが,プログラム解析に利用していた人にとっては痛いかもしれない.


2003-02-20 古い日記からの変換データ [長年日記]

_ 買い物

東急ハンズにクッションカバーを買いに行ったついでに,「わさびチョコ」15入り300円を購入.ポムの樹 心斎橋店で お好み焼き風オムライスを昼食に食べて,おやつは なんばウォークで たいやきのバナナクリームといちごクリーム.

そして,梅田に戻ってから阪急三番街の東方茶藝館へ.香港コーヒーなるものを飲んだ.コーヒーと紅茶が混ざったような味だなーと思ってたら,本当に混ぜたものだったらしい.http://www.coffeehouse.co.jp/coffee/resipi/06.html


2003-02-19 古い日記からの変換データ [長年日記]

_ ネジ

ネジをつぶしてしまったので,ANEX(株式会社兼古製作所)"なめたネジはずしビット"http://www.kouguya.com/anh-065.htmでネジをはずした.ドリルで穴を開けるという単純な機構な分,効果は抜群.

今後はネジをつぶさないようにするために,精密作業用ドライバーもついでに購入してみた.

_ AspectJ

AspectJ本の二冊目が出るらしいので,その情報をサイトに追加.AODP (アスペクト指向によるデザインパターン実装)の話とかも扱われているという噂だが,どうなんだろう.研究室で買ってもらおうかなぁ.


2003-02-17 古い日記からの変換データ [長年日記]

_ 修士論文

修論発表終わり.発表した本人としては反省点が色々だが,後で人の意見を聞いた限りでは,それなりに悪くはなかったらしい.

アブストラクトに得られた知見が書かれていないと指摘を受けたので,それを直すことにする.

「アスペクト指向プログラムをデバッグする際に必要なのは何だと思うか?」と聞かれたが,果たして何だろう.オブジェクト指向をデバッグするのに必要なのは何だろうか…….哲学的な問題に踏み込みそうだが,考えてみると面白そうだ.