«前の日(11-13) 最新 次の日(11-15)» 追記

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 程度は消費してる計算になる.

_ プログラム解析

プログラム解析の作業速度には個人差があるようだけど,いったいどこから来るんだろうかと,ふと思う.

自分のやり方では,オブジェクト指向プログラムでは・役立ちそうな情報を持っているクラスを識別する -- ほとんど勘.クラス名とメソッド名だけが頼り.・そのインスタンスを手に入れるための方法を探す -- あるクラスのメソッドの戻り値,など・その方法を利用するための方法を探す -- そのクラスのインスタンスや,必要な引数をそろえるには?という形式で芋づる式で辿っていくので,ソースとパッケージ関係,検索ツールさえあればクラス階層図や呼び出し関係図などが手元になくても,やりたいことを実装する方法は把握できてしまう.

まだ使ってないクラス呼び出し関係などの情報を使えば,もっと効率よい情報把握方法が使えるのかなぁ.個人的には,初期情報が多すぎるとコントロール不可能になる恐れがあると思うのだけれど.

_ パスポート

起きるのが遅かったので申請に行きそびれる.仕方ないので,仕事の続き.Eclipse で JDT, AJDT プラグインの動作を解析する.

_ Wonder-Net

11月10日更新分をチェック.投稿したメールが読まれてた.わーい :-)


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 ファイル) の実際の適用例が載っているが,元々の辺の数が多いので,非常に図が見にくい.モジュール単位で分割されたときのパッケージ関係図を見せてくれればいいのだが…….

クラスタリングの結果が直観的であるか,有用であるかといった評価については少しあやしい.

_ Juan Gargiulo and Spiros Mancoridis:Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

プロファイラを取って,その結果をグラフ上に可視化する.いちおうどのパッケージの内容を出力するかのフィルタリングだけは選択できる.また,Bunch のシステムを使ってクラス群のクラスタリングができるらしい.でも,登場クラス数が大きくなってくるとパフォーマンス上問題がある,と言っているが,それよりも理解容易性に問題があるような気はする.

_ 東京

12月21日(日)に東京行き決定.完全に私用で,日帰り予定.新幹線が取れればだけど.

IBM の人に東京来ることがあったら寄ってみてくれとか言われていたような気もするけど,日曜だとさすがに意味ないし,かといって泊まるのも微妙だ.


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のパフォーマンス向上に使った評価の話のようだが,同様の情報はクラス間の関係図を作るといった用途にも使えそう.


2005-11-14

_ [work] LaTeX の \input

英語でD論を書くべく英語原稿を整理していて,各セクションごとにサブディレクトリを作って \input を使ってファイルを読み込むようにしてみた.

このとき,読み込まれる側のファイル中での相対パスは,読み込む側のファイルのディレクトリを基点に計算されるようで,図のepsを固めたfigディレクトリの参照部分を全部書き換える必要があった.

図を格納したディレクトリを一箇所にまとめるという手でもいいのかもしれないが,どっちがいいのかは微妙なところ.


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 なアスペクトの使い方としてはけっこう面白いと思う.