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

fork 324 formal methods 276, 388, 399 Fortran 176, 177, 179, 240, 394 forward error recovery 244 Free Software Foundation 323 FSF 323 function point 373 functional decomposition 102 functional teams 351 functional testing 269 future 398, 400 game case study, see cyberspace invaders case study Gantt chart 376 garbage collection 215 gender 397, 400 generics 212 get access 203 global data 73, 78 glossary 411 GNU General Public License 323 GNU/HURD 322 GNU/Linux 325 goals of software engineering 17 good enough software 14 goto 87, 89, 92, 180, 185, 249 GPL 323 groups 283 GUI 55 hacking 28, 322, 396 has-a test for composition 170 Haskell 399 HCI, see user interface design heavyweight method 379, 330, 389 help systems 63 history 400 Hoare, C.A.R. 241 human–computer interaction, see user interface design IBM 5, 10, 14 immutable design pattern 157 inception 371 incremental development 314 incremental testing 277 information hiding 74 inheritance 152, 168, 207 inheritance design pattern 152 inheritance refactoring 168 Inline Class refactoring 168 inspection 286 integration testing 272 interfaces 227 interoperability 229 introducing methods 390 invariant 253 investment appraisal 31 is-a test for inheritance 170 iteration 146, 301, 306, 308, 338, 341 Jacobson, I. 337 Java 176, 200, 215, 224, 254, 393 JSP, see data structure design Layer design pattern 159, 316 library 145, 206, 394 library case study 409 lightweight method 330, 379, 389 lines of code, see LOC LISP 396, 399 LOC 358 maintenance 11 managing people 378 McCabe complexity measure 359 mean time to failure, see MTTF mediator design pattern 158 memory corruption 215 memory leak 215 mental model 56 menu 54 methodology 27 methods 186 metrics 357, 358, 386 Michael Jackson, see data structure design Microsoft 395 Index 421

422 Index Microsoft Project 376 middle-out implementation 318 milestone 376 millennium bug 13 model, view controller design pattern 157 modularity 67, 68 module interconnection language 227 monolithic testing 277 Move Data refactoring 167 Move Method refactoring 167 MTTF 362 multiple inheritance 212, 230 multiple interfaces 230 Murphy’s law 278 mutation testing 275 MySQL 322 nesting 181 n-version programming 252 object-oriented design, see OOD object-oriented programming, see OOP observer, observable design pattern 157 OO teams, 353 OOD 139 OOP 82, 200 open source development 322 Open Source Movement 323 open-closed principle 83 OpenOffice 322 orthogonality 177 OSM 323 overwork 334 package diagrams 414 packages 223 pair programming 286, 334 paralysis 371 parameters 188 Pascal 393 patient monitoring system case study 113, 229, 410 patterns 151 PDL 103 performance 10, 93 Perl 260, 322 person months 358, 372 Pert 376 pipe and filter design pattern 79, 133, 158 PL/1 177 planning 376 pointers 213 polymorphism 170, 209 polymorphism refactoring 170 portability 11 postcondition 253 precondition 253 primitive data types 190 process improvement 365 process model 23, 26, 27, 372 agile 330 extreme programming 332 incremental 314 open source 322 prototyping, 303 spiral, 297 unified process 337 waterfall, 291 productivity 6 profiler 275 program design language 103 program structure chart 122 programming in the large 221 programming language 175, 393 project management 345, 370 project teams 351 properties 203, 205 prototyping 60, 303 evolutionary 307 rapid 308 throwaway 305 proximity 134 proxy design pattern 159 pseudo-code 103, 125 Python 259

422 Index<br />

Microsoft Project 376<br />

middle-out implementation 318<br />

milestone 376<br />

millennium bug 13<br />

model, view controller design<br />

pattern 157<br />

modularity 67, 68<br />

module interconnection language 227<br />

monolithic testing 277<br />

Move Data refactoring 167<br />

Move Method refactoring 167<br />

MTTF 362<br />

multiple inheritance 212, 230<br />

multiple interfaces 230<br />

Murphy’s law 278<br />

mutation testing 275<br />

MySQL 322<br />

nesting 181<br />

n-version programming 252<br />

object-oriented design, see OOD<br />

object-oriented programming,<br />

see OOP<br />

observer, observable design<br />

pattern 157<br />

OO teams, 353<br />

OOD 139<br />

OOP 82, 200<br />

open source development 322<br />

Open Source Movement 323<br />

open-closed principle 83<br />

OpenOffice 322<br />

orthogonality 177<br />

OSM 323<br />

overwork 334<br />

package diagrams 414<br />

packages 223<br />

pair programming 286, 334<br />

paralysis 371<br />

parameters 188<br />

Pascal 393<br />

patient monitoring system case study<br />

113, 229, 410<br />

patterns 151<br />

PDL 103<br />

per<strong>for</strong>mance 10, 93<br />

Perl 260, 322<br />

person months 358, 372<br />

Pert 376<br />

pipe and filter design pattern 79,<br />

133, 158<br />

PL/1 177<br />

planning 376<br />

pointers 213<br />

polymorphism 170, 209<br />

polymorphism refactoring 170<br />

portability 11<br />

postcondition 253<br />

precondition 253<br />

primitive data types 190<br />

process improvement 365<br />

process model 23, 26, 27, 372<br />

agile 330<br />

extreme programming 332<br />

incremental 314<br />

open source 322<br />

prototyping, 303<br />

spiral, 297<br />

unified process 337<br />

waterfall, 291<br />

productivity 6<br />

profiler 275<br />

program design language 103<br />

program structure chart 122<br />

programming in the large 221<br />

programming language 175, 393<br />

project management 345, 370<br />

project teams 351<br />

properties 203, 205<br />

prototyping 60, 303<br />

evolutionary 307<br />

rapid 308<br />

throwaway 305<br />

proximity 134<br />

proxy design pattern 159<br />

pseudo-code 103, 125<br />

Python 259

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

Saved successfully!

Ooh no, something went wrong!