オブジェクト指向クラスの単一メソッドと正確に一致するメソッドとインスタンス変数の依存関係を調べる方法論を知っている人はいますか?私は、次のコードを持っている場合たとえば、:オブジェクト指向クラスのメソッド依存関係の決定
public class Foo {
private int x;
private int y;
public Foo() {
x = 1;
y = 2;
}
public void doFoo() {
doJaa(x);
x++;
}
private void doJaa(int xVar) {
System.out.println("x is: " + xVar);
}
private void nop() {
System.out.println("Nada!");
}
}
は、私は何を探していたこと(私は決定したいメソッド「doFoo」を言う、方法を取ると、そのインスタンス変数やメソッドの依存関係のすべてを決定することでしたこれらの依存関係は、ビルド時)です。この場合、それらの依存関係は 'int x'、 'Foo()'、 'doJaa(int x)'になります。ただし、メソッド 'nop'と 'doJaa'の間に依存関係はありません。このタイプの分析には名前がありますか?その周りにもっと多くの情報を検索することができますか?私には私は
- 制御フローグラフ(私にはありません使用)
- 以下の分析技術を知っていますプログラム依存グラフ
- システム依存グラフ
1は、多くの使用ではありませんそれは制御の流れに関係している。 2は、単一のメソッド内またはメソッド境界内のいずれかで、制御およびデータの依存関係に関係しています。私はこれを研究しました、そして、それはあまりに細かいので、私が欲しいものではありません。 3は2からのフォローであり、また私が必要とするものに対しては細かすぎる方法です。
ありがとうございます。私は自分でそれをやろうと思う。 Soot APIは私に必要な分析を提供します。私はこの話題にいくつかの論文があることを期待していましたが、私は何も見つけられないようです。私は、プログラム依存グラフ、システム依存グラフ、および制御フローグラフに関する情報しか見つけることができません。 – Joeblackdev
すみませんが質問はありますが、なぜこれが必要ですか? – AlexR
特定のメソッドにのみ関連するクラスからコードを抽出したいからです。言い換えれば、メソッドがあれば、実行可能なプログラムスライスを得るために、依存するクラスからすべてのコードを抽出したいと思います。 – Joeblackdev