220 likes | 380 Views
An Approach to Measure Java Code Quality in Reuse Environment. Master: Aline Timóteo Professor: Silvio Meira UFPE – Federal University of Pernambuco alt@cin.ufpe.br. Summary. Motivation An Approach to Measure Java Code Quality Metrics Background Quality Attributes x Metrics Current Stage
E N D
An Approach to Measure Java Code Quality in Reuse Environment Master: Aline Timóteo Professor: Silvio Meira UFPE – Federal University of Pernambuco alt@cin.ufpe.br http://www.rise.com.br
Summary • Motivation • An Approach to Measure Java Code Quality • Metrics Background • Quality Attributes x Metrics • Current Stage • Conclusion http://www.rise.com.br
Motivation http://www.rise.com.br
Reuse • What is reuse? • [Basili, 1991; Frakes, 1994] [Kruger, 1992] Reuse is a process of creating software systems from existing software rather than building software system from scratch. http://www.rise.com.br
Reuse Program • Griss Model [Griss, 1994] • Reuse leveis • Sametinger Model [Sametinger, 1997] • Domain Abalysis, pilot project, Institutionalization • Commons Points: • Reuse Evironment needs: • Assets Repository • Search and recovery tools • ... http://www.rise.com.br
Search and Recovery Tools [Garcia, 2006] • CodeFinder, Agora, CLARiFi, InteliZap, Strathcona, Bart ... • Efficiency in search time • Communication with different kinds of repository • Support to all development cicle http://www.rise.com.br
The Problem • How to analyze the quality of the assets stored in the repository? http://www.rise.com.br
Work Proposal http://www.rise.com.br
Work Proposal • Basic Asset Retrieval Tool (B.A.R.T.) [Santos, 2006] • Tool for search and recovery assets in version control systems • The mais objective of B.A.R.T. System is: • To minimize the time of analysis and implementation • Increased the quality of software products through the facilitated access to reusable devices http://www.rise.com.br
Work Proposal bartFilter Code Quality Metrics + Quality Attributes http://www.rise.com.br
bartFilter analysis assets according with metrics and quality attributes Work Proposal Customer request bartFilter The server return assets according with the customer request http://www.rise.com.br
Tools Analysis http://www.rise.com.br
Tools Analysis • Metodology • Step 1: Selecting software metrics and quality attributes • Step 2: Apply GQM [GQM, 1994] (Goal, Question, Metrics) in selected metrics and quality attributes • Step 3: Select metrics tools and a project • Step 4: Collects project metrics • Step 5: Results Analysis http://www.rise.com.br
Step 1: Selecting Software Metrics and Quality Attributes http://www.rise.com.br
Step 2: Apply GQM in Selected Metrics and Quality Attributes http://www.rise.com.br
Step 3: Select Metrics Tools and a Project • Metrics • Jdepend • Javancss • Refactorit • JHawk Metrics • Coverlipse • Burn http://www.rise.com.br
Step 4: Collect Project Metrics http://www.rise.com.br
Step 5: Results Analysis • We identified some improvement poits: • The metrics relation can’t be 1 to n, the best way is this relation to be n to m. • Improve the results representation, study statistical forms for it. • Define clear selection criterions for metrics and quality attributes. http://www.rise.com.br
Referências • [Alshayeb, 2003] Alshayeb, M., Li, M.; (2003), "An Empirical Validation of Object-Oriented Metrics in Two Different Iterative Software Processes", IEEETransactions on Software Engineering archive, Volume 29, page(s): 1043 - 1049. • [Basili, 1991] Basili, V.R., Rombach, H. D.; (1991), “Support for Comprehensive Reuse”, Software Engineering Journal, Special issue on software process and its support, Volume 06, page(s): 306-316. • [Basili, 1996] Basili, V. R., Briand, L. C., Melo, W. L.; (1996), “A Validation of Object-Oriented Design Metrics as Quality Indicators”, IEEE Transactions on Software Engineering, Volume 22, page(s): 751-761, Piscataway, NJ, USA. • [Briand, 1997] Briand, L., Devanbu, W., Melo W.; (1997), "An investigation into coupling measures for C++", 19th International Conference on Software Engineering, page(s): 412-421, Boston, USA. • [Bauer, 1993] D. Bauer, A Reusable Parts Center , IBM Systems Journal, Vol. 32, No. 04, June, 1993, pp. 620-624. • [Briand, 1999] Briand, L.C., Morasca, S., Basili, V.R.; (1999), "Defining and validating measures for object-based high-level design", Software Engineering, IEEE Transactions, Volume 25, page(s): 722-743. • [Brito, 1994] Brito, Abreu, F., Carapuça, R.; (1994), "Object-Oriented Software Engineering: Measuring and controlling the development process", 4th Interntional Conference on Software Quality, Mc Lean, VA, USA. • [Chatzigeorgiou, 2003] Chatzigeorgiou, A.; (2003), "Mathematical Assessment of Object-Oriented Design Quality", IEEE Transactions on Software Engineering, Volume 29, page(s): 1050-1053. • [Chidamber, 1994] Chidamber, S. R., Kemerer, C. F.; (1994), "A Metrics Suite for Object Oriented Design", IEEE Transactions on Software Engineering, Volume 20, page(s): 476-493, Piscataway, USA. • [Daskalantonakis, 1992] Daskalantonakis, M. K.; (1992), “A Pratical View of Software Measurement and Implementation Experiences Within Motorola”, IEEE Transactions on Software Engineering, Volume 18, page(s): 998 – 1010. http://www.rise.com.br
Referências • [Emam, 2001] Emam, K. E., Benlarbi, S., Goel, N., Rai, S. N.; (2001), "The Confounding Effect of Class Size on the Validity of Object-Oriented Metrics", IEEE Transaction on Software Engineering, Volume 27, page(s): 630-650. • [Frakes, 1994] Frakes, W. B., Isoda, S.; (1994), “Success Factors of Systematic Reuse”, IEEE Software, Volume 11, page(s): 14-19. • [Garcia, 2006] Garcia, V. C., Lucrédio, D., Durão, F. A., Almeida, E. S. d., Fortes, R. P. d., Meira, S. R. d. L.; (2006), "From Specification to Experimentation: A Software Component Search Engine Architecture", the 9th International Symposium on Component-Based Software Engineering (CBSE), Lecture Notes in Computer Science, Springer-Verlag, Sweden. • [Gill, 1991] Gill, G. K., Kemerer, C. F.; (1991), "Cyclomatic Complexity Density and Software Maintenance Productivity", IEEE Transactions on Software Engineering, page(s):1284-1288. • [GQM, 1994] accessible in: https://www.goldpractices.com/practices/gqm/ • [Griss, 1994] Griss, M. L.; (1994), “Software reuse experience at Hewlett-Packard”, Proceedings of the 16th international conference on Software engineering, page(s): 270, Sorrento, Italy. • [Halstead, 1977] Halstead, M.H.; (1977), “Elements of Software Science”, page(s): 128, New York, USA. • [Harrison, 1998] Harrison, R., Counsell, S., Nithi, R.; (1998), "Coupling Metrics for Object-Oriented Design", 5th International Software Metrics Symposium Metrics, page(s): 150-156. • [Henry, 1981] Henry, S., Kafura, D.; (1981), "Software Structure Metrics Based on Information Flow", Software Engineering, IEEE Transactions, page(s): 510-518. • [Lind, 1989] Lind, R. K., Vairavan, K.; (1989), "An Experimental Investigation of Software Metrics and Their Relationship to Software Development Effort", IEEE Transactions on Software Engineering, page(s): 649-653, Piscataway, NJ, USA. • [Lorenz, 1994] Lorenz M. and Kidd J.; (1994), "Object-Oriented Software Metrics: A Practical Guide", Prentice Hall, Englewood Cliffs, New Jersey, USA. • [Mayer, 1999] Mayer, T., Hall, T.; (1999), "A Critical Analysis of Current OO Design Metrics", Software Quality Journal, Volume 8, page(s): 97-110. • [McCabe, 1976] McCabe, T. J.; (1976) “A Complexity Measure”. IEEE Transactions of Software Engineering, Volume SE-2, page(s): 308-320. http://www.rise.com.br
Referências • [McClure, 1978] McClure, C. L.; (1978), "A Model for Program Complexity Analysis", 3rd International Conference on Software Engineering, page(s): 149-157, Piscataway, NJ, USA. • [Pressman, 1997] Pressman, R. S.; (1997), "Software engineering a practitioner's approach", 4th.ed, McGraw-Hill, page(s): 852, New York, USA. • [Kafura, 1987] Kafura, D., Reddy, G.; (1987), "The Use of Software Complexity Metrics in Software Maintenance", IEEE Transactions on Software Engineering archive, Volume 13 , page(s): 335-343, Piscataway, NJ, USA. • [Krueguer, 1992] Krueger, C. W.; (1992), “Software Reuse” , ACM Computing Surveys, Volume 24, page(s): 131-183. • [Sametinger, 1997] Sametinger, J.; (1997), “Software Engineering with Reusable Components”, Springer Verlag, page(s): 275. • [Santos, 2006] Santos, E. C. R.; Durão, F.A.; Martins, A. C.; Mendes, R.; Melo, C. A.; Melo, B. J. M.; Garcia, V. C.; Almeida, E. S.; Meira, S. R. L.; (2006), “Towards an Effective Context-Aware Proactive Asset Search and Retrieval Tool”, in the Sixth Workshop on Component-Based Development (WDBC), Recife, Brazil. • [Schneidewind, 1999] Schneidewind, N.F.; (1999), "Measuring and evaluating maintenance process using reliability, risk, and test metrics", Software Engineering, IEEE Transactions, Volume 25, page(s):769-781. • [Sommerville, 2004] Sommerville, I.; (2004), “Engenharia de Software”, Editora Addison Wesley, 6º Edição, São Paulo – SP. • [Subramanya, 2003] Subramanya, R., Krishnan, M. S.; (2003), "Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implication for Software Defects", IEEE Transactions on Software Engineering, Volume 29, page(s): 297-310. • [VanDoren, 1997] VanDoren, E., Sciences, k., Springs, C.; (1997), "Cyclomatic Complexity", Web Publication, access in: http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html • [Woodfield, 1980] Woodfield, N.; (1980), "Enhanced effort estimation by extending basic programming models to include modularity factors", ACM publication. • [Yin, 1978] Yin, B. H., Winchester, J. W.; (1978), "The establishment and use of measures to evaluate the quality of software designs", Software quality assurance workshop on Functional and performance, page(s): 45-52, New York, NY, USA. http://www.rise.com.br
Aline Timóteo C.E.S.A.R. - Recife Center for Advanced Studies and Systems UFPE – Federal University of Pernambuco alt.timoteo@gmail.com http://www.rise.com.br