netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2002-11-14 古い日記からの変換データ ▲
_ 論文 ▲
OOPSLA 2002 投稿論文のJan Hannemann, Gregor Kiczales:``Design Pattern Implementation in Java and AspectJ''に目を通す.GoF のデザインパターンを AspectJ で実装したらどうなったか,という報告論文.
いくつかのパターンは Aspect で記述したことでモジュール性が向上しているのだが,特に効果が出なかったパターンもいくつか.デザインパターンを使う際の参考になりそう.
_ Grammar Expert Plus ▲
英文を添削するために導入した文法チェッカ Grammar Expert Plus の試用期限が来てしまう.Word などのスペルチェッカに比べると使ってる情報が多いので単数・複数形や動詞の変化形などをちゃんと見てくれるところが嬉しいのだが,買ってまで使うか?と聞かれると微妙.
_ 紅茶 ▲
ウヴァ・ハイランズを飲みきる.寒くなってお茶を頻繁に飲むようになったので,50g があっという間になくなった気がする.約1ヶ月前に一緒に仕入れてきたアッサムも同程度減っているということは,1日平均で 3~4g 程度は消費してる計算になる.
_ プログラム解析 ▲
プログラム解析の作業速度には個人差があるようだけど,いったいどこから来るんだろうかと,ふと思う.
自分のやり方では,オブジェクト指向プログラムでは・役立ちそうな情報を持っているクラスを識別する -- ほとんど勘.クラス名とメソッド名だけが頼り.・そのインスタンスを手に入れるための方法を探す -- あるクラスのメソッドの戻り値,など・その方法を利用するための方法を探す -- そのクラスのインスタンスや,必要な引数をそろえるには?という形式で芋づる式で辿っていくので,ソースとパッケージ関係,検索ツールさえあればクラス階層図や呼び出し関係図などが手元になくても,やりたいことを実装する方法は把握できてしまう.
まだ使ってないクラス呼び出し関係などの情報を使えば,もっと効率よい情報把握方法が使えるのかなぁ.個人的には,初期情報が多すぎるとコントロール不可能になる恐れがあると思うのだけれど.
2003-11-14 古い日記からの変換データ ▲
_ PBL ▲
基礎工情報1年の PBL インタビューのお願いが届く.でも団体名間違ってるしフリーメールのアドレス使ってるしFrom に名前書いてないし微妙にメールの構成もあやしい.……しかも面倒見てるのうちの研究室らしいし :-)
_ 論文 ▲
プロファイル結果に登場したクラスを動作するかたまりごとに分類する方法とかないかなぁ,とか色々調べていたが,あまり良さそうなものは見つからなかった.とりあえず,モジュールのクラスタリングの論文だけメモ.
S. Mancoridis, B.S. Mitchell, Y. Chen, E.R. Gansner:Bunch: A Clustering Tool for the Recovery and Maintenance of Software Systems Structures
モジュール内部結合度 = モジュール内ノード接続辺数 / (モジュール内ノード数)^2モジュール外部結合度 = モジュール間ノード接続辺数 / 2 x (モジュールi のノード数) x (モジュール j ノード数)
モジュール品質 = 内部結合度の平均 - 外部結合度の平均 としたときのモジュール品質が最大になるようなモジュール分割を決定するという話.
モジュール(.c ファイル) の実際の適用例が載っているが,元々の辺の数が多いので,非常に図が見にくい.モジュール単位で分割されたときのパッケージ関係図を見せてくれればいいのだが…….
クラスタリングの結果が直観的であるか,有用であるかといった評価については少しあやしい.
2004-11-14 古い日記からの変換データ ▲
_ [OUCC]新入部員(?) ▲
前に話だけ聞いてた立命館大学の人が部室に来たところに初めて会った.さすがに遠いはずなので,来るのは休日だけだったりするのかな?
外部の人で実質的に部員だった人は今までもいたけど,わりと久しぶりかもしれない.
_ [論文]オブジェクトの所有関係の解析 ▲
Samuel Z. Guyer, Kathryn S. McKinley:Finding Your Cronies: Static Analysis for Dynamic Object Colocation.Proceedings of OOPSLA2004, pp.237-250.
静的解析を使って,オブジェクトの所有関係を見つけて,その情報をガベージコレクタの動作に反映させようという話らしい.使っているのは Java バイトコードに対する points-to analysis で,GCのパフォーマンス向上に使った評価の話のようだが,同様の情報はクラス間の関係図を作るといった用途にも使えそう.
2006-11-14 ▲
_ [論文] AOP でのミドルウェア構築についての講演 ▲
Charles Zhang という Aspect-Oriented Middleware をやってる人が喋りに来たのを聞いてきた.
ミドルウェアが含んでいる feature 間の相互作用部分をアスペクトに追い出して保守性を向上するという話で,そのためにマイニング環境 Prism と,変更後のコードレベル検証ツール ARV を構築し,リファクタリングを行ったらしい.
調査した結果によると,ミドルウェアに含まれていた6個のfeatureのうち50%ぐらいのモジュールは1つのfeature としか関連しないが,10%ちょっとのモジュールは3つ以上のfeatureと相互作用していて,コードの変更などを難しくしていた,と言っていた.一般化できる結果ではないと思うけれど,少数のモジュールが全体の保守性を悪化させているみたい.
そういうリファクタリングの結果,ミドルウェアの様々な feature がアスペクトとして分離される.それらを使って,アプリケーションのコンパイル時にどの feature が使われているかを調べ,必要な feature だけを取り込んだミドルウェアの configuration を生成する,なんてことも研究しているらしい.
feature が他のどの feature に依存するか,また同時に使用できない feature の存在はきちんと記述して与えないといけない.feature を実装する側がそれなりに(高価かどうかは良く分からない)コストを支払えば,使う側はかなり楽をできそうな仕組みに聞こえた.feature-oriented なアスペクトの使い方としてはけっこう面白いと思う.