«前の日(06-15) 最新 次の日(06-17)» 追記

netail.net

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

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


2003-06-16 古い日記からの変換データ

_ Eclipse

本屋にEclipse 関連の本が2冊ほど置いてあったが,どちらも Java 開発環境あるいはチーム開発環境としての側面だけを取り上げていて,プラグイン開発などの話が掲載されていないので,買うのは見送り.もっとも,開発環境の解説としても,いわゆるトラブルシューティングに相当する記事がないと不十分だと思っているのだが.

特に,プラグインが(なぜか)非アクティブになった場合の対処などは説明しておいてほしい.(実際には再起動くらいしか手がないにしても)

まあ,プラグイン開発者としては,IBM の Developers Guide だけがプラグイン開発の説明を含んでいるようなので選択の余地はあまりない.


2004-06-16 古い日記からの変換データ

_ ウィルス入りメールボックスの削除

Norton AntiVirus で,メールボックスが単一ファイルとして作られているとき,その中のメールにウィルスが検出されたときの対処としてファイル削除が選ばれた場合に,(当然)メールボックスが削除されてしまうという悲しい問題が指摘されていた.記事へのリンク

そこだけ無害なバイトコードで埋めるなんてわけにもいかないし.作ったときには誰もそこまで考えてなかったんだろうか…….


2005-06-16

_ [hyCalendar] 基本のウィンドウサイズ

hyCalendar は初回起動時,デフォルトのウィンドウサイズが小さかったせいで,予定を入力しても表示されないんですけど……という質問をいただきました.

次リリースまでに忘れなければ,画面サイズに合わせてもうちょっと良いサイズで出るようにしてみます.いちおう XGA 推奨ということで.

_ [ツール] Python Imaging Library + Cygwin

Python Challenge 用に,Cygwin 上の Python 2.4 で Imaging Library をセットアップしようとしたら,謎のエラー(dll ロード時に gcc が死んだようなメッセージ)が出てしまった.うーむ.

ちょっと検索したくらいでは解決できそうになかったので,素直に Python の Windows インストーラ付きバイナリを使って,Imaging のほうもインストーラ付きを使うことに.

_ [論文] シーケンス図生成向け,静的解析でのインスタンスの区別

Atanas Rountev, Beth Harkness Connell: Object Naming Analysis for Reverse-Engineered Sequence Diagrams.

Proceedings of International Conference on Software Engineering 2005, St. Louis, Missouri, May 2005.

輪講で紹介された論文.

ある1つのメソッドに注目したシーケンス図を静的解析から作るとき,引数や this として渡されたオブジェクトを,定数伝播の手法を使って各参照変数に伝播させ,同じオブジェクトを参照している部分だけ見つけようというもの.スタート地点を決めて処理を行うので,エイリアスグラフを使った解析より簡単?

1つのオブジェクトが多数のインスタンス変数にコピーされるような状況がそうそうあるとは思えないが,手続き間で,引数として参照を渡していく場合には有効そう.


2007-06-16

_ [読書] Why Programs Fail を読んでみました

delta debugging で有名な Andreas Zeller が書いている,デバッグに話題を絞った書籍です.個人的には,これのおかげで delta debugging の考え方をようやくちゃんと理解できたので,良い本だと思います.

この本は,ユーザから観測可能なプログラムの動作不良(failure)から,それが起こるときと起こらないときの差分(cause)を調べ,そして原因となっているコード(defect)を発見する手順について述べています.

failure に至るまでのプログラムの実行を時間-メモリ空間軸(プログラムの状態)平面ととらえて,ブレークポイント,ウォッチポイント,アサーション,プログラムスライシング,ダイナミックスライシング,異常データの検出,不変条件の推定,ロギングなどが,どこを調べるために役立つかを説明しています.

この本では,デバッグのプロセスを TRAFFIC (Track the problem / Reproduce the failure / Automate and simplify / Find infection origins / Focus on likely origins / Isolate the infection chain / Correct the defect) という7つのステップに分解し,これに沿った章構成になっています.各ステップについて,具体例を示しつつ,先ほど挙げたような各種手法のどれをどう使うと良いか,またその手法を実装したツール群を紹介しています.

ツール紹介などの一方で,ソフトウェア工学の論文へのポインタもいくらか入ってます.ソフトウェアの欠陥に関連した用語の定義もしっかりしており,delta debugging やスライシングなどの解析技術についても本文中で丁寧に解説されているので,研究テーマによっては,開始地点としてこの本を使うのも良いかな?と思ったりしています.