Skip to main content
QUICK REVIEW

[論文レビュー] Redefining measures of Layered Architecture

Sanjay B. Thakare, Arvind W. Kiwelekar|arXiv (Cornell University)|Jun 6, 2021
Architecture and Computational Design参考文献 10被引用数 9
ひとこと要約

本稿は、バックコール、スキップコール、循環的依存を検出する関係ベースのメトリクスを導入することで、レイヤードアーキテクチャの評価を再定義し、新たな論理的分離インデックスを提案する。このアプローチは、従来の手法よりも、違反を引き起こしている特定の依存関係を特定することで、JHotDraw や JFreeChart などの実世界の Java システムにおいて、より正確なリファクタリング指針を提供する。

ABSTRACT

Layered architecture represents the software structure in the form of layers. Every element in the software is assigned to one of the layers such that the relationship amongst the elements is maintained. A set of design principles rules the process of construction of the layered architecture. Various statistical measures have been defined to check whether the layered architecture of a given software is following these design principles or not. In this paper, we redefine the measures of layered architecture based on the relationship between the software components. The measures check for the violations committed regarding the back calls, skip calls, and cyclic structures. Further, we also introduce a new measure to verify the logical separation amongst the layers. The system's current architecture is extracted from the source code and represented using a three-tier layered structure, which is the defacto standard architecture of Java applications. The redefined measures are applied to determine the conformance of layering principles in the system. We evaluate five different software systems for their architecture consistency. The results obtained on our redefined measures are compared to those obtained by applying the standard set of measures. A quantitative analysis of the proposed measures is performed, and we conclude that they can determine the consideration of layering principles followed during the development of a software system.

研究の動機と目的

  • 既存のレイヤードアーキテクチャ評価メトリクスが、違反する依存関係の性質を捉えていないという限界を是正すること。
  • レイヤー構造の原則に違反するコンポonentだけでなく、その違反を引き起こしている具体的な依存関係を特定することにより、ソフトウェアの保守性を向上させること。
  • 回復されたソフトウェアアーキテクチャにおけるレイヤーの質を定量的に評価するための新しい論理的分離インデックスを導入すること。
  • 単に違反するコンポonentを特定するだけでなく、問題のある依存関係関係を特定することで、開発者に実行可能なインサイトを提供すること。
  • 三層構造を採用した実世界の Java アプリケーションを対象に、提案されたメトリクスの有効性を評価すること。

提案手法

  • 従来のレイヤードアーキテクチャの測定法を、コンポonentレベルのカウントではなく、ソフトウェアコンポonent間の依存関係に基づいて再定式化すること。
  • 明示的な依存関係タイプ(継承、インスタンス化、引数渡し)に基づいて、バックコール違反インデックス、スキップコール違反インデックス、サイクル違反インデックスという新しいメトリクスを定義すること。
  • 層間依存と全依存の比率を用いて、層どうしがどれだけ分離されているかを定量化する論理的分離インデックスを導入すること。
  • 依存関係抽出ツール(例:Dependency Finder)を用いてソースコードからソフトウェアアーキテクチャを抽出し、依存関係ネットワークを構築すること。
  • コンポonentをノード、依存関係をエッジとする社会的ネットワークとしてソフトウェアをモデル化し、ネットワーク分析の原則を適用可能にする。
  • Constore、JHotDraw、JFreeChart、JCommon の5つの実世界のソフトウェアシステムに、再定義されたメトリクスを適用して、オープンレイヤー構造への適合性を評価すること。

実験結果

リサーチクエスチョン

  • RQ1レイヤードアーキテクチャ評価メトリクスを、違反する依存関係の性質をより的確に反映するように再定義する方法は何か?
  • RQ2新規メトリクスは、従来のアプローチに比べて、バックコール、スキップコール、循環的依存をどれほど効果的に検出・特徴づけられるか?
  • RQ3論理的分離インデックスは、回復されたアーキテクチャにおける層間の分離度合いを信頼性高く定量化できるか?
  • RQ4開発者にとっての精度と実行可能性のインサイトという観点から、提案されたメトリクスは既存の測定法と比べてどの程度優れているか?
  • RQ5再定義されたメトリクスは、実世界のソフトウェアシステムにおける実際の設計意図をどれほど的確に反映しているか?

主な発見

  • Constore では論理的分離インデックスが 0.90 であり、強いレイヤー構造の質を示したが、HW コンポonent の上位2つのレイヤーは十分に分離されていなかった。
  • JHotDraw 7.0.6 は論理的分離インデックス 0.93、スキップコール違反インデックス 0.096 を示し、特定の依存関係による5件のバックコール違反が検出された。
  • JFreeChart 1.0.0 は51件のスキップコール違反を示したが、サイクルは存在せず、完全な論理的分離インデックス 1.0 を達成しており、優れたレイヤー構造を示した。
  • 提案されたメトリクスは、JFreeChart で51件のスキップコール違反、JHotDraw で5件のバックコール違反を検出し、従来の手法とは異なり、明確な関係レベルのインサイトを提供した。
  • 新規メトリクスは、単に違反するコンポonentを特定するのではなく、違反を引き起こしている具体的な依存関係を特定することで、従来のアプローチよりもより実行可能な情報を提供した。
  • 依存関係抽出ツールと手動による検証により、関係検出の高精度性が確認され、測定値は感受性は高いが正確であった。

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

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

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

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