Indus

ソフトウェアのスクリーンショット:
Indus
ソフトウェアの詳細:
バージョン: 0.8
日付のアップロード: 3 Jun 15
ライセンス: 無料
人気: 14

Rating: 5.0/5 (Total Votes: 1)

インダス分析および変換がJavaプログラムをカスタマイズし、適応するためにJavaで実装されたプログラムのコレクションを提供するための努力です。インダスはのための傘として機能することを意図しています。
*静的はこのような点から分析として分析し、分析を脱出し、依存性分析します、
部分的な評価を介して、プログラムスライシングとプログラム専門として*変換、
* Eclipseなどの特定のバンデラのようなアプリケーションやプラットフォームに分析/変換を送達する任意のソフトウェア·モジュール。
現在では、インダスの一部である3つのモジュールがあります。より多くのモジュールは、時間の経過にわたって添加されることが期待されます。私たちは、現時点で入手可能で、各モジュールの目的の概要を説明します。
インダスは、の一部またはインダスの一部であることが計画されている分析および変換に共通のアルゴリズムとデータ構造に関連する実装を収容するモジュールです。このモジュールは、分析の様々な実装は、/変換が容易にシステムを形成するために結合することができるフレームワークを提供するために、ほとんどの分析および変換するインターフェース定義共通含ま。解析/変換の新しいソートがインダス内のモジュールとして実装されたときしたがって、このモジュールがアップデートされます。それは、既存のインタフェースを実装しますしかし、解析/変換の新しい実装では、このモジュールには影響しません。
モジュールは静的のコレクションであることが意図されてStaticAnalysesは、オブジェクト·フロー分析として分析し、分析を逃れ、そして依存性分析します。このモジュールの分析はインダス川からの共通のインタフェースと実装を使用して定義/新たな分析に固有の新しいインタフェース/実装を提供することができます。既存の分析は以下の通りです。
*オブジェクト·フロー分析(OFA)は、Javaのための点から分析があります。分析システムの各アロケーションサイトは、抽象オブジェクトとして扱われ、システムを介して、その流れは正確な呼び出しグラフの構築を可能にするために呼び出しサイトで可能なタイプに受信機を推測するために追跡されます。分析の精度は、メソッドのローカル変数とインスタンスフィールドのオブジェクトのための敏感フロー感性の点で変更することができます。
*エスケープ分析剪定干渉と準備依存エッジの目的のためにルフによって提案されたエスケープ解析の実装の拡張です。拡張機能は、競合するフィールドの検出を改善するための分析に価値の等価性のシームレスな添加の形をしている/だけアクセス式の原色のタイプの同一性を使用して超えて異なるスレッドで発生した読み書きを行います。分析は、さらに精度を向上させる直交オブジェクト·フロー情報を使用します。
*依存分析依存性のコレクションが分析されます。エントリベースの制御、出口ベースの制御、分析/変換、プログラムスライシングと部分評価によって必要とされる識別子ベースのデータ、基準ベースのデータ、干渉、準備ができて、同期、および発散を、 。干渉とレディ依存性は、基準ベースのデータと同期依存性はオブジェクト·フロー情報と計算されたコール·グラフ情報に依存して分析しながら、前のエスケープ分析に依存し分析します。いくつかの分析は、明確に定義されたインタフェースを介して変化させることができ、精度のレベルを変化させてきました。
*副作用の分析は、メソッドレベルの副作用情報を提供します。呼び出しサイト/メソッドの引数/パラメータのいずれかが(再帰的に到達可能なメンバー)のいずれかで直接(即時メンバー)又は間接的に影響を受けることになる場合、ユーザーが問い合わせることができます。データアクセス経路の終点がコール/方法によって影響される場合も同様に、ユーザは、コール·サイト/方法とクエリの引数/パラメータをルートデータアクセスパスを提供することができます。
*モニターAnlaysisは、与えられたシステムの監視/ロックグラフ情報を提供する単純な分析です。
*安全ロックの分析は、ロック(モニタ)が無期限に保持されない場合は、保存的に発見する分析です。この情報はObject.wait()、それは準備ができ依存して行われるようにObject.notify()/ Object.notifyAll()に対する時間依存のstemingと組み合わせて使用​​されます。
*原子性分析は、特定のシステムで原子性に関する情報を提供します。現在の実装では、ステートメントがアトミックに実行できるかどう予測するためにエスケープ分析に依存しています。この情報は、コードのアトミック領域を検出するために使用されます。この情報は、状態空間のサイズを小さくするためにチェックするようなモデルのような用途において有用であり、したがって、パフォーマンスを向上させます。
いくつかの分析は、自分とこのような分析にモジュールを構成するのに十分大きくてもよいインダスで異なるモジュールとしてホストされるのではなく、このモジュールによって消費されています。
Javaプログラムのスライサーモジュールは、バンデラとEclipseなどの他のアプリケーションでスライサーを提供するアダプタと一緒にJavaプログラムスライサーのコア実装が含まれています。実装はライブラリとしてではなく、それのサブパーツの再利用を容易にするためのアプリケーションとして設計されています。コアは、アプリケーションから独立しています。スライスの各アプリケーションの要件は、後処理インタフェースの実装を符号化し、カスタマイズされたスライサーを形成するために、これらの実装に引っ掛けることにより満足させることができます。
このモジュールは、スライスに使用する外部実装を可能にする、明確に定義されたインタフェースを介して、OFAによって提供されるコール·グラフを分析し、また、依存性によって提供される情報に大きく依存しています。
スライサーのこの実装はカヴェリのプラグインを経由して、直感的なUIとEclipseに配信されます。
特徴:O
前後のスライス生成。完全なスライス(前後の労働組合
同じスライス基準から始まるスライス)を生成することができます。
*実行可能なクラスファイルにresidualize(適切な)スライスへの支援。
*コンテキスト豊富なスライス基準の仕様を介して、状況依存スライスのサポート。
*サポートは、スコープの仕様によるシステムの特定の部分にスライスを制限します。
*サポートは、スライス基準、スライサーの構成、およびスライスをシリアル化します。
マギル大学でセイブル群からすすツールキットで提供さJimple、ジャワの中間表現のインダスプロジェクト作業のすべてのモジュール、。提供された情報は、グラフィカル·ユーザ·インターフェースを介してユーザに有用とユーザの消費に適している場合、プロジェクト内の各モジュールは、一つ以上のEclipseプラグインとして公開されます。
ソフトウェア工学の哲学
このプロジェクト内の各モジュールは、特定の要件を満たす適切な拡張子を持つカスタマイズされたシステムを組み立てるために実装することができ、明確に定義されたインタフェースを介してだけで必要な機能を提供します。界面が明確に実装から分離されるように、必要なインタフェースを提供する任意の外部実装シームレスこのプロジェクトのモジュールを使用することができます。
背景
分析のほとんどの実装はバンデラに必要なJavaプログラムスライサーの要求によるものでした。プログラムスライサーはバンデラの外で使用することができ、分析は部分的な評価を経て、このようなプログラム特化のような他の変換を可能にするために使用することができるようにしかし、我々はインダスと呼ばれる新しいプロジェクトに分析し、変換を移動します。

へのコメント Indus

コメントが見つかりません
コメントを追加
画像をオンにする!