views:

106

answers:

2

I am looking for tools to aid in the visualization of custom business logic used to perform document generation. The logic is expressed as an object-oriented model consisting of a graph of decision points and rendering actions. The basic building blocks are relatively simple, but the overall decision tree is quite large and complex making it hard to visualize.

We are looking for suggestions on tools and/or graphing libraries that can be used to visually represent the decision tree and rendering actions. The choice of programming language is not critical (Delphi, C#, Java would be great) and we are able to easily extract the logic to XML or other data format as required. The preference is for something that will run under Windows and enable printing or PDF output of portions of the resulting diagram.

Requirements

  • Decision points can be simple yes/no or multiple outputs e.g. (yes, not, sometimes, always etc).

  • The decision points are linked to external business logic that exist elsewhere in the runtime environment. We need to label the graph node with the type of decision point (e.g. boolean) and string describing the business rule being used.

  • Rendering actions are linked to named content objects with optional merge variables and inline rendering logic. At a minimum we need to be able to label nodes with the name of the element and ideally also information about variables used to render the content.

We have considered building something around Visio or WinGraphViz, or perhaps using a third-party graphing/flowchart library. Any ideas or pointers would be greatly appreciated.

+2  A: 

The closest thing I have found to what you describe is Flowchart4C#, although it looks like it hasn't been updated in awhile. This transforms c# code directly into logic diagrams (maybe not what you want), and supports export to Visio.

I used to like AllClear a lot. It makes very nice looking flowcharts and diagrams using a simple scripting language, with page connectors and six different styles for arranging the shapes.

Robert Harvey
A: 

Robert, thanks for your suggestion. After some more digging I found WinGraphViz and DotXML to be the closest match to my requirements. I was previously unaware of the "record" element which allows me to render decisions in the logic flow in a clean and legible manner.

David Taylor