Tai-e (chino: 太阿; pronunciación: [ˈtaɪə:]) es un nuevo marco de análisis estático para Java (consulte nuestro artículo ISSTA 2023 para obtener más detalles), que presenta posiblemente los "mejores" diseños de los dos novedosos que propusimos. y los de frameworks clásicos como Soot, WALA, Doop y SpotBugs. Tai-e es fácil de aprender, fácil de usar, eficiente y altamente extensible, lo que le permite desarrollar fácilmente nuevos análisis además.
Actualmente, Tai-e proporciona los siguientes componentes de análisis principales (y hay más análisis en camino):
clone()
incorrectoTai-e está desarrollado en Java y puede ejecutarse en los principales sistemas operativos, incluidos Windows, Linux y macOS.
Como cortesía para los desarrolladores, esperamos que citen el artículo de ISSTA 2023 que describe el marco Tai-e en su trabajo de investigación:
Tian Tan y Yue Li. 2023. Tai-e: un marco de análisis estático para Java apto para desarrolladores que aprovecha los buenos diseños de los clásicos. En Actas del 32º Simposio internacional ACM SIGSOFT sobre pruebas y análisis de software (ISSTA '23), 17 al 21 de julio de 2023, Seattle, WA, EE. UU. (pdf, bibtex).
La forma más sencilla es descargarlo desde GitHub Releases.
Alternativamente, puedes crear tú mismo el último Tai-e a partir del código fuente. Esto se puede lograr simplemente a través de Gradle (asegúrese de que Java 17 (o una versión superior) esté disponible en su sistema). Solo necesita ejecutar el comando gradlew fatJar
y luego se generará el archivo ejecutable en tai-e/build/
, que incluye Tai-e y todas sus dependencias.
Tai-e está diseñado como una herramienta independiente, pero también tienes la opción de incluirla en tu proyecto como una dependencia. Está disponible en los repositorios de Maven, lo que le permite integrarlo fácilmente en sus proyectos Java utilizando herramientas de compilación como Gradle y Maven. Mantenemos versiones estables y más recientes de Tai-e, y aquí están las coordenadas correspondientes en formatos de script Gradle y Maven:
Para Gradle:
dependencies {
implementation( " net.pascal-lab:tai-e:0.2.2 " )
}
Para Maven:
< dependencies >
< dependency >
< groupId >net.pascal-lab</ groupId >
< artifactId >tai-e</ artifactId >
< version >0.2.2</ version >
</ dependency >
</ dependencies >
Para 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 " )
}
Para 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 >
Puede utilizar estas coordenadas en sus scripts Gradle o Maven para incluir la versión deseada de Tai-e en su proyecto.
Hemos proporcionado información detallada de Tai-e en la documentación de referencia, que cubre varios aspectos, como la configuración en IntelliJ IDEA, las opciones de la línea de comandos y el desarrollo de nuevos análisis.
Tenga en cuenta que la documentación de referencia mencionada anteriormente pertenece a la última versión de Tai-e. Si necesita documentación para una versión estable específica, consulte el índice de documentación. Además, la documentación se incluye en el repositorio y se mantiene junto con el código fuente. Puede acceder a la documentación de referencia para una versión particular de Tai-e (en formato AsciiDoc) explorando el directorio docs/en, comenzando desde index.adoc. Esto le permite acceder a documentación específica de la versión de Tai-e.
Además de la documentación de referencia, los Javadocs para Tai-e también están disponibles como recurso de referencia útil.
Dado que estamos desarrollando y actualizando activamente Tai-e, registramos los cambios notables que realizamos, especialmente las nuevas funciones y los cambios importantes, en CHANGELOG. Si encuentra algún problema después de actualizar Tai-e, tal vez pueda consultar CHANGELOG para obtener información útil.
Además, hemos desarrollado una versión educativa de Tai-e donde ocho tareas de programación están cuidadosamente diseñadas para capacitar sistemáticamente a los alumnos en la implementación de diversas técnicas de análisis estático para analizar programas Java reales. La versión educativa comparte una gran cantidad de código con Tai-e, por lo que realizar las tareas sería una buena forma de familiarizarse con Tai-e.