博碩士論文 100525002 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:13 、訪客IP:18.118.210.133
姓名 王浚懿(Jyun-Yi Wang)  查詢紙本館藏   畢業系所 軟體工程研究所
論文名稱
(Locating Interested Code by Program Execution Paths with Debugger)
相關論文
★ CRUnit - Capture / Replay Based Unit Testing★ An OpenStack Based Testing as a Service Platform
★ Visualize Ripple Effect with Analyzing Object-Oriented Design Relationship★ Change History Tracing Tool for Arbitrary Programming Language
★ Virtual Objects for Program Visualization in xDIVA★ Enhance Stress Testing Power by Synchronizing JMeter Test Scripts
★ 以 GDB 實作 XThreadDebugger-Linux(XTD-Linux)提供 Linux 平台之多執行緒除錯★ 支援版本控制系統之文件撰寫工具
★ Korat: An O.S.-independent Capture/Replay Test Automation System★ GUI Component Detection for Cross-Platform Applications–Using Input Device and Image Change Synergistic Detection Method
★ 應用設計模式於 RPA 軟體 實作低維護成本的屬性面板自動修正功能★ 使用靜態分析偵測 JavaScript 應用程式中的 Race Condition
★ 基於物件導向與 Clean Code 概念進行 xDiva 重構與優化★ 基於xDIVA之利用關鍵影格將3D物件動畫化與即時保存的視覺化工具
★ CoolPCB:以控制點為主的電路板切割成形繪製自動化方法★ 利用軟體 UI 實現擴充功能 突破原始碼限制的工具
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 在一個大型的電腦程式的維護過程中,程式設計師要對電腦程式進行修改時,程式
碼理解是必經的過程,而在這過程中往往必須耗費大量的時間成本。在進行軟體維護的
過程中如有人員的調動,對新進的開發人員而言,要對既有的電腦程式進行理解其實是
件相當艱鉅的任務。
過去有研究指出程式設計師在理解電腦程式的過程中有 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   

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