Reporting technologies prestudy:

Graph generation:

JFreeChart
http://www.jfree.org/index.html

  • Java chart library
  • License: LGPL
  • Output: Swing component, PNG, JPG, PDF, SVG, EPS

JGraph
http://jgraph.com/jgraph.html

  • Java chart library
  • Not open source?

Google ChartAPI
http://code.google.com/apis/chart/

  • Service run by Google.
  • Easy to use.
  • Dependent on Google's servers.
  • Output: PNG image (hosted by Google)

Matplotlib
http://matplotlib.sourceforge.net/

  • 2D plotting Python library

Report generation

JasperReports
http://jasperforge.org/projects/jasperreports

  • Report generation software.
  • Supports JFreeChart
  • Supports vector images.
  • Output : PDF, RTF, HTML and more.

ROOT
http://root.cern.ch/drupal/

  • Data analysis tool developed at CERN
  • C++ based

GridSafe
http://gridsafe.forge.nesc.ac.uk/
  • Java/MySQL
  • Requires new storage architecture.
  • Complex, feature-rich, system.

Metrics to be displayed:

Name: Unit: Types: Plugins:
Lines of code SLOC Total, language specific SLOC
Findbugs Bugs/SLOC Total, low, medium and high JFindbugs, SLOC
Unit testing success percent success/n.o. tests - JUnit, PyUnit, CPPUnit
JavaDoc JavaDocs/method -
Test coverage percent of code covered - ?
Python test coverage percantage of code covered - PyCoverage
IPV6 % of passed tests - IPV6

Available metrics:

PMD

  • Returns the number of times a rule has been violated over the number of files in each module.

  • Suggestion: Only return the number of rules violated. SLOC can be used to adjust the metric according to program size.

  • Values
    • Coupling Rules
    • Import Statement Rules
    • Code Size Rules
    • Unused Code Rules
    • Basic Rules
    • Naming Rules
    • Strict Exception Rules
    • Braces Rules

Checkstyle

  • Returns the number of times a rule has been violated over the number of files in each module.

  • Suggestion: Only return the number of rules violated. SLOC can be used to adjust the metric according to program size.

  • Values
    • BlockCheck
    • WhitespaceCkeck
    • MiscellaneousCheck
    • LenghtCheck
    • ImportCheck
    • CodingStyleCheck
    • JavadocCheck
    • DesignCheck
    • NamingCheck
    • ModifierCheck

CKJM - Chidamber and Kemerer Java Metrics

  • Returns the total number of instances over the number of classes (Average values).

  • Values
    • WMC - Weighted methods per class
    • DIT - Depth of Inheritance Tree
    • NOC - Number of Children
    • CBO - Coupling between object classes
    • RFC - Response for a Class
    • LCOM - Lack of cohesion in methods
    • Ca - Afferent couplings
    • NPM - Number of public methods

CCN - Cyclomatic Complexity Number

  • Returns the average number of each value per method.

  • Consider changing the name of the plugin to JavaNCSS (Non Commenting Source Statements). It doesn't make sense that CCN gives you the number of JavaDoc comments and NCSS.

  • Values:
    • CCN - Cyclomatic Complexity Number
    • JavaDoc comments
    • NCSS - Non Commenting Source Statements

SLOCCount

  • Returns the SLOC count for each module, total or by programming language.

PyCoverage

  • Returns the percent of code coverage.
  • In-depth report links are dead.

FindBugs

  • Finds the number of possible bugs in Java code.
  • Number of high, medium and low priority bugs.
  • Returns total number of bugs for each module and the whole project.
  • Rate gives the number of modules that have bugs which does not exceed the threshold (% success).

IPv6

  • IP v6 compliance

JUnit

  • Shows the number of modules which succeed JUnit test, fails them, get errors or do not have any test.
  • A test is failed if it gives an error or failure.

PyUnit

  • Suggestion: PyUnit summary displays strange data. PyUnit Rate seems to be correct.
  • A component needs only one test in order to succeed (get 100%).

WS-I

Generated plots

Bug metrics for org.glite

priorityBug_bar_chart_improved_titles.png

unicore_bar_chart.png

bugs_high_immediate_quarterly_average.png

unicore_time_series.png

Code metrics for org.etics

  • Bar chart for high, medium and low bugs in org.etics.repository's components:
    bar_chart_h_m_l.png

  • Bar chart for high bugs in org.etics.repository's components:
    bar_chart_h.png

  • Time Series chart for high bugs for all of org.etics.repository's components.:
    time_series_chart_h.png

  • Time Series chart for total, high, medium and low bugs for all of org.etics.repository's components.:
    time_series_chart_t_h_m_l.png

  • Time Series chart for total, high, medium and low bugs for all of org.etics.repository's components, not adjusted by KLOC:
    time_series_chart_t_h_m_l_not_adjusted.png

  • Time Series chart for SLOC (java) for all of org.etics.repository's components.:
    time_series_chart_sloc.png

-- LarsBarlindhaug - 03-May-2011

Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2011-05-03 - unknown
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    EMI All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback