All Topics  
Nassi-Shneiderman diagram

 

   Email Print
   Bookmark   Link






 

Nassi-Shneiderman diagram



 
 
A Nassi-Schneiderman diagram (or NSD) is a graphical design representation for structured programming
Structured programming

Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. It is most famous for removing or reducing reliance on the GOTO Statement ....
. Developed in 1972 by Isaac Nassi
Isaac Nassi

Isaac "Ike" Nassi is an Executive Vice President at SAP AG. He holds responsibility for SAP Research for the Americas and China and is based out of SAP's Palo Alto location....
 and Ben Shneiderman
Ben Shneiderman

Ben Shneiderman is an United States Computer science, and professor for Computer Science at the Human-Computer Interaction Laboratory at the University of Maryland, College Park....
, these diagrams are also called structograms, as they show a program's structures.

owing a top-down design, the problem at hand is reduced into smaller and smaller subproblems, until only simple statements and control flow
Control flow

In computer science control flow refers to the order in which the individual statement , Instruction or function calls of an imperative programming or functional programming computer program are execution or evaluated....
 constructs remain.






Discussion
Ask a question about 'Nassi-Shneiderman diagram'
Start a new discussion about 'Nassi-Shneiderman diagram'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A Nassi-Schneiderman diagram (or NSD) is a graphical design representation for structured programming
Structured programming

Structured programming can be seen as a subset or subdiscipline of procedural programming, one of the major programming paradigms. It is most famous for removing or reducing reliance on the GOTO Statement ....
.
Multiple Branching
Developed in 1972 by Isaac Nassi
Isaac Nassi

Isaac "Ike" Nassi is an Executive Vice President at SAP AG. He holds responsibility for SAP Research for the Americas and China and is based out of SAP's Palo Alto location....
 and Ben Shneiderman
Ben Shneiderman

Ben Shneiderman is an United States Computer science, and professor for Computer Science at the Human-Computer Interaction Laboratory at the University of Maryland, College Park....
, these diagrams are also called structograms, as they show a program's structures.

Overview

Following a top-down design, the problem at hand is reduced into smaller and smaller subproblems, until only simple statements and control flow
Control flow

In computer science control flow refers to the order in which the individual statement , Instruction or function calls of an imperative programming or functional programming computer program are execution or evaluated....
 constructs remain. Nassi-Schneiderman diagrams reflect this top-down decomposition in a straight-forward way, using nested boxes to represent subproblems. Consistent with the philosophy of structured programming, Nassi-Shneiderman diagrams have no representation for a GOTO
GOTO

GOTO is a statement found in many computer programming languages. It is a combination of the English words wiktionary:go and wiktionary:to....
 statement.

Nassi-Schneiderman diagrams are only rarely used. Their abstraction level is close to structured program code and modifications require the whole diagram to be redrawn.

Nassi-Schneiderman diagrams are (almost) isomorphic with flowchart
Flowchart

A flowchart is common type of chart, that represents an algorithm or Process , showing the steps as boxes of various kinds, and their order by connecting these with arrows....
s. Everything you can represent with a Nassi-Shneiderman diagram you can also represent with a flowchart. For flowcharts of programs, just about everything you can represent with a flowchart you can also represent with a Nassi-Schneiderman diagram. The exceptions are things like goto
GOTO

GOTO is a statement found in many computer programming languages. It is a combination of the English words wiktionary:go and wiktionary:to....
, and the C programming language
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
 loop break and continue statements.

Diagrams

Process Blocks: the process block represents the simplest of steps and requires no analyses. When a process block is encountered the action inside the block is performed and we move onto the next block.

Process Block2
Branching Blocks: there are two types of branching blocks. First is the simple True/False or Yes/No branching block which offers the program two paths to take depending on whether or not a condition has been fulfilled. These blocks can be used as a looping procedure stopping the program from continuing until a condition has been fulfilled.

Two Way Branch
The second type of branching block is a multiple branching block. This block is used when a select case is needed in a program. The block usually contains a question or select case. The block provides the program with an array of choices and is often used in conjunction with sub process blocks to save space.

Multiple Branching
Testing Loops: this block allows the program to loop one or a set of process until a particular condition is fulfilled. The process blocks covered by each loop are subset with a side-bar extending out from the condition.

There are two main types of testing loops, test first and test last blocks. The only difference between the two is the order in which the steps involved are completed. In the test first situation, when the program encounters the block it tests to see if the condition is fulfilled, then, if it is not completes the process blocks and then loops back. The test is performed again and, if the condition is still unfulfilled, the processes again. If at any stage the condition is fulfilled the program skips the process blocks and continues onto the next block.

Test First
The test last block is simply reversed, the process blocks are completed before the test is performed. The test last loop allows for the process blocks to be performed at least once before the first test.

Test Last

Further reading

  • Nassi, I.; Shneiderman, B.: , SIGPLAN
    SIGPLAN

    SIGPLAN is the Association for Computing Machinery's Special Interest Group on programming languages....
     Notices XII, August 1973.


External links

  • , by Ben Shneiderman


Software

  • simple editor for creating Nassi-Shneiderman diagrams (GPL
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....
    )
  • – Nassi-Shneiderman diagram-editor for Linux
    Linux

    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
    , Mac OS X
    Mac OS X

    Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
     & Microsoft Windows
    Microsoft Windows

    Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
    , released under the GNU General Public License
    GNU General Public License

    The GNU General Public License is a widely used free software license, originally written by Richard Stallman for the GNU project. The GPL is the most popular and well-known example of the type of strong copyleft license that requires derived works to be available under the same copyleft....