An Approach to Measure Java Code Quality in Reuse Environment Master: Aline Timóteo Professor: Silvio Meira UFPE – Federal University of Pernambuco
Summary Motivation Background Quality in a Reuse Environment Metrics An Approach to Measure Java Code Quality Main Contributions
Motivation
Motivation Reuse environment [Frakes, 1994] Process Metrics Assets Tools
Motivation Component Repository promote reuse success [Griss, 1994] Search Engine[Garcia, 2006] Analyze a set of Search Engines Requirements Artifact filtering
Problem Artifacts quality In search time? How to eliminate low-quality artifacts? In other words… How to eliminate low-quality artifacts in search time?
Background
Quality in a Reuse Environment [Etzkorn, 2001] ISO 9126
Metrics “Software metrics is a method to quantify attributes in software processes, products and projects” [Daskalantonakis, 1992] Metrics Timeline Age 1: before 1991, where the main focus was on metrics based on the code complexity Age 2: after 1992, where the main focus was on metrics based on the concepts of Object Oriented (OO) systems
Age 1: Complexity Age 2: Object Oriented
Most Referenced Metrics LOC Cyclomatic Complexity [McCabe, 1976] Chidamber and Kemerer Metrics [Chidamber, 1994] Lorenz and Kidd Metrics [Lorenz, 1994] MOOD Metrics [Brito, 1994]
Problems related to Metrics [Ince, 1988 and Briand, 2002] Metrics Validation Measurement goal Experimental hypothesis Environment or context Theoretical Validation Empirical validation Metrics Automation Different set of metrics implemented Bad documentation Quality attributes x Metrics
An Approach to Measure Java Code Quality
An Approach to Measure Java Code Quality Quality Attributes x Metrics Metrics Selection and Specification Quality Attributes measurement
Quality Attributes x Metrics Quality Attributes Code Attributes LOC Cyclomatic Complexity CK Metrics WMCDITNOCCBORFCLCOM sizex Analysabilitycomplexty xxx XX documentationx complexity xxx XX modularity/ encapsulation X Changeabilitycoupling x X cohesion X inheritance x Stability Testabilitycomplexity xxx XX coupling x X complexidade xxx Xx documentationx Reusability modularity/ encapsulation x coupling X x cohesion x
Quality Attributes x Metrics Quality Attributes Code Attributes Lorenz and Kidd PIMNIMNIVNCMNCVNMONMINMASIXAPPM Analysability sizexxxxx complexty documentation Changeability complexity modularity/ encapsulation coupling cohesion inheritance xxxx Stability Testability complexity coupling Reusability complexidade documentation modularity/ encapsulation coupling cohesion
Quality Attributes x Metrics Quality AttributesCode Attributes MOOD Metrics MHFAHFMIFAIFPF Analysability size complexty documentation Changeability complexity modularity/ encapsulation coupling cohesion inheritance xx Stability Testability complexity coupling Reusability complexity documentation modularity/ encapsulation coupling cohesion
Metrics Selection and Specification - Theoretical Validation - Empirical Validation - Tools -LOC -Cyclomatic Complexity - CK Metrics
Metrics Selection and Specification Response for a Class Definition Short nameRFC Description The response set of a class is a set of methods that can potentially be executed in response to a message received by an object of that class. Calculated by RFC = M + R M = number of methods in the class R = number of remote methods directly called by methods of the class Allowable valueRFC<=50 PrivateNo Analysis PresentationN/A Range of analysisWhen the development cycle is done Analysis procedureIdentify how classes have a highest responsibility ResponsibleMetrics Analyst
Quality Attributes Measurement (QAM) QAM = (the number of metrics that have a allowable value) QAM >= Number of metrics /2 Example: 2,5 <= QAM <= 5 Quality Attribute Code Attribute CK Metrics WMCDITCBORFCLCOM Testability complexityxx xx coupling x x
Contributions Introduce quality analysis in a search engine Store assets and their quality attributes In the search time the asset is recovered according quality attribute values Quality attributes x Code metrics ISO 9126
Current Stage Sate-of-the-art in Software Metrics Approach definition Prototypal Implementation (partial) Integration with B.A.R.T. (next step) Experiment (next step)
Referências [Frakes, 1994] W. B. Frakes and S. Isoda, "Success Factors of Systematic Software Reuse," IEEE Software, vol. 11, pp , [Griss, 1994] M. L. Griss, "Software Reuse Experience at Hewlett-Packard," presented at 16th International Conference on Software Engineering (ICSE), Sorrento, Italy, [Garcia, 2006] V. C. Garcia, D. Lucrédio, F. A. Durão, E. C. R. Santos, E. S. Almeida, R. P. M. Fortes, and S. R. L. Meira, "From Specification to Experimentation: A Software Component Search Engine Architecture," presented at The 9th International Symposium on Component-Based Software Engineering (CBSE 2006), Mälardalen University, Västerås, Sweden, [Etzkorn, 2001] Letha H. Etzkorn, William E. Hughes Jr., Carl G. Davis: Automated reusability quality analysis of OO legacy software. Information & Software Technology 43(5): (2001) [Daskalantonakis, 1992] M. K. Daskalantonakis, “A Pratical View of Software Measurement and Implementation Experiences Within Motorola”, IEEE Transactions on Software Engineering, vol 18, 1992, pp. 998–1010. [McCabe, 1976] T. J. McCabe, “A Complexity Measure”. IEEE Transactions of Software Engineering, vol SE-2, 1976, pp [Chidamber, 1994] S. R. Chidamber, C. F. Kemerer, “A Metrics Suite for Object Oriented Design”, IEEE Transactions on Software Engineering, vol 20, Piscataway - USA, 1994, pp [Lorenz, 1994] M. Lorenz, J. Kidd, “Object-Oriented Software Metrics: A Practical Guide”, Englewood Cliffs, New Jersey - USA, [Brito, 1994] A. F. Brito, R. Carapuça, "Object-Oriented Software Engineering: Measuring and controlling the development process", 4th Interntional Conference on Software Quality, USA, [Ince, 1988] D. C. Ince, M. J. Sheppard, "System design metrics: a review and perspective", Second IEE/BCS Conference, Liverpool - UK, 1988, pp [Briand, 2002] L. C. Briand, S. Morasca, V. R. Basili, “An Operational Process for Goal-Driven Definition of Measures”, Software Engineering - IEEE Transactions, vol 28, 2002, pp [Morasca, 1989] S. Morasca, L. C. Briand, V. R. Basili, E. J. Weyuker, M. V. Zelkowitz, B. Kitchenham, S. Lawrence Pfleeger, N. Fenton, "Towards a framework for software measurementvalidation", Software Engineering, IEEE Transactions, vol 23, 1995, pp
Aline Timóteo UFPE – Federal University of Pernambuco