Skip to main content
QUICK REVIEW

[論文レビュー] Using Dependence Analysis to Support Software Architecture Understanding

Jianjun Zhao|ArXiv.org|May 5, 2001
Software Engineering Research参考文献 15被引用数 38
ひとこと要約

本稿では、ソフトウェアアーキテクチャ記述(ADL)の文脈に適応した依存解析の新手法、アーキテクチャ的依存解析を紹介する。ACMEなどのADLでコンポONENTとコネクタの関係をモデル化するソフトウェアアーキテクチャ依存グラフ(SADG)を構築することで、アーキテクチャスライシングを通じて、アーキテクチャの理解、保守、再利用を自動化する支援が可能となり、システムの進化や設計回復の際の開発者の認知的負荷を顕著に低減する。

ABSTRACT

Software architecture is receiving increasingly attention as a critical design level for software systems. As software architecture design resources (in the form of architectural descriptions) are going to be accumulated, the development of techniques and tools to support architectural understanding, testing, reengineering, maintaining, and reusing will become an important issue. In this paper we introduce a new dependence analysis technique, named architectural dependence analysis to support software architecture development. In contrast to traditional dependence analysis, architectural dependence analysis is designed to operate on an architectural description of a software system, rather than the source code of a conventional program. Architectural dependence analysis provides knowledge of dependences for the high-level architecture of a software system, rather than the low-level implementation details of a conventional program.

研究の動機と目的

  • アーキテクチャ記述が蓄積される中で、アーキテクチャの理解、保守、テスト、再エンジニアリング、再利用を支援するツールの需要が高まっているのに対応する。
  • 従来のプログラム依存解析は低レベルのコードを対象としており、コンポonent やコネクタといった高レベルのアーキテクチャ的構成要素をモデル化できないという限界を克服する。
  • アーキテクチャ記述言語(ADL)に特化した依存解析技術を開発し、アーキテクチャレベルでのシステム動作の推論を可能にする。
  • 保守と再利用のための関連アーキテクチャ要素を分離するのに有効なアーキテクチャスライシングの有効性を示し、認知的負担を低減する。
  • ADLツールチェーンにおける依存解析をコア機能として統合する基盤を構築する。

提案手法

  • アーキテクチャ記述(ソースコードではなく)を対象とする新しい依存解析形式として、アーキテクチャ的依存解析を提唱する。
  • コンポonent とコネクタの相互作用に基づくアーキテクチャ的依存関係(データフロー、制御フロー、構造的依存)を定義する。
  • さまざまな種類のアーキテクチャ的依存関係を明示的に表現するため、ソフトウェアアーキテクチャ依存グラフ(SADG)を導入する。
  • プログラムスライシング技術をアーキテクチャレベルに適応し、指定されたポートやコンポonent をスライシング基準として用いるアーキテクチャスライシングを可能にする。
  • ACMEをターゲットADLとして実装したが、本手法は言語に依存しないように設計されている。
  • アーキテクチャの理解とコンポonent の再利用を支援するためのプロトタイプアーキテクチャ依存解析器を開発した。

実験結果

リサーチクエスチョン

  • RQ1依存解析をソースコードではなくアーキテクチャ記述に適応する方法は何か?
  • RQ2アーキテクチャ記述におけるコンポonent とコネクタ間の依存関係の種類は何か?
  • RQ3アーキテクチャスライシングは、ソフトウェア保守とコンポonent の再利用をどのように支援できるか?
  • RQ4従来のプログラム依存解析とアーキテクチャ的依存解析の主な相違点は何か?
  • RQ5アーキテクチャ的依存解析は、実世界のソフトウェアアーキテクチャ開発タスク(理解と再利用など)を効果的に支援できるか?

主な発見

  • アーキテクチャ的依存解析は、アーキテクチャ記述におけるコンポonent とコネクタ間の依存関係を効果的にモデル化し、従来の依存解析をアーキテクチャレベルに拡張した。
  • ソフトウェアアーキテクチャ依存グラフ(SADG)は、アーキテクチャ的依存関係を形式的かつ明示的に表現するものであり、自動解析を可能にする。
  • SADGに基づくアーキテクチャスライシングにより、開発者は関連するアーキテクチャ断片を分離でき、保守作業の簡素化が顕著に進む。
  • 本手法により、自己完結的かつ依存関係を持つアーキテクチャ的単位を特定・分離することで、再利用可能なアーキテクチャコンポonent の抽出が可能になる。
  • 本手法はADL間で一般化可能であるが、言語固有の構文や構造に応じて実装詳細は変化する。
  • 著者らはACME用のプロトタイプ解析器を実装し、アーキテクチャの理解と再利用における実現可能性と実用的価値を実証した。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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