Tai-e (中国語: 太阿; 発音: [ˈtaɪə:]) は、Java 用の新しい静的分析フレームワークです (詳細については、ISSTA 2023 の論文を参照してください)。これは、おそらく、私たちが提案した両方の新しい設計から「最良の」設計を特徴としています。 Soot、WALA、Doop、SpotBugs などの古典的なフレームワークのものもあります。 Tai-e は学習しやすく、使いやすく、効率的で拡張性が高いため、その上に新しい分析を簡単に開発できます。
現在、Tai-e は次の主要な分析コンポーネントを提供しています (さらに多くの分析が進行中です)。
clone()
検出器)Tai-e は Java で開発されており、Windows、Linux、macOS などの主要なオペレーティング システムで実行できます。
開発者への礼儀として、研究活動において Tai-e フレームワークについて説明した ISSTA 2023 の論文を引用していただくことを期待しています。
ティエン・タンとユエ・リー。 2023. Tai-e: 古典的な優れた設計を活用した、開発者に優しい Java 静的分析フレームワーク。ソフトウェア テストと分析に関する第 32 回 ACM SIGSOFT 国際シンポジウム (ISSTA '23) の議事録、2023 年 7 月 17 ~ 21 日、米国ワシントン州シアトル (pdf、bibtex)。
最も簡単な方法は、GitHub Releases からダウンロードすることです。
あるいは、ソース コードから最新の Tai-e を自分でビルドすることもできます。これは、Gradle を介して簡単に実行できます (システムで Java 17 (またはそれ以降のバージョン) が利用可能であることを確認してください)。コマンドgradlew fatJar
実行するだけで、実行可能な jar がtai-e/build/
に生成されます。これには Tai-e とそのすべての依存関係が含まれます。
Tai-e はスタンドアロン ツールとして設計されていますが、依存関係としてプロジェクトに含めるオプションもあります。これは Maven リポジトリで利用できるため、Gradle や Maven などのビルド ツールを使用して Java プロジェクトに簡単に統合できます。私たちは Tai-e の安定バージョンと最新バージョンの両方を維持しています。Gradle および Maven スクリプト形式での対応する座標は次のとおりです。
グラドルの場合:
dependencies {
implementation( " net.pascal-lab:tai-e:0.2.2 " )
}
メイブンの場合:
< dependencies >
< dependency >
< groupId >net.pascal-lab</ groupId >
< artifactId >tai-e</ artifactId >
< version >0.2.2</ version >
</ dependency >
</ dependencies >
グラドルの場合:
repositories {
mavenCentral()
maven { url = uri( " https://s01.oss.sonatype.org/content/repositories/snapshots/ " ) }
}
dependencies {
implementation( " net.pascal-lab:tai-e:0.5.1-SNAPSHOT " )
}
メイブンの場合:
< repositories >
< repository >
< id >snapshots</ id >
< name >Sonatype snapshot server</ name >
< url >https://s01.oss.sonatype.org/content/repositories/snapshots/</ url >
</ repository >
</ repositories >
< dependencies >
< dependency >
< groupId >net.pascal-lab</ groupId >
< artifactId >tai-e</ artifactId >
< version >0.5.1-SNAPSHOT</ version >
</ dependency >
</ dependencies >
これらの座標を Gradle または Maven スクリプトで使用して、希望のバージョンの Tai-e をプロジェクトに含めることができます。
Tai-e の詳細情報はリファレンス ドキュメントで提供されており、IntelliJ IDEA でのセットアップ、コマンドライン オプション、新しい分析の開発などのさまざまな側面がカバーされています。
上記の参考ドキュメントは Tai-e の最新バージョンに関するものであることに注意してください。特定の安定バージョンのドキュメントが必要な場合は、ドキュメント インデックスを参照してください。さらに、ドキュメントはリポジトリ内に含まれており、ソース コードとともに維持されます。特定のバージョンの Tai-e のリファレンス ドキュメント (AsciiDoc 形式) にアクセスするには、index.adoc から始まる docs/en ディレクトリを探索します。これにより、Tai-e のバージョン固有のドキュメントにアクセスできるようになります。
リファレンス ドキュメントに加えて、Tai-e の Javadoc も便利なリファレンス リソースとして利用できます。
Tai-e は積極的に開発と更新を行っているため、行った注目すべき変更、特に新機能と重大な変更を CHANGELOG に記録します。 Tai-e をアップデートした後で何か問題が発生した場合は、CHANGELOG をチェックすると有益な情報が得られるかもしれません。
さらに、学習者が実際の Java プログラムを分析するためのさまざまな静的分析手法を実装できるように体系的にトレーニングできるように、8 つのプログラミング課題が慎重に設計された Tai-e の教育版を開発しました。教育版は Tai-e と大量のコードを共有しているため、課題をこなすことは Tai-e に慣れる良い方法です。