an approach to measure java code quality in reuse environment

22
http://www.rise.com.br An Approach to Measure Java Code An Approach to Measure Java Code Quality in Reuse Environment Quality in Reuse Environment Aline Timóteo Aline Timóteo Advisor: Silvio Meira Advisor: Silvio Meira Co-advisor: Eduardo Almeida Co-advisor: Eduardo Almeida UFPE – Federal University of Pernambuco UFPE – Federal University of Pernambuco [email protected] [email protected] 1

Upload: coye

Post on 17-Jan-2016

36 views

Category:

Documents


0 download

DESCRIPTION

An Approach to Measure Java Code Quality in Reuse Environment. Aline Timóteo Advisor: Silvio Meira Co-advisor: Eduardo Almeida UFPE – Federal University of Pernambuco [email protected]. An Approach to Measure Java Code Quality in a Reuse Environment. Summary. Motivation - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

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

Co-advisor: Eduardo AlmeidaCo-advisor: Eduardo Almeida

UFPE – Federal University of PernambucoUFPE – Federal University of [email protected]@cin.ufpe.br

1

Page 2: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

SummarySummary

Motivation An Approach to Measure Java Code Quality Main Contributions Status

An Approach to Measure Java Code Quality

in a Reuse Environment

2

Page 3: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

MotivationMotivation

3

Page 4: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

MotivationMotivation

Reuse is a competitive advantage Quality Coust

An Approach to Measure Java Code Quality

in a Reuse Environment

4

Page 5: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

ProblemProblem

Component Repository promote reuse success [Griss, 1994]

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

How to minimize low-quality artifacts reuse?

An Approach to Measure Java Code Quality

in a Reuse Environment

5

Page 6: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

An Approach to An Approach to Measure Java Code Measure Java Code

QualityQuality

6

Page 7: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

An Approach to Measure Java Code QualityAn Approach to Measure Java Code Quality

Quality

Metrics Selection

Quality Attributes measurement

An Approach to Measure Java Code Quality

in a Reuse Environment

7

Page 8: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

Quality in a Reuse Environment Quality in a Reuse Environment [Etzkorn, 2001][Etzkorn, 2001] ISO 9126

An Approach to Measure Java Code Quality

in a Reuse Environment

8

Page 9: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

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

An Approach to Measure Java Code Quality

in a Reuse Environment

9

Page 10: An Approach to Measure Java Code Quality in Reuse Environment

Metrics SelectionMetrics Selection

Applicable for Java

Empirical Validation

Theoretical Validation

Acceptance

http://www.rise.com.br

An Approach to Measure Java Code Quality

in a Reuse Environment

10

Page 11: An Approach to Measure Java Code Quality in Reuse Environment

Metrics SelectionMetrics Selection

McCabe Metric [McCabe, 1976] Theoretical Validation, according to graphs theory

Independence of technology

Empirical Validation

Acceptance [Refactorit, 2001; Metrics, 2005; JHawk, 2007]

http://www.rise.com.br

An Approach to Measure Java Code Quality

in a Reuse Environment

11

Page 12: An Approach to Measure Java Code Quality in Reuse Environment

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]

http://www.rise.com.br

An Approach to Measure Java Code Quality

in a Reuse Environment

12

Page 13: An Approach to Measure Java Code Quality in Reuse Environment

Metrics SpecificationMetrics Specification

http://www.rise.com.br

An Approach to Measure Java Code Quality

in a Reuse Environment

13

Page 14: An Approach to Measure Java Code Quality in Reuse Environment

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

http://www.rise.com.br

 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

An Approach to Measure Java Code Quality

in a Reuse Environment

14

Page 15: An Approach to Measure Java Code Quality in Reuse Environment

AutomationAutomation

http://www.rise.com.br

An Approach to Measure Java Code Quality

in a Reuse Environment

15

Page 16: An Approach to Measure Java Code Quality in Reuse Environment

ExperimentExperiment

http://www.rise.com.br

Java Class

Stored Class

Generate Class´s

measurement

Java Class with metrics metadata

Recover class request

Good quality Class

An Approach to Measure Java Code Quality

in a Reuse Environment

16

Page 17: An Approach to Measure Java Code Quality in Reuse Environment

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

http://www.rise.com.br

An Approach to Measure Java Code Quality

in a Reuse Environment

17

Page 18: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

Main ContributionsMain Contributions

Introduce quality analysis in a repository Reduce code problem propagation Highest Reliability

...

An Approach to Measure Java Code Quality

in a Reuse Environment

18

Page 19: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

Current StageCurrent Stage

An Approach to Measure Java Code Quality

in a Reuse Environment

19

Page 20: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

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

An Approach to Measure Java Code Quality

in a Reuse Environment

20

Page 21: An Approach to Measure Java Code Quality in Reuse Environment

[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

http://www.rise.com.br

An Approach to Measure Java Code Quality

in a Reuse Environment

21

Page 22: An Approach to Measure Java Code Quality in Reuse Environment

http://www.rise.com.br

Aline TimóteoAline Timóteo

UFPE – Federal University of PernambucoUFPE – Federal University of Pernambuco

[email protected]@gmail.com

22