Overview
Metrix++ is the
platform to collect and analyse code metrics.
- It has got plugin based architecture, so it is easy to
add support for new languages and/or define new metrics
and/or create new pre- and post-processing tools.
- Every metric has got 'turn-on' and other configuration
options.
- There is no predefined thresholds for metrics or rules.
You can choose and configure any limit you want.
- It scales well to big code bases. For example initial
parsing of about 10000 files takes 2-3 minutes on average
PC, and ONLY 10-20 seconds for iterative re-run. Reporting
of summary result and exceeded limits is less than 1 - 10
seconds.
- It can compare results for 2 code snapshots (collections)
and differentiate added regions (classes, functions, etc.),
modified regions and unchanged regions.
- As a result, easy deployment is guaranteed into legacy
software, helping you to deal with legacy code effiently -
either enforce 'leave it not worse than it was before' rule
or motivate re-factoring.
Standard Plugins
The distributive includes a set of standard plugins:
Code parsers
- C/C++ parser
recognises definition of namespaces, definition of
classes/structs (including enclosed in functions) and
definition of functions/operators
Metrics
- cyclomatic
complexity (by McCabe) per function [supports C/C++
language]
- mismatched
brackets '{}'' per file [supports C/C++
language]
- processing time
per file [supports any
file]
Analysis tools
- export.py -
exporter to xml, python or plain text of detailed
information per file and/or aggregated information per
file or directory [aggregated data includes sum, maximum, minimum, average within a subset
of selected files or directories]
- limit.py - a
tool to report regions exceeding speified thresholds,
which are configurable (output is plain text with
metadata compatible with gcc compiler warning
messages)
Download & Installation
For the installation of the Metrix++ download
the archive and unpack it to some folder. Also, you have got an
option to get the source
code from the version conrol sytem.
Prerequisites:
Python Runtime Environment (version 2.7.0 or later, version
3.0 has not been tested)
License:
This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; version 3
of the License.
This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public
License along with the Metriix++; if not, contact Project
Administrator and write to the Free Software Foundation,
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA.
Documentation
Tools are self-descriptive and have got comprehensive
context help. Type in you command line: python
<tool-name>.py --help
Known Limitations
Check 'doc/limitations.txt' file distributed with the tool
or browse recent version
Basic Workflow
TBD
Dealing Legacy Code
TBD
Bug Report & Feature Request
Any types of enquiries are welcomed by e-mail to project
administrator.
Create Plugin
Please, consider to join the project and contribute to the development
of the engine or include you
plugins into the standard set of plugins distributed
together with this tool. Contact project
administrator by e-mail.
New Metric
TBD
New Analysis Tool
TBD
New Language Support
TBD
Source Code Repository
Source code is in the Subversion repository
used by the project.
|