An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira...
-
Upload
marilynn-tyler -
Category
Documents
-
view
226 -
download
4
Transcript of An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira...
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
SummarySummary
Motivation Background
Metrics An Approach to Measure Java Code Quality Main Contributions Status
2
MotivationMotivation
3
MotivationMotivation
Reuse Benefit Productivity Cost Quality Reuse is a competitive advantage!!!!!
Reuse environment [Frakes, 1994] Process Metrics Tools
Repository Search engine Domain tools …
4
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
BackgroundBackground
6
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
Age 1: Complexity Age 2: Object Oriented
8
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
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
An Approach to An Approach to Measure Java Code Measure Java Code
QualityQuality
11
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
Quality in a Reuse Environment Quality in a Reuse Environment [Etzkorn, 2001][Etzkorn, 2001] ISO 9126
13
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
Metrics SelectionMetrics Selection
Applicable for Java
Empirical Validation
Theoretical Validation
Acceptance
15
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
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
Metrics SpecificationMetrics Specification
18
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
Approach AutomationApproach Automation
20
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(); } }
ExperimentExperiment
22
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
Main ContributionsMain Contributions
Introduce quality analysis in a repository
Reduce code problem propagation
Highest Reliability
24
Current StageCurrent Stage
25
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
[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
Aline TimóteoAline Timóteo
UFPE – Federal University of PernambucoUFPE – Federal University of Pernambuco
[email protected]@gmail.com
28