博碩士論文 102522112 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:8 、訪客IP:3.149.254.35
姓名 李瑞哲(Ruei-jhe Li)  查詢紙本館藏   畢業系所 資訊工程學系
論文名稱 模組化因修改具耦合的程式碼所伴隨的成本漣漪
(Modeling Ripple Effect of Coupling in Code Refactoring)
相關論文
★ 使用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★ implement race detection functionality inXThreadDebugger base on pluggable modulesystem
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 在多數種產業中,大部分的產品完成後,便很少再為其進行擴充或是升級。使用者一旦發現其能力不足,通常會將整個產品棄置,廠商也無法針對小部分進行擴充與升級。然而資訊工程領域卻截然不同,通常都是對既有軟體進行修改與擴充。每次的產品只能憑著開發人員的經驗來重新修改升級,找出這之中的錯誤並且逐步的修正與調整,才足以滿足使用者的需求。
然而對於資訊工程這領域來說,不論是傳統的瀑布開發法還是較新穎的敏捷開發法,其產品完成後的維護與升級成本消耗了絕大部分的開發成本。倘若產品是不易維護或擴充的,漸漸的系統內容將不會跟上使用者的需求。導致產品的生命週期縮短,使得產品漸漸被淘汰。
儘管軟體的可維護性跟擴充性是十分重要,但在軟體的開發與設計中並沒有一個有效的方法來度量而常常在開發狀態中不停發現新需求而修改。因此在大部分的軟體專案中,往往因當初錯誤的設計架構以及不停的修改軟體需求而造成複雜的耦合。若是及早發現或是系統不大,則可能短時間內的修改就能達成目標。然而最糟的情境是開發人員在進行系統擴充時必須了解整個龐大的系統架構以及如何進行一連串繁瑣的修改才能達成維護與擴充的目標。如此一來所需耗費的時間與金錢是十分巨大的。
本研究將提出一種新的耦合關係成本圖的概念。藉著使用此概念圖,來輔助開發人員可以更清楚地分析出擴充當前系統所需的成本,進而有一依循方向來進行系統重構。在修改的同時觀察耦合關係成本圖的狀態,來幫助與理解重構之後的系統所減少的維護成本與代價。
摘要(英) It is rare in many engineering disciplines, particularly hardware industry, to upgrade an existing product with new hardware components. However, software industry is very different. Software maintenance and extension can only be done by modify the existing code. Different from other industries, software′s maintenance and evolution consume most of the development costs in the long run. If a software product is difficult to maintain or expand, it will gradually fail to deal with new requirements within reasonable time and cost. Finally, the product will be replaced by new ones.
Although the software’s maintainability and expandability is very important, it is always hard to get it right once for all in the design and implementation. In many application domains, requirements are continuously changing. Modifications to the source code gradually introduce couplings, errors, and bad code smells. The effort and time needed to modify the code can be increased dramatically. The worst maintenance situation is that a programmer needs to understand the code of the entire system before he can make any changes.
In this thesis, we propose a new concept to describe the coupling relation of a software system. This modeling approach is called Coupling Relation Representation (CRR). Using this CRR, we can modeling the ripple effect of code refactoring. It can be used for communicating the strategies of code refactoring. A case study is explained to show how CRR can be used in code refactoring analysis.
關鍵字(中) ★ xdiva
★ 重構
★ 軟體維護
關鍵字(英) ★ xdiva
★ refactor
★ CRR
★ software maintance
論文目次 摘要 i
Abstract ii
目錄 iii
圖表目錄 v
一、 緒論 1
1-1 研究動機 1
1-2 問題描述 2
1-3 論文架構 3
二、 研究背景與相關研究 4
2-1 Program comprehension 5
2-2 Bad code smell 6
2-3 Design Pattern 7
2-4 Software Complexity 8
2-4-1 Cyclomatic Complexity 8
2-4-2 Maintenance Complexity 9
2-5 UML 11
三、 Coupling Relations Representation Graph 13
3-1 Definition: 16
3-2 Design Principle: 21
3-3 Maintenance Flowchart: 21
四、 系統實驗與評估 23
4-1 xDIVA簡介 23
4-2 xDIVA所面臨的修改成本問題 25
4-3 實際應用 26
QT Signals and Slots 29
五、 實驗結果 33
六、結論 36
參考文獻 37
參考文獻 [1] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, 1998.
[2] Y.-P. Cheng, J.-F. Chen, M.-C. Chiu, N.-W. Lai, and C.-C. Tseng, “xDIVA: a debugging visualization system with composable visualization metaphors,” in Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, Nashville, TN, USA, 2008, pp. 807-810.
[3] S. Letovsky, “Cognitive processes in program comprehension,” in Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers, Washington, D.C., USA, 1986, pp. 58-79.
[4] D. C. Littman, J. Pinto, S. Letovsky, and E. Soloway, “Mental models and software maintenance,” J. Syst. Softw., vol. 7, no. 4, pp. 341-355, 1987.
[5] A. von Mayrhauser, and A. M. Vans, "From code comprehension model to tool capabilities." pp. 469-473.
[6] T. J. McCabe, “A Complexity Measure,” Software Engineering, IEEE Transactions on, vol. SE-2, no. 4, pp. 308-320, 1976.
[7] L. C. Briand, Y. Labiche, and L. O′Sullivan, "Impact analysis and change management of UML models." pp. 256-265.
[8] D. Lucanin, and I. Fabek, "A visual programming language for drawing and executing flowcharts." pp. 1679-1684.
[9] N. Moha, Gue, x, he, x, Y. neuc, L. Duchien, and A. Le Meur, “DECOR: A Method for the Specification and Detection of Code and Design Smells,” Software Engineering, IEEE Transactions on, vol. 36, no. 1, pp. 20-36, 2010.
[10] "Qt Documentation," http://doc.qt.io/qtinstallerframework/index.html.
[11] H.-W. Liou, “Support Visual Debugging in Electronic Design Automation Software by xDIVA.,” 2013.
指導教授 鄭永斌(Yung-Pin Cheng) 審核日期 2015-7-28
推文 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聯絡  - 隱私權政策聲明