Tutorial on JSP & JSD

Michael A. Jackson
    Michael A. Jackson is an original thinker in the area of information systems development.  He is the author of "Principles of Program Design" (1975), "Jackson System Development" (1983) and "Software Requirements & Specifications" (1993). He is currently doing research on specifying the long-distance telephone network at AT&T Laboratories.  His thinking about communicating sequential processes is closely related to Hoare's CSP.  In fact, JSD can be expressed in CSP. ["JSD Expressed in CSP" by K.T.Sridhar and C.A.R.Hoare (reprinted in "JSP&JSD: The Jackson Approach to Software Methodology" by John Cameron. IEEE Computer Society Press (2nd edition), 1989)

I.    JSP - Jackson Structured Programming

Key Ideas:
    There is a difference between getting a program to work and getting it right.  A program may work, but may be wrong--it  may be difficult to read, may not model the problem to be solved, may be difficult to maintain.

1.     Flow charts (flow of control) vs structure diagrams (design)
        Design is about structure, about the relation of parts to the whole.
    .   A flow chart examines the dynamic representation of a program:  "What happens next?"
        In Jackson's thinking, the design of a program follows from the static structure of a program's text: "What is the relationship of parts to the whole?"


 2.    Basic program design method (Jackson Structured Programming)

                   Program Design - Good Mult Table

3.    Structure clashes, program decomposition, and inversion

         Program decomposition          Program inversion
         Uses of Inversion
         Significance of Inversion

4.    Optimization

5.    Models not functions          Paddle-boat system
 

II.    JSD is a system development method for developing information systems with a strong time dimension. JSD simulates events dynamically--as they occur in the real world. Systems developed using JSD are always real-time systems.

     JSD Tutorial: Student Loan System

     JSD and Hoare

Summary:
    JSD is an object-based system of development, where the behavior of objects is captured in an entity structure diagram.
 
 

If you have comments or suggestions, email me at nourusof@maine.edu

This page created with Netscape Navigator Gold