簡易檢索 / 詳目顯示

研究生: 吳明修
Wu, Ming-Shiou
論文名稱: 對偵測結果的移動方法重構進行分類
Categorizing the Detection Result of Move Method Refactoring
指導教授: 焦惠津
Jiau, Hewijin Christine
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 電腦與通信工程研究所
Institute of Computer & Communication Engineering
論文出版年: 2009
畢業學年度: 97
語文別: 英文
論文頁數: 30
中文關鍵詞: 重構偵測移動類別方法的機制語義資訊
外文關鍵詞: Refactoring Detection, Move Method Mechanics, Semantic Information
相關次數: 點閱:53下載:1
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 目前有很多不同的重構偵測工具。開發者使用這些工具來偵測軟體演進過程中發生過的軟體重構。然而,從這些偵測工具所得到的結果並非總是可靠的。事實上錯誤的偵測結果會使得開發者錯誤的使用被重構的軟體,進而導致不可預期的錯誤。開發者們需要在使用這些偵測結果之前先對目前有很多不同的重構偵測工具。開發者使用這些工具來偵測軟體演進過程中發生過的軟體重構。然而,從這些偵測工具所得到的結果並非總是可靠的。事實上錯誤的偵測結果會使得開發者錯誤的使用被重構的軟體,進而導致不可預期的錯誤。開發者們需要在使用這些偵測結果之前先對偵測結果進行審查。而目前並沒有適合的視覺化工具可以幫助開發者有效率的審查這些偵測的結果。
    在此論文中,一個視覺化的工具 – READY 基於重構中的移動類別方法的機制中的語義資訊來幫助開發者審查偵測結果中屬於移動類別方法的重構。一個針對偵測結果分類方法從兩個開放原碼的專案中整理出來。從這個分類中,開發者們可以更輕易的對偵測的結果進行審查。

    Currently there are a lot of refactoring detection tools available.
    Developers use these tools to detect the occurrences of refactoring activities in software evolution.
    However,the results of the detection tools are not always reliable.
    The truth is that bad results will cause developers to use the refactored software in the wrong way and it will cause
    further unpredictable errors.
    If developers can examine the detection results before using
    them, the unpredictable errors can be reduced.
    Currently there is no proper visualization
    tool available for developers to examine the detection results effectively.
    In this thesis, a visualization tool, READY, was developed based on the semantic information of the Move Method refactoring mechanic to help developers to examine the detected Move Method refactorings.
    And a categorization of the detection results is derived from two open source projects.
    Based on the categorization table, developers could examine the detection results more easily.

    1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 Refactoring Detection and the Occurrences of Refactoring . . . . . . 6 3.1 Issues on Current Detection Results . . . . . . . . . . . . . . . . . . . . . 6 3.2 Information Required to Examine the Detection Results . . . . . . . . . 7 4 Semantic Information of Move Method . . . . . . . . . . . . . . . . . . . 10 4.1 Move Method Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 Move Method Mechanic . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3 Semantic Information Extraction and Visualization . . . . . . . . . . . . 13 5 Tool Implementation : READY . . . . . . . . . . . . . . . . . . . . . . . 15 5.1 Usage Flow of READY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.2 Output Screen of READY . . . . . . . . . . . . . . . . . . . . . . . . . . 16 6 Case Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.1 The Chosen Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2 Categorizing the Detection Result . . . . . . . . . . . . . . . . . . . . . . 23 7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    [1] M. Fowler, Refactoring, Improving the Design of Existing Program. Addison-Wesley, 1999.
    [2] T. Mens and T. Tourwm, “A Survey of Software Refactoring,” IEEE Transactions on Software Engineering, vol. 30, no. 2, pp. 126–139, Feb. 2004.
    [3] Z. Xing and E. Stroulia, “Refactoring Detection based on UMLDiff Change-Facts Queries,” 13th Working Conference on Reverse Engineering, 2006, pp. 263–274, Oct. 2006.
    [4] C. Gorg and P. Weisgerber, “Detecting and Visualizing Refactorings from Software Archives,” In Proceedings of the 13th IEEE International Workshop on Program Comprehension, pp. 205–214, May 2005.
    [5] S. Demeyer, S. Ducasse, and O. Nierstrasz, “Finding refactorings via change metrics,” In Proceedings of OOPSLA 2000 (International Conference on Object-Oriented Programming Systems, Languages and Applications, pp. 166–177, Oct. 1999.
    [6] D. Dig, C. Comertoglu, D. Marinov, and R. Johnson, “Automated Detection of Refactorings in Evolving Components,” in Proceedings of European Conference on
    Object-Oriented Programming, pp. 404–428, May 2006.
    [7] H. C. Jiau and J. C. Chen, “Test Code Differencing for Test-Driven Refactoring Automation,” ACM SIGSOFT Software Engineering Notes, vol. 34, pp. 1–10, Jan. 2009.
    [8] F. Simon, F. Steinbrckner, and C. Lewerentz, “Metrics Based Refactoring,” Proceedings of the Fifth European Conference on Software Maintenance and Reengineering,
    pp. 30–38, Mar. 2001.
    [9] “Eclipse.” http://www.eclipse.org/, 2009.
    [10] “Spring Framework.” http://www.springsource.org/, 2009.
    [11] “Apache Struts.” http://struts.apache.org/, 2009.

    下載圖示 校內:2014-08-27公開
    校外:2019-08-27公開
    QR CODE