Tai-e (Cina: 太阿; pengucapan: [ˈtaɪə:]) adalah kerangka analisis statis baru untuk Java (silakan lihat makalah ISSTA 2023 kami untuk detailnya), yang bisa dibilang menampilkan desain "terbaik" dari kedua novel yang kami usulkan dan kerangka kerja klasik seperti Soot, WALA, Doop, dan SpotBugs. Tai-e mudah dipelajari, mudah digunakan, efisien, dan sangat dapat diperluas, sehingga Anda dapat dengan mudah mengembangkan analisis baru.
Saat ini, Tai-e menyediakan komponen analisis utama berikut (dan analisis lebih lanjut sedang diproses):
clone()
salahTai-e dikembangkan di Java, dan dapat berjalan di sistem operasi utama termasuk Windows, Linux, dan macOS.
Sebagai rasa hormat kepada para pengembang, kami berharap Anda mengutip makalah dari ISSTA 2023 yang menjelaskan kerangka Tai-e dalam pekerjaan penelitian Anda:
Tian Tan dan Yue Li. 2023. Tai-e: Kerangka Analisis Statis yang Ramah Pengembang untuk Java dengan Memanfaatkan Desain Klasik yang Baik. Dalam Prosiding Simposium Internasional ACM SIGSOFT ke-32 tentang Pengujian dan Analisis Perangkat Lunak (ISSTA '23), 17–21 Juli 2023, Seattle, WA, AS (pdf, bibtex).
Cara termudah adalah mengunduhnya dari GitHub Releases.
Alternatifnya, Anda dapat membuat sendiri Tai-e terbaru dari kode sumber. Hal ini dapat dilakukan dengan mudah melalui Gradle (pastikan Java 17 (atau versi lebih tinggi) tersedia di sistem Anda). Anda hanya perlu menjalankan perintah gradlew fatJar
, dan jar runnable akan dibuat di tai-e/build/
, yang mencakup Tai-e dan semua dependensinya.
Tai-e dirancang sebagai alat yang berdiri sendiri, tetapi Anda juga memiliki opsi untuk memasukkannya ke dalam proyek Anda sebagai ketergantungan. Ini tersedia di repositori Maven, memungkinkan Anda mengintegrasikannya dengan mudah ke dalam proyek Java Anda menggunakan alat build seperti Gradle dan Maven. Kami mempertahankan Tai-e versi stabil dan terbaru, dan berikut adalah koordinat yang sesuai dalam format skrip Gradle dan Maven:
Untuk Gradle:
dependencies {
implementation( " net.pascal-lab:tai-e:0.2.2 " )
}
Untuk Maven:
< dependencies >
< dependency >
< groupId >net.pascal-lab</ groupId >
< artifactId >tai-e</ artifactId >
< version >0.2.2</ version >
</ dependency >
</ dependencies >
Untuk Gradle:
repositories {
mavenCentral()
maven { url = uri( " https://s01.oss.sonatype.org/content/repositories/snapshots/ " ) }
}
dependencies {
implementation( " net.pascal-lab:tai-e:0.5.1-SNAPSHOT " )
}
Untuk Maven:
< 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 >
Anda dapat menggunakan koordinat ini dalam skrip Gradle atau Maven untuk menyertakan versi Tai-e yang diinginkan dalam proyek Anda.
Kami telah memberikan informasi rinci tentang Tai-e dalam Dokumentasi Referensi, yang mencakup berbagai aspek seperti Pengaturan di IntelliJ IDEA, Opsi Baris Perintah, dan Pengembangan Analisis Baru.
Harap dicatat bahwa dokumentasi referensi yang disebutkan di atas berkaitan dengan versi terbaru Tai-e. Jika Anda memerlukan dokumentasi untuk versi stabil tertentu, silakan merujuk ke Indeks Dokumentasi. Selain itu, dokumentasi disertakan dalam repositori dan dipelihara bersama kode sumber. Anda dapat mengakses dokumentasi referensi untuk versi Tai-e tertentu (dalam format AsciiDoc) dengan menjelajahi direktori docs/en, mulai dari index.adoc. Ini memungkinkan Anda mengakses dokumentasi khusus versi untuk Tai-e.
Selain dokumentasi referensi, Javadocs untuk Tai-e juga tersedia sebagai sumber referensi yang berguna.
Karena kami secara aktif mengembangkan dan memperbarui Tai-e, kami mencatat perubahan penting yang kami buat, terutama fitur baru dan perubahan penting, di CHANGELOG. Jika Anda menemukan sesuatu yang salah setelah memperbarui Tai-e, mungkin Anda dapat memeriksa CHANGELOG untuk informasi berguna.
Selain itu, kami telah mengembangkan versi pendidikan Tai-e di mana delapan tugas pemrograman dirancang dengan cermat untuk melatih pelajar secara sistematis dalam menerapkan berbagai teknik analisis statis untuk menganalisis program Java yang sebenarnya. Versi pendidikan berbagi banyak kode dengan Tai-e, sehingga mengerjakan tugas akan menjadi cara yang baik untuk mengenal Tai-e.