Software Engineering for Students A Programming Approach
Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach
Exercises 119 During the second stage of data flow design, the data flow diagram is transformed into a structure chart, showing the constituent components of the software and their interrelationships, by: 1. identifying the most important or central transformation in the data flow diagram 2. lifting this transformation into the air, leaving the others dangling beneath it. This creates a hierarchical or tree-shaped structure for the software. Arguably data flow design leads to the most modular structure for the software, since the design is based on “data coupling” (the best type) between the components. • Exercises 9.1 Complete the development of the patient monitoring system described in this chapter. 9.2 Apply data flow design to devising an architectural structure for each of the systems described in Appendix A. 9.3 What characteristics should a good software design method possess? Does data flow design exhibit them? 9.4 Suggest the facilities of a software tool that could assist in using data flow design. 9.5 Compare and contrast the principles behind the following design methods: ■ functional decomposition ■ data structure design ■ data flow design ■ object-oriented design. 9.6 Evaluate data flow design under the following headings: ■ special features and strengths. ■ weaknesses ■ philosophy/perspective? ■ systematic? ■ appropriate applications ■ inappropriate applications ■ is the method top-down, bottom-up or something else?
120 Chapter 9 ■ Data flow design ■ good for large-scale design? ■ good for small-scale design? 9.7 Suggest features for a software toolkit to assist in using data flow design. Answers to self-test questions 9.1 Arrow from the convert bubble to a log bubble. Then arrow from this bubble to a log file data store. 9.2 Line downwards from the check component to a component labeled log. • Further reading Data flow design is described in: E. Yourdon and Larry L. Constantine, Structured Design, Prentice Hall, 1979.
- Page 92 and 93: 6.2 Why modularity? 69 observed fau
- Page 94 and 95: Figure 6.1 Two alternative software
- Page 96 and 97: ■ a simple program is more likely
- Page 98 and 99: 6.6 Information hiding 75 The class
- Page 100 and 101: 6.8 ● Coupling 6.8 Coupling 77 We
- Page 102 and 103: 6. Method calls with parameters tha
- Page 104 and 105: 3. Temporal cohesion 6.9 Cohesion 8
- Page 106 and 107: > } public void setY(int newY) { y
- Page 108 and 109: • Exercises 6.1 What is modularit
- Page 110 and 111: CHAPTER 7 Structured programming Th
- Page 112 and 113: 7.2 Arguments against goto 89 If we
- Page 114 and 115: ■ if-then-else ■ while-do or re
- Page 116 and 117: 7.3 Arguments in favor of goto 93 l
- Page 118 and 119: 7.4 Selecting control structures 95
- Page 120 and 121: while do if endif then else endWhil
- Page 122 and 123: • Exercises 7.1 Review the argume
- Page 124 and 125: count = 0 loop: count = count + 1 i
- Page 126 and 127: > 8.2 Case study 103 A statement th
- Page 128 and 129: start button event create defender
- Page 130 and 131: 8.3 ● Discussion Abstraction One
- Page 132 and 133: Exercises 109 skill. On the other h
- Page 134 and 135: CHAPTER 9 This chapter explains: 9.
- Page 136 and 137: 9.2 Identifying data flows 113 Noti
- Page 138 and 139: 9.3 Creation of a structure chart 1
- Page 140 and 141: SELF-TEST QUESTION 9.4 Discussion 1
- Page 144 and 145: CHAPTER 10 This chapter explains:
- Page 146 and 147: In English, this reads: 10.2 A simp
- Page 148 and 149: 10.2 A simple example 125 Now comes
- Page 150 and 151: 10.4 Multiple input and output stre
- Page 152 and 153: Process header Process issue 10.4 M
- Page 154 and 155: 10.5 Structure clashes 131 As seen
- Page 156 and 157: 10.5 Structure clashes 133 Let us r
- Page 158 and 159: 10.6 Discussion 135 ■ teachable -
- Page 160 and 161: Exercises 137 2. a control block, s
- Page 162 and 163: CHAPTER 11 Object-oriented design T
- Page 164 and 165: Figure 11.1 The cyberspace invaders
- Page 166 and 167: SELF-TEST QUESTION 11.1 Derive info
- Page 168 and 169: 11.5 Class-responsibility-collabora
- Page 170 and 171: 11.7 ● Discussion Summary 147 OOD
- Page 172 and 173: 11.11 Compare and contrast the prin
- Page 174 and 175: CHAPTER 12 This chapter explains: 1
- Page 176 and 177: 12.3 Delegation 153 The concepts of
- Page 178 and 179: 12.5 Factory method 155 The followi
- Page 180 and 181: 12.8 Model, view controller (observ
- Page 182 and 183: Figure 12.4 Pipe and Filter pattern
- Page 184 and 185: Figure 12.6 Layers in a distributed
- Page 186 and 187: Answers to self-test questions 163
- Page 188 and 189: CHAPTER 13 Refactoring This chapter
- Page 190 and 191: 13.3 ● Move Method 13.6 Inline Cl
Exercises 119<br />
During the second stage of data flow design, the data flow diagram is trans<strong>for</strong>med<br />
into a structure chart, showing the constituent components of the software and<br />
their interrelationships, by:<br />
1. identifying the most important or central trans<strong>for</strong>mation in the data flow diagram<br />
2. lifting this trans<strong>for</strong>mation into the air, leaving the others dangling beneath it.<br />
This creates a hierarchical or tree-shaped structure <strong>for</strong> the software.<br />
Arguably data flow design leads to the most modular structure <strong>for</strong> the software, since<br />
the design is based on “data coupling” (the best type) between the components.<br />
•<br />
Exercises<br />
9.1 Complete the development of the patient monitoring system described in this chapter.<br />
9.2 Apply data flow design to devising an architectural structure <strong>for</strong> each of the systems<br />
described in Appendix A.<br />
9.3 What characteristics should a good software design method possess? Does data flow<br />
design exhibit them?<br />
9.4 Suggest the facilities of a software tool that could assist in using data flow design.<br />
9.5 Compare and contrast the principles behind the following design methods:<br />
■ functional decomposition<br />
■ data structure design<br />
■ data flow design<br />
■ object-oriented design.<br />
9.6 Evaluate data flow design under the following headings:<br />
■ special features and strengths.<br />
■ weaknesses<br />
■ philosophy/perspective?<br />
■ systematic?<br />
■ appropriate applications<br />
■ inappropriate applications<br />
■ is the method top-down, bottom-up or something else?