an approach to measure java code quality in reuse environment

25
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 UFPE – Federal University of Pernambuco UFPE – Federal University of Pernambuco [email protected] [email protected]

Upload: rosa

Post on 18-Jan-2016

27 views

Category:

Documents


0 download

DESCRIPTION

An Approach to Measure Java Code Quality in Reuse Environment. Aline Timóteo Advisor: Silvio Meira UFPE – Federal University of Pernambuco [email protected]. Summary. Motivation Background Metrics An Approach to Measure Java Code Quality Main Contributions. Motivation. 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

UFPE – Federal University of PernambucoUFPE – Federal University of [email protected]@gmail.com

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

http://www.rise.com.br

SummarySummary

Motivation Background

Metrics An Approach to Measure Java Code Quality Main Contributions

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

http://www.rise.com.br

MotivationMotivation

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

http://www.rise.com.br

MotivationMotivation

Reuse environment [Frakes, 1994] Process Components Certification Metrics Tools

Repository Search engine Domain tools …

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

http://www.rise.com.br

MotivationMotivation

Component Repository promote reuse success [Griss, 1994]

Some Repository Requirements Search Component publishing Component manage IDE Integration Component Indexing Security …

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

http://www.rise.com.br

ProblemProblem

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

In other words…

How to minimize reuse for low-quality artifacts ?

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

http://www.rise.com.br

BackgroundBackground

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

http://www.rise.com.br

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

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

http://www.rise.com.br

Age 1: Complexity Age 2: Object Oriented

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

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]

http://www.rise.com.br

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

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

http://www.rise.com.br

Page 12: 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

Page 13: 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 Attributes x Metrics

Metrics Selection and Specification

Quality Attributes measurement

Page 14: 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

Page 15: 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

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

Quality Attributes x MetricsQuality Attributes x Metrics

http://www.rise.com.br

 Quality Attributes  Code Attributes  Lorenz and Kidd

    PIM NIM NIV NCM NCV NMO NMI NMA SIX APPM

 Analyzability

 

size x x x x x          

complexity                    

documentation                    

  

Changeability  

complexity                    

modularity/ encapsulation                    

coupling                    

cohesion                    

inheritance           x x x x  

Stability                      

Testability 

complexity                    

coupling                    

 Reusability  

complexity                    

documentation                    

modularity/ encapsulation                    

coupling                    

cohesion                    

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

Quality Attributes x MetricsQuality Attributes x Metrics

http://www.rise.com.br

 Quality Attributes Code Attributes  MOOD Metrics

    MHF AHF MIF AIF PF

 Analyzability

 

size          

complexity          

documentation          

  

Changeability  

complexity          

modularity/ encapsulation          

coupling          

cohesion          

inheritance     x x  

Stability            

Testability 

complexity          

coupling          

  

Reusability  

complexity          

documentation          

modularity/ encapsulation          

coupling          

cohesion          

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

http://www.rise.com.br

Metrics Selection and SpecificationMetrics Selection and Specification

- Theoretical Validation

- LOC

- Cyclomatic Complexity

- CK Metrics- Empirical Validation

- Tools

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

Metrics Selection and SpecificationMetrics Selection and Specification

http://www.rise.com.br

Page 20: 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

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

Metrics, Quality, Reuse?

Store assets Generate their quality attributes Store asset and quality attributes

In “search time”… Asset are recovered according search parameters Quality attributes can be among these parameters

Page 22: 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

Quality attributes x Code metrics ISO 9126

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

http://www.rise.com.br

Current StageCurrent Stage

Sate-of-the-art in Software Metrics

Approach definition

Prototypal Implementation (partial)

Integration with B.A.R.T. (next step)

Experiment (next step)

Page 24: 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

Page 25: 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