netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-08-19 [長年日記] ▲
_ オープンキャンパス ▲
自由訪問時間(?)で研究室に来た2グループに対してだけ説明.何となく思いついて携帯電話を説明の材料にしてみたが,携帯電話は
- たくさんの機能部品(ボタンやディスプレイ,電話帳,メール,...)を含んでいて部品の利用関係も多く,
- 機種間でコードが似ているからコードクローンもあるだろうし,
- ユーザとのインタラクションではシーケンス図のような時系列表現が便利で,かつボタンの連続操作などによって生成された実行履歴の圧縮などの内容も説明しやすくて,
- 実時間処理や並行処理などの横断的関心事を含んでいて,
- ほとんどの人は携帯電話がどんなものか既に知っていて,
- 実物が手元にあるので見せながら話しやすい
から,一般の人向けに研究室の複数のテーマを同時に説明するときにはかなり便利な題材かもしれない.研究対象が組み込み系だと思われると困ってしまうけど.
2005-08-18 [長年日記] ▲
_ [論文] Dependency Injection のコードをAOPで記述する ▲
Shigeru Chiba, Rei Ishikawa: Aspect-Oriented Programming Beyond Dependency Injection.
Proceedings of ECOOP 2005, pp.121-143.
あまりじっくり読んでる時間がないので軽くメモだけ.
Dependency Injection を使うとコンポーネント間の接続方法をコンポーネント側から分離できるが,接続のためのコードがフレームワーク依存になってしまう.そこで,明示的に接続対象のオブジェクトを指定してコンポーネント間を接続するようなアスペクトを作ることができる言語GluonJを提案している.
AspectJと比較すると,AspectJではperthisとかinter-type declarationとかを使わないとインスタンス間の関係が管理できないところをきちんとサポートしている,というのが違いになる.
_ [論文]単体テストから品質を予測する ▲
Martin Davidsson, Jiang Zheng, Nachiappan Nagappan, Laurie Williams, Mladen Vouk: GERT An Empirical Reliability Estimation and Testing Feedback Tool.
Proceedings of ISSRE 2004.
先週の輪講で紹介された論文.
ソースコードの行数あたりのJUnitのテストケース数やクラスごとのカバレッジといった変数から最終的な品質(受け入れテストの通過率)の値を回帰分析で予測しようというもの.
同じ仕様のソフトウェアを複数のグループで個別に開発して,予測結果を評価しているが,結果自体はあまり芳しくない.過去に作ったプロジェクトのテストケース数などから,用意したテストが十分かどうか,といった警告を出す程度の予測はできるかもしれないが.
JUnitでテストを実行してJCoverageでカバレッジを計測して値をすぐに出す,といったツールの使い勝手は良さそうな印象.
2005-08-16 [長年日記] ▲
2005-08-13 [長年日記] ▲
_ 帰省 ▲
お土産に,暑いので生ものが買いにくいなーと思っていたのだが,ミオール神戸のゼリーが常温保存できるらしいと聞いて買ってみた.試食するついでに店の人に聞いてみたら,2ヶ月くらいは大丈夫らしい.
_ [論文] 手続きとアドバイスの使い分け ▲
Gregor Kiczales, Mira Mezini: Separation of Concerns with Procedures, Annotations, Advice and Pointcuts.
Proceedings of ECOOP 2005.
単なるメソッド呼び出しは何回か使われる処理の内容が変更される場合には有効で,アドバイスは呼び出される場所が変わる場合に有効,といった使い分けについて述べた論文.
また,アノテーションはメソッドに共通した性質(しかし共通点がメソッド名などに表現されない場合)を表現する場合に有効である,ポイントカットに名前を付けることで「Shape.setX という Join Point は画面の更新である」といったように意味を付加し,「画面の更新のときはDisplay.updateを実行する」といったルールが分かりやすくなる,といったことが述べられている.
読んでいて素直なガイドラインのような気がしたので,今度,wikiのほうにまとめておくことにする.
2005-08-11 [長年日記] ▲
_ [論文]データ依存の強さ ▲
Alessandro Orso, Saurabh Sinha, Mary Jean Harrold: Incremental Slicing Based on Data-Dependences Types.
Proceedings of ICSM 2001, pp.158-167, Florence, Italy, November 2001.
輪講で紹介された論文.
プログラムスライシングを行うときに,データ依存の「強さ」によって強いものと弱いものを区分することで役立つのではないかと言っている論文.強さは,定義→利用の関係において,必ず到達するものは到達しない可能性がある,途中に他の定義で上書きされるようなパスが存在しないかどうか,といったことで決まる.確実に到達する関係が一番強く,「ポインタ経由でデータが上書きされるかもしれない文」をif文などで通過してしまう「かもしれない」文などは弱くなる.
強いもの弱いものの含まれる比率にはばらつきがあるようで,バグ発見という用途では,強いものから徐々に弱いものまで探索範囲に含めていくというのでは,有用かどうかよく分からない.
この辺の話は,プログラムの実行の最適化の話に近いような気がしなくもない.
2005-08-10 [長年日記] ▲
_ [論文] 「同時に変更される」コードの可視化 ▲
James M. Bieman, Anneliese A. Andrews, Helen J. Yang: Understanding Change-proneness in OO Software through Visualization.
Proceedings of IWPC 2003.
輪講で紹介された論文.複数のクラスが同時に変更された,というので1つのデザインパターンに関わるクラスとかが同時に変更されるのではないか,と実験している.
複数のクラスが同時に変更された,という関連の中には,クラス間が持つ関連(継承とか所有とか)には含まれないものが存在する,といった結果が出ている.
性能などの非機能的要求「かもしれない」と言っているだけで実際どんなコードなのかは分からないが,何かのときに引用できるかもしれないのでとりあえずメモしておく.
2005-08-09 [長年日記] ▲
_ [work]APSECの締め切りが22日に延長 ▲
APSEC2005のページに"Paper Submission deadline is extended to August 22" と出てたので,ゆっくり内容を詰められそう.Notification of Acceptance が September 14,Camera-readyないしAOSD2006の締め切りがSeptember 30.PCの人たち大変そう….
_ [work]研究紹介用の資料のテンプレート ▲
大学のオープンキャンパスに合わせて作る予定の資料には 情報処理学会の原稿見本の Word スタイルファイルを使って作ることにした.
二段組,タイトル+著者+本文という程度の最低限のスタイルしか設定されていないので,脚注の英語タイトルを置く部分だけ削って使わせていただくことにする.画像を半分くらい占めさせて,そこそこ文字が入るので,軽く読める系の資料になる,と期待.
_ [Wiki、期待アゲ]