博碩士論文 102522064 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:11 、訪客IP:3.19.31.73
姓名 蔡侑儒(Yu-Ju Tsai)  查詢紙本館藏   畢業系所 資訊工程學系
論文名稱
(Design a Pluggable Architecture for Layout Algorithms in xDIVA)
相關論文
★ 使用PolyTraceAid進行程式文件覆蓋率計算與分群★ Support Visual Debugging in Electronic Design Automation Software by xDIVA
★ 設計與實作視覺化追蹤點以支援xDIVA進行程式動畫★ Combine Internal Test Oracles and Capture/Replay GUI Testing for Precise Replay and Higher Validation Power
★ Dissimilarity of Polymorphic Execution Sequences★ The Analysis of Capturing System Test Cases into Unit Test Cases
★ 動態延遲載入的測試覆蓋率★ 建構於JMeter之自動化分散式壓力測試架構
★ 模組化因修改具耦合的程式碼所伴隨的成本漣漪★ 重複性程式碼檢測之外掛模組設計
★ Visual Perception of Realistic Rendering in xDiva 3D Environment★ Why and When GUI Test Automation Fails in Practice and Our Solutions to The Problem
★ Why and When GUI Test Automation Fails in Practice and Our Solutions to The Problem★ Very High Precision Optical Character Recognition For Clean-Fixed-Sized True Type Characters
★ Enhance Korat by Branch Capability in Capture/Replay User Scenario to Industrial Test Case Automation★ implement race detection functionality inXThreadDebugger base on pluggable modulesystem
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 當軟體開發到後期,程式架構達到一定的成熟度,為了支援更多元的功能與更高的擴充性,開發者往往會讓某些功能插件化(Pluggable),以便讓更多的開發者可以貢獻其智慧。插件化是軟體工程的最高境界,讓第三方的開發者可以獨立開發擴充元件而無須了解主系統的相關細節,顯著的例子包誇各種知名遊戲或是IDE(Eclipse、Visual Studio)。
本篇論文針對本實驗室開發多年的xDIVA 3D視覺化除錯軟體進行功能擴充與架構改善,此套軟體可協助使用者停在中斷點時將各種資料結構視覺化成3D物件,供使用者藉由觀察此3D物件的變化來進行除錯。為了觀察物件之間的關係與變化,使用者需要利用適合的Layout將這些物件排列。市面上已經存在許多成熟且針對不同領域的Layout演算法或是函式庫,設計ㄧ套適合各個領域Layout皆可使用的架構是本篇論文所要努力的目標。
但要將這些演算法程式加入xDIVA中會衍生許多問題,包括擴充性不佳、程式耦合性過高和開發成本過高…等等,以至於過去的xDIVA Layout功能未完善。本論文我分析了Model-View架構下我們所會遇到的困難,並提供了API來協助演算法插件化的開發,讓第三方(Layout 開發者)可獨立分別開發適用的Layout演算法在xDIVA上。藉由本論文的研究成果,現有的演算法不需更改太多的程式碼,便可套用至xDIVA中使用。使用者的安裝步驟也因此簡單許多,只需複製檔案至資料夾中,便可套用。此舉大幅降低了xDIVA開發者在Layout擴充及維護上的困難度和複雜度。
摘要(英) When a software product survives the harsh test of real world, providing easy extensions and attracting developers to contribute often become the next goals to pursuit in software evolution. One major approach to achieve such a goal is to provide pluggable interface/API/SDK/framework so that components can be contributed from people not limited to the development team. Pluggable software is an ultimate dream of software engineering; the third-party developers can develop the plugin to enhance and enrich the features of the products. Some notable examples are games and IDEs like Eclipse and Visual Studio.
xDIVA is a 3D Debugging visualization tool developed by our lab for years. xDiva can visualize any data structures to 3D objects at debugging break points. One important part of visualization is layout which arranges the 3D objects in the scene to fit the visualization need for different domains. There are too many domains that requires layout to arrange the visualization objects. Designing a pluggable framework for different layout algorithms is the goal of this thesis. However, designing such a pluggable framework for arbitrary layout algorithms from so many different domains is not easy and straightforward. In this thesis, we analyze the difficulties of the problem from model-view perspectives and then provide a pluggable framework that allows different layout algorithms to be easily added to xDIVA. In principle, third party developers can contribute their algorithms to xDiva without changing too many codes.
關鍵字(中) ★ 插件化 關鍵字(英) ★ layout
★ plugin
★ xdiva
論文目次 內容
一. 緒論 1
二. 研究背景與相關研究 3
2.1 xDiva 3
2.1.1. 簡介 3
2.1.2. IDE端Plugin 4
2.1.3. xDIVA操作 5
2.2. 可插件化軟體(Pluggable Software) 7
2.3. iGraph 9
2.3.1. 簡介 9
2.3.2. iGraph演算法函式呼叫格式 9
2.4. Graphviz 11
2.4.1. 簡介 11
2.4.2. DOT圖形描述語言 11
三. 視覺化 layout 的多樣性與複雜性 13
3.1. Model - View架構 13
3.2. 舊版Layout演算法實作 16
3.3. 針對資料結構設計演算法 18
3.4. 舊結構下存在的問題 21
四. 研究方法 23
4.1. 問題分析與解決 23
4.1.1. xDIVA軟體架構設計 23
4.1.2. Model-View架構限制 24
4.1.3. 充足的xDIVA資訊 25
4.1.4. xDIVA上Layout操作流程 28
4.2. 系統實作 32
4.2.1. xDIVA系統架構 32
4.2.2. Layout設定檔 33
4.2.3. Layout演算法程式架構 36
4.2.4. xDIVA Layout API 37
4.3. 程式碼改善 40
五. 結論與討論 43
六. 參考文獻 45




