跳到主要內容

簡易檢索 / 詳目顯示

研究生: 黃耀徵
Yao-Zheng Huang
論文名稱: 支援版本控制系統之文件撰寫工具
GeekNote A document attachment tool based on source code with version control
指導教授: 鄭永斌
口試委員:
學位類別: 碩士
Master
系所名稱: 資訊電機學院 - 軟體工程研究所
Graduate Institute of Software Engineering
論文出版年: 2018
畢業學年度: 106
語文別: 中文
論文頁數: 63
中文關鍵詞: 文件撰寫版本控制
相關次數: 點閱:26下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 在軟體工程中,程式碼交接一直是一個很重要的議題。隨著時代的發展,人
    們所撰寫的程式也越加龐大且複雜。文件是在軟體工程中,不可或缺的一環。現
    今的軟體開發人員,大多會使用版本控制系統,來處理不斷修改的程式碼。也因
    為程式碼的變動性很高,文件很容易與程式碼脫勾,進而導致文件失效。脫節的
    文件不僅讓文件的可用性降低,甚至可能會對閱讀文件的開發者產生誤導,造成
    反效果。
    另一個情況是假設文件已經與程式碼脫節,文件撰寫者想維護並更新文件時
    所面臨的問題。首先,文件撰寫者要先找出哪些地方的文件已過時,那些地方的
    文件還是可用的。分辨過時與非過時的文件並沒有無有效方法可以檢查,讓文件
    的維護造成了一個很大的問題。
    若是有一個能支援版本控制系統的文件撰寫工具,上述之問題都能迎刃而解。
    由於沒有能整合版本系統的文件撰寫工具,來解決文件與程式碼對不上的問題。
    本論文基於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].

    QR CODE
    :::