chapter 7 design and implementation 176
7.1 object-oriented design using the uml 178
7.2 design patterns 189
7.3 implementation issues 193
7.4 open source development 198
chapter 8 software testing 205
8.1 development testing 210
8.2 test-driven development 221
8.3 release testing 224
8.4 user testing 228
chapter 9 software evolution 234
9.1 evolution processes 237
9.2 program evolution dynamics 240
9.3 software maintenance 242
9.4 legacy system management 252
part 2 dependability and security 261
chapter 10 sociotechnical systems 263
10.1 complex systems 266
10.2 systems engineering 273
10.3 system procurement 275
10.4 system development 278
10.5 system operation 281
chapter 18 distributed software engineering 479
18.1 distributed systems issues 481
18.2 client-server computing 488
18.3 architectural patterns for distributed systems 490
18.4 software as a service 501
chapter 19 service-oriented architecture 508
19.1 services as reusable components 514
19.2 service engineering 518
19.3 software development with services 527
chapter 25 configuration management 681
25.1 change management 685
25.2 version management 690
25.3 system building 693
25.4 release management 699
chapter 26 process improvement 705
26.1 the process improvement process 708
26.2 process measurement 711
26.3 process analysis 715
26.4 process change 718
26.5 the cmmi process improvement framework 721
glossary 733
subject index 749
author index 767