Jackson Structures

Jackson Structures (from Jackson Structured Programming)are a neat diagrammtic way of showing sequence, optionality and iteration of data items and processes.

The structures are read from top to bottom and left to right.

Iteration is denoted by an asterisk and optionality by an "o"

Its hard to show it in a textual editor.

                                  ---MAIN PROCESS---
                                  |        |       |     
                                  |        |       |
                               Proc1    Proc2     Proc3
                                 |               |    |
                            ----repeat*--    opt1(0)  opt2(0)
                            |     |     |
                          step1 step2 step3

Which describes entry into the Main Process. The first thing to be executed is Proc1. Which contains a repeat loop (zero, once or many times). The loop contains step1, step2, step3 When the repeat loop is completed Proc3 is executed. Following Proc3 either opt1 or opt2 is executed.

There are some rules to be followed: All boxes hanging from a parent must be of the same type. All iteration boxes must have a sequence or a selection box immediately above them. All selection boxes must have a structured box (neither iteration or selection) above them.

It is possible to quit from one part of the structure and resume in another, but often it is better to rework the diagram to avoid these!

I am sure there are others out there who are more familiar with this notation so please update this page as you see fit.

SSADM makes great use of Jackson structures for describing processing, interfaces and entity life histories (state transition type diagrams in UML).

Have a look at this which may help more than the above. http://www.his.se/english/university/contact/staff/henrik-engstrom/jsp-editor/ (updated link based on research from WaybackMachine)


(That link is dead, but I don't know where the good one is.)

Here's what's on wikipedia: http://en.wikipedia.org/wiki/Jackson_Structured_Programming

-- JonathanMitchem


EditText of this page (last edited January 14, 2013) or FindPage with title or text search