以作者查詢圖書館館藏 、以作者查詢臺灣博碩士 、以作者查詢全國書目 、勘誤回報 、線上人數:12 、訪客IP:54.234.45.33
姓名 王浚懿(Jyun-Yi Wang) 查詢紙本館藏 畢業系所 軟體工程研究所 論文名稱
(Locating Interested Code by Program Execution Paths with Debugger)相關論文 檔案 [Endnote RIS 格式] [Bibtex 格式] [相關文章] [文章引用] [完整記錄] [館藏目錄] [檢視] [下載]
- 本電子論文使用權限為同意立即開放。
- 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
- 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
摘要(中) 在一個大型的電腦程式的維護過程中,程式設計師要對電腦程式進行修改時,程式
碼理解是必經的過程,而在這過程中往往必須耗費大量的時間成本。在進行軟體維護的
過程中如有人員的調動,對新進的開發人員而言,要對既有的電腦程式進行理解其實是
件相當艱鉅的任務。
過去有研究指出程式設計師在理解電腦程式的過程中有 80%的時間成本都花費在錯誤
的方向上。這些錯誤有可能是在花費大量時間進行程式碼理解之後卻使用了錯誤的方法
解決問題,或者是在錯誤的程式碼片段進行程式碼修改但沒有達到目的。因此如何輔助
程式設計師有效率的進行程式碼理解是個很重要的課題。
對一個大型的軟體系統,程式設計師要進行程式碼理解時一般會閱讀系統的相關文
件與程式碼註解。不過在許多系統上可能會遇到系統文件不完善或是沒隨著程式碼版本
更新等問題,並且系統文件本身難以表達系統軟體在執行中的狀態。而較有經驗的程式
設計師會使用開發環境所提供的功能如 debugger,來觀察系統軟體執行時的狀態藉此進
行程式碼理解。因此,為了減少開發人員在程式碼理解上的困難,本研究採用了動態分
析的技術實作一個 Eclipse 的 plugin 來協助幫助程式設計師可以快速的找到他們所關心
的功能其所在位置,藉此大量減少程式設計師在大量程式碼中找尋或嘗試的時間成本。摘要(英) In the maintenance process of large-scale programs, tracing and understanding the source
code is an important process before the program can be modified or extended. To a programmer
who needs to understand an unfamiliar software system, it is always a daunting task. In most
cases, the comprehension process is often time-consuming and tiresome.
Some researches indicated that programmers can waste 80 percent of time comprehending
software in wrong directions. The wrong directions could end up spending time on
understanding the code in the wrong places and then resolve the problem by incorrect solutions.
Therefore, it is crucial to help programmers to find the needed code effectively and efficiently.
In large-scale software system, program comments and system documents are the
important sources to help program understanding. Yet, in many projects, the documents could
be incomplete, outdated, or obsolete, which do not catch up the newest version of source code.
More importantly, static documents is often insufficient to describe the dynamic behaviors of a
running software. Some researches show that experienced programmers choose tools such as
debuggers in SDE to observe the execution of a computer program for comprehension. Based
on such an observation, this work uses dynamic analysis technique and debuggers to implement
a plugin in Eclipse to help developers find the location of interested code effectively.關鍵字(中) ★ 程式碼理解 關鍵字(英) ★ Program comprehension 論文目次 第一章、 緒論 1
1-1 研究動機 1
1-2 問題描述 1
第二章、 研究背景與相關研究 3
2-1 Program comprehension 3
2-2程式設計師在理解程式碼的過程 3
2-3 Program Comprehension Tool 類型 4
2-4 Call Graph 6
2-5 Code coverage 6
第三章、 EPLIC - A Tool to Assist Locating Interested Code 9
3-1 問題分析 9
3-2 EPLIC 的設計理念 10
第四章、 研究成果評估 19
4-1評估方法 19
4-2 受試者程式設計師的挑選 19
4-3 程式類型的選擇 20
4-4案例設計 24
4-5評估結果 35
4-6 總結 38
第五章、 結論與討論 40
參考文獻 42參考文獻 [1]
M. Eaddy, A. V. Aho, G. Antoniol, and Y. G. Gueheneuc, “CERBERUS: Tracing Requirements to Source Code
Using Information Retrieval, Dynamic Analysis, and Program Analysis,” pp. 53-62, 2008.
[2]
S. Letovsky, “Cognitive processes in program comprehension,” in Papers presented at the first workshop on
empirical studies of programmers on Empirical studies of programmers, Washington, D.C., USA, 1986, pp. 58-79.
[3]
D. C. Littman, J. Pinto, S. Letovsky, and E. Soloway, “Mental models and software maintenance,” J. Syst.
Softw., vol. 7, no. 4, pp. 341-355, 1987.
[4]
A. von Mayrhauser, and A. M. Vans, "From code comprehension model to tool capabilities." pp. 469-473.
[5]
Y.-P. Cheng, “Executable Program Documentation Based on Debugging Break Points.”
[6]
P. Romero, B. du Boulay, R. Cox, R. Lutz, and S. Bryant, “Debugging strategies and tactics in a multi-
representation software environment,” International Journal of Human-Computer Studies, vol. 65, no. 12, pp.
992-1009, 2007.
[7]
R. W. Collins, A. R. Hevner, G. H. Walton, and R. C. Linger, “The impacts of function extraction technology
on program comprehension: A controlled experiment,” Information and Software Technology, vol. 50, no. 11, pp.
1165-1179, 2008.
[8]
A. J. Ko, “Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program
Behavior,” ICSE’08.
[9]
T. Karrer, J.-P. Kramer, J. Diehl, B. Hartmann, and J. Borchers, "Stacksplorer: call graph navigation helps
increasing code maintenance efficiency.," UIST, 2011, pp. 217-224.
[10] M.-A. Storey, “Theories, Methods and Tools in Program Comprehension:Past, Present and Future,”
International Workshop on Program Comprehension EEE, 2005.
[11] A. D. Lucia, M. D. Penta, and R. Oliveto, "Improving Source Code Lexicon via Traceability and Information
Retrieval.," IEEE Trans. Software Eng., 2011, pp. 205-227.
[12] T. D. LaToza, “Visualizing Call Graphs,” IEEE Symposium on Visual Languages and Human-Centric Computing,
2011.
42
[13] A. J. Ko, and B. A. Myers, "Debugging reinvented: asking and answering why and why not questions about
program behavior.," ICSE, 2008, pp. 301-310.
[14] K. D. S. a. G. C. Murphy, “Reducing Code Navigation Effort with Differential Code Coverage.”
[15] K. D. Sherwood, “Reducing Code Navigation Effort with Differential Code Coverage.”
[16] "JGraphT - a free Java Graph Library," http://jgrapht.org/.
[17] “JDT-Eclipse Java development tools.”
[18] “CDT-C/C++ Development Tooling.”
[19] "JDownloader," http://jdownloader.org/.
[20] M.-A. D. Storey, "Theories, Methods and Tools in Program Comprehension: Past, Present and Future.," IWPC,
2005, pp. 181-191.指導教授 鄭永斌 審核日期 2013-7-24 推文 facebook plurk twitter funp google live udn HD myshare reddit netvibes friend youpush delicious baidu 網路書籤 Google bookmarks del.icio.us hemidemi myshare