博碩士論文 100552029 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:8 、訪客IP:3.227.233.6
姓名 王彥閔(Yan-Ming Wang)  查詢紙本館藏   畢業系所 資訊工程學系在職專班
論文名稱 程式碼中的壞氣味之視覺化設計與實作
(Design and Implementation of Bad Smells Visualization)
相關論文
★ 移動代理人監控系統之設計與實作★ 以正規表式法為基礎之地理編碼服務設計與實作
★ Android應用程式開發之持續整合系統★ 基於設計矩陣之需求追溯關係建立方法
★ 點對點移動代理人之設計與實作與於車資通訊之應用★ 網頁內容叢集分類法之設計與實作
★ 設計與實作於行動裝置上以XUL為基礎之介面呈現★ Android平台上以OSGi為基礎之服務遞送
★ 利用網頁內容結構之區塊擷取方法以呈現新聞服務★ 設計與實作以感測器為中心的查詢機制
★ 針對路徑規劃服務之Web 2.0系統設計與實作★ 整合OSGi與RESTful服務之BPEL引擎
★ 利用文件相似度以轉換網路內容為OSGi Bundles★ 量測Java類別的耦合關係
★ 轉換Android應用程式為OSGi Service★ 物聯網應用之Context塑模方法
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 軟體在其生命週期裡,必定會經過多次改版來新增軟體功能、修正bug…等因素而進行軟體更新,但每次程式改版有可能會造成嚴重的副作用(Side Effects)。影響軟體品質的要素非常多[1][2],如程式設計人員的不熟練、專案設計考慮不周全、商業利益而保留對委託開發人的隱瞞,或難以解釋替代解法(Workaround),而讓軟體的模組化越來越鬆散,即軟體工程的期望的高聚合力(High Cohesion)與低耦合力(Low Coupling)的理念漸行漸遠,進而衍生出多種管理上/Bug增生的問題。
另一方面一般軟體經過長時間演化,越是功能豐富的軟體它所使用的模組或引用第三方的函式庫(Library)越多,因此其軟體階層的深/廣度也越來越錯綜複雜,所以適時的重構程式碼對於專案往後的運行是非常有幫助的,但該如何從抽象的程式碼中發掘這些隱藏的問題,並具體化程式碼間的相互關係。
因此本論文替程式之開發者、管理者提供此途徑,利用三項Code of Bad Smell Detection(1.Long Method、2.Large Class、3.ParaList)測量方式,偵測出Java Project裡程式碼中的壞氣味,再藉由Eclipse可開發plug-in特性,把Cytoscape製作成Eclipse Plug-in,可提供給程式之開發者、管理者使用一份圖表式演進的依據,經由Java Compiler(Java 編譯器),所產生出來的資訊建立網路圖形連接圖,一方面可以解決軟體改版時需要同步更新UML的麻煩,一方面可以使開發者、管理者再次重視程式的品質文題進而找出可能蘊藏的Bug。
摘要(英) During software development life cycle, it will definitely be updated many times for new function implements, fixed bugs and other factors. But each software revision sometimes may cause side effects. Effect of software quality[1][2], such as unskilled programmer, project design considerations not comprehensive, business interest and relevant technologies, or difficult to explain alternative solution, and then make the software modular to more loose, that software engineering desired high cohesion and low coupling force concept lopsided, thus derived from a variety of management issues.
On the other hand the general software after a long evolution, the more feature-rich software modules it uses third-party libraries more and more, so depth of its software are increasingly complex, therefore, it is very helpful to refactoring your code, but the problem is how to find out these hidden issue in abstract code.
This paper uses of the three code of Bad Smell (1.Long Method, 2.Large Class, 3.ParaList) measurements for the programmers, and then find out the bad smells in Java project, it let programmers establish relationship information by Java Compiler. Finally system uses Cytoscape as a Eclipse plug-in to make graphics via relationship information. It is no longer need to synchronize UML when the software revision. It can make programmers and project managers pay attention to the quality of the program and then find out possible hidden Bug.
關鍵字(中) ★ 程式碼壞味道 關鍵字(英) ★ Code Bad Smell
論文目次 摘要 i
Abstract ii
目錄 iii
圖目錄 v
表目錄 vi
第一章 緒論 1
1-1 研究動機與背景 1
1-2 研究目的 2
1-3 論文架構 2
第二章 相關技術簡介 4
2-1 OSGi Framework Platform 4
2-1-1 OSGi介紹 4
2-1-2 OSGi的優勢 5
2-2 程式碼中的壞味道 6
2-2-1 過長的方法(Long Method) 6
2-2-2 過大的類別(Large Class) 7
2-2-3 過長參數傳遞(Long Parameter List) 7
2-3 Cytoscape簡介 7
2-3-1 Import Informations 8
2-3-2 Visual Data with Style 9
2-3-3 Layout Network 10
2-4 Apache Maven簡介 11
2-4-1 Eclipse Maven Repository Setting 11
2-4-2 Maven Java Project Component 12
2-4-3 封裝型態 13
2-5 Eclipse Plug-ins簡介 13
第三章 Bad Smells Visualization之研究方法與架構 16
3-1 整合/開發主要物件 17
3-2 Bad Smells Detection Definition 18
3-2-1 數值定義標準 18
3-2-2 Bad Smells Detection 19
3-2-3 Bad Smells Detection Output Format 20
3-2-4 Transform to OSGi Bundles 21
3-3 Eclipse Plug-ins Development 23
3-4 Cytoscape Porting to Eclipse Plug-ins 25
3-4-1 轉換Cytoscape Framework 25
3-4-2 Active Bundle Priority 26
3-5 Cytoscape Communication Interface 26
3-5-1 Cytoscape App Development 26
3-5-2 Cytoscape Command line Interface 27
第四章 系統實作與分析 28
4-1 系統架構 29
4-1-1 系統架構圖 29
4-1-2 Entire System Class Diagram Overview 30
4-2 Cytoscape Display 31
4-2-1 Long Method Display 32
4-2-2 Large Class Display 33
4-2-3 Long Parameter List Display 34
4-3 數據分析 35
第五章 結論與未來方向 36
5-1 結論 36
5-2 研究貢獻 36
5-3 未來發展 37
5-3-1 Combine Others Plug-ins 37
5-3-2 Patch Process 37
5-3-3 Nested Network Layout 37
參考文獻 38
附錄 41
參考文獻 [1] Michele Tufano, Fabio Palomba, Gabriele Bavota,Rocco Oliveto, Massimiliano Di Penta, Andrea De Lucia, Denys Poshyvanyk, “When and Why Your Code Starts to Smell Bad, ”, 2015.

