(34.239.150.57) 您好!臺灣時間:2021/04/14 22:51
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:陳石佳
研究生(外文):Shih-Chia Chen
論文名稱:AMRL耦合強度度量方法
論文名稱(外文):AMRL Coupling Strength Metrics
指導教授:李允中李允中引用關係
指導教授(外文):Jonathan Lee
學位類別:碩士
校院名稱:國立中央大學
系所名稱:軟體工程研究所
學門:電算機學門
學類:軟體發展學類
論文種類:學術論文
論文出版年:2013
畢業學年度:101
語文別:中文
論文頁數:55
中文關鍵詞:軟體度量軟體耦合
外文關鍵詞:Software MetricsSoftware coupling
相關次數:
  • 被引用被引用:0
  • 點閱點閱:201
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
程式碼常需為了相容新的硬體或增加新功能亦或是修正程式的錯誤,而不斷的修改程式碼,但是程式碼的修改卻變得越來越困難,最後程式可能會無法更改。而修改所花費的成本與修改程式的時間也相當可觀,修改後軟體之品質卻可能不佳。因此,在軟體開發的過程中,需事先做好軟體的設計,不同的軟體設計,對於後來需要維護程式時,會有不同的影響。不好的設計會使得日後的維護工作變得較為困難。雖然目前已有諸多測量耦合程度(Coupling Strength)的研究被提出,但較少有研究探討軟體耦合程度與軟體變更數量之關係。
故本研究以Code Level Interaction Types為基礎,發展耦合強度度量方法(稱為AMRL Coupling Strength Metric),來深入探討大型開放原始碼專案軟體中Classes之間之更為詳細的互動關係,並且搭配版本控制軟體,將Class的耦合強度之演進過程呈現出來,且利用AMRL Metrics來以量化的方式,觀察不同的軟體設計之間的差異變化。

A central feature of the evolution of large software systems is that change - which is necessary to add new features, accommodate new hardware, and repair defects – becomes increasingly difficult over time.
A key principle of modern programming practice is: follow the rule of loose coupling, that is, to restrict the interactions among modules and therefore contain the changes local to the modules themselves. Although efforts have been made on developing metrics of coupling strength between modules, little emphasis has been put on investigating the relationship between coupling strength metrics and object class changes in object-oriented systems.
In this research, we develop a coupling strength metric (AMRL Coupling Strength Metric) based on code level interaction types, to further explore the large scale open source project software classes more detailed interaction between the relationships. We observe the coupling strength of the class evolution with version control system. And use AMRL metrics to quantify the effect of difference designs.

摘要 i
Abstract ii
致謝 iii
目錄 iv
圖目錄 vi
表目錄 viii
第一章 緒論 1
1.1 引言 1
1.2 動機 2
1.3 論文架構 3
第二章 背景知識介紹 4
2.1 CK Metrics 4
2.2 Coupling Strength Framework by Hitz and Montazeri 5
2.3 Java Compiler API 6
2.4 Change Management System (Git) 7
2.5 Analytic Hierarchy Process (AHP) 8
第三章 系統分析設計與實作 10
3.1 系統架構(System Architecture) 10
3.2 Change Type Analyzer 11
3.3 AMRL Strength Calculator 13
3.3.1 AMRL Code Level Interaction Type 13
3.3.2 AMRL Strength 14
3.3.3 AMRL Strength Process 17
3.3.4 AMRL Strength Calculator 設計 19
第四章 實驗與驗證 20
4.1 Class演進與AMRL變化實驗結果 20
4.2軟體設計方式與AMRL Variance變化之實驗結果 22
4.2.1 Creational Patterns 22
4.2.2 Structural Patterns 27
4.2.3 Behavioral Patterns 31
4.3 AMRL與Software Design Process之對應 39
第五章 結論 42
參考文獻 43

