An Approach to Measure Java Code Quality in Reuse Environment - PowerPoint PPT Presentation

About This Presentation
Title:

An Approach to Measure Java Code Quality in Reuse Environment

Description:

UFPE Federal University of Pernambuco. alt.timoteo_at_gmail.com. 1. Summary. Motivation ... UFPE Federal University of Pernambuco. alt.timoteo_at_gmail.com. 28 ... – PowerPoint PPT presentation

Number of Views:127
Avg rating:3.0/5.0
Slides: 29
Provided by: cinU
Category:

less

Transcript and Presenter's Notes

Title: An Approach to Measure Java Code Quality in Reuse Environment


1
An 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

2
Summary
  • Motivation
  • Background
  • Metrics
  • An Approach to Measure Java Code Quality
  • Main Contributions
  • Status

3
Motivation
4
Motivation
  • Reuse Benefit
  • Productivity
  • Cost
  • Quality
  • Reuse is a competitive advantage!!!!!
  • Reuse environment Frakes, 1994
  • Process
  • Metrics
  • Tools
  • Repository
  • Search engine
  • Domain tools

5
Problem
  • 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?

6
Background
7
Metrics
  • 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

8
Age 2 Object Oriented
Age 1 Complexity
9
Most Referenced Metrics
  • LOC
  • Cyclomatic Complexity McCabe, 1976
  • Chidamber and Kemerer Metrics Chidamber, 1994
  • Lorenz and Kidd Metrics Lorenz, 1994
  • MOOD Metrics Brito, 1994

10
Problems 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

11
An Approach to Measure Java Code Quality
12
An Approach to Measure Java Code Quality
  • Quality Attributes x Metrics
  • Metrics Selection and Specification
  • Quality Attributes measurement

13
Quality in a Reuse Environment Etzkorn, 2001
  • ISO 9126

14
Quality 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
15
Metrics Selection
  • Applicable for Java
  • Empirical Validation
  • Theoretical Validation
  • Acceptance

16
Metrics Selection
  • McCabe Metric McCabe, 1976
  • Theoretical Validation, according to graphos
    teory
  • Independence of technology
  • Empirical Validation
  • Acceptance Refactorit, 2001 Metrics, 2005
    JHawk, 2007

17
Metrics 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

18
Metrics 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
19
Quality 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
20
Approach Automation
21
Approach 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()

22
Experiment
23
Experiment
  • 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

24
Main Contributions
  • Introduce quality analysis in a repository
  • Reduce code problem propagation
  • Highest Reliability

25
Current Stage
26
Referê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
Write a Comment
User Comments (0)
About PowerShow.com