跳到主要內容

臺灣博碩士論文加值系統

(216.73.216.54) 您好!臺灣時間:2026/01/12 12:17
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

: 
twitterline
研究生:楊雅雯
研究生(外文):Ya-Wun Yang
論文名稱:利用Robusta消除例外處理壞味道
論文名稱(外文):Removing Exception Handling Bad Smells Using Robusta
指導教授:謝金雲鄭有進鄭有進引用關係
口試委員:陳建村謝金雲鄭有進
口試日期:2018-06-14
學位類別:碩士
校院名稱:國立臺北科技大學
系所名稱:資訊工程系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2018
畢業學年度:106
語文別:中文
論文頁數:62
中文關鍵詞:重構強健度壞味道例外處理
外文關鍵詞:RefactoringRobustnessCode SmellsException Handling
相關次數:
  • 被引用被引用:0
  • 點閱點閱:171
  • 評分評分:
  • 下載下載:4
  • 收藏至我的研究室書目清單書目收藏:0
移除例外處理壞味道,可以提升軟體的強健度。然而,例外處理壞味道的移除,是相當具有挑戰性的工作,對於經驗不足的開發人員尤然。
針對各種不同的JAVA 程式例外處理壞味道,本論文提供一系列以重構為基礎的處理壞味道移除參考範例,以導引開發者移除例外處理壞味道。我們並將相關作業程序實作在Robusta工具中,開發人員可透過Robusta工具自動化重構程式碼來消除壞味道,以提升軟體的強健度。
Exception handling bad smells may jeopardize the robustness of a program. While writing exception handling code without bad smells is challenging, the task of removing exception handling bad smells is even harder. This is particularly true for inexperienced developers.
Robusta is a static analysis tool capable of detecting exception handling bad smells in Java programs and exposing their impact to the program. As an extension of the previous work on Robusta, in this thesis we propose a serious of refactoring-based smell removal methods corresponding to the exception handling bad smells detectable by the Robusta. The refactoring methods have been implemented in Robusta. Its usefulness has also been shown in an empirical study.
摘 要 i
ABSTRACT ii
致謝 iii
目錄 iv
表目錄 vii
圖目錄 viii
第一章 緒論 1
1.1 研究背景與動機 1
1.2 研究目標 1
1.3 論文組織架構 2
第二章 背景知識 3
2.1 Robusta 3
2.2例外處理壞味道 3
2.2.1 Empty Catch Block 3
2.2.2 Dummy Handler 4
2.2.3 Unprotected Main Program 5
2.2.4 Nested Try Statement 6
2.2.5 Careless Cleanup 6
2.2.6 Exception Thrown From Finally Block 7
2.3強健度等級 8
等級0:未定義(Undefined) 8
等級1:錯誤回報(Error reporting) 8
等級2:狀態回復(State recovery) 9
等級3:行為重試(Behavior recovery) 10
2.4 Abstract Syntax Tree 11
第三章 研究方法 13
3.1 壞味道消除方法介紹 13
3.1.1 Dummy Handler & Empty Catch Block 13
3.1.2 Unprotected Main Program 17
3.1.3 Nested Try Statement 19
3.1.4 Careless Cleanup 22
3.1.5 Exception Thrown From Finally Block 23
3.2 過去與現在Robusta快速修復與重構差異 26
3.2.1 快速修復 26
3.2.2 重構 27
3.3 設計與實作 28
3.3.1 快速修復 28
3.3.2 重構 37
3.4 壞味道的偵測、曝露及消除流程 44
第四章 應用實例 45
4.1 Dummy Handler應用實例 45
4.1.1偵測Dummy Handler 45
4.1.2產生曝露Dummy Handler的測試案例 46
4.1.3消除Dummy Handler 47
4.2 Careless Cleanup應用實例 49
4.2.1偵測Careless Cleanup 49
4.2.2產生曝露Careless Cleanup的測試案例 49
4.2.3消除Careless Cleanup 50
4.3 Exception Thrown From Finally Block應用實例 52
4.3.1偵測Exception Thrown From Finally Block 52
4.3.2產生曝露Exception Thrown From Finally Block的測試案例 52
4.3.3消除Exception Thrown From Finally Block 53
4.4 Unprotected Main Program應用實例 56
4.4.1 偵測Unprotected Main Program 56
4.4.2產生曝露Unprotected Main Program的測試案例 56
4.4.3消除Unprotected Main Program 57
第五章 結論與未來展望 59
5.1 結論 59
5.2 未來展望 59
參考文獻 61
[1]Chien-Tsun Chen. 例外處理設計的逆襲. 悅知文化,2014
[2]陳建村,爪哇例外處理:模型、重構、與樣式,博士論文,國立臺北科技大學機電科技研究所博士班,台北,2008
[3]洪哲瑋,例外處理程式壞味道的自動化偵測與重構,碩士論文,國立臺北科技大學資訊工程系碩士班,台北,2009
[4]Robusta at Eclipse Marketplace, https://marketplace.eclipse.org/content/robusta-eclipse-plugin [Accessed 01 June 2018]
[5]Eclipse, http://www.eclipse.org/ [Accessed 01 June 2018]
[6]陳友倫、以Aspect揭露導因於例外處理的程式缺陷,碩士論文,國立臺北科技大學資訊工程系碩士班,台北,2016
[7]Chien-Tsun Chen, Yu Chin Cheng, Chin-Yun Hsieh and I-Lang Wu, “Exception Handling Refactorings: Directed by Goals and Driven by Bug Fixing,” Journal of Systems and Software, vol.82, no.2, pp.333-345, Feb. 2009.
[8]ASTNode document, https://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FASTVisitor.html [Accessed 01 June 2018]
[9]Eclipse JDT, https://www.programcreek.com/2011/01/best-java-development-tooling-jdt-and-astparser-tutorials/ [Accessed 01 June 2018]
[10]AST View at Eclipse Marketplace, https://marketplace.eclipse.org/content/ast-view [Accessed 01 June 2018]
[11]ASTParser document, https://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FASTParser.html [Accessed 01 June 2018]
[12]ASTRewrite document,
https://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2Frewrite%2FASTRewrite.html [Accessed 01 June 2018]
[13]楊智傑,Robusta- 一個對於Java例外處理壞味道的偵測工具,碩士論文,國立臺北科技大學資訊工程系碩士班,台北,2013.
[14]Exception document, https://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html [Accessed 01 June 2018]
[15]Error document, https://docs.oracle.com/javase/7/docs/api/java/lang/Error.html [Accessed 01 June 2018]
[16]Throwable document, https://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html [Accessed 01 June 2018]
[17]Eclipse IMarker document,
http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fcore%2Fresources%2FIMarker.html [Accessed 01 June 2018]
[18]廖振傑,透過偵測及移除例外處理壞味道提升軟體強健度:以ezScrum為例,碩士論文,國立臺北科技大學資訊工程系碩士班,台北,2016
[19]劉彥麟 利用AspectJ搭配測試案例曝露例外處理壞味道的影響,碩士論文,國立臺北科技大學資訊工程系碩士班,台北,2018
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
無相關期刊