博碩士論文 105525008 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:134 、訪客IP:3.15.5.183
姓名 黃耀徵(Yao-Zheng Huang)  查詢紙本館藏   畢業系所 軟體工程研究所
論文名稱 支援版本控制系統之文件撰寫工具
(GeekNote A document attachment tool based on source code with version control)
相關論文
★ CRUnit - Capture / Replay Based Unit Testing★ Locating Interested Code by Program Execution Paths with Debugger
★ An OpenStack Based Testing as a Service Platform★ Visualize Ripple Effect with Analyzing Object-Oriented Design Relationship
★ Change History Tracing Tool for Arbitrary Programming Language★ Virtual Objects for Program Visualization in xDIVA
★ Enhance Stress Testing Power by Synchronizing JMeter Test Scripts★ 以 GDB 實作 XThreadDebugger-Linux(XTD-Linux)提供 Linux 平台之多執行緒除錯
★ Korat: An O.S.-independent Capture/Replay Test Automation System★ GUI Component Detection for Cross-Platform Applications–Using Input Device and Image Change Synergistic Detection Method
★ 應用設計模式於 RPA 軟體 實作低維護成本的屬性面板自動修正功能★ 使用靜態分析偵測 JavaScript 應用程式中的 Race Condition
★ 基於物件導向與 Clean Code 概念進行 xDiva 重構與優化★ 基於xDIVA之利用關鍵影格將3D物件動畫化與即時保存的視覺化工具
★ CoolPCB:以控制點為主的電路板切割成形繪製自動化方法★ 利用軟體 UI 實現擴充功能 突破原始碼限制的工具
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 在軟體工程中,程式碼交接一直是一個很重要的議題。隨著時代的發展,人
們所撰寫的程式也越加龐大且複雜。文件是在軟體工程中,不可或缺的一環。現
今的軟體開發人員,大多會使用版本控制系統,來處理不斷修改的程式碼。也因
為程式碼的變動性很高,文件很容易與程式碼脫勾,進而導致文件失效。脫節的
文件不僅讓文件的可用性降低,甚至可能會對閱讀文件的開發者產生誤導,造成
反效果。
另一個情況是假設文件已經與程式碼脫節,文件撰寫者想維護並更新文件時
所面臨的問題。首先,文件撰寫者要先找出哪些地方的文件已過時,那些地方的
文件還是可用的。分辨過時與非過時的文件並沒有無有效方法可以檢查,讓文件
的維護造成了一個很大的問題。
若是有一個能支援版本控制系統的文件撰寫工具,上述之問題都能迎刃而解。
由於沒有能整合版本系統的文件撰寫工具,來解決文件與程式碼對不上的問題。
本論文基於polytraceAid 的核心思想,並重新設計架構,且與版本控制系統Git
做結合。實作不相依程式語言且跨平台的文件撰寫工具GeekNote,使文件能與
版本控制系統結合,藉此應映不斷修改的程式碼。GeekNote 不僅能夠幫助使用
者在查找文件時,能夠快速找到對應版本程式碼。且能夠在程式碼修改時,得知
文件失效。
摘要(英) n software engineering, code handover is a very important issue. As time
goes, programs that people write are also larger and more complex.
Documentation is an important part of software engineering. Most software
developers today use version control systems to handle constantly changing
code. Because of the high variability of the code, the document can be easily
decoupled from the code and cause the document to become invalid.
When someone wants to maintain and update the documentation. It is
difficult to tell which documents are out of date or not. There is no effective way
to distinguish between obsolete and non-stale document. That is a big problem
for document maintenance.
If there is a document writing tool that can support the version control
system, the above problems can be solved. This paper develops an assist
documentation tool GeekNote, which is non-dependent program language and
cross-platform, based on the core idea of polytraceAid, and redesign the
architecture and integrate it with the version control system(Git).
GeekNote can not only help users find the corresponding version code
quickly when searching for document, but also let users knows that the
document is invalid when the code is modified.
關鍵字(中) ★ 文件撰寫
★ 版本控制
關鍵字(英)
論文目次 摘要 ........................................................................................................... i
Abstract .................................................................................................... ii
一、緒論 ................................................................................................... 1
1-1 研究背景 ................................................................................. 1
1-2 研究動機 ................................................................................. 2
二、相關研究 ............................................................................................ 4
2-1 文件之功能、原理 ................................................................... 4
2-2 文件的種類 .............................................................................. 5
2-2-1 註解 ............................................................................... 5
2-2-2 純文字文件 ..................................................................... 6
2-2-3 設計文件 ........................................................................ 7
2-2-4 規格書 ............................................................................ 8
2-2-5 Issue Tracker .................................................................. 9
2-3 製作文件的所面臨的問題 ...................................................... 10
2-3-1 撰寫成本 ...................................................................... 10
2-3-2 過時的文件 ................................................................... 11
2-3-3 與程式碼的脫節............................................................ 12
2-4 一般製作文件的工具、方法與策略 ........................................ 12
2-5 Git ......................................................................................... 15
三、PolyTraceAid ................................................................................... 17
3-1 概觀 ....................................................................................... 17
3-2 架構 ....................................................................................... 18
3-3 TracePoints ........................................................................... 19
四、問題描述 .......................................................................................... 21
五、系統設計與實作 ............................................................................... 24
5-1 系統設計 ............................................................................... 24
5-2 系統實作 ............................................................................... 29
5-3 使用流程 ............................................................................... 34
六、評估 ................................................................................................. 37
6-1 廣泛應用性 ............................................................................ 37
6-2 版本切換 ............................................................................... 38
6-3 情境測試 ............................................................................... 39
6-4 實用案例 ............................................................................... 42
七、結論與未來展望 ............................................................................... 48
參考文獻 ................................................................................................. 50
參考文獻 [1] X.-C. Chen, Korat: An O.S.-independent Capture/Replay Test
Automation System, Institute of Computer Science & Information
Engineering, National Central University, 2014.
[2] Yung-Pin Cheng, Jhih-Hao Chen, Yu-Ying Yu, "Executable
Program Documentation Based on Debugging Break Points,"
Software Engineering Conference (APSEC), 2-5 12 2013.
[3] "documentation | Definition of documentation in English by
Oxford Dictionaries," [Online]. Available:
https://en.oxforddictionaries.com/definition/documentation.
[Accessed 1 July 2018].
[4] "electron/electron-quick-start: Clone and run for a quick way to
see Electron in action.," [Online]. Available:
https://github.com/electron/electron-quick-start. [Accessed 1 July
2018].
[5] R. C. Martin, 無暇的程式碼, 博碩, 2013, p. 61.
[6] "ls(1): directory contents - Linux man page," [Online]. Available:
https://linux.die.net/man/1/ls. [Accessed 1 July 2018].
[7] macdidi5, "macdidi5/UMLTutorial: UML and Java Tutorial for
beginer," [Online]. Available:
https://github.com/macdidi5/UMLTutorial. [Accessed 1 July 2018].
[8] "GitHub," [Online]. Available: https://github.com/. [Accessed 1
July 2018].
[9] "The only single product for the complete DevOps lifecycle -
GitLab | GitLab," [Online]. Available: https://about.gitlab.com/.
[Accessed 1 July 2018].
[10] "Microsoft/vscode: Visual Studio Code," [Online]. Available:
https://github.com/Microsoft/vscode. [Accessed 1 July 2018].
[11] A. Forward and T.C. Lethbridge, "The relevance of software
documentation, tools and technologies: a survey," ACM symposium
on Document engineering, pp. 26-33, 08-09 November 2002.
[12] A. Egyed, "A scenario-driven approach to trace dependency
analysis," IEEE Transactions on Software Engineering, pp. Volume:
29, Issue: 2, February 2003.
[13]
L. Nguyen-Hoan, S. Flint, R. Sankaranarayana, “A survey of
scientific software development, ” Proceedings of the 2010 ACMIEEE
International Symposium on Empirical Software Engineering
and Measurement ESEM, pp. 1-12, Sep 2010.
[14] "How to Write Doc Comments for the Javadoc Tool - Oracle,"
[Online]. Available:
http://www.oracle.com/technetwork/articles/java/index-137868.html.
[Accessed 1 July 2018].
[15] D. v. Heesch, "Doxygen: Main Page," [Online]. Available:
http://www.stack.nl/~dimitri/doxygen/. [Accessed 1 July 2018].
[16] David A. Kosower, Juan J. Lopez-Villarejo, Serguei Roubtsov,
"Flowgen: Flowchart-Based Documentation Framework for C++,"
2014 IEEE 14th International Working Conference on Source Code
Analysis and Manipulation, 28-29 Sept. 2014.
[17] "Flowgen," 25 7 2018. [Online]. Available:
http://jlopezvi.github.io/Flowgen/simple_example.html.
[18] C. Lattner, V. Adve, "LLVM: a compilation framework for lifelong
program analysis & transformation," in International Symposium on
Code Generation and Optimization, 2004. CGO 2004, 2004.
[19] Baikuntha Narayan Biswal, Pragyan Nanda, Durga Prassad
Mohapatra, “ A Novel Approach for Scenario-Based Test Case
Generation, ” 2008 International Conference on Information
Technology, 17-20 Dec 2008.
[20] R. Pierce, "Maintaining multiple versions of documentation
source files," Communication Design Quarterly Review, vol. 3, p. 7,
June 2002.
[21] R.Venkataramanan, V. Narasimha Swamy, K. Ramchandran,
"Efficient interactive algorithms for file synchronization under general
edits," 51st Annual Allerton Conference on Communication, Control,
and Computing (Allerton), pp. 1226-1233, 2013.
[22] "Documentation | Electron," [Online]. Available:
https://electronjs.org/docs. [Accessed 1 July 2018].
指導教授 鄭永斌 審核日期 2018-8-15
推文 facebook   plurk   twitter   funp   google   live   udn   HD   myshare   reddit   netvibes   friend   youpush   delicious   baidu   
網路書籤 Google bookmarks   del.icio.us   hemidemi   myshare   

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明