在軟體工程的歷史中,技術文件對於專案來說,絕對扮演著舉足輕重的角色。因為文件可以讓不熟悉此專案的開發人員,花費最少的時間成本,來了解該專案的架構及執行細節。即便是熟悉該專案的人員,也可能因為維護擴充時,必須去修改過去一段時間的程式碼,此時必須要文件的幫忙來回憶架構設計的緣由。 可惜製作有效率的技術文件,在未來能夠維護下去,一直以來都是難以解決的問題。本論文提出一個嶄新軟體GeekyNote,此為文件管理工具,目的在解決許多文件維護及製作上的問題。以下是本論文開發GeekyNote所提倡的關鍵想法:(1) 需要透過在程式碼及文件插入任何的資訊,即可完成程式碼與文件的雙向連結,且在看最新版本的程式碼同時能夠直接看到過往的所有文件;(2) 經過數個版本後的專案,計算文件的有效程度,去評估文件是否已經過時,需要更新;(3) 提供一個名為追蹤案例(Trace Case)的方法,使用類似偵錯工具的概念,讓文件的理解更加快速;(4) 提供耦合標記功能,讓專案中複雜的耦合關係,能夠一目了然的管理維護;(5) 能夠計算專案的文件覆蓋率,為專案提供一個客觀的數字,開發人員可以快速地評量專案文件現況。 ;Every programmer almost has the experience about spending a lot of time on understanding an unfamiliar program. Technical documentation are always helpful when you are tracing source code. It can let you understand the abstract concept quickly. The goal of technical documentation is to achieve the transfer of knowledge. However, creating effective technical documentation has been impeded by many problems in practice. Also, there are a lot of problems when maintaining technical documentation. In this paper, we propose a novel tool called GeekyNote to address the major challenges in technical documentation. The key ideas GeekyNote proposes are: (1) documents are annotated to versioned source code transparently; (2) the up-to-dateness between documents and code can be detected, measured, and managed; (4) the documentation that works like a debugging-trace is supported; (5) couplings can be easily created and managed for future maintenance needs; (6) how good a systemis documented can be measured.