Intro to jackson software engineering
Sponsored Links
This presentation is the property of its rightful owner.
1 / 13

Intro to Jackson Software Engineering PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

Intro to Jackson Software Engineering. Oct 6, 2005. Course Preliminaries. Course Home Page: Use of Jackson Workbench (CASE tool); download JWB folder from Home Page Exercise(s) each class – please do them and hand them at the start of the next class.

Download Presentation

Intro to Jackson Software Engineering

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Intro to Jackson Software Engineering

Oct 6, 2005

Course Preliminaries

  • Course Home Page:

  • Use of Jackson Workbench (CASE tool); download JWB folder from Home Page

  • Exercise(s) each class – please do them and hand them at the start of the next class

Reference materials

Jackson’s Home Page

Steve Ferg’s Web Site

Nick Ourusoff’s on-line text

Book on JSP (translated into Russian) at Petrozavodsk State University Library by

D. King, “Effective methods of Program Design”

Jackson’s Methods

  • Jackson Structured Programming (JSP) (1966 -1975)

    • program design method for class of simple programs

    • Principles of Program Design (1975)

  • Jackson System Development (JSD) (early 1970’s 1984)

    • systems development method for dynamic systems

    • System Development (1983)

  • Problem Frames(1984-present)

    • problem analysis and decomposition

    • Software Requirements and Specification (1995)

    • Problem Frames (2000)

      Span the range of software engineering:

    • simple programs  information systems problem description and decomposition

      Selected Papers: Bibliography


  • A constructive method of design

    • we construct a data structure that is the composition of input and output data structures

    • steps are defined and at each step there are guidelines to check correctness of design so far

    • other methods (modular programming, stepwise refinement) do not offer a step-by-step decision procedure

      • modular program offers no decision procedure for choice of modules

      • step-wise refinement offers no decision procedure on how to decompose; moreover, the biggest decomposition is made at the start, before you know the problem

  • Optimization

    • Don’t optimize;

    • If you have to, do it later

      Optimization is often unnecessary; and it distorts the underlying structure

  • Flow charts versus structure diagrams

    • flow charts have been used to design programs

    • a flow chart shows the flow of control, “What happens next?”, a dynamic view of a program

    • Jackson tree diagram shows the static view of the program structure

Program Design

  • Design is about structure – relation of parts to the whole

  • Programs consist of:

    • elementary components – operations (statements) in a programming language

    • composite components

      • sequence

      • selection

      • iteration


(a) sequence – a sequence is a composite component that has two or more parts occurring once each, in order.


(b) A selection is a composite component that consists of two or more parts, only one of which is selected, once.


(iv) An iteration is a composite component that consists of one part that repeats zero or more times.

Example 1

A simple book

A simple book consists of pages; a page consists of lines of text; a line consists of words.

Example 2

A more complicated book

A book consists of a front and back cover with pages in between. Each page consists of lines of text; each line consists of words. At the bottom of each page is a page number.


Draw Jackson structure diagrams for each of the following: 

  • "For lunch you may have either soup and crackers or a salad. You may have as many servings of either as you wish." 

  • A conversation consists of messages, alternately from the user (a "user-message") and from the system (a "system-message"). The conversation always begins with a user-message and always ends with a system-message.

  • For each of the regular expressions below, interpret the regular expression as a program.  Draw the corresponding structure diagram and give the equivalent Jackson structure text and pseudo code. 

    (a)     ((a*|b*)*c)|d  (b)      (a*)*|b|cd

Correctness of design

  • Not every working program is correctly designed

  • Correct design means that

    • program models the real world

    • a correctly designed program is

      • easy to modify (~90% of cost in software development is maintenance)

      • easy to read

  • Login