Understand generates a wide variety of reports. The reports available in your project may vary based off of the project language, but the reports fall into these categories:
- Cross-Reference reports show information similar to that in the Info Browser, except that all entities are shown together in alphabetic order.
- Structure reports show the structure of the analyzed program.
- Quality reports show areas where code might need to be examined.
- Metrics reports show basic metrics such as the number of lines of code and comments.
Understands quality reports are designed to provide information about areas of the analyzed source that might not meet standards or that hold the potential for trouble. They also identify areas where extra programming has been done but not needed. This sometimes identifies areas that arent yet complete, or that havent been maintained completely.
- Program Unit Complexity Report - Lists every procedure and function or similar program unit in alphabetic order along with the McCabe (Cyclomatic) complexity value for the code implementing that program unit. The Cyclomatic complexity is the number of independent paths through a module. The higher this metric the more likely a program unit is to be difficult to test and maintain without error. It also reports the maximum nesting level of control constructs in each program unit.
- FORTRAN Extension Usage Report - This report lists anywhere your source code has non-standard FORTRAN extensions. The report factors in what variant (F77, F90, F95) you chose on your project configuration.
- Implicitly Declared Objects Report Reports any variables or parameters that were implicitly declared using FORTRANs implicit declaration mode. Using implicitly declared variables is considered a risky practice, and this report helps you weed out where the practice is occurring in your code. The HTML version offers hyperlinks to the functions Data Dictionary report entry.
- Uninitialized Items - Lists items such as variables that are not initialized in the code. The report is organized by file. The HTML version offers hyperlinks to the location where the item is declared.
- Unused Variables and Parameters Reports items that are declared (and perhaps initialized) but never referenced other than that. The report is organized by file. Types of items may include functions, parameters, variables, and objects. The HTML version offers hyperlinks to the location where each unused item is declared.
- Unused Objects Report - Shows objects (for example, variables, parameters, constants) that are declared but never used. The HTML version has links to the functions Data Dictionary report entry and to the source line where the object is declared.
- Unused Types Report Displays types that are declared but never used. The HTML version has links to the functions Data Dictionary report entry and the source where the type is declared.
- Unused Program Units Report - The Unused Program Units Report identifies program units that are declared but never used. Note that this listing in this report doesnt mean the system doesnt need this program unit. For instance, interrupt handlers that are called by system interrupts are often never used within the other source of the program.
- Withs Not Needed Report - This report lists, any With statements a program unit has but does not need (by not using items made public by the With statement). Note that this covers only direct usage in the program unit and doesnt account for side effects that may be needed by the program to operate correctly. For instance, sometimes a package can be Withed just to start a task or to execute code in its begin/end block.