Browse Prior Art Database

Method for Displaying Program Structures Graphically on Character Terminals

IP.com Disclosure Number: IPCOM000115318D
Original Publication Date: 1995-Apr-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 4 page(s) / 137K

Publishing Venue

IBM

Related People

Mays, RG: AUTHOR [+2]

Abstract

A method for displaying software program structures graphically is disclosed, which supports display on character-oriented terminals and printers as well as on graphical terminals. The method uses a horizontal notation that displays the structural elements of the program (loops, calls and IF THEN logic) and hides the details of data transforms.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Method for Displaying Program Structures Graphically on Character
Terminals

      A method for displaying software program structures graphically
is disclosed, which supports display on character-oriented terminals
and printers as well as on graphical terminals.  The method uses a
horizontal notation that displays the structural elements of the
program (loops, calls and IF THEN logic) and hides the details of
data transforms.

      Software modules are extremely complex and hard to visualize.
With existing methods and tools (listings, editors) it is practically
impossible to get an overview of a complex module and see its logic
structure (logic branches, loops, calls, etc.).  As a result,
programmers resort to hand-drawn diagrams, notations in listings and
detailed study of the code to determine the paths through the
routine, the nesting level of the logic, the scope of loops, the
paths where other routines are called, and so on.  These methods are
tedious and error-prone.  If the analysis of routine's logic takes
too much effort it may be done only cursorily and thus inadequately.
An overall view of the routine's structure and logic flow is
frequently so difficult to obtain that it is not even attempted.

      The method disclosed here provides a way of graphing the logic
structure of a routine (a procedure, function or other callable
entity) that works well on non-graphical (character) terminals,
graphical terminals and hardcopy printouts.  It involves a horizontal
display of the logic paths that result from logic branches and loops
with notations for logic branch (decision) points, calls to other
routines, processing statements (e.g., assignment statements),
returns, exits, etc. These displays can be generated directly from an
analysis of the code.

      Fig. 1 shows an example of this notation for PL/X a routine.
This example is for the NCEROP routine.

      The following table (Fig. 2) summarizes the graphic tokens used
in this notation for different language constructs.  In this example
the NCEROP routine starts in the upper left of the graph.  The
asterisk (*) indicates one or more sequential assignment statements.
The first "&BOX." character indicates a logic test.  The upper leg is
the true path which leads to a Do Loop construct.  The lower leg is
the false path which has an implied NOP (";") and bypasses the Do
Loop.  Within the Do Loop construct there are additional logic tests
and calls to other routines (RMVOPDAT, PATHSRCH, SETOPATH, etc.)....