Skip navigation

DSpace

機構典藏 DSpace 系統致力於保存各式數位資料(如:文字、圖片、PDF)並使其易於取用。

點此認識 DSpace
DSpace logo
English
中文
  • 瀏覽論文
    • 校院系所
    • 出版年
    • 作者
    • 標題
    • 關鍵字
  • 搜尋 TDR
  • 授權 Q&A
    • 我的頁面
    • 接受 E-mail 通知
    • 編輯個人資料
  1. NTU Theses and Dissertations Repository
  2. 電機資訊學院
  3. 資訊工程學系
請用此 Handle URI 來引用此文件: http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/89841
完整後設資料紀錄
DC 欄位值語言
dc.contributor.advisor李允中zh_TW
dc.contributor.advisorJonathan Leeen
dc.contributor.author黎光晏zh_TW
dc.contributor.authorGuang-Yan Lien
dc.date.accessioned2023-09-22T16:21:05Z-
dc.date.available2023-11-09-
dc.date.copyright2023-09-22-
dc.date.issued2023-
dc.date.submitted2023-08-11-
dc.identifier.citationAndroid gradle plugin. https://developer.android.com/studio/releases/gradle-plugin
Ant. https://ant.apache.org/
Bazel. https://bazel.build/
Gradle. https://gradle.org/
Hugging face. https://huggingface.co/
Java. https://www.java.com/en/
Maven. https://maven.apache.org/.
Minecraft. https://www.minecraft.net/en-us.
Docker. https://www.docker.com/.
Github rest api. https://docs.github.com/en/rest?apiVersion=2022-11-28.
The top programming languages. https://octoverse.github.com/2022/top-programming-languages.
H.-W. Chen. Auto-classifying-fixing build errors in java-based open source projects. Master’s thesis, National Taiwan University, 2020.
J. Devlin, M.-W. Chang, K. Lee, and K. Toutanova. Bert: Pre-training of deep bidi-rectional transformers for language understanding. arXiv preprint arXiv:1810.04805, 2018.
F. Hassan and X. Wang. Hirebuild: An automatic approach to history-driven repair of build scripts. In Proceedings of the 40th international conference on software engineering, pages 1078–1089, 2018.
Y. Lou, J. Chen, L. Zhang, D. Hao, and L. Zhang. History-driven build failure fixing: how far are we? In Proceedings of the 28th acm sigsoft international symposium on software testing and analysis, pages 43–54, 2019.
C. Macho, S. McIntosh, and M. Pinzger. Automatically repairing dependency-related build breakage. In 2018 ieee 25th international conference on software analysis, evolution and reengineering (saner), pages 106–117. IEEE, 2018.
H. Seo, C. Sadowski, S. Elbaum, E. Aftandilian, and R. Bowdidge. Programmers’ build errors: a case study (at google). In Proceedings of the 36th International Conference on Software Engineering, pages 724–734, 2014.
M. Zaheer, G. Guruganesh, K. A. Dubey, J. Ainslie, C. Alberti, S. Ontanon, P. Pham, A. Ravula, Q. Wang, L. Yang, et al. Big bird: Transformers for longer sequences. Advances in neural information processing systems, 33:17283–17297, 2020.
-
dc.identifier.urihttp://tdr.lib.ntu.edu.tw/jspui/handle/123456789/89841-
dc.description.abstract在使用開源的 Java 專案時,常常會遇到建構失敗的情況,這給開發者帶來許多困擾。因此,自動分析造成這些錯誤的原因並尋找自動修復的方法是很有幫助的。而想達成此目標,通常會使用一些人為定義好的規則來分析專案的錯誤。而在我們的研究中,使用了以 BERT 和 Big Bird 兩個大型預訓練語言模型為基底的兩個模型,來產生修復策略。為了收集研究數據,我們從 GitHub 收集了兩組開源 Gradle Java 專案組,分別包含了 4739 個和 11483 個專案。並利用了一個自動化建構系統: Gradle ACFix,來產生建構錯誤訊息以及對應的修復策略。該兩組模型在進行訓練、驗證後,其準確率均可以達到 95% 以上。zh_TW
dc.description.abstractWhen working on open-source Java projects, it's common to run into build failures, which can be challenging to handle. That's why it's helpful to analyze the reasons behind these errors and find ways to automatically fix them. Usually, this involves using rule-based methods to examine projects. In our work, we took advantage of two large pretrained language models - BERT and Big Bird. These models helped us give failed projects a strategy to fix issues in Gradle Java projects. We built upon the foundation of Gradle ACFix, an automated building system, to explore the potential of using machine learning to identify fixing strategies for projects. To gather data for our research, we collected two project sets of open source Gradle Java projects from GitHub, amounting to 4739 and 11493 projects. When testing our models with the error logs from these projects, both of our models can achieve accuracy of over 95\% for both datasets.en
dc.description.provenanceSubmitted by admin ntu (admin@lib.ntu.edu.tw) on 2023-09-22T16:21:05Z
No. of bitstreams: 0
en
dc.description.provenanceMade available in DSpace on 2023-09-22T16:21:05Z (GMT). No. of bitstreams: 0en
dc.description.tableofcontents口試委員審定書 i
誌謝 ii
摘要 iii
Abstracts iv
List of Figures viii
List of Tables x
Chapter 1 Introduction 1
Chapter 2 Related Work 3
2.1 Gradle ACFix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Build process . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 Development of error types and fixing strategies . . . . . . . . 4
2.1.3 List of error types and fixing strategies . . . . . . . . . . . . . 5
Chapter 3 Transformer-based models 8
3.1 Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Preprocess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Data splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4 Proposed models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.1 BERT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.2 Proposed architecture . . . . . . . . . . . . . . . . . . . . . . 22
3.4.3 Token Length Distribution . . . . . . . . . . . . . . . . . . . . 23
3.4.4 Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Big Bird model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.1 Introduction of Big Bird . . . . . . . . . . . . . . . . . . . . . 29
3.5.2 Proposed architecture . . . . . . . . . . . . . . . . . . . . . . 29
3.5.3 Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Chapter 4 Conclusion 37
4.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Bibliography 39
Chapter 5 Appendix 41
5.1 Issue: submodules cannot be updated (absolute path) . . . . . . . . . 41
5.1.1 Problem description . . . . . . . . . . . . . . . . . . . . . . . 41
5.1.2 Root cause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.1.3 Solution and result . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Issue: Gradle ACFix Cannot change JDK version . . . . . . . . . . . 42
5.2.1 Problem description . . . . . . . . . . . . . . . . . . . . . . . 42
5.2.2 Root cause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2.3 Solution and result . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Issue: Fixing strategy “Search Artifact” cannot fix projects . . . . 43
5.3.1 Problem description . . . . . . . . . . . . . . . . . . . . . . . 43
5.3.2 Root cause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3.3 Solution and result . . . . . . . . . . . . . . . . . . . . . . . . 44
-
dc.language.isoen-
dc.titleACFix: 應用Transformer模型於Java開源專案的自動化分類建構錯誤與修復zh_TW
dc.titleACFix: Applying Transformer Models for Automatic Build Errors Classification and Repair of Java-Based Open Source Projectsen
dc.typeThesis-
dc.date.schoolyear111-2-
dc.description.degree碩士-
dc.contributor.oralexamcommittee劉建宏;薛念林;李文廷;郭忠義zh_TW
dc.contributor.oralexamcommitteeChien-Huang Liu;Nien-Lin Hsueh;Wen-Tin Lee;Jong-Yih Kuoen
dc.subject.keyword建構錯誤,建構修復,開放原始碼,機器學習,zh_TW
dc.subject.keywordbuild error,build fixing,Gradle,open source,deep learning model,en
dc.relation.page44-
dc.identifier.doi10.6342/NTU202302998-
dc.rights.note未授權-
dc.date.accepted2023-08-12-
dc.contributor.author-college電機資訊學院-
dc.contributor.author-dept資訊工程學系-
顯示於系所單位:資訊工程學系

文件中的檔案:
檔案 大小格式 
ntu-111-2.pdf
  目前未授權公開取用
2.86 MBAdobe PDF
顯示文件簡單紀錄


系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。

社群連結
聯絡資訊
10617臺北市大安區羅斯福路四段1號
No.1 Sec.4, Roosevelt Rd., Taipei, Taiwan, R.O.C. 106
Tel: (02)33662353
Email: ntuetds@ntu.edu.tw
意見箱
相關連結
館藏目錄
國內圖書館整合查詢 MetaCat
臺大學術典藏 NTU Scholars
臺大圖書館數位典藏館
本站聲明
© NTU Library All Rights Reserved