Title: An Approach to Measure Java Code Quality in Reuse Environment
1An Approach to Measure Java Code Quality in Reuse
Environment
- Aline Timóteo
- Advisor Silvio Meira
- UFPE Federal University of Pernambuco
- alt.timoteo_at_gmail.com
2Summary
- Motivation
- Background
- Metrics
- An Approach to Measure Java Code Quality
- Main Contributions
- Status
3Motivation
4Motivation
- Reuse Benefit
- Productivity
- Cost
- Quality
- Reuse is a competitive advantage!!!!!
- Reuse environment Frakes, 1994
- Process
- Metrics
- Tools
- Repository
- Search engine
- Domain tools
-
5Problem
- 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?
6Background
7Metrics
- 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
8Age 2 Object Oriented
Age 1 Complexity
9Most Referenced Metrics
- LOC
- Cyclomatic Complexity McCabe, 1976
- Chidamber and Kemerer Metrics Chidamber, 1994
- Lorenz and Kidd Metrics Lorenz, 1994
- MOOD Metrics Brito, 1994
10Problems 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
11An Approach to Measure Java Code Quality
12An Approach to Measure Java Code Quality
- Quality Attributes x Metrics
- Metrics Selection and Specification
- Quality Attributes measurement
13Quality in a Reuse Environment Etzkorn, 2001
14Quality 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
Reusability modularity/ encapsulation x
coupling X x
cohesion x
15Metrics Selection
- Applicable for Java
- Empirical Validation
- Theoretical Validation
- Acceptance
16Metrics Selection
- McCabe Metric McCabe, 1976
- Theoretical Validation, according to graphos
teory - Independence of technology
- Empirical Validation
- Acceptance Refactorit, 2001 Metrics, 2005
JHawk, 2007
17Metrics 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
18Metrics Specification
Response for a Class Response for a Class Response for a Class
Definition Short name RFC
Definition 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.
Definition Calculated by RFC M RM number of methods in the classR number of remote methods directly called by methods of the class
Definition Allowable value RFClt50
Definition Private No
Analysis Presentation N/A
Analysis Range of analysis When the development cycle is done
Analysis Analysis procedure Identify how classes have a highest responsibility
Analysis Responsible Metrics Analyst
19Quality Attributes Measurement (QAM)
- QAM (the number of metrics that have a
allowable value) - Heuristically
- QAM gt Number of metrics /2
- Example
- 2,5 lt QAM lt 5
Quality Attribute Code Attribute CK Metrics CK Metrics CK Metrics CK Metrics CK Metrics
WMC DIT CBO RFC LCOM
Testability complexity x x x x
Testability coupling x x
Max Testability 5 Min Testability 2,5
20Approach Automation
21Approach Automation
- Analyzability
- QAM 3.0
- -------gt RFC 2.0
- -------gt WMC 1.0
- -------gt CC 0.0
- Changeability
- QAM 3.0
- -------gt CBO 3.0
- -------gt RFC 2.0
- -------gt WMC 1.0
- public class Client implements Runnable,
CommandListener - /
- Start the client thread
- /
- public void start()
- Thread t new Thread(this)
- t.start()
-
22Experiment
23Experiment
- 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
24Main Contributions
- Introduce quality analysis in a repository
- Reduce code problem propagation
- Highest Reliability
25Current Stage
26Referê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. 9981010. - 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
27- Refactorit, 2001 Refactorit tool, online, last
update 01/2008, available http//www.aqris.com/d
isplay/ap/RefactorIt - Jdepend, 2005 JDepend tool, online, last
update 03/2006,available http//www.clarkware.co
m/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.virtualmach
inery.com/jhawkprod.htm
28- Aline Timóteo
- UFPE Federal University of Pernambuco
- alt.timoteo_at_gmail.com