Tai-e (кит. 太阿; произношение: [ˈtaɪə:]) — это новая среда статического анализа для Java (подробности см. в нашей статье ISSTA 2023), в которой представлены, пожалуй, «лучшие» конструкции из обоих предложенных нами новых проектов. и классических фреймворков, таких как Soot, WALA, Doop и SpotBugs. Tai-e прост в освоении, прост в использовании, эффективен и имеет широкие возможности расширения, что позволяет легко разрабатывать на его основе новые методы анализа.
В настоящее время Tai-e предоставляет следующие основные компоненты анализа (и новые анализы находятся в разработке):
clone()
Tai-e разработан на Java и может работать в основных операционных системах, включая Windows, Linux и macOS.
Из уважения к разработчикам мы ожидаем, что вы в своей исследовательской работе процитируете статью ISSTA 2023, описывающую структуру Tai-e:
Тянь Тан и Юэ Ли. 2023. Tai-e: удобная для разработчиков среда статического анализа для Java, использующая хорошие классические разработки. В материалах 32-го Международного симпозиума ACM SIGSOFT по тестированию и анализу программного обеспечения (ISSTA '23), 17–21 июля 2023 г., Сиэтл, Вашингтон, США (pdf, bibtex).
Самый простой способ — загрузить его с GitHub Releases.
Альтернативно, вы можете самостоятельно собрать последнюю версию Tai-e из исходного кода. Это можно просто сделать через Gradle (убедитесь, что в вашей системе доступна Java 17 (или более поздняя версия). Вам просто нужно запустить команду gradlew fatJar
, и тогда в tai-e/build/
будет создан работоспособный jar-файл, который включает Tai-e и все его зависимости.
Tai-e разработан как автономный инструмент, но у вас также есть возможность включить его в свой проект в качестве зависимости. Он доступен в репозиториях Maven, что позволяет легко интегрировать его в ваши проекты Java с помощью таких инструментов сборки, как Gradle и Maven. Мы поддерживаем как стабильные, так и последние версии 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), открыв каталог docs/en, начиная с index.adoc. Это позволит вам получить доступ к документации по конкретной версии Tai-e.
Помимо справочной документации, в качестве полезного справочного ресурса также доступна Javadocs для Tai-e.
Поскольку мы активно разрабатываем и обновляем Tai-e, мы записываем внесенные нами заметные изменения, особенно новые функции и критические изменения, в CHANGELOG. Если после обновления Tai-e вы обнаружите что-то не так, возможно, вы можете проверить CHANGELOG на наличие полезной информации.
Кроме того, мы разработали образовательную версию Tai-e, в которой тщательно разработаны восемь заданий по программированию для систематического обучения учащихся применению различных методов статического анализа для анализа реальных программ Java. В образовательной версии используется большой объем кода, что и в Tai-e, поэтому выполнение заданий будет хорошим способом познакомиться с Tai-e.