Analysis types have different analysis objectives. For example, running Java Software Metrics to measure code complexity or running Java Data Flow Analysis to find memory and resource leaks.
On the Rules tab in the UI, analysis types are grouped as top-level folders in the Analysis Domains and Rules box. Select a top-level folder to choose an analysis type.
| Analysis Provider and Type | Description |
|---|---|
| C/C++ Code Review | Loads and parses source code files looking for particular code patterns
that do not comply with a set of established rules. In C++, many of these rules are built into the compiler or are available in external programs. Code review is a good tool to enforce coding standards, find basic performance problems, and identify possible API misuse. |
| Java Architectural Discovery | Examines the relationships between different source files (typically classes) to build a map of the overall architecture of a program. Dependency tools are commonly used to discover known design patterns (good) or common antipatterns (bad). |
| Java Code Review | Loads and parses source code files looking for particular code patterns
that do not comply with a set of established rules. In Java, the rule categories for code review include Design Principles, Globalization, and J2EE Best Practices. Code review is good tool to enforce coding standards, find basic performance problems, and possible API misuse. |
| Java Data Flow Analysis | Examines compiled code to identify potential memory and resource problems. Data flow analysis can examine problems that span multiple classes. For example, one class may open a stream and pass it to another class to read information from a file. If neither class closes the stream the result will be a file resource leak. |
| Java Software Metrics | Complexity tools analyze program code and compare it to established software metrics to determine if it is unnecessarily complex. If a particular piece of source code exceeds a given threshold, it is flagged as a candidate for refactoring to improve maintainability. |