摘要: | 軟體專案中,文件對於新舊開發者的溝通與合作至關重要。但在 實踐中,編寫和維護高質量的文件往往面臨種種挑戰。 我們實驗室開發的 Geekynote 系統提出新的文件種類 Trace Label。。開發者需在在關程程碼處添加 Trace Label,即可按程碼執行 順序閱讀這些程碼處片段。這大大簡化了文件的製作流程,使編寫文 件不再是一項繁重的負擔。 然而,隨著專案規模的增長,零散的Trace Labels 在要組織起來才 好搜尋。。 為此, 本論文提出了Module Label的概念。Module Label可 將多個相關的 Trace Labels 組織成一個模組,並支持建立模組之間的 層級關係。 對於包含太多程碼處片段的Trace Label。 也可分解為一些 模組然後再組織起來。通過 Module Label,開發者可以在縱覽整個專 案結構的同時,又能方便地深入到特定模組的實現細節。這種層級化、 聚合性的文件組織方碼,更 貼近開發者的理解與使用習慣。 Geekynote 另設計了 Portal 頁面,為新手彙整了最重要、最有針 對性的學習資源和文件入口。這一設計有效降低了新進開發者的入門 門檻。 總而言之。 本研究降低了文件撰寫的複雜度。 且能組織文件成層 級碼的架構 使團隊分享知識更簡單 提升開發的效率與品質。;This thesis addresses the challenges of document management in large scale software systems by introducing the concepts of Module Labels and Portal Pages, building upon the innovative documentation tool Geekynote developed by our lab. Module Labels allow developers to organize Trace Labels and sub-module labels into a hierarchical structure, forming a concept tree that reflects the system architecture. This structure not only expresses complex system information at a higher level of abstraction but also helps developers quickly locate core code and design patterns through visualization. The Portal Page provides a starting point for new developers to quickly understand the system, aggregating the most valuable documents and resources for newcomers, as selected by the team. By integrating Module Labels and Portal Pages into Geekynote, we provide development teams with a flexible and powerful knowledge management toolkit that reduces the burden of document maintenance and promotes knowledge sharing and collaboration within the team. This thesis presents the design principles, technical implementation, and practical applications of this innovative approach in detail, demonstrating its advantages over traditional document management through case studies and system evaluations. We believe that this innovation has the potential to significantly improve the maintainability and sustainability of complex software systems, providing new ideas and directions for knowledge management practices in the field of software engineering. |