1. Trang chủ
  2. » Công Nghệ Thông Tin

Software Engineering For Students: A Programming Approach Part 45 pot

7 288 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 84,49 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

418 BibliographyThere are several exciting accounts of the personal outlook and work methods of pro-grammers.. They give insights into how programming is actually done.. An example of a

Trang 1

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

Trang 2

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

Trang 3

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 else180

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

Trang 4

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

goto87, 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

Trang 5

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

Trang 6

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

Trang 7

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

Ngày đăng: 03/07/2014, 01:20

TỪ KHÓA LIÊN QUAN