| 研究生: |
鄧又晨 You-Chen Deng |
|---|---|
| 論文名稱: |
基於物件導向與 Clean Code 概念進行 xDiva 重構與優化 |
| 指導教授: | 鄭永斌 |
| 口試委員: | |
| 學位類別: |
碩士 Master |
| 系所名稱: |
資訊電機學院 - 軟體工程研究所 Graduate Institute of Software Engineering |
| 論文出版年: | 2023 |
| 畢業學年度: | 111 |
| 語文別: | 中文 |
| 論文頁數: | 71 |
| 中文關鍵詞: | 軟體重構 、效能優化 、xDiva |
| 外文關鍵詞: | refactor |
| 相關次數: | 點閱:25 下載:0 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
xDIVA(extreme Debugging Information Visualization Assistant) 為過去本實驗室持續開發的3D 視覺化程式除錯工具,該工具的主要目的是在除錯階段,根據使用者對資料結構的的理解,以直觀的方式將其進行視覺化,以提供使用者更快速理解現有的資料結構,進而進行後續的除錯或程式碼解釋工作。尤其在EDA(電子設計自動化)產業中,該工具為自動編排電路提供強大的視覺化輔助除錯功能。
然而,在EDA產業中,需要同時視覺化數以千計甚至萬計的電路元件,這對先前版本的xDIVA來說是一項巨大挑戰。主要原因是先前版本的xDIVA存在嚴重的效能問題,即使只是視覺化一百個物件,也會出現卡頓等問題,從而無法滿足EDA產業的應用需求。
為了解決這個問題,本論文對xDIVA效能的幾個關鍵點進行了分析,並根據軟體工程的原則進行了設計上的調整和重構。這些改進使xDIVA 能夠支援更大量的視覺化需求,同時提高了xDIVA的可讀性、可擴展性和可維護性。
xDIVA (extreme Debugging Information Visualization Assistant) is a 3D visualization program developed by our laboratory for debugging purposes. The main objective of this tool is to provide users with an intuitive visualization of data structures during the debugging phase, based on their understanding. This visualization helps users quickly comprehend existing data structures, facilitating subsequent debugging and code interpretation tasks. Particularly in the Electronic Design Automation (EDA) industry, xDIVA offers powerful visual assistance for debugging automated circuit layouts.
However, in the EDA industry, visualizing thousands or even tens of thousands of circuit components simultaneously poses a significant challenge for previous versions of xDIVA. The main issue lies in the severe performance problems of previous versions. Even visualizing just a hundred objects would result in lag and other problems, making it inadequate to meet the application requirements of the EDA industry.
To address this problem, this paper analyzes several key performance points of xDIVA and applies design adjustments and refactoring based on software engineering principles. These improvements enable xDIVA to support larger-scale visualization demands while enhancing its readability, scalability, and maintainability.
[1] Cheng, Y. P., Chen, J. F., Chiu, M. C., Lai, N. W., & Tseng, C. C. (2008, October). xDIVA: a debugging visualization system with composable visualization metaphors. In Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications.
[2] Cheng, Y. P., Ku, C. Y., Pan, W. C., Yang, C., & Lin, T. S. (2016, May). Toward arbitrary mapping for debugging visualizations. In Proceedings of the 38th International Conference on Software Engineering Companion.
[3] Lieberherr, K., Holland, I., & Riel, A. (1988). Object-oriented programming: An objective sense of style. ACM Sigplan Notices.
[4] Hutton, D. M. (2009). Clean code: a handbook of agile software craftsmanship. Kybernetes.書籍:Working Effectively with Legacy Code
[5] Feathers, M. (2002). Working effectively with legacy code. Object Mentor, Inc. Available online at http://www. objectmentor. com. [Accessed 6 Jun. 2023].
[6] Manning, J. (2018). Unity行動開發實務(Mobile Game Developement with Unity) (1st ed.). 碁峰資訊股份有限公司.
[7] 賴祐吉. (2020). Unity 3D 遊戲設計實力講堂: 人氣遊戲這樣做! (第二版). 旗標科技股份有限公司.
[8] "Unity" [Online]. Available: https://unity.com/ [Accessed 6 Jun. 2023].
[9] "Unity的坑——避免用New來創建繼承於MonoBehaviour腳本的對象."CSDN. [Online]. Available: https://blog.csdn.net/alexhu2010q/article/details/106695166 [Accessed 6 Jun. 2023].
[10] ”Clean Code 無瑕的程式碼 | 閱讀筆記” [Online]. Available: https://medium.com/%E6%89%8B%E5%AF%AB%E7%AD%86%E8%A8%98/clean-code-index-51e209cc47db [Accessed 6 Jun. 2023].
[11] “Working Effectively with Legacy Code 讀後心得: 基礎知識篇” [Online]. Available: https://medium.com/fcamels-notes/working-effectively-with-legacy-code-%E8%AE%80%E5%BE%8C%E5%BF%83%E5%BE%97-1-a737ae32f69d [Accessed 6 Jun. 2023].
[12] Martin, R. C. (2000). Design principles and design patterns. Object Mentor, 1(34), 597.
[13] Griswold, W. G. (1992). Program restructuring as an aid to software maintenance.
[14] Singh, N. P., Sharma, B., & Sharma, A. (2022, October). Performance Analysis and Optimization Techniques in Unity 3D. In 2022 3rd International Conference on Smart Electronics and Communication (ICOSEC). IEEE.
[15] Hall, T., Beecham, S., Bowes, D., Gray, D., & Counsell, S. (2011). A systematic literature review on fault prediction performance in software engineering. IEEE Transactions on Software Engineering.
[16] Williams, L. G., & Smith, C. U. (1998, October). Performance evaluation of software architectures. In Proceedings of the 1st international workshop on Software and performance.
[17] Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., ... & Zazworka, N. (2010, November). Managing technical debt in software-reliant systems. In Proceedings of the FSE/SDP workshop on Future of software engineering research.
[18] Li, Z., Avgeriou, P., & Liang, P. (2015). A systematic mapping study on technical debt and its management. Journal of Systems and Software, 101, 193-220.
[19] “System Design: 系統架構基礎 - 可靠、可擴展、可維護” [Online]. Available: https://medium.com/bucketing/system-design-%E7%B3%BB%E7%B5%B1%E6%9E%B6%E6%A7%8B%E5%9F%BA%E7%A4%8E-%E5%8F%AF%E9%9D%A0-%E5%8F%AF%E6%93%B4%E5%B1%95-%E5%8F%AF%E7%B6%AD%E8%AD%B7-77903e2ce16a [Accessed 6 Jun. 2023].