PROGRESS-PLUS logo
PRODUCTS NAVIGATION
PRO4m
  History & Goals
  What is PRO4m
   & what can it do
  Report Structure
  Requirements
  Code Analysis
  Examples
  Documentation
  User's opinions
 
DBYER
  Description
  Database Browser
  Data Inspector
  Database Copier
 
ProAppmon
[included into PRO4m]
 Description
 Monitoring Examples
 Screen Samples
 
BECOM
(BEtter COde Maker)

[included into PRO4m]
  Description
 
Knowledge Testing
  Create Account

  Simple Mode Login



Referral Program

History & Goals

PRO4m has included implementations of project analysis and optimization ideas made working with Progress based projects for many years.

There are similar programs for other tools and languages (e.g. for VB). It is widely used by teams of developers to analyze, write and test software. These tools were invented because of demand for a more stable program code, shorter terms, and increased developers work efficiency.

PRO4m main goals:

  1. Decrease time to map a project.
  2. Increase understanding of a project.
  3. Improve project performance and optimization.
  4. Simplify code and programs structure.
  5. Manage project changes history.

top

What can PRO4m do

Written in Progress 4GL v9 for Windows, PRO4m helps both create efficient program code and reduce code analysis and development time (with big accent on the project code analysis).

PRO4m does include the following utilities and components:

  1. "Source Code Scanner"
  2. "Project Data TreeView Browser"
  3. "Reports Generator"
  4. "Programs Header Generator"
  5. "Dynamic DB Browser"
  6. "DB Data Copy"
  7. "Records Lock Monitor" (replaced by ProAppmon since v3.00.00)
  8. "Prolint GUI outputhandler" (in 3PRO package)
  9. BECOM (Better Code Maker)
  10. ProAppmon (Progress Applications Monitor) (ENT version only)
  11. Code Analysis

1. "Reports Generator" builds related HTML reports, where the usage mode is a daily procedure of project scanning and report generating, which can be used by all members of development team, and which can be placed for the public access on a LAN or on the Company Internet/Intranet website.

