软件工程:实践者的研究方法(英文精编版·原书第9版)

作者
[美]罗杰·S.普莱斯曼(Roger S. Pressman),[美]布鲁斯·R. 马克西姆(Bruce R. Maxim)
丛书名
经典原版书库
出版社
机械工业出版社
ISBN
9787111690726
简要
简介
内容简介书籍计算机书籍 本书的各个版本一直都是软件专业人士熟悉的读物,在国际软件工程界享有无可质疑的权威地位。它在全面而系统、概括而清晰地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。此外,本书在给出传统的、对学科发展具有深刻影响的方法时,又适当地介绍了当前正在发展的、具有生命力的新技术。
目录
Table of Contents
Preface xxvii
CHAPTER 1 SOFTWARE AND SOFTWARE ENGINEERING 1
1.1 The Nature of Software 4
1.1.1 Defining Software 5
1.1.2 Software Application Domains 7
1.1.3 Legacy Software 8
1.2 Defining the Discipline 8
1.3 The Software Process 9
1.3.1 The Process Framework 10
1.3.2 Umbrella Activities 11
1.3.3 Process Adaptation 11
1.4 Software Engineering Practice 12
1.4.1 The Essence of Practice 12
1.4.2 General Principles 14
1.5 How It All Starts 15
1.6 Summary 17
PART ONE THE SOFTWARE PROCESS 19
CHAPTER 2 PROCESS MODELS 20
2.1 A Generic Process Model 21
2.2 Defining a Framework Activity 23
2.3 Identifying a Task Set 23
2.4 Prescriptive Process Models 25
2.4.1 The Waterfall Model 25
2.4.2 Prototyping Process Model 26
2.4.3 Evolutionary Process Model 29
2.4.4 Unified Process Model 31
2.5 Product and Process 33
2.6 Summary 35
CHAPTER 3 AGILITY AND PROCESS 37
3.1 What Is Agility 38
3.2 Agility and the Cost of Change 39
3.3 What Is an Agile Process 40
3.3.1 Agility Principles 40
3.3.2 The Politics of Agile Development 41
3.4 Scrum 42
3.4.1 Scrum Teams and Artifacts 43
3.4.2 Sprint Planning Meeting 44
3.4.3 Daily Scrum Meeting 44
3.4.4 Sprint Review Meeting 45
3.4.5 Sprint Retrospective 45
3.5 Other Agile Frameworks 46
3.5.1 The XP Framework 46
3.5.2 Kanban 48
3.5.3 DevOps 50
3.6 Summary 51
CHAPTER 4 RECOMMENDED PROCESS MODEL 54
4.1 Requirements Definition 57
4.2 Preliminary Architectural Design 59
4.3 Resource Estimation 60
4.4 First Prototype Construction 61
4.5 Prototype Evaluation 64
4.6 Go, No-Go Decision 65
4.7 Prototype Evolution 67
4.7.1 New Prototype Scope 67
4.7.2 Constructing New Prototypes 68
4.7.3 Testing New Prototypes 68
4.8 Prototype Release 68
4.9 Maintain Release Software 69
4.10 Summary 72
CHAPTER 5 HUMAN ASPECTS OF SOFTWARE ENGINEERING 74
5.1 Characteristics of a Software Engineer 75
5.2 The Psychology of Software Engineering 75
5.3 The Software Team 76
5.4 Team Structures 78
5.5 The Impact of Social Media 79
5.6 Global Teams 80
5.7 Summary 81
PART TWO MODELING 83
CHAPTER 6 UNDERSTANDING REQUIREMENTS 84
6.1 Requirements Engineering 85
6.1.1 Inception 86
6.1.2 Elicitation 86
6.1.3 Elaboration 86
6.1.4 Negotiation 87
6.1.5 Specification 87
6.1.6 Validation 87
6.1.7 Requirements Management 88
6.2 Establishing the Groundwork 89
6.2.1 Identifying Stakeholders 89
6.2.2 Recognizing Multiple Viewpoints 89
6.2.3 Working Toward Collaboration 90
6.2.4 Asking the First Questions 90
6.2.5 Nonfunctional Requirements 91
6.2.6 Traceability 91
CHAPTER 7 REQUIREMENTS MODELING—A RECOMMENDED APPROACH 108
7.1 Requirements Analysis 109
7.1.1 Overall Objectives and Philosophy 110
7.1.2 Analysis Rules of Thumb 110
7.1.3 Requirements Modeling Principles 111
7.2 Scenario-Based Modeling 112
7.2.1 Actors and User Profiles 113
7.2.2 Creating Use Cases 113
7.2.3 Documenting Use Cases 117
7.3 Class-Based Modeling 119
7.3.1 Identifying Analysis Classes 119
7.3.2 Defining Attributes and Operations 122
7.3.3 UML Class Models 123
7.3.4 Class-Responsibility-Collaborator Modeling 126
7.4 Functional Modeling 128
7.4.1 A Procedural View 128
7.4.2 UML Sequence Diagrams 130
7.5 Behavioral Modeling 131
7.5.1 Identifying Events with the Use Case 131
7.5.2 UML State Diagrams 132
7.5.3 UML Activity Diagrams 133
7.6 Summary 136
HAPTER 8 DESIGN CONCEPTS 138
8.1 Design Within the Context of Software Engineering 139
8.2 The Design Process 141
8.2.1 Software Quality Guidelines and Attributes 142
8.2.2 The Evolution of Software Design 143
8.3 Design Concepts 145
8.3.1 Abstraction 145
8.3.2 Architecture 145
8.3.3 Patterns 146
8.3.4 Separation of Concerns 147
8.3.5 Modularity 147
8.3.6 Information Hiding 148
8.3.7 Functional Independence 149
8.3.8 Stepwise Renement 149
8.3.9 Refactoring 150
8.3.10 Design Classes 151
8.4 The Design Model 153
8.4.1 Design Modeling Principles 155
8.4.2 Data Design Elements 156
8.4.3 Architectural Design Elements 157
8.4.4 Interface Design Elements 157
8.4.5 Component-Level Design Elements 158
8.4.6 Deployment-Level Design Elements 159
8.5 Summary 160
CHAPTER 9 ARCHITECTURAL DESIGN—
A RECOMMENDED APPROACH 163
9.1 Software Architecture 164
9.1.1 What Is Architecture 164
9.1.2 Why Is Architecture Important 165
9.1.3 Architectural Descriptions 165
9.1.4 Architectural Decisions 166
9.2 Agility and Architecture 167
9.3 Architectural Styles 168
9.3.1 A Brief Taxonomy of Architectural Styles 169
9.3.2 Architectural Patterns 174
9.3.3 Organization and Refinement 175
9.4 Architectural Considerations 175
9.5 Architectural Decisions 177
9.6 Architectural Design 178
9.6.1 Representing the System in Context 178
9.6.2 Dening Archetypes 179
9.6.3 Rening the Architecture into Components 180
9.6.4 Describing Instantiations of the System 182
9.7 Assessing Alternative Architectural Designs 183
9.7.1 Architectural Reviews 184
9.7.2 Pattern-Based Architecture Review 185
9.7.3 Architecture Conformance Checking 186
9.8 Summary 186
CHAPTER 10 COMPONENT-LEVEL DESIGN 188
10.1 What Is a Component 189
10.1.1 An Object-Oriented View 189
10.1.2 The Traditional View 191
10.1.3 A Process-Related View 193
10.2 Designing Class-Based Components 194
10.2.1 Basic Design Principles 194
10.2.2 Component-Level Design Guidelines 197
10.2.3 Cohesion 198
10.2.4 Coupling 200
10.3 Conducting Component-Level Design 201
10.4 Specialized Component-Level Design 207
10.5 Component Refactoring 211
10.6 Summary 212
CHAPTER 11 USER EXPERIENCE DESIGN 215
11.1 User Experience Design Elements 216
11.1.1 Information Architecture 217
11.1.2 User Interaction Design 218
11.1.3 Usability Engineering 218
11.1.4 Visual Design 219
ART THREE QUALITY AND SECURITY 241
CHAPTER 12 QUALITY CONCEPTS 242
12.1 What Is Quality 243
12.2 Software Quality 244
12.2.1 Quality Factors 244
12.2.2 Qualitative Quality Assessment 246
12.2.3 Quantitative Quality Assessment 247
12.3 The Software Quality Dilemma 247
12.3.1 “Good Enough” Software 248
12.3.2 The Cost of Quality 24912.3.3 Risks 251
12.3.4 Negligence and Liability 252
12.3.5 The Impact of Management Actions 252
12.4 Achieving Software Quality 253
12.4.1 Software Engineering Methods 253
12.4.2 Project Management Techniques 254
12.4.3 Quality Control 254
12.4.4 Quality Assurance 254
12.5 Summary 254
HAPTER 13 REVIEWS—A RECOMMENDED APPROACH 257
13.1 Cost Impact of Software Defects 258
13.2 Defect Amplication and Removal 259
13.3 Review Metrics and Their Use 259
13.4 Criteria for Types of Reviews 262
13.5 Informal Reviews 263
13.6 Formal Technical Reviews 264
13.6.1 The Review Meeting 264
13.6.2 Review Reporting and Record Keeping 265
13.6.3 Review Guidelines 266
13.7 Postmortem Evaluations 268
13.8 Agile Reviews 268
13.9 Summary 269
CHAPTER 14 SOFTWARE QUALITY ASSURANCE 271
14.1 Background Issues 273
14.2 Elements of Software Quality Assurance 273
14.3 SQA Processes and Product Characteristics 275
14.4 SQA Tasks, Goals, and Metrics 275
14.4.1 SQA Tasks 275
14.4.2 Goals, Attributes, and Metrics 277
14.5 27914.5.1 A Generic Example 279
14.5.2 Six Sigma for Software Engineering 281
14.6 The ISO 9000 Quality Standards 281
14.7 The SQA Plan 282
14.8 Summary 283
CHAPTER 15 SOFTWARE TESTING—COMPONENT LEVEL 284
15.1 A Strategic Approach to Software Testing 285
15.1.1 Verication and Validation 285
15.1.2 Organizing for Software Testing 286
15.1.3 The Big Picture 287
15.1.4 Criteria for “Done” 289
15.2 Planning and Recordkeeping 290
15.2.1 Role of Scaolding 291
15.2.2 Cost-Eective Testing 291
15.3 Test-Case Design 293
15.3.1 Requirements and Use Cases 294
15.3.2 Traceability 295
15.4 White-Box Testing 295
15.4.1 Basis Path Testing 296
15.4.2 Control Structure Testing 298
15.5 300Black-Box Testing
15.5.1 Interface Testing 300
15.5.2 Equivalence Partitioning 301
15.5.3 Boundary Value Analysis 301
15.6 Object-Oriented Testing 302
15.6.1 Class Testing 302
15.6.2 Behavioral Testing 304
15.7 Summary 305
CHAPTER 16 SOFTWARE TESTING—INTEGRATION LEVEL 307
16.1 Software Testing Fundamentals 308
16.1.1 Black-Box Testing 309
16.1.2 White-Box Testing 309
16.2 Integration Testing 310
16.2.1 Top-Down Integration 310
16.2.2 Bottom-Up Integration 311
16.2.3 Continuous Integration 312
16.2.4 Integration Test Work Products 314
16.3 Artificial Intelligence and Regression Testing 314
16.4 Integration Testing in the OO Context 316
16.4.1 Fault-Based Test-Case Design 317
16.4.2 Scenario-Based Test-Case Design 319
16.5 Validation Testing 319
16.6 Summary 321
CHAPTER 17 SOFTWARE CONFIGURATION MANAGEMENT 323
17.1 Software Conguration Management 324
17.1.1 An SCM Scenario 325
17.1.2 Elements of a Conguration Management System 326
17.1.3 Baselines 327
17.1.4 Software Conguration Items 327
17.1.5 Management of Dependencies and Changes 328
17.2 The SCM Repository 329
17.2.1 General Features and Content 330
17.2.2 SCM Features 330
17.3 Version Control Systems 331
17.4 Continuous Integration 332
17.5 The Change Management Process 333
17.5.1 Change Control 334
17.5.2 Impact Management 337
17.5.3 Conguration Audit 337
17.5.4 Status Reporting 338
17.6 Summary 338
HAPTER 18 SOFTWARE METRICS AND ANALYTICS 340
18.1 Software Measurement 341
18.1.1 Measures, Metrics, and Indicators 341
18.1.2 Attributes of Eective Software Metrics 342
18.2 Software Analytics 342
18.3 Product Metrics 343
18.3.1 Metrics for the Requirements Model 344
18.3.2 Design Metrics for Conventional Software 346
18.3.3 Design Metrics for Object-Oriented Software 348
18.3.4 User Interface Design Metrics 351
18.3.5 Metrics for Source Code 353
18.4 Process and Project Metrics 354
18.5 Software Metrics 357
18.6 Metrics for Software Quality 360
18.7 Summary 363
PART FOUR MANAGING SOFTWARE PROJECTS 365
CHAPTER 19 PROJECT MANAGEMENT CONCEPTS 366
19.1 The Management Spectrum 367
19.1.1 The People 367
19.1.2 The Product 367
19.1.3 The Process 368
19.1.4 The Project 368
19.2 People 369
19.2.1 The Stakeholders 369
19.2.2 Team Leaders 369
19.2.3 The Software Team 370
19.2.4 Coordination and Communications Issues 372
19.3 Product 373
19.3.1 Software Scope 373
19.3.2 Problem Decomposition 373
19.4 Process 374
19.4.1 Melding the Product and the Process 374
19.4.2 Process Decomposition 374
19.5 Project 376
19.6 The W5HH Principle 377
19.7 Critical Practices 378
19.8 Summary 378
CHAPTER 20 CREATING A VIABLE SOFTWARE PLAN 380
20.1 Comments on Estimation 381
20.2 The Project Planning Process 382
20.3 Software Scope and Feasibility 383
20.4 Resources 384
20.4.1 uman Resources 384
20.4.2 Reusable Software Resources 385
20.4.3 Environmental Resources 385
20.5 Project Scheduling 386
20.5.1 Basic Principles 387
20.5.2 The Relationship Between People and Eort 388
20.6 Defining a Project Task Set 389
20.6.1 A Task Set Example 390
20.6.2 efnement of Major Tasks 390
20.7 Defning a Task Network 391
20.8 Scheduling 392
20.8.1 Time-Line Charts 392
20.8.2 racking the Schedule 394
20.9 Summary 396
CHAPTER 21 RISK MANAGEMENT 398
21.1 Reactive Versus Proactive Risk Strategies 399
21.2 Software Risks 400
21.3Risk Identication 401
21.3.1 Assessing Overall Project Risk 402
21.3.2 Risk Components and Drivers 403
21.4 Risk Projection 404
21.4.1 Developing a Risk Table 404
21.4.2 Assessing Risk Impact 406
21.5 Risk Renement 408
21.6 Risk Mitigation, Monitoring, and Management 409
21.7 The RMMM Plan 412
21.8 Summary 413
CHAPTER 22 A STRATEGY FOR SOFTWARE SUPPORT 415
22.1 Software Support 416
22.2 Software Maintenance 418
22.3 Proactive Software Support 423
22.3.1 Use of Software Analytics 424
22.3.2 Role of Social Media 425
22.3.3 Cost of Support 425
22.4 Refactoring 426
22.4.1 Data Refactoring 427
22.4.2 Code Refactoring 427
22.4.3 Architecture Refactoring 427
22.5 Software Evolution 428
22.5.1 Inventory Analysis 429
22.5.2 Document Restructuring 430
22.5.3 Reverse Engineering 430
22.5.4 Code Refactoring 430
22.5.5 Data Refactoring 430
22.5.6 Forward Engineering 431
22.6 Summary 431
APPENDIX 1
REFERENCES
Online Resources


相关资源(PDF,TXT,电子书)

村网 国学鼎 数字追踪 车牌号查询 生活分享
桂ICP备20004708号-2