NassiShneiderman plugin

From Code::Blocks
NassiShneiderman
Generic-plugin.png
Developer(s): Daniel Anselmi
Maintainer(s):
Version: 0.1

NassiShneiderman plugin allows the creation of Nassi Shneiderman diagrams within Code::Blocks.


Create a diagram

There are two possibilities to create a diagram.

  1. To create an empty diagram select the menu options "File"->"New"->"Nassi Shneiderman diagram".
  2. The second option is to creates a diagram from C/C++ source code.

In an editor window highlight some code to create the diagram from. For example the body of a function/method from the opening braces till the closing brace. Then right click the selection and choose "Nassi Shneiderman"->"Create diagram". NassiShneidermanCreate1.png
You should get a new diagram:
NassiShneidermanCreate2.png

The parser has some limitations:

  • Comments can not be at the end of a branch.
  • From a definition of a function it is only able to parse the body, not the declaration.
  • For sure, you will find a lot more...


Editing structograms

What to do with a diagram?

You can do a lot of things with a structogram:

  1. Store for later usage. The diagram can be stored "File"->"Save file" or "File"->"Save file as...".
  2. It is possible to export to different formats "File"->"Export"->
    • "Export source..." to save as C source file.
    • "StrukTeX" to use in your documentation in LaTeX.
    • "PNG" or "PS" and eventually "SVG" to have a diagram in an image format known by a lot of other tools.
  3. Directly insert the code into the editor: Open or create a diagram. Back in an editor window right click and choose "Nassi Shneiderman"->"insert from xy" (You get a list with all open diagrams here).
  4. Drag'n'Drop the diagram (or parts of it) to other tools. For example to OpenOffice Writer to get an image in your documentation.

If the chosen diagram has a selection, the export or code-generation takes only this part of the diagram.


Extensions

The NassiShneiderman plugin supports some extensions of Nassi-Shneiderman diagrams:

  1. break has a special brick with an "right-arrow"
  2. continue has a special brick with a "left-arrow"
  3. To be able to create diagrams from c/c++ switch statements, the selection does not implicitly break before a case. The different cases are vertically aligned.