簡易檢索 / 詳目顯示

研究生: 項家恩
Hsiang. Chia En
論文名稱: 開源物件導向系統之耦合力量化量測
Quantitative Measurement of the Coupling of Open Source Object-Oriented System
指導教授: 黃慶育
Huang. Chin Yu
口試委員: 蘇銓清
Sue. Chuan Ching
林振緯
Lin,Jenn Wei
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Computer Science
論文出版年: 2015
畢業學年度: 103
語文別: 中文
論文頁數: 86
中文關鍵詞: 驗證量測方法物件導向程式複雜度量測軟體維護品質分析與評估
外文關鍵詞: Verification, Measurement techniques, Object-Oriented Programming, Complexity measures, Software maintenance, Quality analysis and evaluation
相關次數: 點閱:92下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 為了增加軟體的品質以及可維護性,開發者需依循著低耦合力高內聚力的設計準則撰寫程式。然而,在軟體開發過程中,因應使用者需求不斷變更,進而壓縮測試所需的時間,如何減少測試所需耗費的成本成為一項重要的議題。透過提升軟體品質量測的準確性,評估、修改模組之間的相依性及其複雜度,以促進程式的可讀性並減少維護所需成本。根據研究指出,軟體複雜度量測中,耦合力為最能顯著影響程式設計整體品質的特徵,並能獲得更精準的故障預測;此外,因物件導向程式設計的重要性與可延伸性,許多學者紛紛提出相關的程式語言之測量方法。然而,目前尚未針對耦合力量測中須考慮哪些物件導向程式特性進行規範,因此,在過去的研究中,存在許多定義尚不明確的方法。本篇論文的目的是提出一耦合力量測方法,考量物件導向程式設計語言中相關細節,並提供開發者一撰寫程式碼的規範與建議。實驗結果顯示,我們的方法可達到更精準的預測軟體品質,並透過撰寫準則修改原始程式碼可有效降低其耦合力。


    There is an increasing need for software quality and maintainability, where developers should implement the principles of low coupling and high cohesion programming design. However, in the software development process, due to the different variation in users’ specifications, code design is usually expresses the time of the testing phases. Hence, how to reduce the testing effort input is one of the most import topics. Through promoting the accuracy of software measurement, we can evaluate and modify the dependence and complexity between modules, which facilitate the readability of programs and reduce the maintenance work. According to previous research, the most significant characteristics that can influence the whole quality of the design is coupling; coupling can be obtained more precisely to predict fault-phone classes in object-oriented code; because of the reusability and extendibility of object-oriented programming (OOP), numerous measurement methods are proposed. However, there is no standard to claim what kind of characteristics OOP should contain in coupling metrics; many existing measures present ambiguity in their definitions. The aim of this study is to propose a coupling measurement approach, which offers greater detail about the characteristics of OOP, and provide coding standards and recommendations for developers to design a maintainable program. The results of these experiments show that our derived metrics can predict the software quality well and reduce the coupling of a program though the principles we proposed.

    Abstract in Chinese I Abstract II Acknowledgement III Contents IV List of Tables VII List of Figures VIII Chapter 1 Introduction 1 Chapter 2 Background and Related Works 5 Chapter 3 Object-Oriented Metrics 11 3.1 Concepts of OOP 11 3.2 Coupling metrics 12 3.3 Data Analysis Methodology 17 3.3.1 Weyuker’s Nine Properties 17 3.3.2 p-value 21 3.4 Threats to Validity 24 Chapter 4 Experiments 25 4.1 Features of Data Sets 25 4.2 Analysis Results 28 4.2.1 Correlation Coefficients 28 4.2.2 Properties of the Candidate Metrics 34 4.2.3 Results of p-value 35 4.3 Threats to Validity 36 4.4 Summary 37 Chapter 5 Application Related of Software Coupling Metrics 39 5.1 Coding Standard and Rules 39 5.1.1 Source Code in File 39 5.1.2 Comments 42 5.1.3 Include Files 45 5.1.4 Classes 45 5.1.5 Functions 47 5.1.6 Flow Control Statements 47 5.1.7 Inline Functions 48 5.1.8 Summary 49 5.2 Predicting Fault Probability of Classes 53 Chapter 6 Conclusions 56 Appendixes 58 Appendix A. Sample CC and AMC Data 58 A-1. concordance Data Set 58 A-2. codeblocks Data Set 58 A-3. Database Management System Data Set 59 A-4. eyedb Data Set 59 A-5. Helicopter Game Data Set 61 A-6. hive1-2 Data Set 61 A-7. Hotel management system Data Set 62 A-8. sales management system Data Set 62 A-9. kashipara.com_food-automation Data Set 62 A-10. kashipara.com_of-ATM-program Data Set 62 A-11. lardboy Data Set 62 A-12. matrix Data Set 62 A-13. payroll management system Data Set 63 A-14. Search Engine Project Data Set 63 A-15. supermarket billing system project Data Set 63 A-16. CppUnit Data Point 63 A-17. XML-RPC Data Point 64 A-18. CrossScaleStereo Data Point 66 A-19. Dev-C++ Data Point 67 Appendix B. Verification of the candidate metrics 68 Metric 1. Class Coupling (CC) 68 Metric 2. Message-Passing Coupling (MPC) 69 Metric 3. Data Abstract Coupling (DAC) 71 References 73

    [1] 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, 1991.
    [2] Y. Liu and T. M. Khoshgoftaar, “Evolutionary Optimization of Software Quality Modeling with Multiple Repositories,” IEEE Trans. Software Eng., Vol. 36, No. 6, pp. 852-864, Nov. 2010.
    [3] W. Li and S. Henry, “Object-Oriented Metrics that Predict Maintainability,” ACM J. Systems and Software, Vol. 23, No. 2, pp. 111-122, 1993.
    [4] T. J. McCabe, “A complexity measure,” IEEE Trans. Software Eng., Vol. SE-2, No. 4, pp. 308-320, Dec. 1976.
    [5] M. H. Halstead. Elements of Software Science, New York: Elsevier North-Holland, 1977.
    [6] D. Comer and M. Halstead, “A simple experiment in top-down design,” IEEE Trans. Software Eng., Vol. SE-5, No. 2, pp. 105-109, Feb. 1979.
    [7] S. Draxler, G. Stevens, and A. Boden, “Keeping the Development Environment Up to Date—A Study of the Situated Practices of Appropriating the Eclipse IDE,” IEEE Trans. Software Eng., Vol. 40, No. 11, pp. 1061-1074, Nov. 2014.
    [8] 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), pp. 303-311,1992.
    [9] 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, 1994.
    [10] 1. Vessey and R. Weber, “Research on structured programming: An empiricist’s evaluation,” IEEE Trans. Software Eng., Vol. SE-10, pp. 394407, 1984.
    [11] C. F. Kemerer, “Reliability of function points measurement: a field experiment,” Communications of the ACM, Vol. 36, Issue 2, pp. 85-97, Feb. 1993.
    [12] L. Briand, J. Daly, V. Porter, and J. Wüst, “Predicting Fault-Prone Classes with Design Measures in Object-Oriented Systems,” Proc. Ninth Int’l Symp. Software Reliability Eng., ISSRE’98, Paderborn, Germany, Nov. 1998.
    [13] V. Basili, L. Briand, and W.L. Melo, “A Validation of Object Oriented Design Metrics as Quality Indicators,” IEEE Trans. Software Eng., Vol. 22, No. 10, pp. 751-761, 1996.
    [14] E. Ferneley, “An empirical study of coupling and control flow metrics,” Information & Software Technology, Vol. 39, Issue 13, pp. 879-887, 1997.
    [15] E.B. Allen and T.M. Khoshgoftaar, “Measuring Coupling and Cohesion: An Information-Theory Approach,” In Proceedings of the Sixth International Software Metrics Symposium, pp. 119-127, Boca Raton, FL U.S.A., November 1999.
    [16] 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.
    [17] Allen Macro, John Buxton. The Craft of Software Engineering, Addison-Wesley, 1987.
    [18] N. E. Fenton and S.L. Pfleeger. Software Metrics - A Rigorous Approach and Practical Approach, second edition. Brooks-Cole, 1997.
    [19] P. Coad and E. Yourdon. Object-Oriented Analysis, second edition. Prentice Hall, 1991.
    [20] P. Coad and E. Yourdon. Object-Oriented Design, first edition. Prentice Hall, 1991.
    [21] W. Stevens, G. Myers, and L. Constantine, “Structured Design,” IBM Systems J., Vol. 13, No. 2, pp. 115-139, 1974.
    [22] E. Yourdon L. L. Constantine. Structured Design, Prentice Hall, Englewood Cliffs, NJ, 1979.
    [23] S. Wake and S. Henry, “A model based on software quality factors which predicts maintainability,” in Proceeding of the Conference on Software Maintenance (Washington, DC), IEEE Computer Society Press, Los Alamitos, CA, pp. 382-387, 1988.
    [24] 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.
    [25] J. A. Dallal, “Object-oriented class maintainability prediction using internal quality attributes,” Information & Software Technology, Vol. 55, Issue 11, pp. 2028-2048, Nov. 2013.
    [26] E. Yourdon, Modern Structured Analysis. Yourdon Press, Englewood Cliffs, N.J. 1989.
    [27] J. H. Bae, H. S. Chae, and C. K. Chang, “A metric towards evaluating understandability of state machines: An empirical study,” Information and Software Technology, Vol. 55, Issue 12, pp. 2172-2190, 2013.
    [28] 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
    [29] R. Harrison, S. Counsell, and R. Nithi, “Coupling Metrics for Object Oriented Design, ” Proc. Fifth Metrics Symp., pp. 150-157, Nov. 1998.
    [30] S.R. Chidamber and C.F. Kemerer, “Towards a Metrics Suite for Object Oriented design,” in A. Paepcke, (ed.) Proc. Conference on Object-Oriented Programming: Systems, Languages and Applications (OOPSLA’91). Published in SIGPLAN Notices, Vol. 26, No. 11, pp. 197-211, Oct. 1991.
    [31] T. Korson and J. McGregor, “Understanding Object-Oriented: A Unifying Paradigm,” Communications of the ACM, Vol. 33, No. 9, pp. 40-60, 1990.
    [32] J. Bansiya and C.G. Davis, “A Hierarchical Model for Object-Oriented Design Quality Assessment,” IEEE Trans. Software Eng., Vol.28, No.1, pp. 4-17, Jan. 2002.
    [33] Á. Beszédes, T. Gergely, S. Faragó, T. Gyimóthy, and F. Fischer, “The dynamic function coupling metric and its use in software evolution,” in Proceedings of the 11th European Conference on Software Maintenance and Reengineering (CSMR’07), pp. 103-112, Mar. 2007.
    [34] A. Maheshwari, A. Tripathi, and D. S. Kushwaha, “A New Design Based Software Coupling Metric,” International Conference on Information Technology (ICIT), pp. 351-355, Dec. 2014.
    [35] Jin Z, Offutt J, “Coupling-based criteria for integration testing,” Journal of Software Testing, Verification, and Reliability., Vol. 8, No. 3, pp.133-154, 1998.
    [36] 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, 2010.
    [37] L. C. Briand, J. W. Daly and J. K. Wuest, “A Unified Framework for Coupling Measurement in Object-Oriented Systems,” IEEE Trans. Software Eng., Vol. 25, No. 1, pp. 91-121, 1999.
    [38] P. Wegner, “Concepts and Paradigms of Object-Oriented Programming,” OOPS Messenger, Vol. 1, No. 1, pp. 7-84, Aug. 1990.
    [39] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy and W. Lorensen. Object-Oriented Modeling and Design, Book published by Prentice Hall, 1991.
    [40] T. Lethbridge, and R. Laganiere. Object-oriented software engineering, Mcgraw-Hill College, 2003.
    [41] G. Myers, Composite/Structured Design, Van Nostrand Reinhold, 1978.
    [42] L. C. Briand, S. Morasca, and V. R. Basili, “Property-Based Software Engineering Measurement,” IEEE Trans. Software Eng., Vol. 22, No. 1, pp. 68-85, Jan. 1996.
    [43] J. Dean, D. Grove, and C. Chambers, “Optimizations of object-oriented programs using static class hierarchy analysis,” in European Conference on Object-Oriented Programming, pages 77–101, 1995.
    [44] E. Weyuker, “Evaluating software complexity measures,” IEEE Trans. Software Eng., Vol. 14, No. 9, pp. 1357-1365, 1988.
    [45] E. I. Oviedo, “Control flow, data flow and program complexity,” in Proc. IEEE COMPSAC, Chicago, IL, pp. 146-152, Nov. 1980.
    [46] D. A. Gustafson and B. Prasad, “Properties of software measures,” in Formal Aspects of Measurement. T. Denvir et al, Eds. New York: Springer-Verlag. 1991.
    [47] S. Conte, H. Dunsmore, and V.Y. Shen. Software Engineering Metrics and Models, Menlo Park, Calif.: Benjamin Cummings, 1986.
    [48] S. N. Goodman, “Toward evidence-based medical statistics. 1: The p value fallacy,” Annals of Internal Medicine, Vol. 130, No. 12, pp. 995–1004, 1999.
    [49] S. N. Goodman, “Toward evidence-based medical statistics. 2: The bayes factor,” Annals of Internal Medicine, Vol. 130, No. 12, pp. 1005–1013, 1999.
    [50] A. Loconsole and J. Börstler, “Construction and Validation of Prediction Models for Number of Changes to Requirements,” Technical Report, UMINF 07.03, Feb. 2007.
    [51] C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell and A. Wesslén, Experimentation in Software Engineering, Springer Science & Business Media, 2012.
    [52] N. E. Fenton and J. Bieman. Software Metrics - A Rigorous Approach and Practical Approach, third edition. Chapman & Hall, 2015.
    [53] http://sir.unl.edu/content/sir.php, Accessed on 23 Oct. 2014.
    [54] http://www.cprogramming.com/cgi-bin/source/source.cgi, Accessed on 7 Nov. 2014.
    [55] http://www.codewithc.com/, Accessed on 12 Nov. 2014.
    [56] http://sourceforge.net/directory/language:cpp/os:windows/freshness:recently-updated/?q=C, Accessed on 14 Nov. 2014.
    [57] http://www.campwoodsw.com/sourcemonitor.html, Accessed on 28 Nov. 2014.
    [58] http://www.sourceformat.com/coding-standard.htm
    [59] http://www.sparxsystems.com.au/, Accessed on 14 May. 2015.
    [60] https://goo.gl/rGtZ7g, Accessed on 14 May. 2015.
    [61] L. Briand, P. Devanbu, W. Melo, “An Investigation into Coupling Measures for C++,” Proceedings of ICSE ‘97, Boston, USA, 1997.
    [62] M. Cartwright, M. Shepperd, “An Empirical Investigation of an Object-Oriented Software System”, Technical Report, Department of Computing, Bournemouth University, UK, 1997.
    [63] W. Araujo, L. C. Briand, and Y. Labiche, “On the Effectiveness of Contracts as Test Oracles in the Detection and Diagnosis of Functional Faults in Concurrent Object-Oriented Software,” IEEE Trans. Software Eng., Vol. 40, Issue 10, pp. 971-992, Oct. 2014.
    [64] T. Khoshgoftaar and E. Allen, “Logistic Regression Modeling of Software Quality,” TR-CSE-97-24, Florida Atlantic University, Mar. 1997.
    [65] D. W. Hosmer, S. Lemeshow and R. X. Sturdivant. AppIied Logistic Regression, third edition. Wiley-Interscience, 2013.
    [66] J. C. Munson and T. M. Khoshgoftaar, “The Detection of Fault-Prone Programs,” IEEE Trans. Software Eng., Vol. 18, No. 5, pp. 423-433, May 1992.
    [67] L. Briand, V. Basili, and C. Hetmanski, “Developing Interpretable Models with Optimized Set Reduction for Identifying High Risk Software Components,” IEEE Trans. Software Eng., Vol. 19, No. 11, pp. 1028-1044, Nov. 1993.
    [68] F. Lanubile and G. Visaggio, “Evaluating Predictive Quality Models Derived from Software Measures: Lessons Learned,” to appear in the J. Software and Systems; also available as Technical Report CS-TR-3606, Univ. of Maryland, Computer Science Dept., College Park, Md., 1996.
    [69] H. Pham. System Software Reliability, Berlin, Germany: Springer-Verlag, 2000.
    [70] J. Clarke, J. J. Dolado, M. Harman, R. Hierons, B. Jones, M. Lumkin, B. Mitchell, S. Mancoridis, K. Rees, M. Roper, and M. Shepperd, “Reformulating software engineering as a search problem,” IEEE Proc.-Software, Vol. 150, No. 3, pp. 161-175, Jun. 2003.
    [71] Y. P. Wu, Q. P. Hu, M. Xie, and S. H. Ng, “Modeling and analysis of software fault detection and correction process by considering time dependency,” IEEE Trans. Rel., Vol. 56, No. 4, pp. 629-642, Dec. 2007.
    [72] W. Harrison, “Using Software Metrics to Allocate Testing Resources,” J. Management Information Systems, Vol. 4, No. 4, pp. 93-105, Apr. 1988.

    無法下載圖示 全文公開日期 本全文未授權公開 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)
    全文公開日期 本全文未授權公開 (國家圖書館:臺灣博碩士論文系統)
    QR CODE