Skip to main content
QUICK REVIEW

[論文レビュー] A Static Program Slicing Approach for Output Stream Objects in JEE Applications

Anas Shatnawi, Hafedh Mili|arXiv (Cornell University)|Jan 1, 2017
Software Testing and Debugging Techniques参考文献 2被引用数 4
ひとこと要約

本稿では、KDMモデルから依存関係コールグラフを構築し、転置グラフ上で幅優先探索を適用することで、出力ストリームオブジェクトに影響を与えるすべての文を同定する、Java EE (JEE) アプリケーションにおける静的プログラムスライシング手法を提案する。この手法により、JEEのサーバーサイドコードに対する正確で言語に依存しない分析が可能となり、変更影響分析やデバッグの支援として、高い正確性で関連するプログラムスライスを隔離できる。

ABSTRACT

In this paper, we propose a program slicing approach for the output stream object in JEE applications. Our approach is based on extracting a dependency call graph from KDM models of JEE applications. Then, it applies breath-first search algorithm to identify the program slice as a graph reachability problem. The proposed approach is implemented as an extension of our DeJEE tool.

研究の動機と目的

  • サーバーサイドJavaとクライントサイドWeb言語が混在する複雑なJEEアプリケーションにおいて、出力ストリームオブジェクトのプログラムスライスを特定する課題に対処すること。
  • JEE環境におけるネストされたストリーム、リフレクション、多態性、構成ファイルの影響により、従来のスライシング技術に課題が生じるのを克服すること。
  • KDMモデルに基づく言語に依存しないスライシング手法を確立し、複数言語が混在するJEEアプリケーションをサポートすること。
  • DeJEEツールの拡張として本手法を実装し、ソフトウェア保守および分析における実用的応用を可能にすること。

提案手法

  • KDMモデルから依存関係コールグラフ G = ⟨V, E⟩ を構築する。ここで、ノードは文を表し、エッジはデータ依存関係または制御依存関係を表す。
  • データ依存関係を、文間の「読み込み後書き込み」関係としてモデル化し、順次評価による実行順序を保証する。
  • 制御依存関係を、条件文(例:if、for)とその内部文との間のリンクとしてモデル化し、メソッドプロトタイプをルートとする。
  • 依存関係コールグラフのすべてのエッジを反転させることで、転置グラフ GT を生成する。
  • 出力ストリームメソッド呼び出し(例:out.print、out.write)を出発点として、GT に対して幅優先探索(BFS)アルゴリズムを適用し、すべての到達可能なノードを同定する。
  • 到達可能なノードの集合として最終的なプログラムスライスを抽出し、出力ストリーム値に影響を与えるすべての文を表す。

実験結果

リサーチクエスチョン

  • RQ1混合言語コードとコンテナ依存関係の複雑さがあるJEEアプリケーションにおいて、出力ストリームオブジェクトに効果的にスライシングを適用する方法は何か?
  • RQ2KDMベースのモデリングは、複数言語が混在するJEEシステムにおいて、言語に依存しないプログラムスライシングをどの程度実現できるか?
  • RQ3KDMモデルから構築された依存関係コールグラフは、JEEにおけるスライシング目的で、データ依存関係と制御依存関係を正確に捉えられるか?
  • RQ4転置グラフ上でグラフの到達可能性をBFSで解析することで、JEEアプリケーションにおける最小限のプログラムスライスを同定する効果は何か?

主な発見

  • 提案手法は、KDMベースのプログラム表現における依存関係をモデル化することで、出力ストリームオブジェクトに影響を与えるすべての文を正確に同定できた。
  • KDMモデルの使用により言語に依存しない分析が可能となり、JEEアプリケーションにおける複数言語へのスライシング手法の適用が可能になった。
  • 依存関係コールグラフの構築により、データ依存関係と制御依存関係の両方が正確に捉えられ、スライシングの基盤が堅固になった。
  • 転置グラフ上で幅優先探索を適用することで、到達可能なノードの集合が効率的に計算され、最小かつ正確なプログラムスライスが得られた。
  • DeJEEツールへの拡張としての実装により、実世界のJEEアプリケーション解析における実用性と実現可能性が示された。
  • 本手法は、ネストされたストリーム、メソッドオーバーローディング、ポリモービックディスpatchングといった複雑なJEEパターンに対しても、静的解析において効果的に対処できた。

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

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

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

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