«前の日(10-01) 最新 次の日(10-03)» 追記

netail.net

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

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


2002-10-02 古い日記からの変換データ

_ 論文

ASE 2002: International Conference on Automated Software Engineering の論文チェックをしようと思ってhttp://ase.cs.ucl.ac.uk/を見に行ったが,どうやら pdf は過去の best paper award に入っている奴しか置いてないらしい.とはいえ,いくつか研究者のページから取れる pdf もあったのでそれらについては見てみることにする.肝心のアスペクト関連のものが取れないけど,その周辺論文は取れた.やっぱり,主流(AOSD2002など)の学会に比べると大した収穫はなし.


2003-10-02 古い日記からの変換データ

_ AspectJ

AspectJ 1.2 に向けてどうしよう,という話が進んでいる様子.スケーラビリティ,パフォーマンス問題,再利用可能なアスペクトを書くための方法,なんかが重視されてるみたい.

「ほしい機能リスト」には,"静的に実行可能なアドバイス" とかも入ってた.どうなることやら.

_ Ys6

「Ys6~ナピシュテムの匣」クリア.以前に比べると,意外と簡単だった.ストーリーは王道というかパターンというか,だけどアクション性が上がってたのが嬉しい.

# マスクオブアイズのかわりの品物でしか見つからないアイテムがあるのはどうかと思ったけど.アイテム欄が全部埋まらなかった(2個くらい空いてた)のも少し気になる.

_ お食事

サークルを引退した人と飲みに行く.和ダイニング ひいきや.http://r.gnavi.co.jp/k025913/menu1.htm

創作料理がわりと美味しいし,お酒の種類も多くてけっこう面白かった.3人で10000円で,食べ物も酒もわりと満足.たくさん食べる人だともう少しかかるかな?というところ.


2004-10-02 古い日記からの変換データ

_ [日記CGI]検索性能の改善

検索処理が妙に遅いので調べてみたら,本文 C (UTF-8) と与えられたキーワード K (EUC) のマッチ処理でUTFtoEUC(C) と K を比較していたことが判明.データを UTF に移行したときの応急処置がそのまま生きていたらしい.

C と EUCtoUTF(K) を比較するように修正したので,性能はだいぶ改善した.

_ oucc.org.uk

たまたまサイト見つけた.Oxford University Cave Club.略称は同じだが….http://www.oucc.org.uk


2005-10-02

_ [お出かけ] 沖縄料理を食べてきた

梅田にある沖縄居酒屋 轟屋というお店でご飯を食べてきた.沖縄音楽のライブ演奏が19時過ぎたあたりにあって(21時頃にもう1回やるようなことを言っていた),かなり雰囲気の良い店だった.

帰りに阪急梅田駅の成城石井に久しぶりに寄ってみたら,シャトー ディケムのワインを冷蔵棚に発見.90年代なのでまだ安価なものとはいえ,それでも手が出せるような値段ではないわけですが…….

_ [論文]振舞いモデル記述に基づいたデバッグ

Donglin Liang, Kai Xu: Debugging Object-Oriented Programs with Behavior Views.

Proceedings of AADEBUG 2005.

読んだのはAADEBUGに submit されたものに対応する technical report.

デバッグをするとき,普通はプログラムのどの機能がうまく動かないということがわかっているので,「この機能はこう動くはずだ」というモデルをあらかじめ記述しておき,その通りに動いているかどうかを検査しよう,というアプローチ(Scenario-Based Debugging というらしい)の論文.

記述されるモデルは,いわゆるオートマトンで,プログラム実行時のイベント(メソッドのenter/exit)で状態遷移を起こし,そのときに合わせて変数の値の記録や assert 文による検査を実行する.

モデル記述用の言語では,AspectJでのメソッド名のワイルドカードのように,いくつかのメソッドを取りまとめて同じイベントとして扱ったり,状態遷移の条件そのものと,それに対応した処理の実行とを区分したりもできるようになっている.このあたりは,アスペクト指向プログラミング言語に似ている(Event-Based でプログラムをとらえているから当然かもしれない).ただし,デバッグという用途の都合上,特定のプログラム文に到達する,というコード行番号の指定や,プログラム実行の停止命令なども使えたりする.

モデルを記述しておきさえすれば「ユーザのログインが終了したところでブレークポイントで停止」といった意味のあるブレークポイント設置が容易になる(しかも他の開発者と共有できる)ので,個人的にはけっこう面白いと思う.

_ [論文]アスペクトが影響を与えるクラスのパラメータ化

Jordi Alvarez: Parametric Aspects: A Proposal.

Proceedings of Workshop on Reflection, AOP and Meta-data for Software Evolution, 2004.

アスペクトが貼りつく対象のクラス集合をパラメータ化しておき,そのアスペクトを継承した具象アスペクト側でクラス集合を設定できるようにしてはどうか,という提案.

AbstractFactory パターンで,指定したクラス群に対するファクトリメソッドを生成する方法を例として取り上げている.アスペクトの中のメソッド名の一部に,貼り付く対象クラスの名前などを入れたい場合に有効に働く様子が示されている.XVCLなどのテキスト処理だけで実現するものとは,クラスの親子関係の制約などを書けるようになっている点が異なる.

_ [論文] 頻繁に更新されるファイルほど複雑である(?)

Amdrea Capiluppi, Juan F. Ramil: Change Rate and Complexity in Software Evolution.

Proceedings of Workshop on Empirical Studies of Software Maintenance, 2004.

各リリースごとにファイルが変更されたかどうかで変更回数をカウントし大きい順に並べると,大きいほうにサイズの大きいファイルが固まり,またサイクロマチック数が大きい関数が固まる,ということを計測した論文.「複雑な関数ほど変更もよく起こる」と主張したいみたい.

まだ予備実験段階のようで,単一プロジェクトが相手で,またファイルごとにサイクロマチック数を合計して比較したりとちょっと怪しい評価の部分もある.複雑な関数(最新のリリースにおけるサイクロマチック数で上位24個)がどんどん複雑になる様子がグラフで示されていたりする.


2006-10-02

_ bddbddbのドキュメント修正

bddbddbの使い方について,最新のソースはCVSじゃなくてSubversionで管理されている,と東大の青谷さんからご指摘いただいたのを反映しました.といって,単に注意書き足しただけなんですが.

bddbddb自体はタプルの集合(リレーション)をBDD形式で保存して,Datalog言語を使って操作するためのツールなので,Javaバイトコードから情報を取り出してbddbddbに変換するjoeqというツールの部分を作り変える(あるいは自作する)と,色々プログラム解析に使えると思います.

この手のlogic programmingの処理系を使ってデータ解析部分を手早く実装するというのがツール作る人たちの最近の流行な気がするので,1つくらいは使い方を知っておくと今後役立ちそうだという印象があります.