Skip to main content
QUICK REVIEW

[論文レビュー] A Semantic-Based Approach for Detecting and Decomposing God Classes

Lee Junha, Donghun Lee|arXiv (Cornell University)|Apr 9, 2012
Natural Language Processing Techniques参考文献 21被引用数 3
ひとこと要約

本論文では、クラス内相互作用とクラス関係を分析し、クラス間およびクラス内でのメソッド相互作用から得られる意味的類似度を用いて、Godクラスの検出と責任の分解を意味的アプローチで行う手法を提案する。この手法は、JMeter v2.5.1でF-measureが0.919に達し、内部属性-メソッド参照に依存せずに高い正確性で責任の同定と分解を実現している。

ABSTRACT

Cohesion is a core design quality that has a great impact on posterior development and maintenance. By the nature of software, the cohesion of a system is diminished as the system evolves. God classes are code defects resulting from software evolution, having heterogeneous responsibilities highly coupled with other classes and often large in size, which makes it difficult to maintain the system. The existing work on identifying and decomposing God classes heavily relies on internal class information to identify God classes and responsibilities. However, in object-oriented systems, responsibilities should be analyzed with respect to not only internal class information, but also method interactions. In this paper, we present a novel approach for detecting God classes and decomposing their responsibilities based on the semantics of methods and method interactions. We evaluate the approach using JMeter v2.5.1 and the results are promising.

研究の動機と目的

  • 内部構造や属性-メソッド関係に依存する従来のGodクラス検出手法の限界を解消すること。
  • クラス間のメソッド相互作用の意味的分析を組み込むことで、Godクラス内の責任同定の正確性を向上させること。
  • 詳細な属性参照が不要な状態で、設計段階およびコード段階の両方でGodクラスを体系的に検出し、分解できること。
  • メンテナンスが困難な複雑な責任の混合を抱える大規模かつ高凝集的なクラスのリファクタリングを、意味的駆動型で効果的に行う手法を提供すること。

提案手法

  • クラス間メソッド相互作用、クラス内メソッド相互作用、およびクラス関係の種別を用いて、メソッドの意味的類似度を測定する。
  • Resnikの意味的類似度分類法を用いてクラス間メソッド相互作用を分析し、クラス内相互作用およびクラス関係の種別を組み合わせて結果を精緻化する。
  • 精緻化された意味的類似度スコアに基づいて重み付きグラフを構築し、Godクラス構造とその責任を表現する。
  • NOM(メソッド数)、CBO(基本クラスの結合度)、IC(継承結合度)などのメトリクスに加え、意味的類似度の閾値を用いてGodクラスを検出する。
  • 意味的類似度に基づくクラスタリングを用いてメソッドをグループ化することで、責任を分解する。この際、Inter-Semantic Similarity(ISS)の平均および標準偏差から導出された閾値を用いる。
  • 自動で同定された責任と手動レビューによる基準値を比較し、正確性を精度、再現率、F-measureで評価する。

実験結果

リサーチクエスチョン

  • RQ1メソッド相互作用およびクラス関係に基づく意味的類似度は、従来の内部構造ベースのアプローチが見逃すGodクラスを効果的に検出できるか?
  • RQ2属性ベースの手法と比較して、メソッド相互作用の意味的分析は、Godクラス内の責任同定の正確性をどの程度向上できるか?
  • RQ3提案手法は、一貫性があり再利用可能なクラスにGodクラスの責任を効果的に分解できるか?
  • RQ4異なるGodクラスにおいて、閾値の変動が責任同定のF-measureに与える影響は何か?
  • RQ5属性-メソッド参照データが不足する設計段階でも、本手法は効果的に適用可能か?

主な発見

  • JMeter v2.5.1における検出されたGodクラス全体で平均F-measureが0.919に達し、責任同定の高精度を示している。
  • $MenuFactory$および$ProxyControl$クラスの責任は、手動レビューと完全に一致しており、正確な検出能力を裏付けている。
  • 閾値範囲1.3~1.5の間でF-measureが一貫して高く(0.9以上)維持されており、設定変更に対しても堅牢な性能を示している。
  • ISS(意味的類似度間隔)に顕著な分散が見られたことから、検出されたGodクラスの成功した分解の可能性が非常に高いことが示唆された。
  • 属性-メソッド参照データを必要としないため、このような情報が入手できない設計段階への適用が可能である。
  • メソッド相互作用分析による行動的意味的特徴の統合により、従来の凝集度メトリクスを上回る性能を発揮し、Godクラス検出における主観的要因を低減した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。