march 15, 2004cs 509 - wpi1 cs 509 design of software systems lecture #8 monday, march 15, 2004

26
March 15, 2004 CS 509 - WPI 1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

Upload: beverly-burke

Post on 18-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 1

CS 509Design of Software Systems

Lecture #8Monday, March 15,

2004

Page 2: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 2

Term Project AdministrationQuestionsReview of Chapter 14

JSP exerciseReview of Chapter 15In-class Discussion:

Comparison of design methods

Class Format for Today

Page 3: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 3

Term Project Administration

Return Assignments: Phase 3 – CIS Design Phase 4 – HIS Analysis

Return Quiz #4

How is Phase 5 going?

Page 4: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 4

Questions?

About what was covered last timeFrom the readingAbout the Term ProjectAnything else?

Page 5: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 5

Chapter 14

Jackson Structured Programming

Page 6: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 6

Background of JSP

Developed in early 1970s Widely used Limited, but well-defined applications

Compositional strategyProgram design method

Single sequential process Well-defined input and output data Pipe-and-filter architectural style

Page 7: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 7

Representation Form

Model sequence of elements in I/O streams

Single diagrammatical form: Structure Diagram can be used to represent:

• Structure of data objects• Structure of functional program behavior

Review Figures 14.1 & 14.2, pages 291-292 What are elements in diagrams? What do they represent?

Page 8: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 8

The JSP Process

5 principal steps performed in sequence (with possible iterations between steps)

1. Structure Diagram to describe each I/O stream2. Merge to form program Structure Diagram3. List operations that need to be performed

• Allocate each op to an element in the program SD

4. Convert program to text (pseudocode) without specific conditions

5. Add conditions for each iteration & selection

Page 9: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 9

About the JSP Process

Problems encountered in step 3 likely indicate errors in structure produced by step 2 Verification procedure helps to ensure that

structures in step 2 are consistent with step 1Single diagrammatical form, but used for

different purposes, different interpretations Step 2 transforms static data model to dynamic

(time-ordered) sequence of program actions

Page 10: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 10

JSP Heuristics

Guidelines for handling certain types of ‘standard’ problems that can arise Read-ahead Backtracking Structure clashes:

• Ordering clash, Boundary clash, Multithreading clash

Examples of these ‘standard’ problems?What guidelines are given to handle

them? What is an ‘inverted’ program?

Page 11: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 11

JSP Exercise (14.4, page 313)

Follow through the first 3 steps of the JSP method to design a program that will control a supermarket register: The program accepts input from a bar-

code reader and the keys of the register to read the details of each item and the number of items

The register should print out the details of each transaction and should also print the final total price when the ‘total’ key is pressed

Page 12: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 12

Chapter 15

Jackson System Development

Page 13: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 13

Background

‘Second generation’ design method developed in 1980’s, based on JSP Larger scale of application, though still

predominantly intended for ‘data processing’• Applies to problems where time-ordering of

actions is important, and to client-server systems

Compositional strategy, based on ‘long-running’ virtual processes

Evolved with organizational refinements and to incorporate accumulated experience

Page 14: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 14

The JSD Model

Described in terms of 3 stages:1. Modeling stage2. Network stage3. Implementation (physical design)

stage See Figure 15.1, page 317

Page 15: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 15

JSD Representation FormsThe Entity-Structure Diagram (ESD)

An adaptation (different interpretation) of the Structure Diagram seen in the last chapter• Adopt a different viewpoint of the system model

Describes the evolution of an entity over time• An entity is an active element identified through

operations of the modeling process Describes the behavior of sequential

processesSee Figure 15.2, page 318

Page 16: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 16

ESD Generic FormOne diagram for each entity of importanceDiagram shows:

Creation of entity in the model• Point where entity becomes interesting to the

model Actions performed by entity while in existence

• What does it do & when (time-ordered sequence) Deletion of entity from the model

• Point where entity ceases to be of interest to the model

2nd example: Figure 15.4, page 320

Page 17: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 17

JSD Forms ContinuedSystem Specification Diagram (SSD)

Network diagram that identifies interactions between entities that make up the model

Mechanisms for inter-process communication: Data-flow stream – messages passed

asynchronously• Sender never blocked (infinite buffer capacity)• Receiver blocked if read requested from empty buffer

State vector – describes local state of a process at a given time (may contain indeterminacy)

Page 18: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 18

More on SSD

For multiple input streams, distinguish between ‘rough-merge’ and distinct See Figure 15.7, page 321, parts (a)

and (b)Review example SSD: Figure 15.8,

p. 322 What are elements in the diagram? What does each represent?

Page 19: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 19

The JSD Process

Several versions to consider: Original Jackson presentation (1983) Initial revision by Cameron (1986) Later revision by Sutcliffe and

Cameron (1988)See Figures 15.9, 15.10, and 15.11

Pages 323 – 324 What are the differences?

Page 20: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 20

The Modeling StageLoosely corresponds to an analysis stageBuilds a black box model of the problem,

rather than considering the solutionIdentify entities from requirements

Attributes, actions and time-ordering of actions Verbs identify actions, nouns are for entities Some entities are outside the model boundaries

Figure 15.12, p. 326 shows example model

Page 21: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 21

The Network Stage

Link entities defined in first stepBegin construction of model of whole

systemProduce combination of SSDs and ESDsIdentify the input that triggers each

action of an entity that has been identified: Internal or external event Spurious events that should be ignored

See Figure 15.13, page 327

Page 22: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 22

Elaboration Phase

Add extra processes to the network to perform system-related tasks

2 individual transformation steps: Interactive function step Information function step

What’s the difference between these 2?

See Figures 15.14 & 15.15, pages 329, 331

Final step: System timing

Page 23: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 23

The Implementation Stage

This stage is not about writing codeRather, mapping the abstract

model onto a ‘physical system’: Determining the forms to realize

components of the design model, such as state vectors and processes, and

How the physical processes are mapped onto one or more processors

Page 24: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 24

JSD Heuristics

2 similar to JSP, one different: Program Inversion State vector separation Backtracking

How do these relate to the JSP heuristics?

What guidelines are given to handle these?

Page 25: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 25

In-class Discussion

Compare and contrast design methods we have reviewed so far: SSA/SD JSP JSD

What are benefits/weaknesses of each?

Page 26: March 15, 2004CS 509 - WPI1 CS 509 Design of Software Systems Lecture #8 Monday, March 15, 2004

March 15, 2004 CS 509 - WPI 26

For Next Time

Read Chapter 17 in BudgenLast QuizPrepare for brief design reviewsWe will discuss presentations for

last class