netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2005-02-02 古い日記からの変換データ [長年日記] ▲
_ [論文]二項関係でのクエリー記述 ▲
Dirk Beyer, Andreas Noack, Claus Lewerentz:Simple and Efficient Relational Querying of Software Structures.Proceedings of 10th Working Conference on Reverse Engineering (WCRE2003), pp.216-225, Victoria, B.C., Canada, November 2003.
クラス間の関係・構造をCALL(A, B), INHERIT(A, B), CONTAIN(A, B) のような形でデータベースに入れておき,論理型言語でクエリーを記述する.
たとえば,x と z は同じメソッド呼び出しを持つことは:IdCall(x, z) := for all y, CALL(x, y) → CALL(z, y) ∧ CALL(z, y) → CALL(x, y)といったようになる.
基本的には言語の提案っぽく,大規模なシステムが相手でも記述の行数が増えないこと,サイクルの検出や,同じクラスを2回以上継承した場合の検出などを題材に,実行時間的に優れていること,などが説明されている.
_ [論文]FCAでのクラス分析 ▲
Uri Dekel, Yossi Gil:Revealing Class Structure with Concept Lattices.Proceedings of 10th Working Conference on Reverse Engineering (WCRE2003), pp.353-363, Victoria, B.C., Canada, November 2003.
どのフィールドがどのメソッドに使われているかをベースにConcept Lattice を構築して,Lattice の Top/Bottom 以外では disjoint であるようなフィールド群は別クラスに分割できる,とかいった分析を行おうという話.まあ,やればできそうという話だけど.
実際には使われてないメソッドやフィールドの除去や,フィールドの役割の分析なんかも必要みたい.また,配列への追加・削除時の growArraySize (配列の領域調整)のような副次的な存在は,クラス内での役割が分かりにくい様子.