參考文獻 [1-33]

[1] "xDIVA," http://oolab.csie.ncu.edu.tw/xDIVA/.
[2] Y.-P. Cheng, J.-F. Chen, M.-C. Chiu, N.-W. Lai, and C.-C. Tseng, “xDIVA: a debugging visualization system with composable visualization metaphors,” 2008, pp. 807-810.
[3] Y.-P. Cheng, H.-Y. Tsai, C.-S. Wang, and C.-H. Hsueh, “xDIVA: automatic animation between debugging break points,” 2010, pp. 221-222.
[4] H.-W. Liou, "Support Visual Debugging in Electronic Design Automation Software by xDIVA," 2013.
[5] "igraph–The network analysis package," http://igraph.org/redirect.html.
[6] "Graphviz - Graph Visualization Software," http://www.graphviz.org/Home.php.
[7] Q. Wang, W. Wang, R. Brown, K. Driesen, B. Dufour, L. Hendren, and C. Verbrugge, “EVolve: an open extensible software visualization framework,” in Proceedings of the 2003 ACM symposium on Software visualization, San Diego, California, 2003, pp. 37-ff.
[8] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design patterns: elements of reusable object-oriented software: Pearson Education, 1994.
[9] D. Kharrat, and S. S. Quadri, "Self-registering plug-ins: an architecture for extensible software." pp. 1324-1327.
[10] J. Mayer, I. Melzer, and F. Schweiggert, "Lightweight plug-in-based application development," Objects, Components, Architectures, Services, and Applications for a Networked World, pp. 87-102: Springer, 2003.
[11] M. S. El-Nasr, and B. K. Smith, “Learning through game modding,” Computers in Entertainment (CIE), vol. 4, no. 1, pp. 7, 2006.
[12] D. Nieborg, "Am I mod or not?—An analysis of first person shooter modification culture."
[13] T. M. J. Fruchterman, and E. M. Reingold, “Graph drawing by force-directed placement,” Softw. Pract. Exper., vol. 21, no. 11, pp. 1129-1164, 1991.
[14] E. Gansner, E. Koutsofios, and S. North, Drawing graphs with dot, Technical report, AT&T Research. URL http://www. graphviz. org/Documentation/dotguide. pdf, 2006.
[15] T. Panas, R. Lincke, and W. Löwe, "Online-configuration of software visualizations with Vizz3D." pp. 173-182.
[16] J. Mackinlay, “Automating the design of graphical presentations of relational information,” ACM Trans. Graph., vol. 5, no. 2, pp. 110-141, 1986.
[17] J. J. van Wijk, “Views on Visualization,” Visualization and Computer Graphics, IEEE Transactions on, vol. 12, no. 4, pp. 421-432, 2006.
[18] "OGRE – Open Source 3D Graphics Engine," http://www.ogre3d.org/.
[19] "Qt | Cross-platform application & UI development framework," http://www.qt.io/.
[20] M. Tory, and T. Möller, “Human factors in visualization research,” Visualization and Computer Graphics, IEEE Transactions on, vol. 10, no. 1, pp. 72-84, 2004.
[21] "JsonCpp - JSON data format manipulation library," https://github.com/open-source-parsers/jsoncpp.
[22] "DOT (graph description language) "; https://en.wikipedia.org/wiki/DOT_%28graph_description_language%29.
[23] N. Akhtar, "Social Network Analysis Tools." pp. 388-392.
[24] R. Chatley, S. Eisenbach, and J. Magee, “Modelling a framework for plugins,” SAVCBS 2003 Specification and Verification of Component-Based Systems, pp. 49, 2003.
[25] G. Csardi, and T. Nepusz, “The igraph software package for complex network research,” InterJournal, Complex Systems, vol. 1695, no. 5, pp. 1-9, 2006.
[26] J. Ellson, E. R. Gansner, E. Koutsofios, S. C. North, and G. Woodhull, “Graphviz - Open Source Graph Drawing Tools,” 2001, pp. 483-484.
[27] J. Ellson, E. R. Gansner, E. Koutsofios, S. C. North, and G. Woodhull, "Graphviz and Dynagraph -- Static and Dynamic Graph Drawing Tools," Graph Drawing Software, Mathematics and Visualization M. Junger and P. Mutzel, eds., pp. 127--148, Berlin/Heidelberg: Springer-Verlag, 2004.
[28] I. Herman, G. Melançon, and M. S. Marshall, “Graph visualization and navigation in information visualization: A survey,” Visualization and Computer Graphics, IEEE Transactions on, vol. 6, no. 1, pp. 24-43, 2000.
[29] T. Kamada, and S. Kawai, “An Algorithm for Drawing General Undirected Graphs,” Inf. Process. Lett., vol. 31, no. 1, pp. 7-15, /, 1989.
[30] S. C. North, and E. Koutsofios, "Applications of graph visualization." pp. 235-235.
[31] N. Paspallis, R. Rouvoy, P. Barone, G. A. Papadopoulos, F. Eliassen, and A. Mamelli, "A pluggable and reconfigurable architecture for a context-aware enabling middleware system," On the Move to Meaningful Internet Systems: OTM 2008, pp. 553-570: Springer, 2008.
[32] J. B. Rosenberg, How debuggers work: algorithms, data structures, and architecture: John Wiley & Sons, Inc., 1996.
[33] K. Sugiyama, S. Tagawa, and M. Toda, “Methods for visual understanding of hierarchical system structures,” Systems, Man and Cybernetics, IEEE Transactions on, vol. 11, no. 2, pp. 109-125, 1981.

指導教授 鄭永斌 審核日期 2015-7-27
推文 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聯絡  - 隱私權政策聲明