Visual Expert for PowerBuilder

Why use Visual Expert?

Impact Analysis

When you modify the source code of the application, there is always a risk of regression and errors due to the modifications.
With just a click Visual Expert helps you to perform those impact analyses on any component (userobject, datawindow...) of the application.

Source code documentation

To write a technical documentation is always long and tedious!
With Visual Expert, generate a complete, customized and always up-to-date technical documentation.
For example, if you need to perform some knowledge transfer about part of an application, you can choose to generate technical documentation only based on Window objects & UserObjects.

Browse through your applications

Visual Expert makes it easier to navigate, no matter how complex the application is.
Visual Expert helps you gain time in the development and maintenance of your application and facilitates the integration of new developers.

Visual Expert allows you to :

  • Discover the application structure and its components (pbl, userobject, window, datawindow, menu,...)
  • Explore the inheritance tree and master the framework, (Looking for ancestors, attributes of a window...)
  • See a preview of any application window in order to visualize its aspect and test it, etc...

With Visual Expert 7, you can now include multiple applications in a single VE7 project thereby completing a cross sectional analyses. VE7 is made to support large volumes: you can add as much code as you want in one project!

Improving Source Code

Projects need to follow development rules in order to :

  • Normalize the code
  • Simplify its reading
  • Anticipate maintenance

Visual Expert will help you during the 3 following phases:

  • Before the development, Visual Expert helps to define the development rules (you can use the default ones)
  • During the development, Visual Expert helps to apply the rules and to correct errors,
  • After the development, Visual Expert can search in the whole application for unused components and those that do not comply with the rules.

Detecting dead code

Visual Expert detects code in your application.
Dead code includes functions, properties, parameters or variables that are never referenced.
Removing this dead code will improve the performance of your application and the source code will be easier to maintain.

Team Work

With Visual Expert 7 multiple users can now share the same Visual Expert project.
The code is analyzed once, and everyone can explore it at the same time.

Visual Expert 7 New Features highlights

Visual Expert for PowerBuilder detailed features

CODE
EXPLORATION
PowerBuilder Components After analysing your project, Visual Expert can list in a treeview:
* The PBL included in the application and the components of each PBL
* The PowerBuilder object - by type - included in the application (all the DW of the project for instance).
* The controls, functions, events, attributes, variables, parameters defined in a PowerBuilder object.

While exploring the code in the treeview, you can also display:
* The container of the selected item (for example, the PBL containing an object, the object containing a control, the control containing an event or the event containing a local variable,...)
* The containier hierarchy (the list of all successive containers of an item). For instance, the container hierarchy of an event may display the Control/Objet/PBL/Projet where this event was defined.

You may display in the treeview some information about menu objects:
* The complete hierarchy of the menu options defined in a menu object.
* Same hierarchy, plus all events defined for each menu item.
Database
Components
While analyzing your code, Visual Expert will find all references to database items.
Therefore, you can list in the treeview:
* The database tables referenced by the PowerBuilder code (both from Datawindows and embedded SQL)
* For each table found, you may list the columns referenced by the PowerBuilder code.
* The stored procedures called by the PowerBuilder code (both from Datawindows and PB scripts)

If your application is also composed of DB code (PL/SQL or Transact-SQL), Visual Expert finds all references to tables, columns and stored procedures from this DB code.
See Visual Expert for Oracle, Visual Expert for Sybase ASE or Visual Expert for SQL Server pages for more details.

You can have a global overview of your project (PowerBuilder + DB code) by installing the appropriate versions of Visual expert on the same machine. For instance, if your application is composed of PB code and sybase stored procedures, you may combine Visual Expert for PowerBuilder and Visual Expert for Sybase ASE or Visual Expert for SQL Server on the same PC.
SQL Queries After analysing your project, Visual expert may display several lists of Procedure:
* SQL statements defined in the application
* SQL statements containing a given string (text search focused on the SQL statements of the project).
* SQL statements by access type (select, insert, update or delete Statements)
* SQL statements by definition type (defined in PowerBuilder Script, Datawindow, Transact-SQL code(1) or PL/SQL code(2) ).
(1) requires Visual Expert for Sybase ASE or Visual Expert for SQL Server
(2) requires Visual Expert for Oracle
Inheritance
dépendencies
Visual Expert analyses all inheritance dependencies. As a result, you can display:
* The direct descendants (childs) of a PowerBuilder object
* The descendant hierarchy (multi-level treeview of all successive descendants objects). For instance, you can get the complete inheritance hierarchy of your application, including Framework and business objects.
* The direct ancestor of a PowerBuilder object
* The complete ancestor list of an object (all successive ancestors of a given object).