[2] E. Van Emden and L. Moonen, “Java Quality Assurance by Detecting Code Smells, ”, In Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE′02), pp.97-106, 2002.

[3] Francesca Arcelli Fontana, Pietro Braione and Marco Zanoni. “Automatic detection of bad smells in code: An experimental assessment, ” In Journal of Object Technology, Vol. 11, No. 2, pp. 5:1–38, 2012.

[4] Almas Hamid, Muhammad Ilyas, Muhammad Hummayun and Asad Nawaz. “A Comparative Study on Code Smell Detection Tools, ” In A Comparative Study on Code Smell Detection Tools, Vol.60, pp.25-32, 2013.

[5] Tiago Pessoa, Fernando Brito e Abreu, Miguel Pessoa Monteiro, and Sergio Bryton. “An Eclipse Plugin to Support Code Smells Detection, ”, In CoRR, April 2012.

[6] Matthew James Munro, “Product Metrics for Automatic Identification of “Bad Smell, ” Design Problems in Java Source-Code, ”, 2005.

[7] P. Suresh and S. MuthuKumaran, “Refactoring and Detection of Bad Smells of Coding Using Larger Scale and Critical Incident Technique, ”In International Journal of Science and Research, ISSN (Online): 2319-7064, 2013.

[8] Jiang Dexun, Ma Peijun, Su Xiaohong and Wang Tiantian, “DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE, ”, In International Journal of Software Engineering & Applications (IJSEA), Vol.4, No.5, September 2013.

[9] Emerson Murphy-Hil and Andrew P. Black, “An Interactive Ambient Visualization for Code Smells, ” 2010.

[10] Chris Parnin, Carsten Gorg and Ogechi Nnadi, “A Catalogue of Lightweight Visualizations to Support Code Smell Inspection, ”, September 2004.

[11] Anshu Rani and Harpreet Kaur, “Product Metrics for Automatic Identification of Bad Smell, ”, In International Journal For Technological Research In Engineering, Vol.1, Issue 10, June 2014.

[12] “OSGi Wiki” ,[Online]. Available: https://en.wikipedia.org/wiki/OSGi

[13] “Developing enterprise OSGi applications for WebSphere Application Server”
” ,[Online].Available: http://www.ibm.com/developerworks/websphere/techjournal/1007_robinson/1007_robinson.html

[14] “Cytoscape Wiki” ,[Online]. Available:
http://wiki.cytoscape.org/Cytoscape_3/UserManual

[15] “Apache’s Maven Tutorial” ,[Online]. Available:
http://www.tutorialspoint.com/maven/maven_tutorial.pdf

[16] “Eclipse Equinox Bunldes” ,[Online]. Available: http://www.eclipse.org/equinox/bundles/

[17] “OSGi Runtime Coparision” ,[Online]. Available:
http://blog.jetztgrad.net/osgi-stuff/osgi-runtime-comparison/

[18] “What are the extension and extension points” ,[Online]. Available:
https://wiki.eclipse.org/FAQ_What_are_extensions_and_extension_points%3F

[19] “A Comparison of Eclipse Extensions and OSGi Services” ,[Online]. Available:
http://www.eclipsezone.com/articles/extensions-vs-services/

[20] “Extending the Eclipse IDE - Plug-in development - Tutorial”
,[Online]. Available: http://www.vogella.com/tutorials/EclipsePlugIn/article.html

[21] “Developing Eclipse plug-ins” ,[Online]. Available:
http://www.ibm.com/developerworks/library/os-ecplug/

[22] “Eclipse PDE” ,[Online]. Available: https://eclipse.org/pde/

[23] “Cytoscape 3.0 App Development”,[Online]. Available:
http://wiki.cytoscape.org/Cytoscape_3/AppDeveloper

[24] “Eclipse Java Development Tools Git Address”,[Online]. Available:
http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/refs/tags
指導教授 李允中(Jonathan Lee) 審核日期 2015-7-31
推文 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聯絡  - 隱私權政策聲明