Software Engineering for Students A Programming Approach
Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach
Detailed contents ix Answers to self-test questions 65 Further reading 65 6 Modularity 67 6.1 Introduction 67 6.2 Why modularity? 68 6.3 Component types 70 6.4 Component size and complexity 70 6.5 Global data is harmful 73 6.6 Information hiding 74 6.7 Coupling and cohesion 76 6.8 Coupling 77 6.9 Cohesion 79 6.10 Object-oriented programming 82 6.11 Discussion 84 Summary 84 Exercises 85 Answers to self-test questions 85 Further reading 86 7 Structured programming 87 7.1 Introduction 87 7.2 Arguments against goto 89 7.3 Arguments in favor of goto 92 7.4 Selecting control structures 94 7.5 What is structured programming? 96 Summary 98 Exercises 99 Answer to self-test question 100 Further reading 101 8 Functional decomposition 102 8.1 Introduction 102 8.2 Case study 103 8.3 Discussion 107 Summary 109 Exercises 109 Answer to self-test question 110 Further reading 110
x Detailed contents 9 Data flow design 111 9.1 Introduction 111 9.2 Identifying data flows 113 9.3 Creation of a structure chart 115 9.4 Discussion 117 Summary 118 Exercises 119 Answers to self-test questions 120 Further reading 120 10 Data structure design 121 10.1 Introduction 121 10.2 A simple example 122 10.3 Processing input files 126 10.4 Multiple input and output streams 127 10.5 Structure clashes 130 10.6 Discussion 134 Summary 136 Exercises 136 Answers to self-test questions 138 Further reading 138 11 Object-oriented design 139 11.1 Introduction 139 11.2 Design 140 11.3 Looking for reuse 144 11.4 Using the library 145 11.5 Class–responsibility–collaborator cards 145 11.6 Iteration 146 11.7 Discussion 147 Summary 147 Exercises 148 Answers to self-test questions 149 Further reading 149 12 Design patterns 151 12.1 Introduction 151 12.2 Inheritance 152 12.3 Delegation 153
- Page 1 and 2: Software Engineering for Students D
- Page 3 and 4: We work with leading authors to dev
- Page 5 and 6: Pearson Education Limited Edinburgh
- Page 7 and 8: vi Contents Part D ● Verification
- Page 9: viii Detailed contents 3 The feasib
- Page 13 and 14: xii Detailed contents 14.7 Repetiti
- Page 15 and 16: xiv Detailed contents 19.7 Unit tes
- Page 17 and 18: xvi Detailed contents 26 Agile meth
- Page 19 and 20: xviii Detailed contents 32.4 Softwa
- Page 21 and 22: xx Preface Software Engineering and
- Page 23 and 24: xxii Preface are engaged on a proje
- Page 26 and 27: CHAPTER 1 This chapter: ■ reviews
- Page 28 and 29: 1.3 The cost of software production
- Page 30 and 31: 100% 10% 1970 SELF-TEST QUESTION Ha
- Page 32 and 33: Analysis and design 1 /3 Coding 1 /
- Page 34 and 35: SELF-TEST QUESTION 1.7 Maintenance
- Page 36 and 37: 1.8 Reliability 13 in the first pla
- Page 38 and 39: 1.8 Reliability 15 contain a comma
- Page 40 and 41: Ease of maintenance Reliability Con
- Page 42 and 43: Exercises 19 • Exercises These ex
- Page 44 and 45: Further reading 21 Analyses of the
- Page 46 and 47: ■ documentation ■ maintenance
- Page 48 and 49: 2.2 The tasks 25 An important examp
- Page 50 and 51: 2.4 Methodology 27 reality. Like an
- Page 52 and 53: ■ error free ■ fault ■ tested
- Page 54 and 55: 3.2 ● Technical feasibility 3.3 C
- Page 56 and 57: 3.5 Case study 33 The hardware cost
- Page 58 and 59: Answers to self-test questions 3.1
Detailed contents ix<br />
Answers to self-test questions 65<br />
Further reading 65<br />
6 Modularity 67<br />
6.1 Introduction 67<br />
6.2 Why modularity? 68<br />
6.3 Component types 70<br />
6.4 Component size and complexity 70<br />
6.5 Global data is harmful 73<br />
6.6 In<strong>for</strong>mation hiding 74<br />
6.7 Coupling and cohesion 76<br />
6.8 Coupling 77<br />
6.9 Cohesion 79<br />
6.10 Object-oriented programming 82<br />
6.11 Discussion 84<br />
Summary 84<br />
Exercises 85<br />
Answers to self-test questions 85<br />
Further reading 86<br />
7 Structured programming 87<br />
7.1 Introduction 87<br />
7.2 Arguments against goto 89<br />
7.3 Arguments in favor of goto 92<br />
7.4 Selecting control structures 94<br />
7.5 What is structured programming? 96<br />
Summary 98<br />
Exercises 99<br />
Answer to self-test question 100<br />
Further reading 101<br />
8 Functional decomposition 102<br />
8.1 Introduction 102<br />
8.2 Case study 103<br />
8.3 Discussion 107<br />
Summary 109<br />
Exercises 109<br />
Answer to self-test question 110<br />
Further reading 110