When an object is inherited, the scripts defined in this objects may be modified in the descendant Object.
In such a situation, Visual Expert keeps track of the "inheritance" relationship between the "ancestor" and the "descendant" script.
String search You may search for a string in your project. Several options are available:
* Global Search in the whole project (including PowerBuilder Code, PL/SQL, Transact SQL, SQL files, ...)
* Search restricted to a given type of component (For instance, you may search in Windows only).
* You may search in the name and/or the source code of components.
* You use regular expressions in a search (click here to read about regular expressions)
* You may search into a selection of components (for instance after selecting some procedures in the treeview).
Dll Calls While analyzing your PowerBuilder code, Visual Expert will find all referencies to dll functions.

As a result, you can list in the treeview:
* The dll used by the application
* For a given dll, which dll functions are declared in the PowerBuilder code
* For a given dll, which PowerBuilder objects are declaring the dll functions
* For each dll function declared in PowerBuilder, all PowerBuilder references to this dll function
(Impact analysis in the PowerBuilder application on a dll function).
System and
Application
Globals
* List of the Global variables declared in the PowerBuilder application (name+number of calls to each variable)
* List of the Global functions defined in the PowerBuilder application (name+number of calls to each function)
* List of the system properties referenced in the PowerBuilder code (e.g. visible, title, with...)
* List of the system functions referenced in the PowerBuilder code (e.g. close, opensheet, setpointer...)
IMPACT ANALYSIS

(cross- references)
Detailed Impact Analysis This feature will list all the components related to a given object, method, variable, table, column...
You can use this feature before modifying the application: it will help checking the consequences of the change on the components related to the change.

In order to provide a complete result, the impact analysis includes all type of dependencies:

* PowerBuilder-to-database dependencies: any change in the DB Schema may affect the PowerBuilder components using the table or column modified. For instance, an Impact Analysis on a table gives you all Datawindows, Embedded SQL and Stored Procedures(1) calling this table.
You may filter the references depending on the access type (Select, Insert, Update Delete)

* PowerBuilder Inheritance dependencies: any change in a PowerBuilder object may affect its descendants.
Therefore, an impact analysis on a PB object will includes all its descendants.

* PB code references: An Impact analysis on a PB object, method or variable lists all the PB objects and methods calling it. Special PowerBuilder dependencies are also supported (e.g. the reference between a DataWindow Column and a DropDownDatawindow).
Impact analyses are also available for Global variables and functions as well as system properties and functions. The result contains all references to such variables or functions.

* PB-to-DB Code dependencies:
If your PowerBuilder application calls Stored Procedures, you can list these procedures:
- You can list all stored procedures called by each PBL of the application.
- You can list all stored procedures called by each object coming from a given PBL.
For each Stored procedure referenced by the PB code, you can peform an Impact Analisys.
As a result, you get all PowerBuilder object and functions of the application calling this Stored Procedure.

(1) If your application is also composed of Stored Procedures (PL/SQL or Transact-SQL), Visual Expert analyses all references to tables and columns from these stored procedures.
See Visual Expert for Oracle, Visual Expert for Sybase ASE or Visual Expert for SQL Serverpages for more details.
Calling Hierarchy List of all successive methods calling a function.
The result is displayed in a treeview (e.g. function A is called by function B, itself called by function C, etc...).
Called Hierarchy List of all successive methods called by a function.
The result is displayed in a treeview (e.g. function A calls function B, which itself calls function C, etc...).
You may use this feature when you need to understand a complete process in the application.
(For instance, which functions are executed after the user has triggered a specific event?)
Architecture Opening Hierarchy List of all successive windows or menus opened in the project.
As a result, you get a treeview representing the navigation paths in the application
(from Windows to Windows and from Menus to Windows).
General Architecture Detailed architecture of an object (treeview of all controls, functions, events and variables composing the object)
Control Architecture Architecture of the controls composing a PowerBuilder object (presented in a treeview)
Miscellaneous Preview Displays a graphical preview of a PowerBuilder Visual Object (Window, DataWindow, Visual UserObject).
This preview helps understanding the application while browsing in the code.
You can also locate any control displayed in the preview.
As a result, Visual Expert opens the treeview where the control is defined.
Dead Code (Unused items) * List of the Windows, OserObjects, DataWindows, Menus, ... not referenced/used in the application.
* List of the functions, events and global functions not referenced/used in the application.
* List of the attributes, global variables, parameters not referenced/used in the application.
* List of the dlls and dll functions declared, but not called in the application.
Duplicated components Searches for components with the same object name and same type in your project.
Locate Use this feature to locate an object, method or variable in your project (i.e. where is this item created/declared in your project?). As a result, the treeview opens on the definition
DropDown
Datawindow
Lists all Datawindows used as DropDownDatawindows in your project
Dynamic
Datawindow
Lists all Datawindows referenced dynamically in the PB code (e.g. Control.DataObject = "<DataWindow name>")
PBL Statistics Statistics about the size and content of the PowerBuilder Libraries (PBLs)
Large PBL PBL containing a determined amount of bytes