Software Engineering for Students A Programming Approach
Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach
Detailed contents xi 12.4 Singleton 154 12.5 Factory method 155 12.6 Façade 156 12.7 Immutable 157 12.8 Model, view controller (observer, observable) 157 12.9 Mediator 158 12.10 Pipe and Filter 158 12.11 Proxy 159 12.12 Layers 159 12.13 Blob – an anti-pattern 161 12.14 Discussion 161 Summary 162 Exercises 163 Answers to self-test questions 163 Further reading 164 13 Refactoring 165 13.1 Introduction 165 13.2 Encapsulate data 166 13.3 Move method 167 13.4 Move data 167 13.5 Extract class 167 13.6 Inline class 167 13.7 Identify composition or inheritance 168 13.8 Use polymorphism 170 13.9 Discussion 171 Summary 171 Exercises 172 Answers to self-test questions 172 Part C ● Programming languages 173 14 The basics 175 14.1 Introduction 175 14.2 Classifying programming languages and features 176 14.3 Design principles 176 14.4 Language syntax 178 14.5 Control structures 179 14.6 Selection 180
xii Detailed contents 14.7 Repetition 183 14.8 Methods 186 14.9 Parameter-passing mechanisms 188 14.10 Primitive data types 190 14.11 Data typing 190 14.12 Strong versus weak typing 191 14.13 User-defined data types (enumerations) 193 14.14 Arrays 194 14.15 Records (structures) 195 Summary 196 Exercises 197 Answers to self-test questions 198 Further reading 199 15 Object-oriented programming 200 15.1 Introduction 200 15.2 Encapsulation 200 15.3 Library classes 206 15.4 Inheritance 207 15.5 Polymorphism 209 15.6 Single versus multiple inheritance 212 15.7 Generics 212 15.8 Dynamic data structures and pointers 213 15.9 Garbage collection 215 Summary 217 Exercises 217 Answers to self-test questions 218 Further reading 220 16 Programming in the large 221 16.1 Introduction 221 16.2 Packages 223 16.3 Using packages 224 16.4 Creating packages 226 16.5 Scoping in large programs 226 16.6 Interfaces 227 16.7 Interfaces and interoperability 229 16.8 Multiple interfaces 230 16.9 Separate compilation 232
- 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 and 10: viii Detailed contents 3 The feasib
- Page 11: x Detailed contents 9 Data flow des
- 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
- Page 60 and 61: 4.2 The concept of a requirement 37
xii Detailed contents<br />
14.7 Repetition 183<br />
14.8 Methods 186<br />
14.9 Parameter-passing mechanisms 188<br />
14.10 Primitive data types 190<br />
14.11 Data typing 190<br />
14.12 Strong versus weak typing 191<br />
14.13 User-defined data types (enumerations) 193<br />
14.14 Arrays 194<br />
14.15 Records (structures) 195<br />
Summary 196<br />
Exercises 197<br />
Answers to self-test questions 198<br />
Further reading 199<br />
15 Object-oriented programming 200<br />
15.1 Introduction 200<br />
15.2 Encapsulation 200<br />
15.3 Library classes 206<br />
15.4 Inheritance 207<br />
15.5 Polymorphism 209<br />
15.6 Single versus multiple inheritance 212<br />
15.7 Generics 212<br />
15.8 Dynamic data structures and pointers 213<br />
15.9 Garbage collection 215<br />
Summary 217<br />
Exercises 217<br />
Answers to self-test questions 218<br />
Further reading 220<br />
16 <strong>Programming</strong> in the large 221<br />
16.1 Introduction 221<br />
16.2 Packages 223<br />
16.3 Using packages 224<br />
16.4 Creating packages 226<br />
16.5 Scoping in large programs 226<br />
16.6 Interfaces 227<br />
16.7 Interfaces and interoperability 229<br />
16.8 Multiple interfaces 230<br />
16.9 Separate compilation 232