Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

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

Detailed contents xi<br />

12.4 Singleton 154<br />

12.5 Factory method 155<br />

12.6 Façade 156<br />

12.7 Immutable 157<br />

12.8 Model, view controller (observer, observable) 157<br />

12.9 Mediator 158<br />

12.10 Pipe and Filter 158<br />

12.11 Proxy 159<br />

12.12 Layers 159<br />

12.13 Blob – an anti-pattern 161<br />

12.14 Discussion 161<br />

Summary 162<br />

Exercises 163<br />

Answers to self-test questions 163<br />

Further reading 164<br />

13 Refactoring 165<br />

13.1 Introduction 165<br />

13.2 Encapsulate data 166<br />

13.3 Move method 167<br />

13.4 Move data 167<br />

13.5 Extract class 167<br />

13.6 Inline class 167<br />

13.7 Identify composition or inheritance 168<br />

13.8 Use polymorphism 170<br />

13.9 Discussion 171<br />

Summary 171<br />

Exercises 172<br />

Answers to self-test questions 172<br />

Part C ● <strong>Programming</strong> languages 173<br />

14 The basics 175<br />

14.1 Introduction 175<br />

14.2 Classifying programming languages and features 176<br />

14.3 Design principles 176<br />

14.4 Language syntax 178<br />

14.5 Control structures 179<br />

14.6 Selection 180

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!