Problems, Programs and Information Systems

by Nicholas Ourusoff

Course Description:

    This is an upper-level undergraduate or first-year graduate-level course whose goals are to study principles of program and information systems design, and of problem analysis and decomposition using the thinking of Michael Jackson as the basis of study.

Learning Outcomes:

    As a result of this course, you will learn how to:

Use Jackson Structured Programming (JSP) to design methods
Use JSD to specify information systems
Use problem frames to analyze information system problems

Critically appraise traditional and O-O Analysis and Design Methods

Methods Used:

       Lectures; laboratory exercises; team project and presentation; final examination

CD:

A CD will be available to each participant containing:

  1. Readings: Manuscript, lectures and articles on Jackson methodology
  2. Software: Jackson Workbench, a CASE tool for JSP and JSD

Course Readings (on CD)

    1.       Articles by Michael Jackson

Constructive Methods of Program Design

Problem Analysis and Structure

A Discipline of Description

    2    JSP and JSD: An Introduction to Jackson Software Development (manuscript by Nicholas Ourusoff)

    3.  Problem Frames: Analyzing and Structuring Software Development Problems by Michael Jackson. Addison-Wesley. 2001.

Other On-line Resources & Bibliographies

Michael A. Jackson’s Home Page   http://dspace.dial.pipex.com/jacksonma/

Steve Ferg’s Web Sites on JSP&JSD and Problem Frames   http://home.att.net/%7Estephen_ferg/jsp_and_jsd/index.html

About Michael A. Jackson:

Michael Jackson is a leading thinker in the field of information systems analysis and design. He created the JSP (Jackson Structured Programming) method of program design, which became a government standard in the U.K., and the JSD (Jackson System Development) method of system development. In his recently published Problem Frames (2001), Jackson describes a framework for classifying, describing and decomposing software problems, the analog of solution design patterns in Object-Oriented Analysis and Design.

Jackson’s insights into the structure of programs and problems – his  structuralism- permeate his work. He has come to the conclusion that the task of information systems analysis is to describe the phenomena and domains involved in the problem context, the system requirement, and the specification, and to avoid specifying the solution prematurely.

Schedule of Lectures & Laboratory Work

    Each morning lecture is 2 1/2 hours with a break of 20 minutes. Students will be divided into two groups during the 1 st lecture: Group 1 & Group 2 will meet for an hour of laboratory each afternoon.

 

#

Lecture Topics

Laboratory Group Work

Reading 

1

Introduction to Jackson’s Ideas; Structure Diagrams 

 

IntroToJSPJSD: Chapter 1

2

Elementary Program Design Method (JSP)

Using Jackson WorkBench: JSP Structure Editor

IntroToJSPJSD: Chapter 2

3

Elementary Program Design Method (JSP)

Lab Exercise 1

 

Read-ahead rule

Lab Exercise 2

Constructive Methods of Program Design, 67-71; IntroToJSPJSD: Chapter 3

Group-id Rule

Lab Exercise 3

Constructive Methods of Program Design, 71-74
IntroToJSPJSD: Chapter 4

6

Multiple Read-ahead Rule; Backtracking 

Lab Exercise 4

Constructive Methods of Program Design, 74-83

7

Error Processing

 

IntroToJSPJSD: Chapter 5, 6

 

Structure Clashes

 

Constructive Methods of Program Design, 84-85
IntroToJSPJSD: Chapter 7

9

Program Inversion 

 

IntroToJSPJSD: Chapter 8

10 

Jackson System Development Method (JSD) 

Lab Exercise 5

IntroToJSPJSD: Chapter 11, 12

11

Jackson System Development Method (JSD)

 

A Discipline of Description
Problem Frames: Ch 1& 2; 

12

Introduction to Problem Frames; Context Diagrams; Domain Interfaces; Problem Diagrams 

Lab Exercise 6

A Discipline of Description
Problem Frames:Ch 3&4

13

Basic Problem Classes and Frames 

 

 

14

Frame Concerns and Development Descriptions 

Lab Exercise 7

Problem Analysis and Structure
Problem Frames:Ch 5&6; 

15

Model Domains and Real Worlds 

 

 

Problem Analysis and Structure
Problem Frames: Ch 7&8; 
Java Servlets

16

Decomposition; Composite Frames 

Projects Due

Problem Analysis and Structure
Problem Frames: Ch 9&10

 

Project Presentations

Project Presentations

 


 

Laboratory Exercises:

#

Description


 
 
 
 
 
 
 
 
 
 

Draw Jackson structure diagrams for each of the following: 

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

(ii) 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.

(iii)   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 pseudocode. 

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

2
 

Multiplication Problem. Use Jackson Structured Programming (JSP) to design:

The original multiplication with a title, and column and row labels.

3

The upper-right triangular half of the table instead of the lower-left triangular half; that is, print:

