以作者查詢圖書館館藏 、以作者查詢臺灣博碩士 、以作者查詢全國書目 、勘誤回報 、線上人數:121 、訪客IP:3.128.172.154
姓名 李政澤(Cheng-Tse Li) 查詢紙本館藏 畢業系所 軟體工程研究所 論文名稱 文件彙整自動化: 在創新文件系統 Geekynote 為專案製作心智圖 相關論文 檔案 [Endnote RIS 格式] [Bibtex 格式] [相關文章] [文章引用] [完整記錄] [館藏目錄] [檢視] [下載]
- 本電子論文使用權限為同意立即開放。
- 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
- 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。
摘要(中) 軟體專案中,文件對於新舊開發者的溝通與合作至關重要。但在
實踐中,編寫和維護高質量的文件往往面臨種種挑戰。
我們實驗室開發的 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.關鍵字(中) ★ 文件
★ 自動化關鍵字(英) ★ documentation 論文目次 摘要 i
Abstract ii
目錄 iii
圖目錄 vii
表目錄 ix
一、緒論 1
二、相關研究 6
2.1 程碼理解 6
2.2 認知負荷理論 8
2.2.1 認知負荷理論的基本概念 8
2.2.2 認知負荷理論的核心原則: 8
2.2.3 認知負荷理論的應用 10
2.3 Geekynote 與 Geekynote Web 介紹 11
2.3.1 Geekynote 加 標籤 13
2.3.2 在 Geekynote Web 閱讀文件 14
三、問題描述與分析 15
3.1 新進開發者面臨的問題 15
3.1.1 難以理解複雜的系統 15
3.1.2 缺乏全面的系統概述 16
3.2 Geekynote現有的問題 17
3.2.1 Trace Label缺乏層級化的程碼概念 17
3.2.2 難以找到相關的文件 17
3.3 解決方案 18
3.3.1 彙整Label的Module Label 19
3.3.2 Portal頁面 20
3.3.3 總結 22
四、系統實作 25
4.1 前端 25
4.1.1 React Custom Hook介紹 25
4.1.2 對 Label 的建立和修改表單重構 25
4.1.3 Module Label 的前端頁面 27
4.2 後端 30
4.2.1 擴充Module Label Service 30
4.2.2 Module Label資料 31
4.2.3 Label在檔案分布的Api實作 31
4.2.4 重新設計 Label 在檔案分布的 Api 33
五、案例分析 35
5.1 File View 介紹 35
5.2 在日常開發中自動建立架構文件 37
5.3 概覽 Frontend 38
5.4 依照語意找到文件 39
5.5 改善文件的組織方碼 40
5.6 架構文件更新自動化 41
5.7 簡單定位核心程碼處 42
六、文件系統評估 44
6.1 文件的建立與更新 44
6.2 文件的資訊組織 45
6.3 文件的可搜尋性 45
6.4 程碼處整合度 46
6.5 對開發者的認知負荷 47
6.6 總結 47
七、結論 49
八、參考文獻 52參考文獻 [1] Y.-P. Cheng, W.-N. Hsiung, Y.-S. Wu, and L.-H. Chen, "GeekyNote:
A technical documentation tool with coverage, backtracking, traces,
and couplings," in 2020 IEEE/ACM 42nd International Conference on
Software Engineering: Companion Proceedings (ICSE-Companion),
Seoul, Korea (South), 2020, pp. 73-76.
[2] J. Koenemann and S. P. Robertson, "Expert problem solving
strategies for program comprehension," in Proceedings of the SIGCHI
Conference on Human Factors in Computing Systems (CHI ′91), New
York, NY, USA, 1991, pp. 125–130. doi: 10.1145/108844.108863.
[3] T. Bakota, P. Hegedűs, G. Ladányi, P. Körtvélyesi, R. Ferenc, and T.
Gyimóthy, "A cost model based on software maintainability," in 2012
28th IEEE International Conference on Software Maintenance (ICSM),
Trento, Italy, 2012, pp. 316-325. doi: 10.1109/ICSM.2012.6405288.
[4] S.-Y. Wong, H. Cheung, and H.-C. Chen, "The advanced
programmer′s reliance on program semantics: Evidence from some
cognitive tasks," International Journal of Psychology, vol. 33, no. 4, pp.
259-268, 1998.
52
[5] T. C. Lethbridge, J. Singer, and A. Forward, "How software engineers
use documentation: the state of the practice," IEEE Software, vol. 20,
no. 6, pp. 35-39, Nov.-Dec. 2003. doi: 10.1109/MS.2003.1241364.
[6] R. E. Brooks, "Towards a theory of the comprehension of computer
programs," International Journal of Man-Machine Studies, vol. 18, pp.
543-554, 1983.
[7] W. G. Chase and H. A. Simon, "Perception in chess," Cognitive
Psychology, vol. 4, no. 1, pp. 55–81, 1973. doi: 10.1016/0010
0285(73)90004-2.
[8] B. Guerin and A. Matthews, "The effects of semantic complexity on
expert and novice computer program recall and comprehension," The
Journal of General Psychology, vol. 117, no. 4, pp. 379–389, 1990. doi:
10.1080/00221309.1990.9921144.
[9] C. L. Corritore and S. Wiedenbeck, "What do novices learn during
program comprehension?" International Journal of Human-Computer
Interaction,
vol.
3,
no. 2, pp. 199–222, 1991. doi:
10.1080/10447319109526004.
[10] A. von Mayrhauser and A. M. Vans, "Comprehension processes
during large scale maintenance," in Proceedings of 16th International
53
Conference on Software Engineering, Sorrento, Italy, 1994, pp. 39-48.
doi: 10.1109/ICSE.1994.296764.
[11] J. Sweller, P. Ayres, and S. Kalyuga, Cognitive Load Theory. New
York, NY, USA: Springer, 2011. doi: 10.1007/978-1-4419-8126-4.指導教授 鄭永斌(Yung-Pin Cheng) 審核日期 2024-7-29 推文 facebook plurk twitter funp google live udn HD myshare reddit netvibes friend youpush delicious baidu 網路書籤 Google bookmarks del.icio.us hemidemi myshare