簡易檢索 / 詳目顯示

研究生: 余鈺盈
Yu-Ying, Yu
論文名稱: PolyTraceAid:加速程式碼理解之文件製作與追蹤系統
PolyTraceAid: A Tool to Facilitate the Understanding of Source Code
指導教授: 鄭永斌
Cheng, Yung-Pin
學位類別: 碩士
Master
系所名稱: 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2011
畢業學年度: 99
語文別: 中文
論文頁數: 66
中文關鍵詞: 程式說明文件快速理解程式說明檔多媒體
英文關鍵詞: program understanding, documentation, trace
論文種類: 學術論文
相關次數: 點閱:178下載:1
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著系統不斷地演進和程式開發人員的來去,如何將系統架構和最原始的設計理念傳遞給不同階段參與專案的團隊開發人員是一個困難的軟體工程問題。具規模的軟體開發專案,通常產生大量的說明文件,作為團隊間溝通的媒介,然而,目前文件的製作和儲存方式皆有許多潛在問題待改良,例如:當系統大到某種規模時,說明文件未隨著系統更新造成錯誤、逐漸失效,或因為文件製作品質不良,導致效用大打折扣。本論文主要探討的範疇為程式說明文件,為幫助開發人員快速理解程式(Program Understanding)我們提出”PolyTraceAid”這個工具。此工具包括兩個子工具:一、”DocumentationAid”─幫助程式開發人員製作說明檔:此說明檔不侷限於文字的文件,可以是任意的多媒體文件,程式開發人員可直接將原始程式碼與多媒體文件作關聯,文件不再拘泥於文字形式的「註解」,並以不同的trace case為單位儲存之;二、”TraceAid”─幫助新進開發人員迅速了解程式碼:當新進開發人員欲了解該系統架構和程式動態執行流程時,僅需播放前開發人員由DocumentationAid製作之不同的trace case,TraceAid會將該trace case載入並播放與原始程式碼相關聯之說明檔。本論文提出新的文件製作概念,並藉此工具快速傳遞程式開發者的設計理念,讓新進人員可以加速投入工作。

    In a large software development team, communications are important because team members may come and go. As a software system evolves, to transfer the system architecture, design concepts, critical data structures, etc. to the successors is never an easy task. In conventional software engineering, passing and transferring the knowledge of software assets are often done by program documentation, typically by words. However, program documents can be difficult to maintain as system’s size grows. A document may become obsolete or inconsistent to source code. Besides, good documents require good writing skill, which is not easy to train. A poor document quality can provide limited help to programmers which are new to the system the document describes.
    In this thesis, we propose a system called "PolyTraceAid" to address the problem. PolyTraceAid is a tool to facilitate the understanding of source code. It consists of two sub-systems: DocumentationAid and TraceAid. DocumentationAid provides assistance for program developers to create documentation at debugger break points. The documentation can be linked to any type of format, including multimedia files. The documentation is stored along with a trace case which controlled by debugger break points. TraceAid provides assistance a programmer to trace a computer program using debugger. Documentation can be replayed when a break point is hit. This thesis presents a new idea of creating program documents, which could facilitate the understanding of a computer program, particularly for those who are new to the system.

    摘 要 ii ABSTRACT iii 第一章 緒論 1 第一節 問題描述 1 第二節 PolyTraceAid系統概觀 5 第三節 論文組織 6 第二章 研究背景 7 第一節 研究動機和目的 7 第二節 相關研究和工具 8 2.2.1 簡述相關研究和工具 8 2.2.2 上述研究與工具之於PolyTraceAid 13 第三章 PolyTraceAid功能概述 16 第一節 PolyTraceAid使用時機 17 第二節 以PolyTraceAid輔助理解xDIVA系統 19 3.2.1 專案DIVA以DocumentationAid輔助了解程式碼 20 3.2.2 專案DIVA以TraceAid輔助了解程式碼 22 第四章 設計理念說明 24 第一節 依不同的trace case管理說明檔 24 第二節 說明檔多媒體化 28 第三節 將說明檔與原始程式碼直接相關聯 29 第五章 方法與實作 30 第一節 方法 30 5.1.1 結合Visual Studio IDE的Debugger 30 5.1.1.1 寫一個簡單的Visual Studio的Add-in 31 5.1.1.2 向Debugger取得中斷點資訊 32 5.1.1.3 Hit到中斷點時的對應處理 34 5.1.2 以XML檔案格式紀錄原始程式碼與說明文件之關聯 34 第二節 DocumentationAid實作流程 35 第三節 TraceAid實作流程 37 第六章 評估 39 第一節 方式 39 第二節 結果與探討 39 第七章 結論與未來展望 41 參考著作 42 附錄A 46

    [1] 朱三元、錢東秋、宿為民, ”The Introduction to Technology of Software Engineering 軟體工程技術概論”, 五南圖書出版股份有限公司, 2007.
    [2] A. Forward and T. C. Lethbridge, ”The relevance of software documentation, tools and technologies: a survey” presented at ACM Symposium on Document Engineering, 2002.
    [3] Alexander Egyed, “A Scenario-Driven Approach to Trace Dependency Analysis”, IEEE Transactions on Software Engineering, Vol. 29, No.2, February 2003.
    [4] Douglas C. Merrill, James A. Martin, ”Google時代一定要會的整理術”,天下遠見出版股份有限公司, 2010.
    [5] Yale University. A course: Daily Themes , 2011. [Online] Available from: http://english.yale.edu/undergraduate-program [Accessed 22 May 2011]
    [6] Robert C. Martin, “Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin”, 2008.
    [7] C. De Roover, I. Michiels, K. Gyvels, and T. D’Hondt, “An Approach to High-level Behavioral Program Documentation Allowing Lightweight Verification”, proceedings of the 14th IEEE International Conference on Program Comprehension (ICPC’06), 2006.
    [8] Dimitri van Heesch. A tool: Doxygen─Generate documentation from source code, 1997- 2010. [Online] Available from: http://www.stack.nl/~dimitri/doxygen/index.html [Accessed 22 May 2011].
    [9] Oracle. A tool: Javadoc─The Java API Documentation Generator, 2004- 2010. [Online] Available from: http://download.oracle.com/javase/6/docs/technotes/guides/javadoc/index.html [Accessed 22 May 2011]
    [10] Source Dynamics, Inc. A tool: Source Insight─To understand code, 2009. [Online] Available from: http://www.sourceinsight.com/ [Accessed 22 May 2011]
    [11] Thomas Vestdam and Kurt Normark, “Aspects of Internal Program Documentation─an Elucidative Perspective”.
    [12] B. N. Biswal, P. Nanda, D. P. Mohapatra, “A Novel Approach for Scenario-Based Test Case Generation”, IEEE Society, 2008.
    [13] Yung-Pin Cheng, Chih-Shun Wang, Jih-Feng Chen, Yung-Ming Li and Han-Yi Tsai, “Toward Arbitrary Mappings for Debugging Visualization”.
    [14] [Online] Available from: http://en.wikipedia.org/wiki/Prolog [Accessed 24 June 2011]
    [15] M. A. Orgun and W. Ma, “An Overview of Temporal and Modal Logic Programming”, In Proc. of the 1st Intl. Conf. on Temporal Logic (ICTL94), pages 445–479, 1994.
    [16] Microsoft. MSDN, 2011. [Online] Available from: http://msdn.microsoft.com/zh-tw [Accessed 22 May 2011]
    [17] Michael Ogawa and Kwan-Liu Ma, “Software Evolution Storylines”, Proceedings of the 5th international symposium on Software visualization(SOFTVIS '10), 2010.
    [18] Claus Möbus, Olaf Schröder and Heinz-Jürgen Thole,”Online Modeling the Novice-Expert Shift in Programming Skills on Rule-Schema-Case Partial Order”, Published in Book : Cognition and Computer Programming, 63-105, 1995.
    [19] Joel Spolsky, “JOEL ON SOFTWARE(約耳趣談軟體─來自轉暗管理的現場實錄)”, 悅知文化, 2004.
    [20] Chris Parnin and Carsten G¨org, “Building Usage Contexts During Program Comprehension”, Proceedings of the 14th IEEE International Conference on Program Comprehension (ICPC’06), 2006.
    [21] C. Chen, “Eclipse-based Chinese Pseudo-Coder to Facilitate Program Comprehension”, National Central University, 2008.
    [22] 孤獨木, “在公牛身上擠奶─軟體專案開發呆伯特”, 華翰文化, 2005.
    [23] [Online] Available from: http://msdn.microsoft.com/zh-tw/vstudio/default.aspx [Accessed 24 June 2011]
    [24] [Online] Available from: http://www.c-sharpcorner.com/UploadFile/mgold/AddIns11292005015631AM/AddIns.aspx [Accessed 30 June 2011]
    [25] [Online] Available from: http://archive.msdn.microsoft.com/debugenginesample [Accessed 30 June 2011]
    [26] [Online] Available from: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=508 [Accessed 30 June 2011]
    [27] [Online] Available from: http://msdn.microsoft.com/en-us/library/envdte(v=VS.90).aspx [Accessed 30 June 2011]
    [28] Frederick P. Brooks, Jr., “人月神話:軟體專案管理之道”,經濟新潮社, 2004.

    下載圖示
    QR CODE