| 研究生: |
鄭兆廷 Chao-Ting Cheng |
|---|---|
| 論文名稱: | Applying Visualization in Golden Case Debugging by xDIVA |
| 指導教授: | 鄭永斌 |
| 口試委員: | |
| 學位類別: |
碩士 Master |
| 系所名稱: |
資訊電機學院 - 資訊工程學系 Department of Computer Science & Information Engineering |
| 論文出版年: | 2019 |
| 畢業學年度: | 107 |
| 語文別: | 中文 |
| 論文頁數: | 70 |
| 中文關鍵詞: | 除錯 、視覺化 |
| 相關次數: | 點閱:8 下載:0 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
Golden Case Debugging情境為一種軟體開發和除錯後正確性驗證的方式之一。這種除錯情境通常會發生在已有穩定的軟體版本 (Golden Case) 中,但是軟體卻必須面對持續的功能擴充與演化。除錯時會使用相同的輸入資料,分別輸入一個穩定運作版本的軟體,以及正在開發或除錯中的軟體版本,藉由比對兩版本之間的執行結果資訊,來以人工的方式進行判定,開發中的軟體版本是否被正確實作或錯誤被完整修正。這種除錯情境在尤其在進行Electronic Design Automation [1] (EDA) 系列軟體的開發和除錯時經常被使用,這一類的軟體通常規模大且複雜,面臨許多維護與擴充上的軟體工程問題。
EDA為一系列輔助設計積體電路開發的軟體。EDA系列軟體的程式設計師在進行相關功能開發及錯誤修正時,經常會處理大量儲存著電子元件相關形狀的polygon資料結構,在傳統的Debugger文字呈現下進行這類的資料結構除錯並不是件很直觀的事情。這個部分EDA系列軟體的程式設計師能夠透過xDIVA [2]來進行視覺化對應,將polygon資料結構呈現於 3D空間中協助程式設計師開發與除錯。
本論文提出針對xDIVA功能進行擴充,來嘗試支援Golden Case Debugging情境。程式設計師能夠捕捉不同軟體版本間特定執行時期的資料,透過xDIVA視覺化後於 3D空間中同時呈現。並且能根據軟體內不同的除錯情境,使用視覺化差異比較功能,以直觀的方式來突顯出不同執行結果中的相異之處,來加速程式設計師在面對大量且複雜的資料除錯時,能更快速且更直覺地發現軟體內的錯誤。
Golden Case Debugging scenario is one of the software debugging method to verify the correctness in software development and debugging. This scenario usually happens in a software which it has a stable version (Golden Case) and faces feature extend and improve continuously. This method tests a developing version software with stable version software. Two software version inputs the same data and observe output of two versions manually to see the developing version being tested whether correctly implemented or debugged. Golden Case Debugging is frequently being used in the Electronic Design Automation [1] (EDA) software series.
EDA series software faces many software engineering problem including maintenance and expansion. Because the software scale is very massive and complex.
EDA series software are designed to assist hardware engineer to design more and more complex Integrated Circuit. EDA series software programmer will encounter large amount of polygon data where it contains the shape, size and location related data inside data structure. EDA software programmer can benefit from xDIVA [2] to visualize these data, mapping them to the 3D space to help programmer get better understanding and assist the debugging process.
In this thesis, we propose to enhance the function of xDIVA to support Golden Case Debugging. Programmer can use it to capture the software states in a specific runtime between different software version, then visualize them in xDIVA 3D space to see the difference between two states. Also we analyzed several different case of visualized data structure by xDIVA. To provide the comparison function for show the difference between visualization result. Programmer can benefit from these feature to find error inside software contains complex data structure quickly.
[1] "Electronic design automation," [Online]. Available: https://en.wikipedia.org/wiki/Electronic_design_automation. [Accessed 25 Dec. 2018].
[2] Y. Cheng, C. Ku, W. Pan, C. Yang and T. Lin, "Toward Arbitrary Mapping for Debugging Visualizations," in 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C), Austin, TX, USA, 2016.
[3] A. Banerjee, A. Roychoudhury, J. A. Harlie, and Z. Liang, "Golden implementation driven software debugging," in Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, Santa Fe, New Mexico, USA, 2010.
[4] J. B. Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture, John Wiley & Sons, 1996.
[5] "GDB: The GNU Project Debugger," [Online]. Available: https://www.gnu.org/software/gdb/. [Accessed 25 Dec. 2018].
[6] "JSON," [Online]. Available: https://json.org/. [Accessed 25 Dec. 2018].
[7] W. Hsu, "Virtual Objects for Program Visualization in xDIVA," M.S. thesis, Dept. Comput. Sci. and Inform. Eng., National Central University., Taoyuan, Taiwan, 2017.
[8] 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," in 23rd ACM SIGPLAN Conference on Object-oriented Programming Systems Languages and Applications, Nashville, TN, USA, 2008.
[9] "Visual programming language," [Online]. Available: https://en.wikipedia.org/wiki/Visual_programming_language. [Accessed 25 Dec. 2018].
[10] A. I. Davis and M. R. Keller, "Data Flow Program Graphs," Computer, vol. 15, no. 2, pp. 26-41, Feb. 1982.
[11] Unity. [Online]. Available: https://unity3d.com/. [Accessed 25 Dec. 2018].
[12] S. M. Rubin, Computer Aids for VLSI Design, Boston, MA, USA: Addison-Wesley, 1987.
[13] "Open Artwork System Interchange Standard," [Online]. Available: https://en.wikipedia.org/wiki/Open_Artwork_System_Interchange_Standard. [Accessed 25 Dec. 2018].
[14] "OwlVision GDSII Viewer," [Online]. Available: http://www.owlvision.org/. [Accessed 25 Dec. 2018].
[15] "IC WorkBench Edit/View Plus," [Online]. Available: https://www.synopsys.com/silicon/mask-synthesis/ic-workbench-editview-plus.html. [Accessed 25 Dec. 2018].
[16] H. Liu, "Support Visual Debugging in Electronic Design Automation Software by xDIVA," M.S. thesis, Dept. Comput. Sci. and Inform. Eng., National Central University., Taoyuan, Taiwan, 2012.
[17] "Diffutils," [Online]. Available: https://www.gnu.org/software/diffutils/. [Accessed 25 Dec. 2018].
[18] "fc," [Online]. Available: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fc. [Accessed 25 Dec. 2018].
[19] "Objects (Java Platform SE 8 )," [Online]. Available: https://docs.oracle.com/javase/8/docs/api/java/util/Objects.html. [Accessed 25 Dec. 2018].
[20] T. H. Cormen, C. E. Leiserson, R. L. Rivest and C. Stein, Introduction to Algorithms, 3rd ed., The MIT Press, 2009.
[21] E. F. Moore, "The shortest path through a maze," in In Proceedings of the International Symposium on the Theory of Switching, 1959.
[22] Y. Tsai, "Design a Pluggable Architecture for Layout Algorithms in xDIVA," M.S. thesis, Dept. Comput. Sci. and Inform. Eng., National Central University., Taoyuan, Taiwan, 2015.
[23] "Boolean operations on polygons," [Online]. Available: https://en.wikipedia.org/wiki/Boolean_operations_on_polygons. [Accessed 25 Dec. 2018].
[24] B. R. Vatti, "A generic solution to polygon clipping," Communications of the ACM, vol. 35, no. 7, pp. 56-63, 1992.
[25] G. Greiner and K. Hormann, "Efficient Clipping of Arbitrary Polygons," ACM Transactions on Graphics, vol. 17, no. 2, pp. 71-83, Apr. 1998.
[26] "Clipper - an open source freeware polygon clipping library," [Online]. Available: http://www.angusj.com/delphi/clipper.php. [Accessed 25 Dec. 2018].
[27] "GPC General Polygon Clipper library from The University of Manchester," [Online]. Available: http://www.cs.man.ac.uk/~toby/alan/software/. [Accessed 25 Dec. 2018].
[28] D. H. Laidlaw, B. W. Trumbore and J. F. Hughes, "Constructive Solid Geometry for Polyhedral Objects," in Proceedings of the 13th Annual Conference on Computer Graphics and Interactive Techniques, Dallas, TX, USA, 1986.
[29] The CGAL Project, CGAL User and Reference Manual, 4.13 ed., CGAL Editorial Board, 2018.
[30] A. Jacobson and D. Panozzo, "libigl: Prototyping Geometry Processing Research in C++," in SIGGRAPH Asia 2017 Courses, Bangkok, Thailand, 2018.