Measuring inheritance of systems with mete-tools

This gives the details regarding measuring the inheritance over whole systems with mete-tools. The processing options section, while given first for convenience, will probably only make sense after reading the rest of this document.

Processing Options

Format\Evidence None Immediate Raw
Text A table where each row has the name of the metric, the nesting level the measurement applies to ("-" if it applies over all nesting levels), the frequency (number of modules that are make up the measurement), the total number of modules that the measurement is out of, and the measurement as a percentage.

Values are tab-separated and the table is preceeded by relevant meta-data, lead by "#".

A table containing the same information as for None evidence plus following each row containing the measurements is a row containing a list of binary names of modules that form the measurement. For each module that was counted for a given metric, provides "extends" and "implements" detail.
Html An Html table version of the Text format output for None evidence. An Html table version of the Text format output for Immediate evidence. Not available.
For example, the following measures version 5.12.1 of the jgraph system:

java -Dprocessing=SummaryInh -Dsource=Jarfiles \
     -Dpackages=org.jgraph -DappID=jgraph \
     -Dformat=Text -Devidence=None -Dwarnings=None \
     -Xmx1000m -jar mete-tools.jar \
     /opt/corpus/QualitasCorpus-20090202r/Systems/jgraph/jgraph-5.12.1.0/bin
The output produced is here. This shows that 15 top-level classes created for jgraph (their binary names begin with org.jgraph), extends a standard library class (SLCCDUI 0), which is 38% of all top-level classes created for jgraph (there are 39 of them).

Instrument Limitations

jepends

When measurements are based on bytecode, as is the case with the jepends part of mete-tools, there is loss of precision when the bytecode does not include information that is present in the source code. There are no known limitations regarding SummaryInh measurements.