Home | Products | JAVA FGM
www.proetcon.de | Products | JAVA FGM
[JAVA FGM]
JAVA FGM (JAVA Flow Graph Manipulator)
JAVA FGM is the tool for
  • analysis,
  • reengineering and
  • redocumentation
of complex, object oriented Java applications.

JAVA FGM parses the whole Java application (classes, methods, attributes, files, packages, ...) and their relations (call, inheritance, association, use of types, access to attributes, data flow, ...) and stores the complete structure information within a repository. The repository is the base for complex analyses. The results of the analysis are exported into several graphic and text formats (.xls, .wmf, ASCII, Postscript, HTML, ...).

High granular knowledge on the level of the single Java program are combined with complex application knowledge. In parallel with this a plain redocumentation is created.

The result is the extreme reduction of maintenance effort of complex, object oriented Java applications.
Unique Characteristics
JAVA FGM
  • includes a parser, which is realised as compiler frontend and stores the results of analysis within a complete, redundancy free internal syntax tree ("Abstract Syntax Tree"). Only this way analysis results with high granularity can be reached.

  • was realised in compliance with the Java philosophy on the base of Unicode. The processing of diacritical signs like e.g. the French "acute accent" (´, "U+00B4") or the "circumflex accent" (^, "U+005E") don't cause any problems for JAVA FGM as well as the Japanese currency symbol "YEN SIGN" (¥, "U+00A5").

  • is able to analyse several formats. The information about a Java program exists in inhomogeneous form, e.g. as .java and .class files or in .jar archives. During the analysis of the import clause of a Java program it wouldn't appear in which format the objects to import are available. For that the JAVA FGM parser is realised for the analysis of these different formats. Only for that reason a complete view to the whole Java application is possible.

  • stores the results of analysis within 2 different repositories:
    A RDBMS is improper for high granular results on the base of a single program, because it is to much fixed. For that reason the analysis results of single programs are administrated within a so called data flow graph (compiler technology).

    The information about the total application (gross granular view to relations between programs, files and packages, ...) is realised efficiently via relations and is stored within a RDBMS (MySQL).

    Of course the user doesn't notice during the work with JAVA FGM, whether the realised results come from the data flow graph or from the relational database. The analysis results are communicated uniform via the GUI.
Selected Analysis Results
Data flow
Data flow graphs document all relations between program objects and other objects within a Java source.
[PDF] Example for a data flow graph[24 KB]
CALL
CALL graphs display recursively all methods which are called directly or indirectly by Java methods.
[PDF] Example for a CALL graph[24 KB]
Inheritance
Graphs document inheritance relations between selected classes and interfaces or within the total application.
[PDF] Example for a inheritance graph[40 KB]
Implementation relations
Graphs document, which classes resp. interfaces implement other classes/interfaces.
[PDF] Example for implement relations[23 KB]
Software quality estimation
To estimate the software quality a variety of metrics is implemented, e.g.:
  • complex program statistics (LOC, comment lines, empty lines, ...),
  • Halstead (length, vocabulary, volume and severity of a program and the programming effort,
  • McCabe (number of independent path within the control flow graph of a program,
  • number of created instances and public methods of classes.
[PDF] Example for the JAVA FGM metrics package[28 KB]
The GUI
Object browser
A comfortable user interface allows to control all activities of JAVA FGM.
Graphviewer
Complex processes are made understandable with the help of graphics. The graphviewer generates clear graphics from source code (CALL graph, data flow, ...).
Fileviewer
The integrated fileviewer creates a direct connection between graphical display and source code.
Script library
FGM provides an open API. You can word your company specific requests for analysis and store them as library for reusing!
[JAVA FGM - GUI]
The Architecture
JAVA FGM is based on a 3-layers architecture.
Layer 1: analyser (parser)
  • The Java analyser (parser) is implemented as compiler frontend. The source code is analysed with a compiler's granularity.
  • The parser is able to process the different formats of Java programs (.java, .class, .jar).
Layer 2: server
The parser's analysis provides 2 results:
  1. A complete, redundancy free internal representation of the Java source within a repository. The kind of representation within the repository is referred to as flow graph in the compiler theory.
  2. Entries in a SQL database, which manages the knowledge about the total application:
    • Which programs import which packages?
    • How the call structure between the programs is realised?
    • Which classes inherit by which classes?
    • Which classes/ interfaces implement other classes/ interfaces?
    • ....
The server administrates both the repository of the single Java program and the SQL database with application knowledge (analogical a database server). It receives requests by the client and realises them.
Layer 3: client
With the help of the client the user makes requests to the server. The components of the client (object browser, fileviewer, graphviewer, navigator, ...) can document the analysis results in several formattings (e.g.: .xls, .wmf, ASCII, Postscript, HTML).

Depending on the kind of analysis (detailed information about a special Java program or knowledge about the total application) the requests correspond to the repository or to the application database.

[JAVA FGM - Architecture]
Technical Data
Version JAVA FGM 2.4
Analysis of Java 2 Plattform, J2SE 5.0 and J2EE 1.4.2 SDK
System requirements
  • Operating system: Windows 2000 / XP
  • Working storage: min. 256 MB RAM
  • Free fixed-disk storage: ca. 100 MB
  • Available installation of TCP/IP protocol
  • RDBMS: MySQL Classic, from version 3.23
The text above can include company names, trademarks or registered trademarks of the corresponding firms. Their report isn't made in the sense of trademark right.