博碩士論文 109522082 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:93 、訪客IP:18.191.86.163
姓名 史家瑩(Jia-Ying Shih)  查詢紙本館藏   畢業系所 資訊工程學系
論文名稱 從版本庫的提交中提取維護耦合以進行系統知識轉移
(Extracting Maintenance Couplings from Repository Commits for System Knowledge Transfer)
相關論文
★ 使用PolyTraceAid進行程式文件覆蓋率計算與分群★ Support Visual Debugging in Electronic Design Automation Software by xDIVA
★ 設計與實作視覺化追蹤點以支援xDIVA進行程式動畫★ Combine Internal Test Oracles and Capture/Replay GUI Testing for Precise Replay and Higher Validation Power
★ Dissimilarity of Polymorphic Execution Sequences★ The Analysis of Capturing System Test Cases into Unit Test Cases
★ 動態延遲載入的測試覆蓋率★ 建構於JMeter之自動化分散式壓力測試架構
★ 模組化因修改具耦合的程式碼所伴隨的成本漣漪★ Design a Pluggable Architecture for Layout Algorithms in xDIVA
★ 重複性程式碼檢測之外掛模組設計★ Visual Perception of Realistic Rendering in xDiva 3D Environment
★ Why and When GUI Test Automation Fails in Practice and Our Solutions to The Problem★ Why and When GUI Test Automation Fails in Practice and Our Solutions to The Problem
★ Very High Precision Optical Character Recognition For Clean-Fixed-Sized True Type Characters★ Enhance Korat by Branch Capability in Capture/Replay User Scenario to Industrial Test Case Automation
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 在開發人員開發與維護的過程中,若修改某段程式碼時,須連帶修改另一部份程式碼,則這兩段程式碼之間存在的耦合關係,我們將其稱為維護耦合(maintenance coupling)。
現存的大多數專案中,其實都存在不少的維護耦合關係,但在技術文件內卻從不曾提起這些耦合情形,這也會導致其他剛接手的開發人員忽略了耦合的存在。開發人員在開發或維護的實作中,若是沒能發現潛藏的維護耦合關係,在改動程式碼時也沒有連帶修改與它耦合的程式碼片段,這很可能會導致其他原先正常的功能發生故障。
本實驗室正在開發一項嶄新的技術文件管理工具――GeekyNote,我們也開創了耦合技術文件的概念。使用者能夠使用耦合標籤,將彼此之間存在耦合關係的程式碼片段連結起來,再配合錄音或錄影解說,取代傳統用文字寫成的技術文件,傳承已知的耦合相關重要資訊。
為了提升耦合技術文件的正確性與完整性,以及製作文件的便利性。本論文使用Git提交(Commit)版本歷史,分析專案中存在的維護耦合關係。透過分析結果,使用者能夠要求GeekyNote自動標記耦合的程式碼區塊。除此之外, GeekyNote還能夠利用該分析,提供開發人員詳細的耦合資訊,讓開發人員在修改程式碼時無需再懼怕軟體故障的發生,並降低開發的風險性。
摘要(英) During the development and maintenance, if one code block is modified, another part of code must be modified together, then the coupling between the two code blocks is called maintenance coupling.
There are lots of maintenance couplings in most existing projects, but these couplings are not mentioned in the technical documents, which will also let other developers ignore the existence of coupling. During the development or maintenance, if developers fail to find the hidden maintenance couplings, and does not modify the code blocks with couplings together, it is likely to cause other bugs.
GeekyNote is a novel tool developed in our laboratory to address the major challenges in technical documentation, and we have also created the concept of coupling technical documents. Users can use coupling labels to link code blocks that have a coupling relationship with each other, and then cooperate with audio or video explanations to replace traditional technical documents written in texts and pass on known important information.
In order to improve the correctness and integrity of the coupling documents, as well as the convenience of making documents. This paper uses the Git commit history to analyze the maintenance coupling relationship existing in the project. Based on this analysis, users can automatically mark coupled code blocks. In addition, GeekyNote can also provide developers with detailed coupling information, so that developers no longer worry about software failures when modifying code, and reduce the risk of development.
關鍵字(中) ★ 耦合
★ 技術文件
關鍵字(英)
論文目次 摘要 i
Abstract ii
目錄 iii
圖目錄 vi
表目錄 viii
一、 緒論 1
二、 研究背景 6
2-1耦合 6
2-1-1耦合對實作的影響 7
2-1-2耦合資訊的應用 8
2-2 GeekyNote 9
2-2-1 技術文件管理方式 10
2-2-2 耦合標籤 12
2-2-3 文件覆蓋率 13
2-2-4 文件剩餘有效程度 14
2-2-5 GeekyNote現況以及不足之處 16
2-3 Git[7]介紹 16
三、 問題描述與分析 18
3-1 維護耦合判斷準確性 18
3-2 耦合完整性與開發與維護過程之風險性 19
3-3 耦合相關技術文件建立困難 20
四、 耦合預處理(preprocessing) 23
4-1 過濾不適合的Git提交 23
4-2 用分支進行耦合處理 25
4-3 用檔案與具代表性提交進行處理 27
4-4 用程式碼進行處理 28
五、 系統設計與實作 30
5-1 使用情境(user scenario) 30
5-2 檢視與目前開發目標耦合的區塊 33
5-3 自動建立耦合文件 33
六、 評估與討論 35
6-1 耦合文件準確性評估結果與討論 35
6-1-1 評估是否過濾合併與修改檔案數過多之提交 36
6-1-2 分支處理評估與討論 37
6-1-3 檔案處理評估與討論 38
6-1-4 程式碼處理評估與討論 40
6-2 耦合文件完整性評估與討論 41
6-3 自動建立耦合文件便利性評估 43
七、 結論與未來展望 45
八、 參考資料 46
參考文獻 [1] Gall, Harald, Karin Hajek, and Mehdi Jazayeri. "Detection of logical coupling based on product release history." Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272). IEEE, 1998.
[2] Cheng, Yung-Pin, et al. "GeekyNote: a technical documentation tool with coverage, backtracking, traces, and couplings." 2020 IEEE/ACM 42nd International Conference on Software Engineering: Companion Proceedings (ICSE-Companion). IEEE, 2020.
[3] Steff, Maximilian, and Barbara Russo. "Co-evolution of logical couplings and commits for defect estimation." 2012 9th IEEE Working Conference on Mining Software Repositories (MSR). IEEE, 2012.
[4] D′Ambros, Marco, Michele Lanza, and Romain Robbes. "On the relationship between change coupling and software defects." 2009 16th Working Conference on Reverse Engineering. IEEE, 2009.
[5] Zimmermann, Thomas, et al. "Mining version histories to guide software changes." IEEE Transactions on Software Engineering 31.6 (2005): 429-445.
[6] Falcone, Jean-Luc, Bastien Chopard, and Alfons Hoekstra. "MML: towards a multiscale modeling language." Procedia Computer Science 1.1 (2010): 819-826.
[7] “Git” [online]. Available: https://git-scm.com/. [Accessed 6 Jun. 2022].
[8] “Subversion” [online]. Available: https://subversion.apache.org/. [Accessed 6 Jun. 2022].
[9] “CVS” [online]. Available: https://www.cvs.com/. [Accessed 6 Jun. 2022].
[10] “GitLab” [online]. Available: https://about.gitlab.com/. [Accessed 6 Jun. 2022]
[11] “GitHub” [online]. Available: https://github.com/. [Accessed 6 Jun. 2022]
[12] ZHOU, Daihong, et al. Understanding evolutionary coupling by fine-grained co-change relationship analysis. In: 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC). IEEE, 2019. p. 271-282.
[13] ZIMMERMANN, Thomas, et al. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 2005, 31.6: 429-445.
[14] ROLFSNES, Thomas, et al. Generalizing the analysis of evolutionary coupling for software change impact analysis. In: 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER). IEEE, 2016. p. 201-212.
[15] MOONEN, Leon, et al. Practical guidelines for change recommendation using association rule mining. In: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering. 2016. p. 732-743.
[16] SILVA, Luciana L., et al. Developers′ perception of co-change patterns: An empirical study. In: 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME). IEEE, 2015. p. 21-30.
[17] KIM, Miryung; ZIMMERMANN, Thomas; NAGAPPAN, Nachiappan. A field study of refactoring challenges and benefits. In: Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering. 2012. p. 1-11.
[18] “How Video Will Take Over The World” [online]. Available: https://www.forrester.com/report/How-video-Will-Take-Over-The-World/RES44199. [Accessed 6 Jun. 2022]
[19] “Humans Process Visual Data Better” [online]. Available: https://www.t-sciences.com/news/humans-process-visual-data-better. [Accessed 6 Jun. 2022]
[20] 技術文件版型範例[online]. Available: https://www.smartsheet.com/free-technical-specification-templates [Accessed 6 Jun. 2022]
[21] WIESE, Igor Scaliante, et al. An empirical study of the relation between strong change coupling and defects using history and social metrics in the apache aries project. In: IFIP International Conference on Open Source Systems. Springer, Cham, 2015. p. 3-12.
[22] KIRBAS, Serkan, et al. The relationship between evolutionary coupling and defects in large industrial software. Journal of Software: Evolution and Process, 2017, 29.4: e1842.
[23] KIRBAS, Serkan, et al. The effect of evolutionary coupling on software defects: an industrial case study on a legacy system. In: Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. 2014. p. 1-7.
[24] R. Schwanke, L. Xiao and Y. Cai, "Measuring architecture quality by structure plus history analysis," 2013 35th International Conference on Software Engineering (ICSE), 2013, pp. 891-900, doi: 10.1109/ICSE.2013.6606638.
[25] WONG, Sunny, et al. Detecting software modularity violations. In: Proceedings of the 33rd International Conference on Software Engineering. 2011. p. 411-420.
[26] PALOMBA, Fabio, et al. Detecting bad smells in source code using change history information. In: 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE). IEEE, 2013. p. 268-278.
[27] BECK, Fabian; DIEHL, Stephan. On the congruence of modularity and code coupling. In: Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering. 2011. p. 354-364.
[28] H. Gall, M. Jazayeri and J. Krajewski, "CVS release history data for detecting logical couplings," Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings., 2003, pp. 13-23, doi: 10.1109/IWPSE.2003.1231205.
[29] XIAO, Lu, et al. Identifying and quantifying architectural debt. In: 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE). IEEE, 2016. p. 488-498.
[30] “Perforce” [online]. Available: https://www.perforce.com/. [Accessed 30 Jun. 2022]
指導教授 鄭永斌(Yung-Pin Cheng) 審核日期 2022-8-3
推文 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聯絡  - 隱私權政策聲明