The report contains the following information:

  • Progress project general statistics, where the general information about source-code and database is generalized;
  • List of all project files (*.p *.w *.i), with its description taken from files (similar to Java Documentation), and comments to them (for example: 'not used module', 'not compiled module');
  • Project changes history - everyday project statistics that includes added, updated and deleted project files;
  • Project Analysis information, including:
    • not found files (files used in the project, but not found on a disk in PROPATH),
    • not used files (existing project files, but not used in the project), conflict file names (files with identical names and in different folders of the project, and files with identical names, but with different extensions (for example:abc.p and abc.w, because finally, both files will be compiled in abc.r, where the results of application operations could be unexpected), and
    • not compiled project modules including compilation error messages;
  • Database Analysis information, including:
    • not used database indexes (not used by any module of the project),
    • redundant indexes (duplicated database indexes waste the disk space and slow down the application performance),
    • whole-index searches (FIND, FOR EACH, etc. operators, which completely, or partially do not use available database indexes);
    • not created foreign keys list , which are probably required to be added to the database schema, and
    • not defined table lock/share lock, used in FIND, FOR EACH and OPEN QUERY operators of all project modules;
  • Database tables list is DB tables names and labels, it contains the diagnostic information about table Primary Key ('PK not exist', 'PK not unique') and warning, in a case the tables are not used by the project modules;
  • Database changes history - is historical information on changes made in the logic DB structure: database tables, fields and indexes;
  • Database table information contains more detailed information on DB tables, namely: Key, Name, Label, Data type, Format, Extent, Default value, View-as phrase with information whether it is field
    • foreign key,
    • primary key or
    • alternative key (unique, but not primary index) member.
    Database table information contains DB Indexes, its description and structure (table fields), indicating whether the
    • index is used in the project;
    • index is redundant;
    • table relations (parent and child table relations including fields names and manually joint tables);
    • the list of modules,
    • where DB table is used;
    • not defined foreign keys,
    • fields usage analysis, and
    • indexes usage analysis.
  • Project modules information is a report created for each module of the project. It contains the following:
    • parent modules list (modules of the project calling the current module);
    • module calls tree designed considering not only external calls of the project (*.p *.w *.i *.r), but also the internal structure of the module, including:
    • calls of internal procedures and user-defined functions;
    • input/output parameters list;
    • defined shared resources list;
    • shared variables usage analysis;
    • internal functions defined list;
    • internal procedures defined list;
    • used external procedures list;
    • used internal functions list;
    • used internal procedures list;
    • includes used list,
    • used OS programs list;
    • DB tables used list, DB indexes used list (thus a diagnostic warning will be given on each unused internal procedure, function and non-indexed search in DB);
    • not defined DB tables lock;
    • internal procedures specification, i.e. description and input-output parameters;
    • Prolint report;
    • module source code;
    • source, debug and XREF listings;
    • module changes history, and
    • 'module not found' and 'module not compiled' diagnostic warnings.

    PRO4m provides set of cross-references between HTML pages to ensure convenient navigation in the project report and in the DB structure. Thus HTML-Browser functionality could be completely used, such as bookmarks, navigation "forward" / "back", search on page and other.

 

2. "Programs Header Generator", the second function of PRO4m, is less pretentious in its capabilities, but is able to do operations that no other Progress utilities can do so far.

"Programs Header Generator" is intended to automatically generate the headers of the project 4GL modules and to support automatically logging of the module changes history. It should be used to generate a program header every time a module development/update is finished. With the header template in PRO4m, files can easily be adjusted according to the company program header format. An example of a generated program header is here. Header template delivered with PRO4m is here.

 

3. "Dynamic DB Browser". The program allows browsing/editing of the DB contents (including system tables). It allows

  • sorting and filtering of the tables contents for any connected database;
  • navigating in Parent-Child DB tables;
  • viewing the meta scheme of database, etc.
  • exporting database tables into the txt, html, xls and DIF formats,
  • perform tables data analysis for broken child->parent table links
  • and many more nice features

This utility is a very powerful while debugging and testing programs and while investigating an application DB, its structure and contents.

Dynamic DB Browser is simple to use and has only one basic window, which in turn, consists of five major logically related parts:

  • Lists of DB tables;
  • Frame of detailed information;
  • Query Editor;
  • Functional buttons;
  • Data Browser.

See the our online documentation for more detailed Dynamic DB Browser information.

DB Browser is a very powerful utility and is one of the best known program in its class.

top

PRO4m Report Structure

Click on a Report name to see the Report example.

PRO4m PROJECT REPORT (all pages automatically generated)
PROJECT MAIN PAGE
PROJECT FILES LIST
Project Module Report
  Module Changes History
  Module Source Code
  Prolint Report (since v2.00)
  Code Analysis (since v2.02)
  Source Listing
  Debug Listing
  XREF Listing
  Used In Modules
  Module Calls Tree
  Module I/O Parameters
  Shared Resources Defined
  Internal Functions Defined
  Internal Procedures Defined
  External Procedures Used
  Internal Functions Used
  Internal Procedures Used
  Includes Used
  O/S Programs Used
  DB Tables Usage (since v2.01)
  DB Indexes Used
  No Table Lock Definition (since v1.08)
  Internal Procedures Specification
  Module Controls defined (since v1.12)
CHANGES HISTORY
Updated Files
New Files
Deleted Files
PROJECT ANALYSIS
Not Found Files
Not Used Files
Conflict File Names
Not Compiled Modules
DATABASE ANALYSIS
Not Used Indexes
Redundant Indexes (since v1.11)
Whole-Index Search
Foreign Keys Not Defined
Not Defined Table Lock/Share Lock
CODE ANALYSIS (since v2.02)
DATASERVER Compatibility (since v4.05)
UNIX Compatibility
SORT-ACCESS, SORT-BY-EXP
NO-UNDO Declarations (since v4.05)
ADD-LAST entries
PRODOC (since v4.06)
SHARED VARIABLES Usage Analysis
DATABASE TABLES LIST
DB Changes History
All Tables Structure
DB Table Structure
  Table Structure
  Table Relations
  Table Triggers
  Possible Indexes Required
  Tables Usage Analysis (since v2.01)
  Fields Usage Analysis (since v2.02)
  Indexes Usage Analysis (since v3.02)  
PROJECT CONTROLS DEFINED (since v1.12)
MISCELLANEOUS

top

CODE ANALYSIS

Code Analysis deserves its own section.

This is the place where you can write your own parser method to find and to show it on the project report pages the things you want. This is an open-source part of the tool, which you can modify, extend, improve etc in the way you want.

There is a group of the open-source modules located in usrParser PRO4m directory, where all the methods are located. Writing new methods is quite simple since there is many examples for each method type. Most often you'll not to have to write reporting part at all - a standard one may be just enough for you.

Some methods, like PRODOC (JAVADOC analogue in Progress), represented by just one program file, and, extending it by adding more PRODOC keywords you don't have to write a single line of program code.

top

Requirements and Limitations
Requirements:
  • Windows 95/98/NT/2000/XP;
  • Progress v9 or v10 license (able to compile .P code) - Progress Development license;
  • ~10MB on a Hard drive plus space for the projects;

Limitations:

  • Progress v9.0 or higher to run PRO4m;
  • Progress 4GL source code files for UNIX should be converted into the Windows format (to have the Windows-style 2 characters EOL) files;

top

Revisions History

Aug 2005 : PRO4m v4.05.00 released.

Jun 2005 : PRO4m v4.04.00 released.

Now also available for PROGRESS v10

Jun 2003 : PRO4m v 3.03.00 release. New for this release is Project Data TreeView Browser for :

  • module structure
  • module calls tree
  • Prolint results
  • user-defined parser results

See the Project Data TreeView Browser documentation page.

May 2003 : PRO4m v3.02.00 release. Indexes Usage Analysis report has been added to each database table report page.

Apr 2003 : PRO4m v3.01.00 release. ProAppmon v1.06 is included where many changes have been done to ProAppmon since the first release. Dynamic DB Browser's got few nice little features making the database data viewing easier and more convenient. New Confirmation ID will be used starting from this release.

Mar 2003 : PRO4m v3.00.00 release. ProAppmon (Progress Applications Monitor) replaces Records Lock Monitor.

Feb 2003 : PRO4m v2.06.00 release. Dynamic DB Browser exports queries data into the following formats: HTML, comma (or any other delimiter) separated text file and into MS EXCEL.

Jan 2003, v2.05.00 : BECOM (BEtter COde Maker) was included into the 3PRO package.

Oct 2002, v2.04.00 : Manual Tables Join functionality is expanded and much flexible now, WHERE phrases are available for Parent and Child tables join definition.

Sep 2002, v2.03.00 : Shared Variables Usage analysis report makes the applications analysis much easier now!

Aug 2002, v2.02.00 : Lots of improvements from the tables and fields usage reports to the User-defined open-source parser and reporting.

Jul 2002, v2.01.00 : The "Big Projects" or "fast PRO4m" version is released. Now PRO4m able to handle big projects (tested on ~15000 files).

Jun 2002: v2.00.00 : 3PRO version i.e. integrated with Prolint and Proparse PRO4m. Now you can enjoy all the analysis results on our smart pages (project report pages).

Jun 2002: v1.12.00 : Project Controls functionality is added, IgnoreList functionality expanded, Performance and Integrity analysis - improved.

May 2002: v1.11.04 : Redundant Database Indexes analysis is added to the PRO4m Performance report page.

May 2002: v1.11.00 : Any possible project file extension is recognizable by PRO4m now (previously recognized only *.i, *.w, *.p, *.r and *.wrx project files). Extensions list can by modified by means of the ProjectExtProc, ProjectExtInc, and ProjectExtBin project configuration file (.prj) parameters.

May 2002: v1.10.00 : Universal DB Data Copy utility has been included to the PRO4m, many improvements done to the existing utilities, bugs fixes done.

April 2002: v1.09.03 : More than one simultaneously connected database is allowed in PRO4m now, Project Data load speed is decreased on 15-20%, DB Browser UI made even more flexible and user-friendly.

February 2002 : v1.09.02 : Added integration with VSS.

January 2002 : v1.09.00 : "Scanner and Report Builder AutoStart Scheduler" is added to PRO4m.

December 2001 : v1.08.00 : New reports are added - "No Table Lock Definition" and "Fields Use Analysis", new features are added to the "DB Browser", and PRO4m is Win95 & 98 compatible now.

November 2001 : v1.07.00 : "Records Lock Monitor" utility is added to PRO4m.

September 2001 - November 2001 : v1.01 - v1.06 : are series of minor improvements implemented according to the results of PRO4m operation in one of Moscow companies (one of the first our clients).

September 2001 : v1.00 : first commercial PRO4m version.

top


Where PRO4m is used
Australia
Austria
Belgium
Canada
France
Ireland
Netherlands
USA
Russia
Switzerland

top

 

PRO4m Versions Difference

Starting from v1.09 PRO4m exist in two different editions - a LITE and a PRO edition, where the LITE edition does not include the following features:

- HTML Reports Generator,
- AutoStart scheduler, and
- ProAppmon.


Last updated: September 28, 2005 9:33 PM
© 2001-2003 PROGRESS PLUS SOLUTIONS Home // Products // Downloads // Shop // Registration // Partners // Mailing Lists // Resources // Feedback
History & Goals // What is PRO4m & What Can it do // Report Structure // Requirements // Revisions History // Examples // Documentation
ProAppmon description // Examples // Screenshoots
BEtter COde Maker (BECOM) description
Knowledge Testing // Create Account // Simple Mode login