研究生: |
廖介任 |
---|---|
論文名稱: |
使用本體論建構Bad Code Smells分類 A New Taxonomy for Bad Code Smells using Ontology |
指導教授: | 鄭永斌 |
學位類別: |
碩士 Master |
系所名稱: |
資訊教育研究所 Graduate Institute of Information and Computer Education |
論文出版年: | 2006 |
畢業學年度: | 94 |
語文別: | 英文 |
論文頁數: | 83 |
中文關鍵詞: | 程式碼的壞味道 、重構 、本體論 |
英文關鍵詞: | bad code smells, refactorings, ontology |
論文種類: | 學術論文 |
相關次數: | 點閱:217 下載:2 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
“Bad Code Smells"是程式設計師間採用的一種專業用語,指的是程式碼中出現的某種徵兆,表示程式碼的設計上出現問題。事實上,"Bad Code Smells"包含了許多豐富的程式設計經驗,但卻缺乏正式及系統化格式來記錄這些寶貴的知識。在我們的研究中,我們將"Bad Code Smells"視為一組概念,並以本體論的概念為基礎發展了一個Bad code smell 分類框架。這個分類框架不僅描述了Bad Code Smells 的概念化規格,也提供了一個正式及系統化的記錄格式,用以保存Bad Code Smell 的實際例證,使得我們得以保存這些寶貴的知識。
另一方面,在本研究中,我們也探討重構技巧背後的本質。「重構」指的是一種較嚴謹的程式設計技巧,用以在不改變程式的外部行為的狀況下,重新構造設計不良的程式結構。在本研究中,我們提出了策略導向的觀點來檢視重構技巧的本質。在這樣的觀點上,我們將重構技巧視為完成重構策略目標的戰略。最後,我們以重構策略的觀點基礎,提出了數種重構策略,並提出了一個新的分類法,將重構技巧予以分類。
“Bad code smells” is a jargon term used among programmers to refer to asymptom of something wrong in codes. These bad code smells provide richexperiences of programming but they are seldom formally defined. In our study, weview bad code smells as a set of concept. Based on the conception of ontology wedevelop a taxonomy framework that is the specification of conceptualization of badcode smells. It also provide a formal and systematic format for recording instances ofbad code smells and improve to preserve the valuable knowledge of bad code smells.
In the other hand, we also study the essences behind refactorings. Refactoringsare disciplined techniques for restructuring an existing body of code, altering its
internal structure without changing its external behavior. In our study, we propose astrategy-oriented viewpoint of refactorings. We view refactroing techniques as tactics
used to achieve the goal of a refactoring strategies. Finally, we develop a taxonomy of refactorings based on the strategy-oriented viewpoint for classifying refactoring
techniqeus.
[1] Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts,“Refactoring: Improving the Design of Existing Code,” Addison-Wesley, 1999.
[2] William J. Brown, Raphael C. Malveau, Hays W. McCormick III, Tomas J.Mowbray, “AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis,” Wiley, 1998.
[3] Joshua Kerievsky, “Refactoring to Patterns,” Addison-Wesley, 2004.
[4] William F. Opdyke, “Refactoring Object-Oriented Frameworks,” Ph.D. thesis,1992.
[5] Tom Mens, Serge Demeyer, Bart Du Bois, Hans Stenten, and Pieter Van Gorp,“Refactoring: Current Research and Future Trends,” Electronic Notes in Theoretical Computer Science, 2003.
[6] Martin Fowler, “Refactoring Home Page,” [online]. Available:http://www.refactoring.com.
[7] Code Smell, [online]. Available: http://xp.c2.com/CodeSmell.html.
[8] Robert France, Sudipto Ghosh, Eunjee Song, and Dae-Kyoo Kim, “A Metamodeling Approach to Pattern-Based Model Refactoring,” IEEE Software,2003,pp. 52-58
[9] Paolo Tonella, “Formal Concept Analysis in Software Engineering,”Proceedings of the 26th International Conference on Software Engineering,2004.
[10] Natalya F. Noy and Deborah L. McGuinness. Ontology Development 101, “A Guide to Creating Your First Ontology,” Stanford Knowledge Systems Laboratory Technical Report KSL-01-05 and Stanford Medical Informatics Technical Report SMI-2001-0880, 2001.
[11] Nicola Guarino, “Formal Ontology and Information Systems,” Proceedings of FOIS,98, 1998.
[12] Cristian Lindig and Gregor Snelting, “Based on Mathematical Concept Analysis,” Proceedings of International Conference on Software Engineering, 1997.
[13] Tom Mens, “A Survey of Software Refactoring,” IEEE Transactions on
Software Engineering, 2004.
[14] Tom Mens, Niels Van Eetvelde, Dirk Janssens, and Serge Demeyer,“Formalising Refactorings with Graph Transformations,” Journal of Software Maintenance and Evolution, 2004.
[15] H. H. Hallal, E. Alikacem, W. P. Tunney, S. Boroday, and A. Petrenko,“Antipattern-Based Detection of Deficiencies in Java Multithreaded Software,“Fourth International Conference, 2004.
[16] David Hovemeyer and William Pugh, “Finding Bugs is Easy,” OOPSLA, 2004.
[17] Mika V. Mantyla, Jari Vanhanen, and Casper Lassenius, “Bad Smells-Humans as Code Critics.”Proceedings of the 20th IEEE International Conference on Software Maintenance,2004.
[18] Wikipedia, [online]. Available:http://en.wikipedia.org/