Tai-e (chinois : 太阿 ; prononciation : [ˈtaɪə :]) est un nouveau cadre d'analyse statique pour Java (veuillez consulter notre article ISSTA 2023 pour plus de détails), qui présente sans doute les « meilleures » conceptions des deux nouvelles que nous avons proposées. et ceux des frameworks classiques tels que Soot, WALA, Doop et SpotBugs. Tai-e est facile à apprendre, facile à utiliser, efficace et hautement extensible, vous permettant de développer facilement de nouvelles analyses par-dessus.
Actuellement, Tai-e fournit les principaux composants d’analyse suivants (et d’autres analyses sont en cours) :
clone()
incorrectTai-e est développé en Java et peut fonctionner sur les principaux systèmes d'exploitation, notamment Windows, Linux et macOS.
Par courtoisie envers les développeurs, nous espérons que vous citerez l'article de l'ISSTA 2023 décrivant le cadre Tai-e dans votre travail de recherche :
Tian Tan et Yue Li. 2023. Tai-e : un cadre d'analyse statique convivial pour les développeurs pour Java en exploitant les bonnes conceptions des classiques. Dans Actes du 32e Symposium international ACM SIGSOFT sur les tests et analyses de logiciels (ISSTA '23), 17-21 juillet 2023, Seattle, WA, États-Unis (pdf, bibtex).
Le moyen le plus simple consiste à le télécharger à partir des versions GitHub.
Alternativement, vous pouvez créer vous-même le dernier Tai-e à partir du code source. Cela peut être simplement accompli via Gradle (assurez-vous que Java 17 (ou version supérieure) est disponible sur votre système). Il vous suffit d'exécuter la commande gradlew fatJar
, puis le pot exécutable sera généré dans tai-e/build/
, qui inclut Tai-e et toutes ses dépendances.
Tai-e est conçu comme un outil autonome, mais vous avez également la possibilité de l'inclure dans votre projet en tant que dépendance. Il est disponible sur les référentiels Maven, vous permettant de l'intégrer facilement dans vos projets Java à l'aide d'outils de build tels que Gradle et Maven. Nous maintenons les versions stables et les plus récentes de Tai-e, et voici les coordonnées correspondantes aux formats de script Gradle et Maven :
Pour Gradle :
dependencies {
implementation( " net.pascal-lab:tai-e:0.2.2 " )
}
Pour Maven :
< dependencies >
< dependency >
< groupId >net.pascal-lab</ groupId >
< artifactId >tai-e</ artifactId >
< version >0.2.2</ version >
</ dependency >
</ dependencies >
Pour 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 " )
}
Pour 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 >
Vous pouvez utiliser ces coordonnées dans vos scripts Gradle ou Maven pour inclure la version souhaitée de Tai-e dans votre projet.
Nous avons fourni des informations détaillées sur Tai-e dans la documentation de référence, qui couvre divers aspects tels que la configuration dans IntelliJ IDEA, les options de ligne de commande et le développement d'une nouvelle analyse.
Veuillez noter que la documentation de référence mentionnée ci-dessus concerne la dernière version de Tai-e. Si vous avez besoin de documentation pour une version stable spécifique, veuillez vous référer à l'index de la documentation. De plus, la documentation est incluse dans le référentiel et conservée avec le code source. Vous pouvez accéder à la documentation de référence d'une version particulière de Tai-e (au format AsciiDoc) en explorant le répertoire docs/en, à partir de index.adoc. Cela vous permet d'accéder à la documentation spécifique à la version de Tai-e.
En plus de la documentation de référence, les Javadocs pour Tai-e sont également disponibles comme ressource de référence utile.
Puisque nous développons et mettons activement à jour Tai-e, nous enregistrons les modifications notables que nous avons apportées, en particulier les nouvelles fonctionnalités et les modifications importantes, dans CHANGELOG. Si vous constatez un problème après la mise à jour de Tai-e, vous pouvez peut-être consulter CHANGELOG pour obtenir des informations utiles.
De plus, nous avons développé une version éducative de Tai-e dans laquelle huit tâches de programmation sont soigneusement conçues pour former systématiquement les apprenants à mettre en œuvre diverses techniques d'analyse statique pour analyser de vrais programmes Java. La version éducative partage une grande quantité de code avec Tai-e, donc faire les devoirs serait un bon moyen de se familiariser avec Tai-e.