Tải bản đầy đủ (.pdf) (7 trang)

Software Engineering For Students: A Programming Approach Part 45 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (84.49 KB, 7 trang )

418 Bibliography
There are several exciting accounts of the personal outlook and work methods of pro-
grammers. They give insights into how programming is actually done. They also con-
tribute to the folklore of programming.
An example of a book on how programmers actually work. In the book, she reports on
interviews with notable programmers: Susan Lammers, Programmers at Work,
Microsoft Press, 1986.
Another really exciting book, which charts the lives of the early programmers: Steven
Levy, Hackers: Heroes of the Computer Revolution, Anchor Books, 1994.
This is a good read if you are interested in how software projects really get done and
what life is like at Microsoft: G. Pascal Zachary, Show-Stopper: The Breakneck Race to
Create Windows NT and the Next Generation at Microsoft, Free Press, 1994.
This book describes the methods used at Microsoft: Michael A. Cusumano and Richard
W. Selby, Microsoft Secrets, Free Press, 1995.
Programmers – their lives and work
BELL_Z05.QXD 1/30/05 4:34 PM Page 418
abstraction 99, 107
acceptance test 251, 332
activity diagrams 414
Ada 177, 189, 215, 233, 254, 393
adaptive maintenance 11
adversary team 275
agile manifesto 330
agile methods 330
Algol 68 393
anti-patterns 151, 161, 162
architecture 338
array list 206
arrays 194
assertions 253
assessing methods 385, 387


ATM case study 32, 45, 62, 154, 157,
158, 300, 341, 407
audit module 241
automated testing 275
automatic garbage collection 215
automation 398
backward error recovery 244
beta testing 275
bibliography 417
big-bang development 315
black box testing 269, 387
blob anti-pattern 161
Bohm, B. 373
Booch, G. 337
bottom-up implementation 317
boundary values 269, 271, 273
bounty hunter 275
breadth-first 107
Brooks, F.P. 348, 377
bugs, estimating 361
C 176, 214, 225, 254
C++ 214, 225, 254, 393
C# 177, 189, 191, 196, 212,
223, 233
call by reference 188
call by value 188
Capability Maturity Model, see CMM
case studies 407
casting 193
chief programmer teams 351

class 201
class diagram 143, 144, 170, 209,
228, 413
class programmer 353–4
classes, finding 142
class–responsibility–collaborator cards, see
CRC cards
CMM, 366
Cobol 176, 393
COCOMO 373
cohesion 79
command line interface 54
communication 333, 347
compile-time checking 240
complexity 70, 358
component programmer 353–4
component size 70
Index
BELL_Z06.QXD 1/30/05 4:34 PM Page 419
420 Index
component types 70
components 399
composition refactoring 168
control 397
control structures 94, 179
cost 5, 6, 9, 12
cost estimation 372
cost-benefit analysis 31
coupling 77
courage 333

CRC cards 145, 332
crisis 16
Crystal 330
cyberspace invaders case study 103, 140,
154, 158, 200, 408
dangling
else 180
dangling pointer 215
data flow design 111
data flow diagram 112
data hiding 74
data structure design 121
data structure diagram 122
data structures 213
data typing 190
database design 26
deadlines 10
defensive programming 241
delegation design pattern 153
Deming, W.E. 365
depth-first 107
design
data flow 111
data structure 121
functional decomposition 102
of programming language 176
OOD 139
user interface 53
design patterns 151
delegation 153

façade 156
factory method 155
immutable 157
inheritance 152
layers 159
mediator 158
model, view controller 157
observer, observable 157
Pipe and Filter 158
proxy 159
singleton 154
deskilling 92
desktop metaphor 56
Dijkstra, E.W. 278
direct manipulation 56
division of labor 349
driver 276
DSDM 330
dynamic data structures 213
dynamic typing 191
efficiency, see performance
Eiffel 212
ego-less programming 284
Encapsulate Data refactoring 166
encapsulation 74, 200
enumerations 193
equivalence partitioning 270
error 9, 13, 268, 283
evolutionary prototyping 307
exception handling 245

exceptions 93, 245
exhaustive testing 269
exploratory programming 396
Extract Class refactoring 167
extreme programming 332
façade design pattern 156
factory method 155
failure 13
fault 9, 13, 237, 283, 361, 362
fault density 278, 361
fault detection 239, 242
fault intolerance 238
fault tolerance 238
FDD 330
feasibility study 30, 373
feedback 293, 333
filter and pipe pattern 115, 260, 394
flowchart 88
BELL_Z06.QXD 1/30/05 4:34 PM Page 420
Index 421
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
BELL_Z06.QXD 1/30/05 4:34 PM Page 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
BELL_Z06.QXD 1/30/05 4:34 PM Page 422
Index 423
quality 18, 362
quality assurance 18, 275, 357, 364
quality factors 363
rapid prototyping 308
Raymond, E.S. 324
records 195
recovery blocks 249
recovery points 244
refactoring 165, 334
composition 168
Encapsulate Data 166
Extract Class 167
inheritance 168
Inline Class 168
Move Data 167
Move Method 167

polymorphism 170
regression testing 275
reliability 13
remedial maintenance 11
repetition 183
requirements 4, 36, 303
requirements engineering 398
return on investment 31
reuse 69, 144, 309, 394, 399
risk 297
robustness 237
Rumbaugh, J. 337
run-time checking 240
safety-critical systems 15
scheduling 376
scoping 226
scripting 259
SCRUM 330
selecting tools and methods 375
selection 180
separate compilation 232
set access 203
simplicity 176, 333
single inheritance 212
singleton design pattern 154
skill 397
SLOC, see LOC
Smalltalk 308
software engineering 17
software quality 362

software tools xxi, 331, 392,
398
specification 305
spiral model 297
spreadsheet 376
Stallman, R. 323
stepping 274
stepwise refinement 108
story 332
strong typing 191
structural testing 272
structure chart 115
structure clash 130
structured growth 396
structured programming 87, 98
structured walkthrough 284
structures 195
stub 315
syntax 178
system testing 277
tasks of software development 22
teams 347
chief programmer 351
functional 351
OO, 353
project 351
technical feasibility 31
templates 212
test bed 315
test-driven development 333

testing 24, 25, 267
black box 269
functional 269
integration 272
structural 272
system 277
unit 276
white box 272
throwaway prototyping 305
tools, see software tools
top-down implementation 316
BELL_Z06.QXD 1/30/05 4:34 PM Page 423
424 Index
Torvalds, L. 325–6
trust 379
UML 337, 399, 412
activity diagrams 414
class diagrams 413
package diagrams 414
use case diagrams 36, 412
Unified Modeling Language, see UML
unified process 337
unit testing 276
Unix 133, 259
UP, see unified process
use case 45, 142, 319, 332, 338, 373
use case diagram 46, 412
user-defined types 193
user interface design 16, 53, 57, 60
users 4

validation 5, 24, 303
verification 14, 24. 267, 387
Visual Basic 176, 254
walkthrough 387
waterfall model 291
weak typing 191, 262
Weinberg, G. 283
white box testing 272, 387
Wirth, N. 175
word processor case study 46,
159, 408
XP, see extreme programming
Z 276, 399
zero defect software 14
BELL_Z06.QXD 1/30/05 4:34 PM Page 424

×