
जावा और एंड्रॉइड के लिए एक आसानी से सीखने/उपयोग करने योग्य स्थैतिक विश्लेषण फ्रेमवर्क
Tai-e (चीनी: 太阿; उच्चारण: [ˈtaɪə:]) जावा के लिए एक नया स्थैतिक विश्लेषण ढाँचा है (कृपया विवरण के लिए हमारा ISSTA 2023 पेपर देखें), जिसमें हमारे द्वारा प्रस्तावित नए डिज़ाइनों और Soot, WALA, Doop, और SpotBugs जैसे क्लासिक ढाँचों के "सर्वश्रेष्ठ" डिज़ाइन शामिल हैं। Tai-e सीखने में आसान, उपयोग में आसान, कुशल और अत्यधिक विस्तारणीय है, जो आपको इसके ऊपर आसानी से नए विश्लेषण विकसित करने की अनुमति देता है।
वर्तमान में, Tai-e निम्नलिखित प्रमुख विश्लेषण घटक प्रदान करता है (और अधिक विश्लेषण विकासाधारित हैं):
clone() डिटेक्टरTai-e जावा में विकसित है, और यह विंडोज, लिनक्स और मैक ओएस सहित प्रमुख ऑपरेटिंग सिस्टम पर चल सकता है।
डेवलपर्स के प्रति शिष्टाचार के रूप में, हम अपेक्षा करते हैं कि आप अपने शोध कार्य में Tai-e ढाँचे का वर्णन करने वाले ISSTA 2023 के पेपर को कृपया उद्धृत करें:
Tian Tan और Yue Li. 2023. Tai-e: A Developer-Friendly Static Analysis Framework for Java by Harnessing the Good Designs of Classics. 32वें ACM SIGSOFT इंटरनेशनल सिम्पोजियम ऑन सॉफ्टवेयर टेस्टिंग एंड एनालिसिस (ISSTA '23) की कार्यवाही में, 17–21 जुलाई, 2023, सिएटल, WA, USA (pdf, bibtex).
अनुशंसित तरीका GitHub Releases से वितरण ZIP डाउनलोड करना है। ZIP में Tai-e, सभी रनटाइम निर्भरताएँ, ऑफलाइन दस्तावेज़ीकरण और विंडोज, लिनक्स तथा मैक ओएस के लिए स्टार्टअप स्क्रिप्ट शामिल हैं।
वैकल्पिक रूप से, आप नवीनतम Tai-e को स्रोत कोड से स्वयं बना सकते हैं। इसे Gradle के माध्यम से आसानी से पूरा किया जा सकता है (सुनिश्चित करें कि आपके सिस्टम पर Java 17 (या उच्च संस्करण) उपलब्ध है):
./gradlew distZip
वितरण ZIP tai-e/build/distributions/ में उत्पन्न होगा। इसे निकालने के बाद, स्टार्टअप स्क्रिप्ट के माध्यम से Tai-e चलाएँ:
# Linux/macOS पर
./tai-e-<version>/bin/tai-e -h
# Windows पर
.\tai-e-<version>\bin\tai-e.bat -h
पुराने रिलीज़ और स्क्रिप्ट के साथ संगतता के लिए, Tai-e अभी भी एक लीगेसी ऑल-इन-वन JAR प्रदान करता है:
./gradlew fatJar
java -jar build/tai-e-all-<version>.jar -h
Tai-e को एक स्टैंडअलोन टूल के रूप में डिज़ाइन किया गया है, लेकिन आपके पास इसे अपने प्रोजेक्ट में निर्भरता के रूप में शामिल करने का विकल्प भी है। यह Maven रिपॉजिटरी पर उपलब्ध है, जिससे आप इसे Gradle और Maven जैसे बिल्ड टूल का उपयोग करके अपने जावा प्रोजेक्ट्स में आसानी से एकीकृत कर सकते हैं। हम Tai-e के स्थिर और नवीनतम दोनों संस्करणों का रखरखाव करते हैं, और यहाँ Gradle और Maven स्क्रिप्ट प्रारूपों में संबंधित निर्देशांक दिए गए हैं:
Gradle के लिए:
dependencies {
implementation("net.pascal-lab:tai-e:0.5.4")
}
Maven के लिए:
<dependencies>
<dependency>
<groupId>net.pascal-lab</groupId>
<artifactId>tai-e</artifactId>
<version>0.5.4</version>
</dependency>
</dependencies>
Gradle के लिए:
repositories {
mavenCentral()
maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
}
dependencies {
implementation("net.pascal-lab:tai-e:0.5.5-SNAPSHOT")
}
Maven के लिए:
<repositories>
<repository>
<id>snapshots</id>
<name>Sonatype snapshot server</name>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.pascal-lab</groupId>
<artifactId>tai-e</artifactId>
<version>0.5.5-SNAPSHOT</version>
</dependency>
</dependencies>
आप अपने प्रोजेक्ट में Tai-e के वांछित संस्करण को शामिल करने के लिए अपने Gradle या Maven स्क्रिप्ट में इन निर्देशांकों का उपयोग कर सकते हैं।
हमने संदर्भ दस्तावेज़ीकरण में Tai-e की विस्तृत जानकारी प्रदान की है, जो विभिन्न पहलुओं जैसे IntelliJ IDEA में सेटअप, कमांड-लाइन विकल्प, और नए विश्लेषण का विकास को कवर करता है।
कृपया ध्यान दें कि ऊपर उल्लिखित संदर्भ दस्तावेज़ीकरण Tai-e के नवीनतम संस्करण से संबंधित है। यदि आपको किसी विशिष्ट स्थिर संस्करण के लिए दस्तावेज़ीकरण की आवश्यकता है, तो कृपया दस्तावेज़ीकरण सूचकांक देखें। इसके अतिरिक्त, दस्तावेज़ीकरण रिपॉजिटरी के भीतर शामिल है और स्रोत कोड के साथ बनाए रखा जाता है। आप Tai-e के किसी विशिष्ट संस्करण के लिए संदर्भ दस्तावेज़ीकरण (AsciiDoc प्रारूप में) docs/en निर्देशिका को index.adoc से शुरू करके एक्सेस कर सकते हैं। यह आपको Tai-e के लिए संस्करण-विशिष्ट दस्तावेज़ीकरण तक पहुँचने की अनुमति देता है।
संदर्भ दस्तावेज़ीकरण के अलावा, Tai-e के Javadocs भी एक उपयोगी संदर्भ संसाधन के रूप में उपलब्ध हैं।
चूँकि हम Tai-e को सक्रिय रूप से विकसित और अद्यतन कर रहे हैं, हम अपने द्वारा किए गए उल्लेखनीय परिवर्तनों, विशेष रूप से नई सुविधाओं और ब्रेकिंग चेंजेस को CHANGELOG में दर्ज करते हैं। यदि आपको Tai-e को अपडेट करने के बाद कुछ गलत लगता है, तो आप उपयोगी जानकारी के लिए CHANGELOG की जाँच कर सकते हैं।
इसके अलावा, हमने Tai-e का एक शैक्षिक संस्करण विकसित किया है जहाँ आठ प्रोग्रामिंग असाइनमेंट सावधानीपूर्वक डिज़ाइन किए गए हैं ताकि शिक्षार्थियों को वास्तविक जावा प्रोग्रामों का विश्लेषण करने के लिए विभिन्न स्थैतिक विश्लेषण तकनीकों को लागू करने में व्यवस्थित रूप से प्रशिक्षित किया जा सके। शैक्षिक संस्करण Tai-e के साथ बड़ी मात्रा में कोड साझा करता है, इसलिए असाइनमेंट करना Tai-e से परिचित होने का एक अच्छा तरीका होगा।