netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2004-05-20 古い日記からの変換データ ▲
2005-05-20 ▲
_ [授業] ゼミ ▲
3人発表で,みんなUSBメモリを持ってきてた(1人はMP3プレーヤだったけど).メディアとしては,フロッピーよりも一般的になってきた感がある.
来週は学科の各研究室の研究内容紹介らしいので研究室には来なくていいよーという告知を出して,あとはあんまり指摘することもなくあっさり終了.
今回登場した謎の訳語は,利害関係者の意味でのstakeholder → 弁護士.辞書の1つに,係争物保管人という意味の後ろに「(普通, 弁護士)」と書かれていた.そこから出てきたのかもしれないが.不思議.
_ [論文] デザインパターンを使っても欠陥が入りにくくなったりはしないみたい ▲
Vokac, M.: Defect frequency and design patterns: an empirical study of industrial code.
IEEE Transactions on Software Engineering, Vol.30, No.12, pp.904-917, Dec. 2004.
ざくっと目を通しただけだが,デザインパターンは良い設計の再利用で,良い設計ならバグが入り込みにくいはず,本当にバグが少ないかどうか調べてみよう,という調査を行った論文.
対象システムは1つなので,さすがにあまり強い結果でもなく,デザインパターンによっても傾向が違って,実はあまり影響なさそう?ということが分かった,くらいか.
2006-05-20 ▲
_ [ツール] bddbddb 使ってみました ▲
解析ツールは,joeq_core として別途配布されているので,bddbddb-full.jar だけ取ってきても Java 解析はできません.基本的に cvs を使って bddbddb と関連パッケージを一式 Eclipse に取り込んでから使うという形式が正しいみたいです.
Java バイトコードを解析ツールに食わせるとコールグラフと bdd ファイルが生成されます.コールグラフ自体,多態性を解決できる範囲で解決されているので,これ単体でもけっこう便利そうな印象.
出力された bdd ファイルに対して points-to set analyzis の datalog ファイルを与えるとそれなりに動作します.ただし,bddbddb が依存するパッケージ javabdd をちゃんと用意することと,例として配布されてる datalog ファイルそのままだと微妙なエラーが出たりするというところは,ちょっと厄介です.
また,bdd 1個はリレーション(リレーショナル代数でいうところのリレーション)を表現しており,bdd エンコードされたものを tuple のリストに変換して,tuple に入ってる整数値が意味する中身を map ファイルから探してくることで,中身のデコードができます.ただし,context-sensitive な解析結果などは,コンテキストの数が多すぎてデコードできませんが.何に使うかちゃんと決めて,できる限り datalog で処理をして,最後にデコードしないと役に立たないようです.
この辺の使い方については,あとで文書としてちゃんとまとめます.
ちなみに,メモリは512MBくらいは割り当てないと,厳しいようです.でも,小規模なプログラム(ライブラリ含めてメソッド数1万程度)ならノートPCでも数分で処理が終わるので,そんなに負荷は高くないといえるかもしれません.処理用の別PCがほしくなるくらいには負荷がかかりますが.