project.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. <?xml version="1.0" encoding="iso-8859-5"?>
  2. <!--
  3. Metrix++, Copyright 2009-2013, Metrix++ Project
  4. Link: http://swi.sourceforge.net
  5. This file is part of Metrix++ Tool.
  6. Metrix++ is free software: you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation, version 3 of the License.
  9. Metrix++ is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
  15. -->
  16. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  17. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  18. <html xmlns="http://www.w3.org/1999/xhtml">
  19. <head>
  20. <meta http-equiv="cache-control" content="max-age=0" />
  21. <meta http-equiv="cache-control" content="no-cache" />
  22. <meta http-equiv="expires" content="0" />
  23. <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
  24. <meta http-equiv="pragma" content="no-cache" />
  25. <meta http-equiv="content-type" content="text/html; charset=iso-8859-5" />
  26. <title>Metrix++ Project</title>
  27. <link href="style.css" rel="stylesheet" type="text/css" />
  28. </head>
  29. <body>
  30. <table border="0" align="center" cellpadding="0" cellspacing="0" width="800">
  31. <tbody>
  32. <tr>
  33. <td></td>
  34. <td valign="middle"></td>
  35. </tr>
  36. <tr>
  37. <td><img src="logo_project.png" alt="Software Index Project Page" /></td>
  38. <td valign="center">
  39. <div align="right">
  40. <p align="center"><a href="http://sourceforge.net/projects/swi"
  41. class="lowImportance"><img
  42. src="http://sflogo.sourceforge.net/sflogo.php?group_id=275605&amp;type=13"
  43. alt="Get Software Index at SourceForge.net. Fast, secure and Free Open Source software downloads"
  44. border="0" /></a></p>
  45. <p align="center"><script type="text/javascript"
  46. src="http://www.ohloh.net/p/485947/widgets/project_users_logo.js">
  47. </script>
  48. </p>
  49. </div>
  50. </td>
  51. </tr>
  52. <tr>
  53. <td colspan="2"><hr />
  54. </td>
  55. </tr>
  56. <tr>
  57. <td colspan="2" class="highImportance"
  58. style="text-align:center;margin-left:auto;margin-right:0;"><a
  59. href="#Overview">Overview</a> | <a href="#Download">Download</a> | <a
  60. href="#Documentation">Documentation</a> | <a href="#Support">Bur
  61. report</a> | <a href="#Support">Feature request</a> | <a
  62. href="#Createplugin">Create plugin</a></td>
  63. </tr>
  64. <tr>
  65. <td colspan="2"><hr />
  66. </td>
  67. </tr>
  68. <tr>
  69. <td colspan="2" valign="top">
  70. <table width="100%" border="0" cellspacing="0" cellpadding="10">
  71. <tbody>
  72. <tr>
  73. <td valign="top"><h3 id="Overview">Overview</h3>
  74. <p><span class="normalImportance">Metrix++</span> is the
  75. platform to collect and analyse code metrics.</p>
  76. <ul>
  77. <li>It has got plugin based architecture, so it is easy to
  78. add support for new languages and/or define new metrics
  79. and/or create new pre- and post-processing tools.</li>
  80. <li>Every metric has got 'turn-on' and other configuration
  81. options.</li>
  82. <li>There is no predefined thresholds for metrics or rules.
  83. You can choose and configure any limit you want.</li>
  84. <li>It scales well to big code bases. For example initial
  85. parsing of about 10000 files takes 2-3 minutes on average
  86. PC, and ONLY 10-20 seconds for iterative re-run. Reporting
  87. of summary result and exceeded limits is less than 1 - 10
  88. seconds.</li>
  89. <li>It can compare results for 2 code snapshots (collections)
  90. and differentiate added regions (classes, functions, etc.),
  91. modified regions and unchanged regions.</li>
  92. <li>As a result, easy deployment is guaranteed into legacy
  93. software, helping you to deal with legacy code effiently -
  94. either enforce 'leave it not worse than it was before' rule
  95. or motivate re-factoring.</li>
  96. </ul>
  97. <h4>Standard Plugins</h4>
  98. <p>The distributive includes a set of standard plugins:</p>
  99. <ul>
  100. <li><h4>Code parsers</h4>
  101. <ul>
  102. <li><span class="normalImportance">C/C++</span> parser
  103. recognises definition of namespaces, definition of
  104. classes/structs (including enclosed in functions) and
  105. definition of functions/operators </li>
  106. </ul>
  107. </li>
  108. <li><h4>Metrics</h4>
  109. <ul>
  110. <li><span class="normalImportance">cyclomatic
  111. complexity</span> (by McCabe) per function <span
  112. class="lowImportance">[supports C/C++
  113. language]</span></li>
  114. <li><span class="normalImportance">mismatched
  115. brackets</span> '{}'' per file <span
  116. class="lowImportance">[supports C/C++
  117. language]</span></li>
  118. <li><span class="normalImportance">processing time</span>
  119. per file <span class="lowImportance">[supports any
  120. file]</span></li>
  121. </ul>
  122. </li>
  123. <li><h4>Analysis tools</h4>
  124. <ul>
  125. <li><span class="normalImportance">export.py</span> -
  126. exporter to xml, python or plain text of detailed
  127. information per file and/or aggregated information per
  128. file or directory <span
  129. class="lowImportance">[aggregated data includes <span
  130. class="normalImportance">sum</span>, <span
  131. class="normalImportance">maximum</span>, <span
  132. class="normalImportance">minimum</span>, <span
  133. class="normalImportance">average</span> within a subset
  134. of selected files or directories]</span></li>
  135. <li><span class="normalImportance">limit.py</span> - a
  136. tool to report regions exceeding speified thresholds,
  137. which are configurable (output is plain text with
  138. metadata compatible with gcc compiler warning
  139. messages)</li>
  140. </ul>
  141. </li>
  142. </ul>
  143. <h3 id="Download">Download &amp; Installation</h3>
  144. <p>For the installation of the <span
  145. class="normalImportance">Metrix++</span> <a
  146. href="http://sourceforge.net/projects/swi/files/">download</a>
  147. the archive and unpack it to some folder. Also, you have got an
  148. option to get the <a
  149. href="http://swi.svn.sourceforge.net/viewvc/swi/">source
  150. code</a> from the version conrol sytem.</p>
  151. <h4>Prerequisites:</h4>
  152. <p>Python Runtime Environment (version 2.7.0 or later, version
  153. 3.0 has not been tested)</p>
  154. <h4>License:</h4>
  155. <p>This program is free software; you can redistribute it
  156. and/or modify it under the terms of the GNU General Public
  157. License as published by the Free Software Foundation; version 3
  158. of the License.</p>
  159. <p>This program is distributed in the hope that it will be
  160. useful, but WITHOUT ANY WARRANTY; without even the implied
  161. warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  162. PURPOSE. See the GNU General Public License for more
  163. details.</p>
  164. <p>You should have received a copy of the GNU General Public
  165. License along with the <span
  166. class="normalImportance">Metriix++</span>; if not, contact <a
  167. href="mailto:avkonst@users.sourceforge.net">Project
  168. Administrator</a> and write to the Free Software Foundation,
  169. Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
  170. USA.</p>
  171. <h3 id="Documentation">Documentation</h3>
  172. <p>Tools are self-descriptive and have got comprehensive
  173. context help. Type in you command line: python
  174. &lt;tool-name&gt;.py --help</p>
  175. <h4>Known Limitations</h4>
  176. <p>Check 'doc/limitations.txt' file distributed with the tool
  177. or browse for recent version <a
  178. href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/doc/limitations.txt">online</a>.</p>
  179. <h4>Basic Workflow</h4>
  180. <p>TBD</p>
  181. <h4>Dealing Legacy Code</h4>
  182. <p>TBD</p>
  183. <h3 id="Support">Bug Report &amp; Feature Request</h3>
  184. <p>Any types of enquiries are welcomed by e-mail to <a
  185. href="mailto:avkonst@users.sourceforge.net">project
  186. administrator</a>.</p>
  187. <h3 id="Createplugin">Create Plugin</h3>
  188. <p>Please, consider to join the project and <span
  189. class="normalImportance">contribute to the development</span>
  190. of the engine or <span class="normalImportance">include you
  191. plugins into the standard set</span> of plugins distributed
  192. together with this tool. Contact <a
  193. href="mailto:avkonst@users.sourceforge.net">project
  194. administrator</a> by e-mail.</p>
  195. <h4>New Metric</h4>
  196. <p>TBD</p>
  197. <h4>New Analysis Tool</h4>
  198. <p>TBD</p>
  199. <h4>New Language Support</h4>
  200. <p>TBD</p>
  201. <h4>Source Code Repository</h4>
  202. <p>Source code is in the Subversion <a
  203. href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/">repository</a>
  204. used by the project.</p>
  205. </td>
  206. </tr>
  207. </tbody>
  208. </table>
  209. <hr />
  210. </td>
  211. </tr>
  212. <tr>
  213. <td colspan="2">
  214. <div align="center">
  215. <p align="right">Copyright <strong>&copy; </strong>2009 - 2013<br />
  216. <a href="mailto:avkonst@users.sourceforge.net"><span
  217. class="normalImportance">Metrix++</span> Project</a></p>
  218. <p align="right">License: <a
  219. href="http://www.gnu.org/licenses/gpl.txt">GPL</a></p>
  220. </div>
  221. </td>
  222. </tr>
  223. </tbody>
  224. </table>
  225. </body>
  226. </html>