an approach to measure java code quality in reuse environment aline timóteo advisor: silvio meira...
TRANSCRIPT
![Page 1: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/1.jpg)
An Approach to Measure Java Code An Approach to Measure Java Code Quality in Reuse EnvironmentQuality in Reuse Environment
Aline TimóteoAline TimóteoAdvisor: Silvio MeiraAdvisor: Silvio Meira
UFPE – Federal University of PernambucoUFPE – Federal University of [email protected]@gmail.com
1
![Page 2: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/2.jpg)
SummarySummary
Motivation Background
Metrics An Approach to Measure Java Code Quality Main Contributions Status
2
![Page 3: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/3.jpg)
MotivationMotivation
3
![Page 4: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/4.jpg)
MotivationMotivation
Reuse Benefit Productivity Cost Quality Reuse is a competitive advantage!!!!!
Reuse environment [Frakes, 1994] Process Metrics Tools
Repository Search engine Domain tools …
4
![Page 5: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/5.jpg)
ProblemProblem
Component Repository promote reuse success [Griss, 1994]
Artifacts quality must be assured by the organization that maintains a repository? [Seacord, 1999]
How to minimize low-quality artifacts reuse?
5
![Page 6: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/6.jpg)
BackgroundBackground
6
![Page 7: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/7.jpg)
MetricsMetrics
“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
7
![Page 8: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/8.jpg)
Age 1: Complexity Age 2: Object Oriented
8
![Page 9: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/9.jpg)
Most Referenced MetricsMost Referenced Metrics
LOC
Cyclomatic Complexity [McCabe, 1976]
Chidamber and Kemerer Metrics [Chidamber, 1994]
Lorenz and Kidd Metrics [Lorenz, 1994]
MOOD Metrics [Brito, 1994]
9
![Page 10: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/10.jpg)
Problems related to Metrics Problems related to Metrics [Ince, 1988 and Briand, 2002][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
10
![Page 11: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/11.jpg)
An Approach to An Approach to Measure Java Code Measure Java Code
QualityQuality
11
![Page 12: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/12.jpg)
An Approach to Measure Java Code QualityAn Approach to Measure Java Code Quality
Quality Attributes x Metrics
Metrics Selection and Specification
Quality Attributes measurement
12
![Page 13: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/13.jpg)
Quality in a Reuse Environment Quality in a Reuse Environment [Etzkorn, 2001][Etzkorn, 2001] ISO 9126
13
![Page 14: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/14.jpg)
Quality Attributes x MetricsQuality Attributes x Metrics
Quality Attributes Code Attributes LOC Cyclomatic Complexity CK Metrics
WMC DIT NOC CBO RFC LCOM
size x
Analyzability complexity x x x X X
documentation x
complexity x x x X X
modularity/
encapsulation X
Changeability coupling x X
cohesion X
inheritance x
Stability
Testability complexity x x x X X
coupling x X
complexity x x x X x
documentation x
Reusabilitymodularity/
encapsulation x
coupling X x
cohesion x
14
![Page 15: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/15.jpg)
Metrics SelectionMetrics Selection
Applicable for Java
Empirical Validation
Theoretical Validation
Acceptance
15
![Page 16: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/16.jpg)
Metrics SelectionMetrics Selection
McCabe Metric [McCabe, 1976] Theoretical Validation, according to graphos teory
Independence of technology
Empirical Validation
Acceptance [Refactorit, 2001; Metrics, 2005; JHawk, 2007]
16
![Page 17: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/17.jpg)
Metrics SelectionMetrics Selection
CK Metrics [Chidamber, 1994], Theoretical Validation,
Developed in a OO context
Empirical Validation [Briand, 1994; Chidamber, 1998; Tang, 1999].
Acceptance [Refactorit, 2001; Metrics, 2005; JHawk, 2007]
17
![Page 18: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/18.jpg)
Metrics SpecificationMetrics Specification
18
![Page 19: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/19.jpg)
Quality Attributes Measurement (QAM)Quality Attributes Measurement (QAM)
QAM = (the number of metrics that have a allowable value)
Heuristically
QAM >= Number of metrics /2
Example:
2,5 <= QAM <= 5
Quality Attribute
Code Attribute CK Metrics
WMC DIT CBO RFC LCOMTestability
complexity x x x x
coupling x x
Max Testability = 5
Min Testability = 2,5
19
![Page 20: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/20.jpg)
Approach AutomationApproach Automation
20
![Page 21: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/21.jpg)
Approach AutomationApproach Automation
21
AnalyzabilityQAM = 3.0-------> RFC: 2.0-------> WMC 1.0-------> CC 0.0
ChangeabilityQAM = 3.0-------> CBO 3.0-------> RFC: 2.0-------> WMC 1.0
public class Client implements Runnable, CommandListener {
/** * Start the client thread */ public void start() { Thread t = new Thread(this); t.start(); } }
![Page 22: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/22.jpg)
ExperimentExperiment
22
![Page 23: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/23.jpg)
ExperimentExperiment
Main Question The retrieval component quality is better?
Compare B.A.R.T. search results Results before introduce filter Results after introduce filter
Apply questionnaire for customers
23
![Page 24: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/24.jpg)
Main ContributionsMain Contributions
Introduce quality analysis in a repository
Reduce code problem propagation
Highest Reliability
24
![Page 25: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/25.jpg)
Current StageCurrent Stage
25
![Page 26: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/26.jpg)
ReferênciasReferências [Frakes, 1994] W. B. Frakes and S. Isoda, "Success Factors of Systematic Software Reuse," IEEE Software, vol. 11, pp.
14--19, 1994. [Griss, 1994] M. L. Griss, "Software Reuse Experience at Hewlett-Packard," presented at 16th International Conference
on Software Engineering (ICSE), Sorrento, Italy, 1994. [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, 2006.
[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): 295-308 (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. 308-320.
[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. 476-493.
[Lorenz, 1994] M. Lorenz, J. Kidd, “Object-Oriented Software Metrics: A Practical Guide”, Englewood Cliffs, New Jersey - USA, 1994.
[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, 1994.
[Ince, 1988] D. C. Ince, M. J. Sheppard, "System design metrics: a review and perspective", Second IEE/BCS Conference, Liverpool - UK, 1988, pp. 23-27.
[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. 1106-1125.
[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. 187-189.
[Seacord, 1999] Robert C. Seacord. Software engineering component repositories. Technical report, Software Engineering Institute (SEI), 1999
26
![Page 27: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/27.jpg)
[Refactorit, 2001] Refactorit tool, online, last update: 01/2008, available: http://www.aqris.com/display/ap/RefactorIt
[Jdepend, 2005] JDepend tool, online, last update: 03/2006,available: http://www.clarkware.com/software/JDepend.html
[Metrics, 2005] Metrics Eclipse Plugin, online, last update: 07/2005, available: http://sourceforge.net/projects/metrics
[Jhawk, 2007] JHawk Eclipse Plugin, online, last update: 03/2007, available: http://www.virtualmachinery.com/jhawkprod.htm
27
![Page 28: An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco alt.timoteo@gmail.com](https://reader030.vdocuments.us/reader030/viewer/2022032708/56649e895503460f94b8e458/html5/thumbnails/28.jpg)
Aline TimóteoAline Timóteo
UFPE – Federal University of PernambucoUFPE – Federal University of Pernambuco
[email protected]@gmail.com
28