帳號:guest(3.129.21.105)          離開系統
字體大小: 字級放大   字級縮小   預設字形  

詳目顯示

以作者查詢圖書館館藏以作者查詢臺灣博碩士論文系統以作者查詢全國書目
作者(中文):劉再生
作者(外文):Liu, Zai-Sheng
論文名稱(中文):使用考量多面向物件導向特性之動態量測來改進類別耦合力
論文名稱(外文):Using Dynamic Measurement to Improve Coupling at the Class Level by Considering Multiple Object-Oriented Features
指導教授(中文):黃慶育
指導教授(外文):Huang, Chin-Yu
口試委員(中文):蘇銓清
林振緯
林其誼
學位類別:碩士
校院名稱:國立清華大學
系所名稱:資訊工程學系所
學號:105062645
出版年(民國):107
畢業學年度:106
語文別:英文
論文頁數:107
中文關鍵詞:耦合力動態度量軟體工程軟體度量加權量測方法
外文關鍵詞:CouplingDynamic MetricSoftware engineeringSoftware MeasurementWeighted Metric
相關次數:
  • 推薦推薦:0
  • 點閱點閱:387
  • 評分評分:*****
  • 下載下載:0
  • 收藏收藏:0
隨著開發人員越來越重視軟體品質,為了量測軟體而有許多的軟體度量方法被提出。這些軟體度量方法使用多種特質來量測系統,像是軟體複雜度、軟體耦合力以及內聚力。此外,在量測軟體品質方面,研究指出軟體耦合力是最重要且最具影響力的因子之一,因此有許多關於利用耦合力來量測的研究隨之被提出。在開發軟體系統中,我們常會用到一些物件導向重要的概念,像是結構化設計、動態繫結、多型與繼承,所以單純使用程式碼來度量越來越顯得不足。儘管如此,仍然有許多的研究只針對靜態程式碼的部份加以量測,因為傳統的耦合力是衡量系統內部品質的指標,隨著系統使用了越多的繼承關係,就會造成量測的結果越來越不準確的問題。此外,我們也意識到耦合力有分為多個等級,而每個級別的耦合力都會為系統帶來不同的難易度,然而許多研究都只把耦合力化分為同一個等級。為了解決這個問題,我們依照不同的耦合力等級加以給予權重。
現有的耦合力相關的研究有許多的不足,例如,當我們只透過程式碼來量測軟體,我們是很難得知哪個方法被其他類別呼叫,而為了解決我們目前所提到的問題,我們提出一個名為DWCC的度量方法。由於我們需要從物件導向的系統中獲得資料,所以在我們實驗中使用到了4個JAVA開源軟體系統。實驗結果指出,DWCC對比於其他度量方法與軟體複雜度有更強的關聯性。由此可知,在DWCC中我們所額外考量到的因子對於反映軟體複雜度是很重要的。
As developers pay more and more attention to software quality, there are amounts of software metrics proposed to evaluate the software system. In these metrics, they use various properties to measure the system, such as software complexity, cohesion and coupling. Nevertheless, research has indicated that coupling is one of most significant and fundamental factors for evaluating the quality of software, and numerous research utilizing coupling to measure software systems have been proposed. Some features of object-oriented programming (OOP) (i.e., structural design, dynamic binding, polymorphism, inheritance and interface) are important concepts to develop the software system, and merely utilizing source code to evaluate systems has become more and more insufficient. However, most static metrics focus on measuring the source code in the program [1][2][3]; this situation would cause problems of inaccuracy because traditional coupling that represents the indicator to measure the inner quality attribute of programs [4] loses accuracy as there is more use of the inheritance. Nevertheless, we noticed that there are various coupling levels, and each level corresponds to the difficulty of systems, while most studies treat these coupling levels as equal. To solve this problem, we weighted each level individually, and the weighted values are the value of each coupling level.
There are some insufficiencies of existing coupling metrics. For instance, it is difficult to know which code was executed and which method is called by another class, while we measure the system merely using source code. In order to solve the problem we mentioned before, we proposed a Dynamic Weighted Class Coupling (DWCC) metric to solve these problems. Since we need to obtain the data from object-oriented (OO) software, the evaluation of the experiment has been conducted by four java open-source software systems. Our experimental result shows that the DWCC metric we proposed has a stronger correlation with the difficulty of programs. Therefore, the factors we considered in the DWCC metric are significant to reflect the actual difficulty.
Chapter 1 Introduction 10
Chapter 2 Literature Review 17
2.1 Existing static coupling metrics 21
2.2 Concepts of dynamic metrics 25
2.3 Existing dynamic coupling metrics 31
Chapter 3 Dynamic Weighted Coupling Metric 36
3.1 Add Inheritance Properties 37
3.2 Add Interface Properties 40
3.3 Weighting each factors 43
Chapter 4 Experiments 50
4.1 Validation Strategy 50
4.2 Test Data Sets 52
4.3 Experimental process 53
4.3.1 Dynamic coupling data collection 54
4.3.2 DWCC Tool 57
4.4 Analysis Result 58
4.4.1 Correlation Coefficients 58
4.4.2 p-value 67
4.5 Practical application on DWCC metric 68
4.6 Threats to Validity 73
Chapter 5 Analysis of DWCC properties 76
5.1 Briand’s Properties 76
5.2 Weyuker’s Nine Properties 77
5.3 Proof process 82
5.4 Analytic result 84
Chapter 6 Conclusion and Future Works 86
Reference 88
Appendix 94

