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: إطار تحليل ثابت صديق للمطورين لجافا من خلال تسخير التصاميم الجيدة للكلاسيكيات. في وقائع الندوة الدولية الثانية والثلاثين لـ ACM SIGSOFT حول اختبار وتحليل البرمجيات (ISSTA '23)، 17-21 يوليو 2023، سياتل، واشنطن، الولايات المتحدة الأمريكية (pdf، bibtex).
إن أبسط طريقة هي تنزيله من إصدارات GitHub.
وبدلاً من ذلك، يمكنك إنشاء أحدث إصدار من Tai-e بنفسك من الكود المصدري. يمكن تحقيق ذلك ببساطة عبر Gradle (تأكد من توفر Java 17 (أو إصدار أعلى) على نظامك). كل ما تحتاجه هو تشغيل أمر gradlew fatJar
، وبعد ذلك سيتم إنشاء الجرة القابلة للتشغيل في tai-e/build/
، والتي تتضمن 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 for Tai-e كمورد مرجعي مفيد.
نظرًا لأننا نعمل بنشاط على تطوير وتحديث Tai-e، فإننا نسجل التغييرات الملحوظة التي أجريناها، وخاصة الميزات الجديدة والتغييرات العاجلة، في سجل التغيير. إذا وجدت شيئًا خاطئًا بعد تحديث Tai-e، فربما يمكنك مراجعة سجل التغيير للحصول على معلومات مفيدة.
بالإضافة إلى ذلك، قمنا بتطوير نسخة تعليمية من Tai-e حيث تم تصميم ثماني مهام برمجة بعناية لتدريب المتعلمين بشكل منهجي على تنفيذ تقنيات التحليل الثابتة المختلفة لتحليل برامج Java الحقيقية. تشترك النسخة التعليمية في قدر كبير من التعليمات البرمجية مع Tai-e، وبالتالي فإن إجراء المهام سيكون طريقة جيدة للتعرف على Tai-e.