Tai-e(중국어: 太阿; 발음: [ˈtaaə:])는 Java를 위한 새로운 정적 분석 프레임워크입니다(자세한 내용은 ISSTA 2023 문서 참조). 이 프레임워크는 우리가 제안한 두 가지 새로운 디자인 중 틀림없이 "최고의" 디자인을 갖추고 있습니다. Soot, WALA, Doop 및 SpotBugs와 같은 클래식 프레임워크의 프레임워크도 있습니다. Tai-e는 배우기 쉽고 사용하기 쉽고 효율적이며 확장성이 뛰어나 새로운 분석을 쉽게 개발할 수 있습니다.
현재 Tai-e는 다음과 같은 주요 분석 구성요소를 제공합니다(더 많은 분석이 진행 중입니다).
clone()
감지기)Tai-e는 Java로 개발되었으며 Windows, Linux, macOS를 포함한 주요 운영 체제에서 실행될 수 있습니다.
개발자에 대한 배려로 귀하의 연구 작업에 Tai-e 프레임워크를 설명하는 ISSTA 2023의 논문을 인용해 주시기 바랍니다.
티안 탄(Tian Tan)과 유에 리(Yue Li). 2023. Tai-e: 클래식의 좋은 디자인을 활용하여 개발자 친화적인 Java용 정적 분석 프레임워크. 소프트웨어 테스팅 및 분석에 관한 제32회 ACM SIGSOFT 국제 심포지엄(ISSTA '23) 진행, 2023년 7월 17~21일, 미국 워싱턴주 시애틀(pdf, bibtex).
가장 간단한 방법은 GitHub 릴리스에서 다운로드하는 것입니다.
또는 소스 코드에서 직접 최신 Tai-e를 빌드할 수도 있습니다. 이는 Gradle을 통해 간단하게 수행할 수 있습니다(시스템에서 Java 17(또는 그 이상 버전)을 사용할 수 있는지 확인하십시오). gradlew fatJar
명령을 실행하기만 하면 실행 가능한 jar가 Tai-e 및 모든 종속성을 포함하는 tai-e/build/
에 생성됩니다.
Tai-e는 독립 실행형 도구로 설계되었지만 이를 프로젝트에 종속성으로 포함할 수도 있습니다. Maven 리포지토리에서 사용할 수 있으므로 Gradle 및 Maven과 같은 빌드 도구를 사용하여 Java 프로젝트에 쉽게 통합할 수 있습니다. 우리는 Tai-e의 안정적인 버전과 최신 버전을 모두 유지 관리하고 있으며 Gradle 및 Maven 스크립트 형식의 해당 좌표는 다음과 같습니다.
Gradle의 경우:
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 >
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 " )
}
메이븐의 경우:
< 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를 프로젝트에 포함할 수 있습니다.
IntelliJ IDEA 설정, 명령줄 옵션, 새로운 분석 개발 등 다양한 측면을 다루는 참조 문서에서 Tai-e에 대한 자세한 정보를 제공했습니다.
위에 언급된 참조 문서는 최신 버전 의 Tai-e에 관한 것입니다. 특정 안정 버전에 대한 문서가 필요한 경우 문서 색인을 참조하세요. 또한 문서는 저장소 내에 포함되어 소스 코드와 함께 유지됩니다. index.adoc에서 시작하여 docs/en 디렉토리를 탐색하여 특정 버전의 Tai-e(AsciiDoc 형식)에 대한 참조 문서에 액세스할 수 있습니다. 이를 통해 Tai-e의 버전별 문서에 액세스할 수 있습니다.
참조 문서 외에도 Tai-e용 Javadoc도 유용한 참조 리소스로 제공됩니다.
Tai-e를 적극적으로 개발하고 업데이트하고 있으므로 주목할 만한 변경 사항, 특히 새로운 기능과 주요 변경 사항을 CHANGELOG에 기록합니다. Tai-e를 업데이트한 후 잘못된 점을 발견하면 CHANGELOG에서 유용한 정보를 확인할 수 있습니다.
또한 학습자가 실제 Java 프로그램을 분석하기 위해 다양한 정적 분석 기술을 구현하도록 체계적으로 교육할 수 있도록 8개의 프로그래밍 과제가 신중하게 설계된 Tai-e의 교육용 버전을 개발했습니다. 교육용 버전은 Tai-e와 많은 양의 코드를 공유하므로 과제를 수행하는 것이 Tai-e에 익숙해지는 좋은 방법이 될 것입니다.