研究生: |
余鈺盈 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.
[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.