2017-01-04 7 views
0

大学向けプロジェクトの一環として、リフレクションを使用して任意のJavaアプリケーションアーカイブ(JAR)を分析するJavaアプリケーションを作成し、そのオブジェクトグラフのコンポーネントクラスタイプの位置的安定性(I)は、そのタイプを入力して離れる依存関係の数を数えて測定できることを想起してください: "、。リフレクションAPIを使用したクラスの位置安定性の測定

各クラスのエフェレントカップリングと求心カップリングを測定し、その成分を測定し、安定性を計算する必要があります。

私はAfferentとEfferentのカップリングを計算する方法でちょっと混乱しています。他の多くのクラスが 特定のクラスを使用する方法の尺度である - :これは

for (int i = 0; i < cls.size(); i++) { 

     Class cla = cls.getMyClass(i); 

     Class[] interfaces = cla.getInterfaces(); 

     for(Class inter : interfaces){ 

      efferentCoup++; 
     } 

     Constructor[] cons = cla.getConstructors(); 
     Class[] conParams; 

     for(Constructor c: cons){ 

      conParams = c.getParameterTypes(); 

      for(Class par: conParams){ 

       efferentCoup++; 
      } 

     } 

     Field[] fields = cla.getFields(); 

     for(Field fie: fields){ 
      efferentCoup++; 
     } 
} 

答えて

2
  • 求心性カップリングは、私がこれまでにやっていることです。

は、あなたが特定のクラスを参照しつつあることを、すべてのパッケージをイントロスペクトし、 あなたのカウンター毎回をインクリメントする必要があり、これを計算します。

  • 遠心性カップリング: - あなたが特定のクラス を通じてイントロスペクションする必要があり、これを計算するには

特定のクラスで を使用しているどのように多くの異なるクラスの尺度であり、参照している他のクラスがいくつあるかを確認してください。

理想的には、ステップ1は、両方のカップリングを計算するのに十分なはずです。

+1

これはちょっと意味が分かりました。私はAfferentとEfferentについてちょっと混乱しました。 –

関連する問題