(3.238.173.209) 您好!臺灣時間:2021/05/17 11:20
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

: 
twitterline
研究生:陳友倫
研究生(外文):You-Lun Chen
論文名稱:以Aspect 揭露導因於例外處理的程式缺陷
論文名稱(外文):Applying Aspects for Exposing Bugs Associated with Exception Handling Smells
指導教授:鄭有進鄭有進引用關係謝金雲
指導教授(外文):Yu Chin ChengChin-Yun Hsieh
口試委員:張凱雄劉立頌
口試日期:2016-06-20
學位類別:碩士
校院名稱:國立臺北科技大學
系所名稱:資訊工程系研究所
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2016
畢業學年度:104
語文別:中文
中文關鍵詞:壞味道例外處理
外文關鍵詞:code smellexception handlingAspectJeclipse pluginRobusta
相關次數:
  • 被引用被引用:2
  • 點閱點閱:80
  • 評分評分:
  • 下載下載:4
  • 收藏至我的研究室書目清單書目收藏:0
Robusta是一個靜態分析工具,它能夠標定出Java程式中例外處理壞味道的種類及位置。本論文著重在提升Robusta的價值,
如果Robusta能夠進一步呈現壞味道對於程式的強健度會有影響,我們便能證明壞味道本身潛藏著降低軟體強健度的風險,應當被注意及重視。
本論文利用AspectJ的優點,讓Robusta在不更動原始碼的前提下,在選定的程式碼中嵌入發生例外的程式碼,進而呈現壞味道對於軟體的影響。
Robusta會針對壞味道的特性產生AspectJ程式碼,當軟體執行到被嵌入例外的程式碼時,便會觸發aspect程式、引發例外讓壞味道現形。
取得aspect程式之後,開發者除了能利用它呈現壞味道對於軟體的影響,也能利用它來設計測試案例,當作成功移除壞味道的依據。
This thesis aims at enhancing the functionality of Robusta, an exception handling smells detection
tool for Java programs, by incorporating a mechanism for
verifying whether a detected smell is a real bug. The key feature of the
proposed method is to automatically generate and inject an AspectJ program to a
specific location associated with a detected smell to throw an exception so that,
without changing the source program, the effect of a raised exception can be realized.
Developers can use this feature to make sure that the smells have been removed.
摘要 i
ABSTRACT ii
致謝 iii
目錄 iv
圖目錄 vi
表目錄 viii
1 緒論 1
1.1 研究背景與動機 1
1.2 研究目標 2
1.3 論文組織架構 2
2 相關研究 3
3 研究方法 4
3.1 案例分析 4
3.2 利用AspectJ呈現壞味道的方法 12
3.3 aspect材料項目 15
3.4 收集aspect材料流程 15
3.5 驗證產生aspect程式碼功能 18
4 實作方法 19
4.1 程式設計 19
4.2 功能驗證 22
4.3 實作成果 25
4.4 進階使用 28
5 結論 30
5.1 結論 30
5.2 未來展望 30
參考文獻 33
附錄A:名詞解釋 36
附錄B:圖解產生aspect程式碼流程 40
[1] 高子騰, 一個支援Scrum的工具:利用問題追蹤及持續整合系統. 碩士論文, 國立台北科技大學資訊工程系碩士班,台北,2008.
[2] Robusta at Eclipse Marketplace. https://marketplace.eclipse.org/content/robusta-eclipse-plugin [Accessed: 2016-06-02].
[3] Chen Chien-Tsun. 例外處理設計的逆襲. 悅知文化, 2014.
[4] Adrian Colyer. Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools. Addison-Wesley Professional, 2004.
[5] 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:2016-06-22].
[6] Domenico Cotroneo and Roberto Natella. Fault injection for software certification. IEEE Security and Privacy, 11:38–45, May 2013.
[7] Guoqing Xu, Zongyuan Yang, Haitao Huang, Qian Chen, Ling Chen, and Fengbin Xu.
JAOUT: automated generation of aspect-oriented unit test. IEEE, December 2004.
[8] 廖振傑,透過偵測及移除例外處理壞味道提升軟體強健度:以 ezScrum 為例 碩士論文, 國立台北科技大學資訊工程研究所, 台北, 2016.
[9] AST Method document. http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FMethodInvocation.html [Accessed:2016-06-02].
[10] ServletResponse document. http://docs.oracle.com/javaee/6/api/
javax/servlet/ServletResponse.html#getWriter() [Accessed: 2016-
06-02].
[11] Joshua Bloch. Effective Java Programing Laguage Guide. Addison Wesley, 2008.
[12] AST Node document. https://en.wikipedia.org/wiki/Abstract_
syntax_tree [Accessed: 2016-06-02].
[13] John Vlissides Grady Booch Richard Helm, Ralph Johnson. Design Patterns: Elements
of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994.
[14] AspectJ plugin install guide. http://o7planning.org/web/fe/default/
en/document/7174/install-aspectj-development-tools-intoeclipse
[Accessed: 2016-06-02].
[15] IMarkerResolution document. http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fui%2FIMarkerResolution.html [Accessed: 2016-06-02].
[16] ASTVisitor document. http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FASTVisitor.html [Accessed: 2016-06-02].
[17] Chen Chien-Tsun.爪哇例外處理:模型、重構、與樣式. 博士論文,國立台北科技大學機電科技研究所,台北, 2008.
[18] Cristina Marinescu. Should we beware the exceptions? an empirical study on the eclipse project. Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), 2013 15th International Symposium on, pages 250–257, September 2013.
[19] Ashish Mundra, Sanjay Misra, and Chitra A. Dhawale. Practical scrum-scrum team: Way to produce successful and quality software. 2013 13th International Conference on Computational Science and Its Applications, pages 119–123, June 2013.
連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top