code-analysis.rst
author Oleksandr Gavenko <gavenkoa@gmail.com>
Wed, 14 Dec 2011 15:11:23 +0200
changeset 1175 eef4d07eff61
parent 1174 2039dc94e890
child 1176 1950067f64c0
permissions -rw-r--r--
Program_verification
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1167
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
.. -*- coding: utf-8; -*-
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
================
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
 Code analysis.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
================
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
.. contemts::
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
About.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
======
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
 * http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis
1175
eef4d07eff61 Program_verification
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1174
diff changeset
    12
 * http://en.wikipedia.org/wiki/Automated_code_review
eef4d07eff61 Program_verification
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1174
diff changeset
    13
 * http://en.wikipedia.org/wiki/Program_analysis_%28computer_science%29
eef4d07eff61 Program_verification
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1174
diff changeset
    14
 * http://en.wikipedia.org/wiki/Performance_analysis
eef4d07eff61 Program_verification
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1174
diff changeset
    15
 * http://en.wikipedia.org/wiki/Program_verification
1167
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
1170
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    17
Splint.
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    18
=======
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    19
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    20
Secure Programming Lint, is a programming tool for statically checking C
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    21
programs for security vulnerabilities and coding mistakes. Formerly called
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    22
LCLint, it is a modern version of the Unix lint tool.
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    23
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    24
  http://en.wikipedia.org/wiki/Splint_%28programming_tool%29
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    25
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    26
Sparse.
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    27
=======
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    28
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    29
Sparse is a tool designed to find possible coding faults in the Linux kernel.
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    30
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    31
  http://en.wikipedia.org/wiki/Sparse
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    32
                Wikipedia page.
d575b6abcc42 Splint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1169
diff changeset
    33
1167
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    34
PMD.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    35
====
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    36
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    37
PMD is a static ruleset based Java source code analyzer that identifies
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    38
potential problems.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    39
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    40
PMD has plugins for JDeveloper, Eclipse, JEdit, JBuilder, Omnicore's CodeGuide,
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    41
NetBeans/Sun Studio, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, Hudson,
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    42
Jenkins, Sonar and Emacs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
  http://pmd.sf.net/
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
                Home page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
  http://en.wikipedia.org/wiki/PMD_%28software%29
1168
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
    47
                Wikipedia page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
    48
1171
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    49
Checkstyle.
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    50
===========
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    51
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    52
Static code analysis tool used in software development for checking if Java
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    53
source code complies with coding rules.
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    54
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    55
  http://en.wikipedia.org/wiki/Checkstyle
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    56
                Wikipedia page.
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    57
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    58
FindBugs.
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    59
=========
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    60
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    61
  http://en.wikipedia.org/wiki/FindBugs
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    62
                Wikipedia page.
7d45ad92679a FindBugs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1170
diff changeset
    63
1174
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    64
Pychecker.
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    65
==========
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    66
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    67
  http://en.wikipedia.org/wiki/Pychecker
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    68
                Wikipedia page.
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    69
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    70
Pylint.
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    71
=======
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    72
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    73
  http://en.wikipedia.org/wiki/Pylint
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    74
                Wikipedia page.
2039dc94e890 Pylint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1173
diff changeset
    75
1173
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    76
JSLint.
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    77
=======
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    78
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    79
JSLint is a static code analysis tool used in software development for checking
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    80
if JavaScript source code complies with coding rules.
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    81
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    82
It is provided primarily as an online tool, but there are also command-line
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    83
adaptations.
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    84
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    85
  http://en.wikipedia.org/wiki/JSLint
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    86
                Wikipedia page.
e7f9a20dc376 JSLint.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1172
diff changeset
    87
1172
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    88
Squale.
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    89
=======
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    90
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    91
Squale (Software Quality Enhancement) is an open-source platform that helps
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    92
monitoring software quality for multi-language applications. It currently
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    93
supports Java out-of-the-box, and can also analyse C/C++ and Cobol code with an
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    94
adapter to McCabe tool. Squale is distributed under the terms of the LGPL v3
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    95
licence.
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    96
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    97
  http://en.wikipedia.org/wiki/Squale
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    98
                Wikipedia page.
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
    99
1168
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   100
Yasca.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   101
======
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   102
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   103
Yasca leverages external open source programs, such as FindBugs, PMD, JLint,
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   104
JavaScript Lint, PHPLint, Cppcheck, ClamAV, Pixy, and RATS to scan specific file
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   105
types, and also contains many custom scanners developed for Yasca.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   106
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   107
  http://yasca.org/
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   108
                Home page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   109
  http://yasca.org/
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   110
                Development home page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   111
  http://en.wikipedia.org/wiki/Yasca
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   112
                Wikipedia page.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1167
diff changeset
   113
1169
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1168
diff changeset
   114
Sonar.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1168
diff changeset
   115
======
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1168
diff changeset
   116
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1168
diff changeset
   117
Sonar uses various static code analysis tools such as Checkstyle, PMD, FindBugs,
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1168
diff changeset
   118
Clover to extract software metrics.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1168
diff changeset
   119
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1168
diff changeset
   120
  http://en.wikipedia.org/wiki/Sonar_%28software_quality%29
1172
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
   121
                Wikipedia page.
c9f019a072ac Squale.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1171
diff changeset
   122