博碩士論文 103525003 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:34 、訪客IP:54.162.107.122
姓名 林庭書(Ting-Shu Lin)  查詢紙本館藏   畢業系所 軟體工程研究所
論文名稱
(Change History Tracing Tool for Arbitrary Programming Language)
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 現今的版本控制系統及相關工具,因為所儲存的資訊缺乏對程式原始碼的理解,而導致軟體開發人員在對版本紀錄進行查詢時,難以得到他們實際所關心的資訊。例如開發者想要針對一個在許久以前能運作正常,卻在近期的測試中發生錯誤的方法(method)進行追蹤。為了找出造成錯誤的更動,由於目前版本控制系統只能找到關於檔案層級的變動紀錄,會有大量與目標無關的變動被顯示出來,而難以從中找出真正與該方法有關係的變動紀錄。
本論文針對現有版本控制系統的不足,提出一個輔助追蹤版本歷史紀錄之工具iNob。本工具能以高效的方式對程式原始碼進行簡易的分析,以讓軟體開發者以方法為單位,查找其於版本控制系統(Version Control System)中的變更紀錄。使用者可以透過簡單而直觀的操作,得到出他們所關注的變更紀錄。透過這樣的輔助,能幫助開發者更加有效地除錯以及瞭解程式碼變更歷程,從而提高開發效率並降低程式維護成本。本工具同時也有著高度的擴充性,能夠藉由簡單的方式更換部分元件,以支援不同的程式語言。
摘要(英) Version Control Systems(VCS) and related tools nowadays have an obvious problem: all data are saved as pure text format. The information of a program such as structure and elements is ignored from these tools. When developers try to trace history of a program, they can only get textual information from VCS. In many practical cases, it’s hard to find the information that developers really care about, changes of a method for example.
In this research, we propose iNob, a VCS assistant tool for this problem. iNob can search and analyze source code stored in VCS effectively. With the assistance of iNob, developers can search the change history of a method in VCS. Using iNob, developers can focus on code change history of a program element, such as method or others, making developing and debugging more efficient. iNob also has good extendibility: users can extend iNob to support different programming languages in a very efficient way without introducing heavy techniques such as programming language parsers.
關鍵字(中) ★ 版本控制系統 關鍵字(英) ★ VCS
論文目次 第1章、 緒論 1
1-1 研究動機 1
1-2 問題描述 2
第2章、 背景與相關研究 4
2-1 版本控制系統 4
2-2 版本控制系統相關工具 4
2-3 Git 版本控制系統之原理與侷限 6
2-3-1 Git原理簡介 6
2-3-2 Git 的侷限 6
2-4 整合開發工具 7
2-5 程式分析工具 8
2-6 相關研究 9
2-6-1 程式歷史紀錄分析探勘 9
2-6-2 基於版本控制系統之開發輔助工具 10
第3章、 iNob – Code History Tracing Tool 13
3-1 問題描述 13
3-1-1 使用傳統Git工具追蹤Bug發生點的難題 13
3-1-2 使用傳統Git工具追蹤程式碼演變歷史的難題 14
3-1-3 現實中的難題案例 15
3-1-4 iNob的挑戰 19
3-2 設計理念 19
第4章、 系統設計與實作 24
4-1 系統架構 24
iNob主程式架構 24
iNob與Eclipse Plugin的合作 25
4-1-1 Source Code Analyzer 25
4-1-2 History Tracer 27
4-1-3 User Interface 27
4-2 實作方法 27
4-2-1 JGit 27
4-2-2 Eclipse Plugin 28
4-2-3 Java Extensible Application 29
第5章、 實驗評估 31
5-1 評估方法 31
5-2 效能評估 31
5-3 可擴充性評估 31
5-4 實用案例 33
5-4-1 TaaS 團隊使用iNob找出問題程式碼源頭 33
5-4-2 xDiva 使用iNob尋找因不明原因失敗的測試案例 35
第6章、 結論與未來展望 39
未來展望 39
第7章、 參考文獻 41
參考文獻 [1] Subversion. Available: https://subversion.apache.org/
[2] Git. Available: https://git-scm.com/
[3] TortoiseSVN. Available: https://tortoisesvn.net
[4] SourceTree. Available: https://www.sourcetreeapp.com
[5] GitHub. Available: http://github.com/
[6] Bitbucket. Available: https://bitbucket.org
[7] GitLab. Available: https://gitlab.com
[8] Sourcegraph. Available: https://sourcegraph.com
[9] Visual Studio. Available: https://www.visualstudio.com/
[10] Eclipse. Available: https://eclipse.org/
[11] IntelliJ IDEA. Available: https://www.jetbrains.com/idea/
[12] RubyMine. Available: https://www.jetbrains.com/ruby/
[13] Visual Assist. Available: www.wholetomato.com
[14] ReSharper. Available: https://www.jetbrains.com/resharper
[15] Pylint. Available: https://www.pylint.org/
[16] FxCop. Available: https://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx
[17] PySonar. Available: https://github.com/yinwang0/pysonar2
[18] RubySonar. Available: https://github.com/yinwang0/rubysonar
[19] ydiff. Available: https://github.com/yinwang0/ydiff
[20] R. Wu, H. Zhang, S. Kim, and S.-C. Cheung, "ReLink: recovering links between bugs and changes," presented at the Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, Szeged, Hungary, 2011.
[21] A. Mockus and L. G. Votta, "Identifying reasons for software changes using historic databases," in Software Maintenance, 2000. Proceedings. International Conference on, 2000, pp. 120-130.
[22] A. Schröter, T. Zimmermann, R. Premraj, and A. Zeller, "If your bug database could talk," presented at the Proceedings of the 5th International Symposium on Empirical Software Engineering, 2006.
[23] T. Zimmermann and P. Weißgerber, "Preprocessing CVS Data for Fine-Grained Analysis," presented at the MSR′04, Edinburgh, Scotland, UK, 2004.
[24] J. Śliwerski, T. Zimmermann, and A. Zeller, "When do changes induce fixes?," SIGSOFT Softw. Eng. Notes, vol. 30, pp. 1-5, 2005.
[25] A. E. Hassan and R. C. Holt, "The top ten list: dynamic fault prediction," in 21st IEEE International Conference on Software Maintenance (ICSM′05), 2005, pp. 263-272.
[26] S. Kim, T. Zimmermann, J. E. J. Whitehead, and A. Zeller, "Predicting Faults from Cached History," in 29th International Conference on Software Engineering (ICSE′07), 2007, pp. 489-498.
[27] T. Zimmermann, P. Weisgerber, S. Diehl, and A. Zeller, "Mining Version Histories to Guide Software Changes," presented at the Proceedings of the 26th International Conference on Software Engineering, 2004.
[28] Z. Tóth, G. Novák, R. Ferenc, and I. Siket, "Using Version Control History to Follow the Changes of Source Code Elements," in Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on, 2013, pp. 319-322.
[29] Y. Y. Lee, D. Marinov, and R. E. Johnson, "Tempura: Temporal Dimension for IDEs," in 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, 2015, pp. 212-222.
[30] Y. Yoon, B. A. Myers, and S. Koo, "Visualization of Fine-Grained Code Change History," presented at the IEEE Symposium on Visual Languages and Human-Centric Computing, 2013.
[31] WebStorm. Available: https://www.jetbrains.com/webstorm/
[32] C# Keyword: Partial Available: https://msdn.microsoft.com/en-us/library/wbx7zzdd.aspx
[33] JGit. Available: http://www.eclipse.org/jgit
[34] libgit2. Available: https://libgit2.github.com
[35] NodeGit. Available: http://www.nodegit.org/
[36] 王浚懿, "Locating Interested Code by Program Execution Paths with Debugger," 碩士, 軟體工程研究所, 國立中央大學, 桃園縣, 2013.
指導教授 鄭永斌(Yung-Pin Cheng) 審核日期 2016-8-26
推文 facebook   plurk   twitter   funp   google   live   udn   HD   myshare   reddit   netvibes   friend   youpush   delicious   baidu   
網路書籤 Google bookmarks   del.icio.us   hemidemi   myshare   

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明