1

2

3

4

5

6

7

8

9

10

 

4

6

8

10

12

14

16

18

20

 

 

9

12

15

18

21

24

27

30

 

 

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

81

90

 

 

 

 

 

 

 

 

 

100

4
 
 

 
 

Census Households Problem: 

You are given a file of census records.  Each record represents a person, and contains a household identifier and the person's gender.
Each record has the format: HouseholdId - 1-3; PersonId - 4-5; GenderCode - 6 ('m'' or 'f')
The file is sorted by PersonId within HouseholdId. Use JSP to produce a report that counts the number of males and females in each household, and at the end gives a summary report with a count of the number of households, total males, total females, and average household size.

Implement the design in Java, using this file , as your input.

Turn in (i) Data structures of inputs/outputs with correspondences (.jsp); (ii) Data structure of basic program (.jsp); (iii) List of operations, how many times each occurs and in what component (text file) ; (iv) Elaborated program structure (.jsp); and (v) Java program

 

5

Design a data structure and program to process an integer defined below:
<integer> :== (<digit><digit>*) | ( <sign><digit><digit>*)
<digit> :== ‘1’|’2’|…|’9’|  
<sign> :== '+' | '-'
Your program should produce output such as the following for the input, a123+

Char         Message

a              integer must start with a sign or digit
+              illegal character in integer body

Assume a blank character terminates the input.

 

Turn in (i) data structure for error processing (.jsp); (iii) elaborated program structure (.jsp); and (iv) Java program

 

 

List of Examination Questions:

A.

Jackson Structured Programming (JSP)

1a

What are the two types of components in simple programs? Give an example of each.

1b

Describe the three composite components in programs.

2

What are the steps in the JSP method?

3

State the read-ahead and group-id rules. Give an example of each.

4

What is a state vector? Give an example.

5

Give an example of how inversion is used to decompose a program with a structure clash.

6

What are some applications (uses) of program inversion?

7

What data is valid and invalid for a program? How does error data differ from invalid data?

8

What is the multiple read-ahead rule? Give an example.

9

What is backtracking? When is backtracking needed? Give an example of a problem requiring backtracking. 

10

What is meant by a 'constructive design' approach?  How does it differ from top-down design?

B.

Jackson System Development (JSD)

1

What is an entity structure diagram? Give an example.

2

What are the steps in Jackson System Development?

3

What is an entity? What are its characteristics? Give an example.

4

What are the two ways in which data can be communicated in JSD?

5

What is an action? What are its characteristics. Give an example.

6

What is a system specification diagram? Give an example.

7

How does the idea of state vector fit into JSD?

8

What is a system implementation diagram? Give an example.

C.

Problem Frames

1

What does Jackson mean when he says that "the problem is not at the interface"? Give an example.

2

What kinds of description are needed to fully state a software problem to be solved?

3

What is a requirement descrption?  a world description? a specification description? a program description? 

4

What is a context diagram? Give an example.

5

What is a domain? Distinguish between machine domain, designed domain, and given domain.

6

What is an interface? Give an example.

7

What is a connection domain? Give an example.

8

Give an example of when the machine is a problem domain.

8

What is a problem diagram? What are its parts? Give an example.

9

Which parts of a problem’s description are optative and which indicative ?

10

What is Jackson’s criticism of top-down functional decomposition? Of Use Case decomposition?

11

What is a subproblem? Give an example.

12

What is a problem frame?

13

What are the five basic problem frames? Give an example of each.

14

What types of phenomena are there?. Give an example of each.

15

List the two categories of phenomena and the three types of domain. Give examples of each.

16

What is a frame diagram? Give a frame diagram for each of the five frame types.

17

What is a frame concern? Give the frame concern for each of the five problem frames.

18

What three descriptions are always needed in problem analysis? Why must they be separate?

19

What is a designation? Give an example. What is a definition? Give an example. What is the difference between a designation and a definition?

20

Why are conceptual entities better treated as processes? Give an example.

21

What is a model domain? In which kind of problem frame is it most useful? Give an example.

22

Discuss the following model concerns: imperfection; time lag; incompleteness; and errors

23

What is a variant problem frame? Give an example.

24

What are some other concerns (besides the frame concern) that must often be addressed in analyzing a problem?

25

Give an example of overrun; initialization; reliability; identities; and completeness concerns.

26

Discuss the decomposition of the package router problem into three subproblems. 

27

Discuss the identities and reliability concerns in the package router problem.

28

What are four basic heuristics used in problem decomposition?

29

What is a composite frame? Give an example.

30

What is meant by a composition concern? Why do composition concerns arise? 

31

What does Jackson say about formal and informal properties in relation to software development?

32

What are Jackson's criticisms of Unified Modeling Language (UML)?

 

Hosted by www.Geocities.ws

1