Monitoring execution of an hierarchical visual program such...

Data processing: software development – installation – and managem – Software program development tool – Testing or debugging

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S125000, C717S128000, C717S130000, C717S131000, C717S132000, C714S047300

Reexamination Certificate

active

06748583

ABSTRACT:

FIELD OF INVENTION
The present invention relates to monitoring program execution in a visual programming environment, such as to enable debugging.
BACKGROUND
Visual programming techniques and tools allow computer programs to be developed by manipulation of visual images representing objects, providing an alternative to conventional alphanumeric-character-based programming languages. Such techniques and tools make the task of computer program development easier for programmers than was possible with earlier non-visual programming languages, and make programming accessible to non-expert programmers. Visual programming has enabled more rapid prototyping and application program development, and has generally enabled users to focus on what functions they want their program to perform by greatly reducing the requirement to learn about programming languages and the internal workings of a computer.
Nevertheless, it remains the case that the available visual programming tools and languages, such as VisualBasic from Microsoft Corporation, are mainly used for building a user interface (selecting and positioning user interface components such as buttons, scrollbars, etc, and scripting their behaviour). The user is often required to rely on conventional programming techniques for implementing the main business logic underneath the user interface.
As with other computer programs, programs developed using visual programming techniques require debugging, but in the past many visual programming tools have not enabled visual debugging. That is, the user has been provided with source level debug information which has required a greater level of understanding of languages and systems than the original visual programming task. More recently, it has been recognised that visual programmers should be provided with visual reporting of any problems which require debugging, thereby matching the problem reporting style to the requirements of a typical visual programmer rather than relying on non-intuitive source code level debug information.
PROGRAPH 2, described in Cox et al, “Using a Pictorial Representation to Combine Dataflow and Object-Orientation in a Language Independent programming Mechanism”, Proceedings International Computer Science Conference, pp. 695-704, 1988, is one example of a visual programming environment which has integrated editing and debugging, and in which operations are represented pictorially as nodes of an hierarchical dataflow. Sets of windows can be opened to explore different levels of detail within a program and errors are responded to by opening a window containing the operation in question, flashing the relevant icon and generating an explanatory message.
To enable debugging of an hierarchical program, PROGRAPH 2 and other known visual programming tools rely on access to the program's execution stack to monitor execution of the program and hence to indicate the hierarchical structure and locations within it. A program's execution stack is the data area or buffer of the data processing apparatus on which the program is executing which is used for storing context information for the sequence of invocations for operations that are performed during execution of the program. Storing such context information during program execution is essential for successful execution of an hierarchical (or nested) program—to enable a program which jumps to a subroutine to return to the correct point in the program after executing the subroutine. The reliance of known debuggers on the execution stack is because an hierarchical program is typically “flattened” into a linear flow for execution, such that the context within the hierarchical structure of a particular point in a program is not apparent from the executing program itself (subroutines appear as macros within a linear flow). An interpreter within PROGRAPH 2 shows the state of the execution stack in a special window and can illustrate the executing operations via a set of windows showing different levels of the hierarchy. This is fine for typical visual programmers, because their programs are limited to a single system and the program execution stack is available on the same system as the development and debugging tools. However, such a debugging solution could not be used if the execution stack is inaccessible from the debugger.
Another solution which allows debugging of dataflow diagrams in a unified visual environment without repeatedly switching between build and debug modes of operation is the PANTA development framework from Metrowerks AG (formerly HIWARE AG). The user merely switches between edit and debug windows.
U.S. Pat. No. 6,055,369 discloses a visual programming apparatus for creating a program with a visual user interface made up of multiple screens, including a unit for creating a screen flow comprising a flow of processes which includes a compressed representation of each of the multiple screens. Information can be extracted from the screen flow and used to generate source code. This assists the user in understanding the association between screens and hence designing, creating and testing a visual program.
U.S. Pat. No. 5,850,548 discloses a visual programming environment based on an hierarchical data flow model. Functional code components can be constructed either using conventional programming techniques or using a visual programming language, and these components are then connected together in an hierarchical data flow model for sending messages to and receiving messages from each other. The on-screen representation of the data flow aids debugging.
SUMMARY OF INVENTION
According to a first aspect of the present invention, there is provided a visual execution monitoring tool for monitoring execution of an hierarchical visual program, comprising: one or more components for generating program execution progress reports upon reaching predefined stages of program execution, and for sending the reports to an execution monitoring controller; an execution monitoring controller for maintaining information representing the hierarchical structure of the hierarchical visual program and for mapping received progress report data to the hierarchical program structure; and means for generating, during execution of said visual program, a visual representation of the hierarchical program structure and a visual representation of the position within the hierarchical program structure corresponding to the stage of program execution indicated by the received progress report data.
The execution monitoring controller preferably maintains an updated record of certain parts of the program's execution stack, updated from received execution progress reports. This preferably provides, in a storage area local to a debugger, the context of operation execution required for debugging the program. The sending of reports to the execution monitoring controller may be implemented by, for example, use of TCP/IP socket connections or storing reports on a storage medium which is accessible to both the execution progress report generator components and the execution monitoring controller, or an alternative.
According to the invention, the structure of an hierarchical visual program can be displayed during test execution to facilitate debugging. This is particularly useful for monitoring execution of an hierarchical program which is executing on a separate system from the execution monitoring controller, since the monitoring controller will not then have access to the hierarchical program's execution stack and it is undesirable to have to rely on accessing a remote system's log records to track execution progress. The invention will also prove useful for monitoring execution of a distributed hierarchical program in which processing components of the program are executable remotely from each other, since no single system's program execution stack would then provide the full context within the program hierarchy.
According to a preferred embodiment of the invention, the visual representation of the hierarchical visual program re

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Monitoring execution of an hierarchical visual program such... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Monitoring execution of an hierarchical visual program such..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Monitoring execution of an hierarchical visual program such... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3337118

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.