I learned about them in a Structured Programming course, but never saw them used thereafter either at the analysis phase or for documentation purposes. Not even for highly structured languages like Pascal (Delphi).
Does any of you actually use Nassi-Shneiderman diagrams? If yes, what tools do you use to create/maintain them?
Or have you never heard of them?

  • 6
    Never heard of 'em. Though I'm not formally trained in programming. Commented Sep 15, 2010 at 14:07

8 Answers 8


Heard of Nassi-Shneiderman diagrams, although I don't use them myself.

I can't help posting a link to the rejection letter that Nassi and Shneiderman received from Communications of the ACM when they first proposed the diagram:


  • 2
    Indeed a most brutal rejection letter. Wonder what that Gries guy had been smoking?
    – stevenvh
    Commented Sep 15, 2010 at 17:25
  • I think the rejection letter was bashing flow diagrams in general, claiming that structured programming makes them obsolete. To the author, this probably looked like yet another one of those flow-chart thingies.
    – Joey Adams
    Commented Dec 31, 2010 at 23:42

We've never used them.


Yes, I (we) have heard of them. Thanks for asking! :-)

Seriously, we just don't use them. We ususally keep the diagraming to simple flow diagrams which are generally easier to read and understand.

  • But you (or your colleagues) have heard about them?
    – stevenvh
    Commented Sep 15, 2010 at 13:54

I've heard of them and read a few books that used them extensively. I quickly concluded that even assembly language (e.g., MIXAL in Knuth's books) was more understandable. I never had even the slightest urge to draw one (and can't recall anybody's ever having asked me to either).


I have used them. But more often I use some kind of pseudocode when designing an algorithm.

You can write pseudocode with any editor and pen/paper combination. Diagrams are often harder to edit and tend to get messy.

I still use UML diagrams for OO design. Mostly class, but sometimes state transition diagrams for classes with complex state.


I thought they were cool when I came across the notation in the early 80s. But it's so close to normal code, and cumbersome to maintain both the diagrams and the code that I decided just using indented code was close enough for my taste.

  • Indeed, for what the NS diagrams were intended for, pseudo-code is much better and practical. Commented Oct 15, 2010 at 19:43

Yes, I used them some years ago, but in times of UML they appear a little bit old fashioned. In my opinion the Nassi-Shneiderman-Diagram is still a good diagram type to visualize a structured code block, far better than an UML-Activity-Diagram.

On the other side it might be easier to simply have a direct look into the code...

You can find a commercial tool here: http://www.easycode.de/produkte.html?&L=1


When I was first in college, one lesson we had this compare-and-constrast-various-methods-and-diagrams thing. Nassi-Schneiderman was a winner but with certain issues highlighted. Conditionals subdividing the width of the page quickly became impractical, so it was proposed we might use a representation more like that for repetition. Also, the lines and boxes seemed redundant to some degree.

Think about it, and you'll realise that what we were leaning towards was basically indented structured pseudocode, but with some limited use of drawn lines down one side to highlight the indentation - or more accurately to reinforce the pretence that it was a diagram.


Many years ago, when I worked for the US DOT's Transportation System Center, I was given the task of developing a Nassi-Shneiderman editor which was then used to document software designs within the department.

Personally, I never used them. I prefer to look at code.

Not the answer you're looking for? Browse other questions tagged or ask your own question.