Software Engineering For Students: A Programming Approach Part 45 pot

7 285 0
Software Engineering For Students: A Programming Approach Part 45 pot

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

Thông tin tài liệu

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

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan