An Approach to Measure Java Code Quality in Reuse Environment Author: Aline Timóteo Professor: Silvio Meira UFPE – Federal University of Pernambuco
Summary Motivation Background Metrics An Approach to Measure Java Code Quality Main Contributions
Motivation
Motivation Reuse environment [Frakes, 1994] Process Components Certification Metrics Tools Repository Search engine Domain tools …
Motivation Component Repository promote reuse success [Griss, 1994] Some Repository Requirements Search Component publishing Component manage IDE Integration Component Indexing Security …
Problem Artifacts quality must be assured by the organization that maintains a repository? [Seacord, 1999] Many version of a component on the repository Lack of context In other words… How to minimize reuse to low-quality artifacts ?
Background
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 Theoretical Validation Measurement goal Experimental hypothesis Environment or context 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 in a Reuse Environment [Etzkorn, 2001] ISO 9126
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 Max Testability = 5 Min Testability = 2,5
Metrics, Quality, Reuse? Store assets Generate their quality attributes Store asset and quality attributes In “search time”… Asset are recovered according search parameters Quality attributes can be among these parameters
Main Contributions Introduce quality analysis in a repository Reduce code problem propagation Highest Reliability 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 [Seacord, 1999] Robert C. Seacord. Software engineering component repositories. Technical report, Software Engineering Institute (SEI), 1999
Aline Timóteo UFPE – Federal University of Pernambuco