以作者查詢圖書館館藏 、以作者查詢臺灣博碩士 、以作者查詢全國書目 、勘誤回報 、線上人數:147 、訪客IP:3.17.110.119
姓名 陳致豪(Jhih-hao Chen) 查詢紙本館藏 畢業系所 資訊工程學系 論文名稱 使用PolyTraceAid進行程式文件覆蓋率計算與分群
(Program Documentation Coverage and Clusteringby PolyTraceAid)相關論文 檔案 [Endnote RIS 格式] [Bibtex 格式] [相關文章] [文章引用] [完整記錄] [館藏目錄] [檢視] [下載]
- 本電子論文使用權限為同意立即開放。
- 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
- 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
摘要(中) 軟體系統隨著時間不斷演進的過程中,程式開發人員的來去不可避免。要讓不同階段的開發人員都明瞭軟體系統的架構與系統設計者最原始的的設計理念,是一個困難且具挑戰性的軟體工程問題。通常具備一定規模的軟體開發專案,都會以文件作為開發團隊成員間溝通的媒介。針對程式碼的說明文件,我們於先前提出了PolyTraceAid這套以Tracecase為文件基礎的工具幫助開發人員快速理解程式以及減輕文件撰寫的負擔。使用者能以PolyTraceAid製作Tracecase與閱讀Tracecase,當使用PolyTraceAid來閱讀Tracecase時,能夠以使用者追蹤程式認知模型(program model)的方式來進行。
本論文分別針對製作與閱讀這兩個使用面向,各提出一套方式來強化PolyTraceAid。第一套方式將軟體測試中Test Coverage的概念引進至PolyTraceAid的Tracecase文件。覆蓋率提供我們一個全新的文件品質自動化度量方法。第二套方式利用Needleman-Wunsch Algorithm (NWA) 與 Hierarchical Agglomerative Clustering (HAC) 演算法針對PolyTraceAid的Tracecase做分群( Clustering )。讓Tracecase能夠依其所說明的功能進行分群,提供文件彼此的關聯性,幫助程式設計師探索系統。最後實際將PolyTraceAid應用於xDIVA[5]系統。
摘要(英) In a software life cycle, maintenance is a big challenge due to the turnover of programmers. Making developers who join a project at different time understand the original design concept is always a challenging problem. In a big software project, developers often communicate with each other by documentations. For internal program documentation, we have proposed a Tracecase based tool called PolyTraceAid. We can use PolyTraceAid to create and read Tracecase document. Tracecase can help us understand program model[1] of a program. It is not only a new but also an useful way for programmer to understand a program.
This paper proposes two ways respectively to enhance PolyTraceAid on creating Tracecase and reading Tracecase. First, we apply the concept of code coverage from software testing. So Tracecase document can also be with code coverage. The coverage provides us a new way to automatically measure the quality of program document. Second, we adopt Needleman-Wunsch Algorithm(NWA) and Hierarchical Agglomerative Clustering(HAC) to cluster Tracecases in PolyTraceAid. Then we are able to cluster Tracecases through the function they describe. It will provide us the relationship between Tracecase documents and help programmer to explorer the system.
關鍵字(中) ★ 文件覆蓋率
★ 覆蓋率
★ 分群
★ 程式碼理解
★ 程式碼文件關鍵字(英) ★ Documentation Coverage
★ Coverage
★ Clustering
★ Program Documentation
★ Program comprehension論文目次 目錄
摘要 i
Abstract ii
一、 緒論 1
1-1 PolyTraceAid簡介 1
1-2 研究動機與目的 2
1-3 論文章節介紹 3
二、 背景與相關研究 4
2-1 研究背景 4
2-2 PolyTraceAid概觀 5
2-2-1 製作Tracecase 6
2-2-2 重播Tracecase 9
2-3 Program understanding的相關研究 10
2-3-1 程式碼理解 10
2-3-2 程式碼文件 11
三、 Tracecase覆蓋率 13
3-1 文件品質 13
3-2 覆蓋率 (Code Coverage) 14
3-3 方法與技術 16
3-2-1 方法 16
3-2-2 技術議題 16
3-4 實例說明 19
3-5 討論與改進 20
四、 Tracecase分群 23
4-1 xDIVA與Tracecase 23
4-2 分群(Clustering) 24
4-2-1 分群簡介 24
4-2-2 文件分群與分類 25
4-2-3 Tracecase序列相似度 26
4-3 方法與技術 27
4-3-1 方法 27
4-3-2 技術 27
4-4 Tracecase序列對齊實例 32
五、 Evaluation 35
六、 結論與未來展望 38
6-1 結論 38
6-2 未來展望 38
七、 參考文獻 39
參考文獻 [1] N. Pennington, “Stimulus structures and mental representations in expert comprehension of computer programs,” Cognitive Psychology, vol. 19, pp. 295–341, 1987.
[2] F. D′etienne, Software design cognitive aspects. Practitioner series, Springer, 2001.
[3] Thomas D. LaToza, “Answering common questions about code”, ICSE Companion ’’08, Companion of the 30th international conference on Software engineering Pages 983-986
[4] K. Mehner, “Javis: A uml-based visualization and debugging environment for concurrent java programs,” in Software Visualization, pp. 163–175, 2001.
[5] 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 OOPSLA Companion (G. E. Harris, ed.), pp. 807–810, ACM, 2008.
[6] A. M. Vans, A. von Mayrhauser, and G. Somlo, “Program understanding behavior during corrective maintenance of largescale software,” Int. J. Hum.-Comput. Stud., vol. 51, no. 1, pp. 31–70, 1999.
[7] I. Vessey, “Expertise in debugging computer programs: A process analysis,” International Journal of Man-Machine Studies, vol. 23, no. 5, pp. 459–494, 1985.
[8] Source Dynamics, “Source insight.” Available as http://www.sourceinsight.com
[9] Dimitri van Heesch, “Doxygen.” Available as http://www.doxygen.org/.
[10] Sun Microsystems, “Javadoc tool home page.” Available as http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html
[11] Lewis I. Berman, “Using sound to understand software architecture”, SIGDOC ’’09 Proceedings of the 27th ACM international conference on Design of communication Pages 127-134
[12] M.-A. D. Storey, “Theories, tools and research methods in program comprehension: past, present and future,” Software Quality Journal, vol. 14, no. 3, pp. 187–208, 2006.
[13] M.-A. D. Storey, “Invited talk,” in The 19th IEEE International Conference on Program Comprehension, ICPC 2011, Kingston, ON, Canada, June 22-24, 2011, IEEE Computer Society, 2011.
[14] S. Letovsky, “Cognitive processes in program comprehension,” Journal of Systems and Software, vol. 7, no. 4, pp. 325–339, 1987.
[15] D. C. Littman, J. Pinto, S. Letovsky, and E. Soloway, “Mental models and software maintenance,” Journal of Systems and Software, vol. 7, no. 4, pp. 341–355, 1987.
[16] A. von Mayrhauser and A. M. Vans, “From code comprehension model to tool capabilities,” in Computing and Information - ICCI’93, Fifth International Conference on Computing and Information, Sudbury, Ontario, Canada, May 27-29, 1993, Proceedings (O. Abou-Rabia, C. K. Chang, and W. W. Koczkodaj, eds.), pp. 469–473, IEEE Computer Society, 1993.
[17] M.-A. D. Storey, K. Wong, and H. A. M‥uller, “How do program understanding tools affect how programmers understand programs?,” Sci. Comput. Program., vol. 36, no. 2-3, pp. 183–207, 2000.
[18] Chris Parnin, “Measuring API documentation on the web”, Web2SE ’’11 Proceedings of the 2nd International Workshop on Web 2.0 for Software Engineering, Pages 25-30
[19] Data mining, see http://en.wikipedia.org/wiki/Data_mining
[20] Nucleotide figure is from: http://www.daviddarling.info/encyclopedia/N/nucleotide.html
指導教授 鄭永斌(Yung-Pin Cheng) 審核日期 2012-7-12 推文 facebook plurk twitter funp google live udn HD myshare reddit netvibes friend youpush delicious baidu 網路書籤 Google bookmarks del.icio.us hemidemi myshare