An Approach to Measure Java Code Quality in Reuse Environment Aline Timóteo Advisor: Silvio Meira...

Post on 30-Dec-2015

228 views 4 download

Tags:

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 Pernambucoalt.timoteo@gmail.comalt.timoteo@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

alt.timoteo@gmail.comalt.timoteo@gmail.com

28