[1] J.M. Bieman and B.K. Kang, “Measuring Design-Level Cohesion,” IEEE Transactions on Software Engineering, Vol. 24, No. 2, pp. 111–124, Feb. 1998.
[2] H.S. Chae, Y.R. Kwon, and D.H. Bae, “Improving Cohesion Metrics for Classes by Considering Dependent Instance Variables,” IEEE Transactions on Software Engineering, Vol. 30, No. 11, pp. 826 –832, Nov. 2004.
[3] A, Marcus and D. Poshyvanyk, “The Conceptual Cohesion of Classes,” Proceedings of the 21st IEEE International Conference on Software Maintenance, Pages 133–142, 2005.
[4] J.A. Dallala and L.C. Briand, “An Object-Oriented High-Level Design-Based Class Cohesion Metric”, Information and Software Technology, Vol. 52, Issue 12, Pages 1346–1361, Dec. 2010.
[5] H.S. Chae and Y.R. Kwon, “A cohesion measure for classes in object-oriented systems,” 5th Proceedings of the International Software Metrics Symposium, 1998.
[6] M. Perepletchikov, C. Ryan, and K. Frampton “Cohesion Metrics for Predicting Maintainability of Service-Oriented Software,” 7th International Conference on Quality Software, 2007
[7] W. Stevens, G. Myers, and L. Constantine, “Structured Design,” IBM Systems Journal., Vol. 13, No. 2, pp. 115-139, 1974.
[8] R.W. Selby and V.R. Basili, “Analyzing Error-Prone Systems Structure,” IEEE Transactions on Software Engineering, Vol. 17, No. 2, pp. 141-152,1991
[9] P.A. Troy and S.H. Zweben, “Measuring the Quality of Structured Designs,” Journal of Systems and Software, Vol. 2, Issue 2, pp. 113-120, 1981
[10] M. Hitz and B. Montazeri, “Measuring Product Attributes of Object-Oriented Systems,” W. Schöfer and P. Botella, eds., Proceedings of the 5th European Software Eng. Conf., Barcelona, Spain, Sept.1995, Lecture Notes in Computer Science 989, Springer-Verlag,1995.
[11] S.R. Chidamber and C.F. Kemerer, “A Metrics Suite for Object Oriented Design,” IEEE Transactions on Software Engineering,Vol. 20, No. 6, June 1994.
[12] J. Eder, G. Kappel, and M. Schrefl, “Coupling and Cohesion in Object-Oriented Systems,” Technical Report, University of Klagenfurt, 1994.
[13] L. Briand, P. Devanbu, and W. Melo, “An Investigation into Coupling Measures for C++,” Proceedings of the 19th International Conference on Software Engineering, Boston, pages 412-421, May 1997
[14] S. Sarkar, A.C. Kak, and G.M. Rama, “Metrics for Measuring the Quality of Modularization of Large-Scale Object-Oriented Software,” IEEE Transactions on Software Engineering, Vol. 34, No. 5, Sep. 2008.
[15] The CVS Team, “Concurrent Versions System,” http://savannah.nongnu.org/projects/cvs
[16] Apache Software Foundation, “Apache Subversion,” http://subversion.apache.org/
[17] Linus Torvalds, “Git,” http://git-scm.com/
[18] T.L. Graves, A.F. Karr, J.S. Mrron, and H. Siy, ”Predicting Fault Incidence Using Software Change History,” IEEE Transactions on Software Engineering, Vol. 26, No. 7, pp. 653 - 661, July 2000.
[19] T. Gyimóthy, R. Ferenc, and I. Siket, “Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction,” IEEE Transactions on Software Engineering, Vol. 31, No. 10, pp. 897 - 910, Oct. 2005.
[20] S.R. Chidamber and C.F. Kemerer, “A Metrics Suite for Object-Oriented Design,” IEEE Transactions on Software Engineering, Vol. 20, No. 6, pp. 476-493, 1994.
[21] R. Subramanyam and M.S. Krishnan, “Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects,” IEEE Transactions on Software Engineering, Vol. 29, No. 4, pp. 297 - 310, Apr 2003.
[22] L.C. Briand, J. Wüst, J.W. Daly, and D.V. Porter, “Exploring the Relationships between Design Measures and Software Quality in Object-Oriented Systems,” Journal of Systems and Software, Vol. 51, Issue 3, pp. 245-273, 2000.
[23] L.C. Briand and J. Wüst, “Empirical Studies of Quality Models in Object-Oriented Systems,” Advances in Computers, Vol. 56, Sept. 2002.
[24] Oracle, “Package javax.lang.model,” http://docs.oracle.com/javase/7/docs/api/javax/lang/model/package-summary.html
[25] Oracle, “Package javax.tools,” http://docs.oracle.com/javase/7/docs/api/javax/tools/package-summary.html
[26] Oracle, “Compiler Tree API,” http://docs.oracle.com/javase/7/docs/jdk/api/javac/tree/index.html
[27] Teknomo and Kardi, "Analytic hierarchy process (AHP) tutorial." Retrieved on January 11 (2006): 2011.
[28] B. Fluri and H.C. Gall, “Classifying Change Types for Qualifying Change Couplings,” Proc. 9th Int’l Conf. Program Comprehension, IEEE CS Press, 2006, pp. 35–45.
[29] Briand, L.C., J.W. Daly and J. K. Wust. "A unified framework for coupling measurement in object-oriented systems." Software Engineering, IEEE Transactions on 25.1 (1999): 91-121.

連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
系統版面圖檔 系統版面圖檔