簡易檢索 / 詳目顯示

研究生: 陳日峰
Jih-Feng Chen
論文名稱: 解決DIVA上動態資料和視覺化隱喻的映對
An approach to Mapping Between Dynamic Data and Visualization in DIVA
指導教授: 鄭永斌
Cheng, Yung-Pin
學位類別: 碩士
Master
系所名稱: 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2008
畢業學年度: 96
語文別: 中文
論文頁數: 49
中文關鍵詞: 軟體視覺化資料圖形對映除錯器前端圖形組合
英文關鍵詞: DIVA, mapping, visualization, VM, Minerva
論文種類: 學術論文
相關次數: 點閱:226下載:1
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著時代的改變,軟體日漸變得複雜且龐大。然而除錯的技術和工具並沒有追上軟體的進步速度,除了除錯器的使用之外,使用者至今還時常得依賴插入額外的程式碼(例如說,printf)來幫助除錯。雖然近來已經有許多軟體視覺化工具透過圖形表示來視覺化軟體資料以幫助程式設計師除錯,但它們在使用上還有許多限制。例如只能視覺化特定的資料結構,或者是需要使用者撰寫額外的視覺化程式碼。因為這些種種的限制,讓軟體視覺化工具無法成為程式設計人員每天使用的實用工具。
    因此,我們提供一個軟體視覺化除錯工具DIVA(Debugging Information Visualization Assistant)來幫助程式設計師除錯軟體。DIVA使用3D的圖形,顏色和動畫來視覺化軟體。讓使用者以理想的VM(Visualization Metaphor)來視覺化變數和資料結構。
    本篇論文中,我們在DIVA上設計一個Mapping Engine,透過Mapping Engine的存在能將資料和VM 做到去除耦合(decoupling),讓變數資料和VM能在低耦合的情況下相互作用。Mapping Engine提供一個簡易的操作視窗能讓使用者在上面選擇資料和VM間的對映關係並且組合VM。經由VM之間的組合,一個複雜的VM可以由許多基礎的VM組合而成,以達到可組合性以及視覺化彈性。

    When software grows larger and more complicated, debugging tools have maed little progress. When debugging computer programs with complicated data structure, users may still rely on inserting extra code (for example, printf) to aid debugging. Although there are many visualization tools that help programmers to debug by graphs, pictures, and animation, they are still limited and not prevalent for practical uses. For example, these tools may limit their visualization for data structure of a particular class or users may have to write extra visualization code. These drawbacks limit the practical usage of visualization tool in programmers’ everyday life.
    In this thesis, a visualization tool called DIVA(Debugging Information Visualization Assistant) is proposed to help programmers debugging their software. DIVA use 3D graphs, pictures, and animation to visualize user data structure. The goal of DIVA is to provide an environment which allow users to compose ideal visualization metaphors for their interested data structures in a convenient and friendly manner. We design a Mapping Engine to help user mapping their data into appropriate VM. This mapping engine enables a new flexible, composable, and extensible mapping approach that address the difficult mapping problem in software visualization.

    摘要 i abstract ii 誌謝 iii 目錄 iv 圖表目錄 vi Chapter 1 緒論 1 Section 1.1 Overview 1 Section 1.2 論文架構 5 Chapter 2 研究背景 7 Section 2.1 Debugger 7 2.1.1 JDB 7 2.1.2 GDB 8 2.1.3 DDD 8 2.1.4 ODB 10 Section 2.2 Software Visualization 11 2.2.1 Graphviz 12 2.2.2 BLOOM 13 2.2.3 VIZZ 3D 14 Section 2.3 2D VS 3D 15 Chapter 3 DIVA架構 17 Section 3.1 Command Agent 18 Section 3.2 WOPM 20 Section 3.3 DIVA UI 20 Section 3.4 DIVA VM 21 3.4.1 Primitive Type VM 22 3.4.2 Reference Type VM 24 3.4.3 Composite VM 25 3.4.4 Layout VM 26 Chapter 4 Minerva 27 Section 4.1 User Interface 28 Section 4.2 Network 29 Section 4.3 Record Processor 30 Section 4.4 Debugger Bridge 31 Section 4.5 Command Center 32 Section 4.6 和DIVA的溝通命令 33 Chapter 5 Mapping Engine 35 Section 5.1 資料對VM的Mapping 35 Section 5.2 VM和VM的組合 37 Section 5.3 Generic Composite VM 40 Section 5.4 Mapping Engine之實作 43 5.4.1 Mapping Node 43 5.4.2 Mapping Tree 44 5.4.3 Mapping Port 44 Chapter 6 結論及未來展望 46 Section 6.1 結論 46 Section 6.2 未來展望 47

    [1] Yung-Pin Cheng, DIVA : A Debugging Visualization System with Composable and Interactive Visualization Metaphors, 2007
    [2] Knight, Munro, Visualising Software – A Key Research Area, Proceedings of the IEEE International Conference on Software Maintenance, page: 437, 1999
    [3] F. P. Brooks, No Silver Bullet – essence and accidents of software engineering, Proceedings of the IFIP Tenth World Computing Conference, Page: 1069-1076, 1996
    [4] http://en.wikipedia.org/wiki/Unified_Modeling_Language
    [5] Steven P. Reiss, An Overview of Bloom, Department of Computer Science Brown University
    [6] M. Lanza, CodeCrawler – An Extensible and Language Independent 2D and 3D Software Visualization Tool, In Tools for Software Maintenance and Reengineering, page: 74 – 94, RCOST / Software Technology Series, Franco Angeli, 2005
    [7] http://en.wikipedia.org/wiki/Software_metrics
    [8] Projects using OGRE, http://www.ogre3d.org/wiki/index.php/Projects_using_ogre
    [9] Graphviz, http://www.graphviz.org/
    [10] J. B. Rosenberg, How Debuggers Work: Algorithms, Data Structure, and Architecture, ISBN: 0-471-14966-7, John Wiley & Sons, 1996
    [11] A. Kolawa, Parasoft, The Evolution of Sofrware Debugging,
    http://www.parasoft.com/jsp/products/article.jps?articleID=490
    [12] B. Lewis, Debuggin backwards in time, in M. Ronsse, K. De Bosschere (eds), proceedings of the Fifth International Workshop on Automated Debugging, 2003

    [13] H. Agrawal R. A. DeMillo and E. H. Spafford, An Execution-Backtracking Approach to Debugging, IEEE Software (1991), Page: 21-26, 1991
    [14] P. Crescenzi, C. Demetrescu, I. Finocchi and R. Petreschi, Reversible Execution and Visualization of Programs with LEONARDO, Journal of Visual Languages & Computing, 11 (2000), pages: 125-150,2000
    [15] R. M. Stallman, R. Pesch and S. Shebs, Debuggin with GDB: The GNU Source-Level Debugger, Copyright (C) 1988-2006 Free Software Foundation, Inc.http://www.gnu.org/software/gdb/documentation
    [16] The Data Display Debugger (ddd), available on http://www.gnu.org/software/ddd
    [17] Steven P. Reiss and Manos Renieris, Demonstration of jive and jove: Java as it happens. In ICSE ’05: Proceedings of the 27th international conference on Software engineering, New York,NY,USA,2005 ACM Press
    [18] Wim De Pauw, Erik Jensen, Nick Mitchell, Visualization the Execution of Java Programs, IBM T.J. Watson Research Center
    [19] Katharina Mehner. Javis: A uml-based visualization and debugging environment for concurrent java programs. In Software Visualization, pages 163–175, 2001.
    [20] Emden Gansner and Eleftherios Koutsofios and Stephen North, Drawing Graphs with DOT, 2006
    [21] J. Carlsson, Optimisation of a Graph Visualization Tool: Vizz3D
    [22] Craig Anslow and Stuart Marshall and James Noble and Robert Biddle, Software Visualization Tools for Component Reuse, 2005
    [22] http://en.wikipedia.org/wiki/Proxy_pattern

    下載圖示
    QR CODE