[1] F. B. Abreu, “The MOOD metrics set,” Proceeding of ECOOP’95 Workshop on Metrics, Aarhus, Denmark, Aug. 1995, pp. 150-152.
[2] D. Romano and M. Pinzger, “Using Source Code Metrics to Predict Change-Prone Java Interface,” IEEE International Conference on Software Maintenance (ICSM), VI, USA, Sep. 2011, pp. 303-312.
[3] M. Cartwright and M. Shepperd, “An Empirical Investigation of an Object-Oriented Software System,” IEEE Trans. Software System, Vol. 26, No. 8, pp. 789-796, Aug. 2000.
[4] L.C. Briand, J. Wuest, "Empirical Studies of Quality Models in Object-Oriented Systems," Advances in Computers, Vol. 59, pp. 97-166, Dec. 2002.
[5] T. J. McCabe, “A complexity measure,” IEEE Trans. on Software Engineering., Vol. SE-2, No. 4, pp. 308-320, Dec. 1976.
[6] M. H. Halstead, “Elements of Software Science,” New York: Elsevier North- Holland, 1977.
[7] N. Fenton and M. Neil, “Software metrics: Successes failures and new direction,” Journal of System and Software, Vol. 47, No. 2-3, pp. 149-157, July. 1999.
[8] R. Harrison, S. Counsell and R. Nithi, “Coupling metrics for object-oriented design,” Proceedings of Fifth International Software Metrics Symposium Metrics, Bethesda, USA, Mar. 1998, pp. 150-156.
[9] M. Lorenz and J. Kidd , “Object-Oriented Software Metrics : A Practical Guide,” Prentice Hall Object-Oriented Series, Englewood Cliffs, New Jersey, 1994.
[10] L. Briand, W. Devanbu and W. Melo, “An investigation into coupling measures for C++,” Proceedings of ICSE ‘97, Boston, USA, May. 1997, pp. 412-421.
[11] J. Bansiya, L. Etzkorn, C. Davis and W. Li, “A class cohesion metric for object-oriented design”. Journal of Object-Oriented Programming, Vol. 11, No. 8, pp. 47-52, Jan. 1999.
[12] D.A. Troy and S.H. Zweben, “Measuring the Quality of Structured Designs,” ACM J. Systems and Software, Vol. 2, No. 2, pp. 113-120, June 1981.
[13] A. Macro, J. Buxton. The Craft of Software Engineering, MA, Addison-Wesley, 1987.
[14] N. E. Fenton and S.L. Pfleeger. Software Metrics - A Rigorous Approach and Practical Approach, second edition. Brooks-Cole, 1997.
[15] A. Marcus, D. Poshyvanyk and R. Ferenc, “Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems,” IEEE Trans. on Software Engineering, Vol. 34, No.12, pp.287-300, March. 2008.
[16] Y. Singh, A. Kaur and R. Malhotra, “Empirical validation of object-oriented metrics for predicting fault proneness models,” Journal of Software Quality, Vol. 18, No. 1, pp. 3-35, Mar. 2010.
[17] K. El-Emam and K. Melo, “The Prediction of Faulty Classes Using Object-Oriented Design Metrics,” Journal of Systems and Software, Vol.56, No. 1, pp.63-75, Feb. 2001.
[18] T. Gyimóthy, R. Ferenc and I. Siket, “Empirical validation of object-oriented metrics on open source software for fault prediction,” IEEE Trans. on Software Engineering, Vol. 31, No. 10, pp. 897-910, Oct. 2005.
[19] P. Yu, T. Systa and H. Muller, “Predicting fault proneness using OO metrics. An industrial case study,” Proceedings of 6th European Conf. on Software Maintenance and Reengineering (CSMR'02), Budapest, Hungary, Mar. 2002, pp. 99-107.
[20] L. Briand, J. Wust and H. Louinis “Using Coupling Measurement for Impact Analysis in Object-Oriented Systems,” Proceesings of IEEE International Conf. on Software Maintenance, Oxford, England, Aug. 1999, pp. 475-482.
[21] F. G. Wilkie and B.A. Kitchenham, “Coupling measures and change ripples in C++ application software,” The Journal of Syst. and Software, Vol. 52, No. 2-3, pp. 157-164, Jun. 2000.
[22] L. Briand, J. Wüst, J. Daly and V. Porter, “Exploring the relationship between design measures and software quality in object-oriented systems,” Journal of Systems and Software, Vol. 51, No. 3, pp. 245-273, May. 2000.
[23] E.B. Allen and T.M. Khoshgoftaar, “Measuring Coupling and Cohesion: An Information-Theory Approach,” In Proceedings of the Sixth International Software Metrics Symposium, Boca Raton, U.S.A., pp. 119-127, Nov. 1999.
[24] G. Antoniol, R. Fiutem and L. Cristoforett, “Using Metrics to Identify Design Patterns in Object-Oriented Software,” Proceedings of 5th IEEE International Symposium on Software Metrics (METRICS'98), Bethesda, MD, Nov.1998. pp. 23- 34.
[25] D.B. Bart, D. Serge and V. Jan, “Refactoring-improving coupling and cohesion of existing code,” Proceedings of the 11th Working Conference on Reverse Engineering, DC, USA, Nov. 2004, pp.144-151.
[26] Y. Kataoka, T. Imai, H. Andou and T. Fukaya, “A quantitative evaluation of maintainability enhancement by refactoring,” Proceedings of International Conference on Software Maintenance, Montreal, Quebec, Canada, Oct. 2002, pp. 576-585.
[27] P. Coad and E. Yourdon. Object-Oriented Analysis, second edition. Prentice Hall, 1991.
[28] P. Coad and E. Yourdon. Object-Oriented Design, first edition. Prentice Hall, 1991.
[29] C. Rajaraman and M.R. Lyu, “Reliability and Maintainability Related Software Coupling Metrics in C++ Programs,” Proceedings 3rd IEEE International Symposium on Software Reliability Engineering (ISSRE'92), Oct. 1992, pp. 303-311.
[30] A. Mitchell, J. F. Power, “Using object-level run-time metrics to study coupling between objects,” Proceedings of the ACM symposium on Applied Computing, Santa Fe, USA, pp.1456–1462, Mar. 2005.
[31] M. Hitz and B. Montazeri, “Measuring Coupling and Cohesion in Object-Oriented Systems,” Proc. Int’l Symp. Applied Corporate Computing, Monterrey, Mexico, Oct. 1995. A version of this paper (focusing on coupling only) has been published in Object Currents, Vol. 1, No. 4, SIGS Publications, 1996. http://www.sigs.com/publications/docs/oc
[32] S.R. Chidamber and C.F. and Kemerer, “A Metrics Suite for Object Oriented Design,” IEEE Trans. Software Eng., Vol. 20, No. 6, pp. 476-498, Jun. 1994.
[33] S.R. Chidamber and C.F. Kemerer, “Towards a Metrics Suite for Object Oriented design,” Proc. 6th ACM Conf. Object Oriented Programming Syst. Lang. and Applicat. (OOPSLA), Arizona, USA, pp. 197-211, Oct. 1991.
[34] W. Li and S. Henry, “Object-Oriented Metrics that Predict Maintainability,” ACM J. Systems and Software, Vol. 23, No. 2, pp. 111-122, Nov. 1993.
[35] J. A. Dallal, “Object-oriented class maintainability prediction using internal quality attributes,” Information & Software Technology, Vol. 55, Issue 11, pp. 2028-2048, Nov. 2013.
[36] F. Wilkie and B. Kitchenham, “An Investigation of Coupling, Reuse and Maintenance in a Commercial C++ Application,” Information & Software Technology, Vol. 43, Issue 13, pp. 801-812, Nov. 2001.
[37] S. Wake and S. Henry, “A model based on software quality factors which predicts maintainability,” Proceeding of the Conference on Software Maintenance, Scottsdale, USA, Oct. 1988, pp. 382-387.
[38] S. Kebir, A. -D. Seriai, S. Chardigny and A. Chaoui, “Quality-Centric Approach for Software Component Identification from Object-Oriented Code,” 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture, Helsinki, Finland, Aug. 2012, pp. 181-190
[39] V. Gupta and J. Kumar Chhabra, “Package Coupling Measurement in Object-Oriented Software,” Journal of Computer Science and Technology, Vol. 24, No. 2, pp. 273-283, March 2009.
[40] W. Li and S. Henry, “Object-Oriented Metrics that Predict Maintainability,” Journal of Systems and Software, Vol. 23, No. 2, pp. 111-122, Nov. 1993.
[41] T. Korson and J. McGregor, “Understanding Object-Oriented: A Unifying Paradigm,” Communications of the ACM, Vol. 33, No. 9, pp. 40-60, Sep. 1990.
[42] M. Hitz and B. Montazeri, “Measuring Product Attributes of Object-Oriented Systems,” ESEC ‘95 Fifth European Software Eng. Conf., Barcelona, Spain, pp. 124-136, Sep. 1995.
[43] R. Subramanyam and M.S. Krishnan, “Empirical analysis of CK metrics for object-oriented design complexity: implications for software defects,” IEEE Transaction on Software Engineering, Vol. 29, No. 4, pp. 297-310, Apr. 2003.
[44] A. Maheshwari, A. Tripathi, and D. S. Kushwaha, “A New Design Based Software Coupling Metric,” International Conference on Information Technology, Bhubaneswar, India, Dec. 2014, pp. 351-355.
[45] E. Arisholm, L. C. Briand and A. Foyen, “Dynamic Coupling Measurement for Object-Oriented Software,” IEEE Trans on Software Engineering, Vol. 30, No. 8, pp. 491-506, Jul. 2004
[46] H.M. Sneed and A. Merey, “Automated Software Quality Assurance,” IEEE Trans. on Software Engineering, Vol. SE-11, No. 9, pp. 909-916, Sep. 1985.
[47] S. Yacoub, H. Amma and T. Robinson, “Dynamic metrics for object-oriented designs,” Proc. the 5th International Software Metrics Symposium, Boca Raton, USA, pp.50-61, Nov. 1999.
[48] Z. Jin, J. Offutt, “Coupling-based criteria for integration testing,” Journal of Software Testing, Verification, and Reliability., Vol. 8, No. 3, pp.133-154, Jan. 1999.
[49] R. T. Alexander, J. Offutt, and A. Stefik, “Testing coupling relationships in object-oriented programs,” Journal of Software Testing, Verification, and Reliability., Vol. 20, No. 4, pp. 291-327, Dec. 2010.
[50] J. K. Chhabra and V. Gupta, “A Survey of Dynamic Software Metrics,” Journal of Computer Science and Technology, Vol. 25, No. 5, pp. 1016-1029, Sep. 2010
[51] J. Dean, D. Grove, and C. Chambers, “Optimizations of object-oriented programs using static class hierarchy analysis,” ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming, Aarhus, Denmark, Aug. 1995, pp. 77–101.
[52] F. Steimann, P. Mayer and A. MeiBner, “Decoupling Classes with Inferred Interfaces,” Proceedings of 2006 ACM Symposium on Applied Computing, Dijon, France, pp. 1404-1408, Apr. 2006.
[53] D. Riehle and E. Dubach, “Working With Java Interfaces and Classes-How to Separate Interfaces from Implementations”, Java Report, pp. 35-46, July 1999
[54] M. Fowler, “Reducing Coupling,” IEEE Software, Vol.18, No. 4, pp. 102-104, Aug. 2001.
[55] N. Wilde, R. Huitt., “Maintenance Support for Object-Oriented Programs,” IEEE Transaction on Software Engineering, Vol. 18, No. 12, pp. 1038-1044, Dec. 1992
[56] A. Aloysius and L. Arockiam, “Coupling complexity metric: A cognitive approach,” International Journal of Information Technology and Computer Science (IJITCS), Vol 4, No. 9, pp. 29, Sep. 2012
[57] A. Mitchell and J. F. Power, “A study of the influence of coverage on the relationship between static and dynamic coupling metrics”, Science of Computer Programming, Vol.59, No.1-2, pp.4-25, Jan. 2006
[58] E.E. Khaled, M. Walcelio and C.M. Javam, “The prediction of faulty classes using object-oriented design metrics,” Journal of Systems and Software, Vol. 56, No. 1, pp. 63-75, Feb. 2001
[59] S. Conte, H. Dunsmore, and V.Y. Shen. Software Engineering Metrics and Models, Menlo Park, Calif.: Benjamin Cummings, 1986.
[60] S. N. Goodman, “Toward evidence-based medical statistics. 1: The p value fallacy,” Annals of Internal Medicine, Vol. 130, No. 12, pp. 995–1004, Jun. 1999.
[61] S. N. Goodman, “Toward evidence-based medical statistics. 2: The bayes factor,” Annals of Internal Medicine, Vol. 130, No. 12, pp. 1005–1013, Jun. 1999.
[62] https://github.com/, Accessed on 15 May. 2018.
[63] https://commons.apache.org/proper/commons-bcel/, Accessed on 15 May. 2018.
[64] https://javacc.org/, Accessed on 15 May. 2018.
[65] https://www.eclemma.org/, Accessed on 15 May. 2018.
[66] E. I. Oviedo, “Control flow, data flow and program complexity,” in Proc. IEEE COMPSAC, Chicago, IL, pp. 146-152, Nov. 1980.
[67] J. C. Chemiavsky and C. H. Smith, “On Weyuker’s axioms for software complexity measures,” IEEE Trans. Software Eng., Vol. 17, Issue 6, pp. 636-638, Jun. 1991.
[68] G. Roy, “On the applicability of Weyuker Property 9 to Object-Oriented Structural Inheritance Complexity Metrics,” IEEE Transactions on Software Engineering, Vol. 27, No. 4, pp. 381-384, Apr. 2001.
[69] Z. Lu and X. Dan, “Comments on “On the applicability of Weyuker Property 9 to Object-Oriented Structural Inheritance Complexity Metrics,” IEEE Transaction on Software Engineering, Vol.28, No.5, pp. 526-527, May. 2002.
[70] R. C. Martin, “OO Design Quality Metrics - An Analysis of Dependencies,” Proceedings of Workshop Pragmatic and Theoretical Directions in Object-Oriented Software Metrics, Oregon, USA, Oct. 1994.
[71] R. Marinescu, “Detection strategies: metrics-based rules for detecting design flaws,” Proceesings of 20th IEEE International Conference on Software Maintenance, IL, USA, Sep. 2004, pp. 350-359.
[72] R. Kazman, G. Abowd, L. Bass and P. Clements, “Scenario-based analysis of software architecture,” IEEE Software, Vol. 13, No. 6, pp. 47-55, Nov. 1996.
[73] M. Sefika, A. Sane and R. H. Campbell, “Monitoring compliance of a software system with its high-level design models,” Proceedings of the 18th international conference on Software engineering, Berlin, Germany, Mar. 1996, pp. 387-396.
[74] C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in Software Engineering. New York, USA: Springer, 2012.
[75] L. C. Briand, S. Morasca and V. R. Basili, “Property-Based Software Engineering Measurement,” IEEE Transaction on Software Engineering, Vol. 22,No. 1, pp. 68-85, Jan. 1996.
[76] E. Weyuker, “Evaluating software complexity measures,” IEEE Trans. Software Eng., Vol. 14, No. 9, pp. 1357-1365, Sep. 1988.
[77] N. Ana, L. Horst and X. Yi, “Evolution of Object Oriented Software Coupling Metrics,” Proceedings of the Second International Workshop on Software Architecture and Metrics, Florence, Italy, May. 2015, pp. 48-54.
(此全文未開放授權)
電子全文
中英文摘要
 
 
 
 
第一頁 上一頁 下一頁 最後一頁 top
* *