跳到主要內容

臺灣博碩士論文加值系統

(100.24.118.144) 您好!臺灣時間:2022/12/06 05:31
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

: 
twitterline
研究生:蔡侑儒
研究生(外文):Yu-Ju Tsai
論文名稱(外文):Design a Pluggable Architecture for Layout Algorithms in xDIVA
指導教授:鄭永斌鄭永斌引用關係
學位類別:碩士
校院名稱:國立中央大學
系所名稱:資訊工程學系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2015
畢業學年度:103
語文別:中文
論文頁數:57
中文關鍵詞:插件化
外文關鍵詞:layoutpluginxdiva
相關次數:
  • 被引用被引用:0
  • 點閱點閱:112
  • 評分評分:
  • 下載下載:3
  • 收藏至我的研究室書目清單書目收藏:0
當軟體開發到後期,程式架構達到一定的成熟度,為了支援更多元的功能與更高的擴充性,開發者往往會讓某些功能插件化(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.

內容
一. 緒論 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.


連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top