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

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

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

Saved successfully!

Ooh no, something went wrong!