# Visual Expert

Visual Expert is a static code analysis tool, extracting design and technical information from software source code by reverse-engineering, used by programmers for software maintenance, modernization or optimization.
It is designed to parse several programming languages at the same time (PL/SQL, Transact-SQL, PowerBuilder...) and analyze cross-language dependencies, in addition to each language's source code.
Visual Expert checks source code against hundreds of code inspection rules for vulnerability assessment, bug fix, and maintenance issues.

## Features

* Cross-references exploration: Impact Analysis, E/R diagrams, call graphs, CRUD matrix, dependency graphs.
* Software documentation: a documentation generator produces technical documentation and low-level design descriptions.
* Inspect the code to detect bugs, security vulnerabilities and maintainability issues. Native integration with Jenkins.
* Reports on duplicate code, unused objects and methods and naming conventions. Calculates software metrics and source lines of code.
* Code comparison: finds differences between several versions of the same code.
* Performance analysis: identifies code parts that slow down the application because of their syntax - it extracts statistics about code execution from the database and combines it with the static analysis of the code.

## Usage

Visual Expert is used in several contexts:
* Change impact analysis: evaluating the consequences of a change in the code or in a database. Avoiding negative side effects when evolving a system.
* Static Application Security Testing (SAST): detecting and removing security issues.
* Continuous Integration / Continuous Inspection : adding a static code analysis job in a CI/CD workflow to automatically verify the quality and security of a new build when it is released.
* Program comprehension: helping programmers understand and maintain existing code, or modernize legacy systems. Transferring knowledge of the code, from one programmer to another.
* Software sizing: calculating the size of an application, or a piece of code, in order to estimate development efforts.
* Code review: improving the code by finding and removing code smells, dead code, code causing poor performances or violations of coding conventions.

## Limitations

* As a static code analyzer, Visual Expert is limited to the programming languages supported by its code parsers - Oracle PL/SQL, SQL Server Transact-SQL, PowerBuilder.
* A preliminary reverse engineering is required. Visual Expert does it automatically, but its duration depends on the size of the code parsed. Users must wait for the parsing completion prior to using the features, or schedule it in advance. They must also allocate sufficient hardware resources to support their volume of code.
* Visual Expert is based on a client/server architecture: the code analysis is running on a Windows PC - preferably a server. The information extracted from the code is stored in a RDBMS, communicating with a client application installed on the programmer's computer - no web client is available. This requires that the code, the parsers, the RDBMS and the programmers’ computers are connected to the same LAN or VPN.

## History

* 1995- 1998 - Prog and Doc - Initial version distributed on the French market
* 2001 - Visual Expert 4.5
* 2003 - Visual Expert 5
* 2007 - Visual Expert 5.7
* 2010 - Visual Expert 6.0
* 2015 - Visual Expert 2015 - Server component added to schedule code analyses
* 2016 - Visual Expert 2016 - Oracle PL/SQL code parser, code inventory (lines of code, number of objects…)
* 2017 - Visual Expert 2017 - SQL Server T-SQL code parser, Code comparison, CRUD matrix
* 2018 - Visual Expert 2018 - DB Code Performance Analysis, integration with TFS
* 2019 - Visual Expert 2019 - Generation of E/R diagrams from the code
* 2020 - Visual Expert 2020 - Object dependency matrix, naming consistency verification, integration with GIT and SVN
* 2021 - Visual Expert 2021 - Continuous Code Inspection, integration with Jenkins