跳到主要內容

簡易檢索 / 詳目顯示

研究生: 徐偉哲
Wei-Jhe Syu
論文名稱: Virtual Objects for Program Visualization in xDIVA
指導教授: 鄭永斌
Yung-Pin Cheng
口試委員:
學位類別: 碩士
Master
系所名稱: 資訊電機學院 - 軟體工程研究所
Graduate Institute of Software Engineering
論文出版年: 2017
畢業學年度: 105
語文別: 中文
論文頁數: 56
中文關鍵詞: 虛擬物件視覺化除錯器
相關次數: 點閱:8下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 一般而言,我們想要解決一個問題的方法有很多種,然而在程式設計的世界裡,也是一樣的。程式設計師想要寫一個程式來達成某種目的,自然而然寫法就有千百種。所以如果要對程式碼進行視覺化,一個問題的視覺化呈現可能就只有一種,但是程式實作的方法可能有很多種並且資料結構的差異也很大。
    本實驗室的程式3D視覺化工具xDIVA是基於物件來產生視覺化的結果,所以當程式碼撰寫的方式非常不物件導向的情況下,程式設計師所要繪製的圖形不存在於真正的物件,而是以其他形式表達,xDIVA可能無法呈現程式設計師心中所想要的視覺化結果。
    作為一個程式視覺化工具,xDIVA不能要求程式設計師要以某種限制來撰寫程式碼,才能進行視覺化。所以本研究提出了Virtual Object的解決方案。藉由此功能,讓使用xDIVA的程式設計師能夠輕輕鬆鬆地產生出不存在於程式碼中的物件,如此一來,就能對這些虛擬物件進行視覺化,來完成其心中所期望的視覺化結果。


    In general, there are many ways to solve a problem. It is the same in the world of programming. Programmers may want to write a program to solve a problem, but there are many kinds of implementation. Therefore, if we want to visualize a problem, there may be only one visualization of a program, but the implementations and data structures can vary significantly.
    The 3D program visualization tool xDIVA in our lab is based on objects to produce visualizations. If the code is written in a way that is not object-oriented, xDIVA may not be able to render the visualization expected by the programmer. Because the graphics that the programmer wants to draw are expressed in other forms. Instead of the real objects.
    As a program visualization tool, xDIVA cannot limit programmers to write code in some fixed way to be visualized. So this study presents a solution called virtual objects. With this feature, programmers can produce objects from existing variables for xDIVA's type mapping to work on. These virtual objects can be used to bridge non-object-oriented programs so that expected visualization can be accomplished.

    摘要 i Abstract ii 誌謝 iii 目錄 iv 圖目錄 vi 一、緒論 1 1.1 問題背景 1 1.2 問題描述 2 二、研究背景 5 2.1 Software Visualization 5 2.2 Program Visualization 5 2.3 xDIVA Introduction 7 2.3.1 GdbPlugin 7 2.3.2 xDIVA 9 2.3.3 TypeMappingDialog 12 2.3.4 Evaluator 13 2.3.5 Viewer 14 三、From Implementations to Visualizations 15 3.1 Base on xDIVA’s visualization 16 四、Virtual Objects for Visualization 19 4.1 An example of Creating Virtual Objects 19 4.2 Type File 23 4.3 Permutator 25 五、Evaluation for Virtual Object in xDIVA 27 5.1 Example - Queue 27 5.2 Example - Graph Edge Matrix 29 5.3 Example - Flood Fill Algorithm 36 5.4 Summary 41 六、結論與未來展望 43 參考文獻 44

    [1] Cheng, Y.-P., et al. (2016). Toward Arbitrary Mapping for Debugging Visualizations. 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering Companion. Austin, TX, USA, IEEE: 605-608.
    [2] Cheng, Y.-P., et al. (2008). xDIVA: a debugging visualization system with composable visualization metaphors. Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications. Nashville, TN, USA, ACM: 807-810.
    [3] Rosenberg, J.B., How Debuggers Work: Algorithms, Data Structures, and Architecture. 1 ed,John Wiley & Sons, 1996-09-27
    [4] Unified Modeling Language. [cited 2012 06/21]; Available from: http://en.wikipedia.org/wiki/Unified_Modeling_Language.
    [5] S. P. Reiss, An Overview of BLOOM, Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering PASTE '01,2001
    [6] Paul V. Gestwicki and Bharat Jayaraman. Methodology and architecture of jive. In SOFTVIS, pages 95–104, 2005.
    [7] Jeffrey K. Czyz, Bharat Jayaraman. Declarative and Visual Debugging in Eclipse. In Proceedings of the 2007 OOPSLA Workshop on Eclipse Technology Exchange, pages 31–35, 2007.
    [8] Wim De Pauw, Erik Jensen, Nick Mitchell, Visualization the Execution of Java Programs, IBM T.J. Watson Research Center
    [9] Katharina Mehner. Javis: A uml-based visualization and debugging environment for concurrent java programs. In Software Visualization, pages 163–175, 2001.
    [10] The complete collection of algorithm animation. [cited 2012 06/15]; Available from: http://www.cs.hope.edu/alganim/ccaa/index.html.
    [11] The Data Display Debugger (DDD). [cited 2012 06/15]; Available from: http://www.gnu.org/software/ddd/.
    [12] Liou, H.-W. (2013). Support Visual Debugging in Electronic Design Automation Software by xDIVA.
    [13] "Introducing JSON." from http://www.json.org/.
    [14] "Python." from https://www.python.org/.
    [15] "Traveling_salesman_problems." from https://optimization.mccormick.northwestern.edu/index.php/Traveling_salesman_problems.
    [16] "Visual programming language." from https://en.wikipedia.org/wiki/Visual_programming_language.
    [17] "Flood Fill Algorithm." from http://www.csie.ntnu.edu.tw/~u91029/AlgorithmDesign.html.

    QR CODE
    :::