Functions
Source Code Analysis
Source Code Analysis helps maintain source code, including mainframe and legacy software. Source code of various programming languages can be scanned and analyzed in order to understand the code's logical structure and determine the impact of change. High-performance scanners load source code into analysis cubes, where entities that represent the source code elements and their internal relationships are accessed for analysis. Users work with the Eclipse client interface, which offers views and features that allow for efficient code analysis for various purposes. For example, Source Code Analysis can target COBOL code including JCL and SQL definitions. It provides views, for analyzing the different language structures and their dependencies.
The extensive analysis capabilities of Source Code Analysis help users understand complex code, identify and resolve bugs, and focus on specific code segments. Source Code Analysis provides different analysis options such as
- Dependency Browsing
- Analysis by selections
- Analysis by SQL queries
- Detection of inconsistencies
Dependency analysis, i.e. navigating the code structure by following relationships between entities, is suitable for understanding the structure of a software package or for determining the impact of a change related to a specific piece of code. For particular analysis purposes, selections provide views that focus on specific areas of the source code to decrease complexity. Analysis by selection allows for impact analysis, for example, a change request's impact on all source code presented in an analysis cube. Source Code Analysis allows for writing and executing SQL queries that retrieve actual data in the analysis cube. Selections based on SQL queries are helpful for retrieving and displaying the same initial set of data each time an analysis is opened. Additionally, Source Code Analysis discovers and records inconsistencies and problems that occur during scanning of the source code, which provide useful hints for identifying and fixing actual programming bugs.
Also, Source Code Analysis provides metrics and statistic values for the scanned source code such as function points and lines of code, which can be used as the basis for specific analysis and quality evaluations. Additionally, the analysis features of Source Code Analysis allow for viewing any of the scanned source code files directly for context driven testing of specific elements or to directly analyze a scan problem. The analysis cubes of Source Code Analysis are shared with Quality Assessment and represent the main integration points between the two components.
Quality Assessment
Quality Assessment helps analyze and monitor the quality of source code and stores all relevant quality data centrally in a repository. Quality Assessment measures and calculates quality indicators related to source code scanned with Source Code Analysis. These indicators allow for detailed quality assessment, problem analysis, comparisons, and trend analysis of the source code. Quality Assessment provides predefined metrics, which facilitate different analysis scenarios. Quality Assessment allows to define indicators, combining predefined metrics by any arithmetic operation. Indicators can be shared, analyzed and displayed as text, graphics, and reports.

Quality Assessment
A quality assessment of source code is facilitated by evaluating the indicator values obtained by one or more measurements. The client interface provides different views and levels of detail for indicator analysis such as charts, tables, and textual descriptions. Quality assessments may reveal various types of source code defects. Quality Assessment provides means to exactly locate and analyze these problems by displaying the position where an issue occurs. For a more thorough analysis, Quality Assessment provides access to relevant source code.
Quality Assessment provides quality assessments by defining quality criteria, which are associated with thresholds and color schemes indicating the appropriate quality levels. Quality Assessment trend analysis provide auditing purposes and for evaluating the evolution of software products over time. Also, Quality Assessment facilitates the maintenance of identical indicators to provide quality comparisons between different software products and builds.
Quality assessments and measurements can be performed at the client interface or command line interface. The latter allows integrating the measurements in automated software build processes, where the current indicator values are obtained for each build.

