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

软件工程:实践者的研究方法(英文精编版 第8版)
作 者: 罗杰 普莱斯曼
出版社: 机械工业出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 计算机/网络 软件工程/开发项目管理
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《软件工程:实践者的研究方法(英文精编版 第8版)》作者简介

内容简介

本书自1982年发行第1版以来,一直受到软件工程界的高度重视,成为高等院校计算机相关专业软件工程课的重要教学参考书。近30年来,它的各个后继版本一直都是软件专业人土熟悉的读物,在国际软件工程界享有无可质疑的权威地位。它在全面而系统、概括而清晰地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。此外,本书在给出传统的、对学科发展具有深刻影响的方法时,又适当地介绍了当前正在发展的、具有生命力的新技术。

图书目录

TABLE OF CONTENTS

CHAPTER 1 THE NATURE OF SOFTWARE 1

1.1 The Nature of Software 3

1.1.1 De ning Software 4

1.1.2 Software Application Domains 6

1.1.3 Legacy Software 7

1.2 The Changing Nature of Software 9

1.2.1 WebApps 9

1.2.2 Mobile Applications 9

1.2.3 Cloud Computing 10

1.2.4 Product Line Software 11

PROBLEMS AND POINTS TO PONDER 12

FURTHER READINGS AND INFORMATION SOURCES 12

CHAPTER 2 SOFTWARE ENGINEERING 14

2.1 De ning the Discipline 15

2.2 The Software Process 16

2.2.1 The Process Framework 17

2.2.2 Umbrella Activities 18

2.2.3 Process Adaptation 18

2.3 Software Engineering Practice 19

2.3.1 The Essence of Practice 19

2.3.2 General Principles 21

2.4 Software Development Myths 23

2.5 How It All Starts 26

PROBLEMS AND POINTS TO PONDER 27

FURTHER READINGS AND INFORMATION SOURCES 27

PART ONE THE SOFTWARE PROCESS 29

CHAPTER 3 SOFTWARE PROCESS STRUCTURE 30

3.1 A Generic Process Model 31

3.2 De ning a Framework Activity 32

3.3 Identifying a Task Set 34

3.4 Process Patterns 35

PROBLEMS AND POINTS TO PONDER 37

FURTHER READINGS AND INFORMATION SOURCES 38

CHAPTER 4 PROCESS MODELS 39

4.1 Pre******ive Process Models 40

4.1.1 The Waterfall Model 40

4.1.2 Incremental Process Models 42

4.1.3 Evolutionary Process Models 44

4.1.4 Concurrent Models 48

4.1.5 A Final Word on Evolutionary Processes 50

4.2 Specialized Process Models 51

4.2.1 Component-Based Development 52

4.2.2 The Formal Methods Model 52

4.2.3 Aspect-Oriented Software Development 53

4.3 The Uni ed Process 54

4.3.1 A Brief History 55

4.3.2 Phases of the Uni ed Process 55

4.4 Product and Process 57

PROBLEMS AND POINTS TO PONDER 59

FURTHER READINGS AND INFORMATION SOURCES 59

CHAPTER 5 AGILE DEVELOPMENT 60

5.1 What Is Agility? 62

5.2 Agility and the Cost of Change 62

5.3 What Is an Agile Process 63?

5.3.1 Agility Principles 64

5.3.2 The Politics of Agile Development 65

5.4 Extreme Programming 66

5.4.1 The XP Process 66

5.4.2 Industrial XP 69

5.5 Other Agile Process Models 71

5.5.1 Scrum 72

5.5.2 Dynamic Systems Development Method 73

5.5.3 Agile Modeling 74

5.5.4 Agile Uni ed Process 76

5.6 A Tool Set for the Agile Process 77

PROBLEMS AND POINTS TO PONDER 78

FURTHER READINGS AND INFORMATION SOURCES 79

CHAPTER 6 HUMAN ASPECTS OF SOFTWARE ENGINEERING 81

6.1 Characteristics of a Software Engineer 82

6.2 The Psychology of Software Engineering 83

6.3 The Software Team 84

6.4 Team Structures 86

6.5 Agile Teams 87

6.5.1 The Generic Agile Team 87

6.5.2 The XP Team 88

6.6 The Impact of Social Media 89

6.7 Software Engineering Using the Cloud 91

6.8 Collaboration Tools 92

6.9 Global Teams 93

PROBLEMS AND POINTS TO PONDER 94

FURTHER READINGS AND INFORMATION SOURCES 95

PART TWO MODELING 97

CHAPTER 7 UNDERSTANDING REQUIREMENTS 98

7.1 Requirements Engineering 99

7.2 Establishing the Groundwork 105

7.2.1 Identifying Stakeholders 106

7.2.2 Recognizing Multiple Viewpoints 106

7.2.3 Working toward Collaboration 107

7.2.4 Asking the First Questions 107

7.3 Eliciting Requirements 108

7.3.1 Collaborative Requirements Gathering 109

7.3.2 Quality Function Deployment 112

7.3.3 Usage Scenarios 112

7.3.4 Elicitation Work Products 113

7.3.5 Agile Requirements Elicitation 114

7.3.6 Service-Oriented Methods 114

7.4 Developing Use Cases 115

7.5 Building the Analysis Model 120

7.5.1 Elements of the Analysis Model 120

7.5.2 Analysis Patterns 123

7.5.3 Agile Requirements Engineering 124

7.5.4 Requirements for Self-Adaptive Systems 124

7.6 Avoiding Common Mistakes 125

PROBLEMS AND POINTS TO PONDER 125

FURTHER READINGS AND OTHER INFORMATION SOURCES 126

CHAPTER 8 REQUIREMENTS MODELING: SCENARIO-BASED METHODS 128

8.1 Requirements Analysis 129

8.1.1 Overall Objectives and Philosophy 130

8.1.2 Analysis Rules of Thumb 131

8.1.3 Domain Analysis 132

8.1.4 Requirements Modeling Approaches 133

8.2 Scenario-Based Modeling 135

8.2.1 Creating a Preliminary Use Case 135

8.2.2 Re ning a Preliminary Use Case 138

8.2.3 Writing a Formal Use Case 139

8.3 UML Models That Supplement the Use Case 141

8.3.1 Developing an Activity Diagram 142

8.3.2 Swimlane Diagrams 143

PROBLEMS AND POINTS TO PONDER 144

FURTHER READINGS AND INFORMATION SOURCES 145

CHAPTER 9 REQUIREMENTS MODELING: CLASS-BASED METHODS 146

9.1 Identifying Analysis Classes 147

9.2 Specifying Attributes 150

9.3 De ning Operations 151

9.4 Class-Responsibility-Collaborator Modeling 154

9.5 Associations and Dependencies 160

9.6 Analysis Packages 161

PROBLEMS AND POINTS TO PONDER 162

FURTHER READINGS AND INFORMATION SOURCES 163

CHAPTER 10 REQUIREMENTS MODELING: BEHAVIOR, PATTERNS, AND燱EB/MOBILE APPS 164

10.1 Creating a Behavioral Model 165

10.2 Identifying Events with the Use Case 165

10.3 State Representations 166

10.4 Patterns for Requirements Modeling 169

10.4.1 Discovering Analysis Patterns 170

10.4.2 A Requirements Pattern Example: Actuator-Sensor 171

PROBLEMS AND POINTS TO PONDER 175

FURTHER READINGS AND INFORMATION SOURCES 176

CHAPTER 11 DESIGN CONCEPTS 177

11.1 Design within the Context of Software Engineering 178

11.2 The Design Process 1811

1.2.1 Software Quality Guidelines and Attributes 181

11.2.2 The Evolution of Software Design 183

11.3 Design Concepts 184

11.3.1 Abstraction 185

11.3.2 Architecture 185

11.3.3 Patterns 186

11.3.4 Separation of Concerns 187

11.3.5 Modularity 187

11.3.6 Information Hiding 188

11.3.7 Functional Independence 189

11.3.8 Re nement 190

11.3.9 Aspects 190

11.3.10 Refactoring 191

11.3.11 Object-Oriented Design Concepts 191

11.3.12 Design Classes 192

11.3.13 Dependency Inversion 194

11.3.14 Design for Test 195

11.4 The Design Model 196

11.4.1 Data Design Elements 197

11.4.2 Architectural Design Elements 197

11.4.3 Interface Design Elements 198

11.4.4 Component-Level Design Elements 200

11.4.5 Deployment-Level Design Elements 201

PROBLEMS AND POINTS TO PONDER 202

FURTHER READINGS AND INFORMATION SOURCES 203

CHAPTER 12 ARCHITECTURAL DESIGN 204

12.1 Software Architecture 205

12.1.1 What Is Architecture 205

12.1.2 Why Is Architecture Important 206

12.1.3 Architectural De******ions 207

12.1.4 Architectural Decisions 208

12.2 Architectural Genres 209

12.3 Architectural Styles 210

12.3.1 A Brief Taxonomy of Architectural Styles 210

12.3.2 Architectural Patterns 215

12.3.3 Organization and Re nement 215

12.4 Architectural Considerations 216

12.5 Architectural Decisions 218

12.6 Architectural Design 219

12.6.1 Representing the System in Context 219

12.6.2 De ning Archetypes 221

12.6.3 Re ning the Architecture into Components 222

12.6.4 Describing Instantiations of the System 224

12.6.5 Architectural Design for Web Apps 225

12.6.6 Architectural Design for Mobile Apps 226

12.7 Assessing Alternative Architectural Designs 226

12.7.1 Architectural De******ion Languages 228

12.7.2 Architectural Reviews 229

12.8 Lessons Learned 230

12.9 Pattern-based Architecture Review 230

12.10 Architecture Conformance Checking 231

12.11 Agility and Architecture 232

PROBLEMS AND POINTS TO PONDER 234

FURTHER READINGS AND INFORMATION SOURCES 234

CHAPTER 13 COMPONENT-LEVEL DESIGN 236

13.1 What Is a Component 237

13.1.1 An Object-Oriented View 237

13.1.2 The Traditional View 239

13.1.3 A Process-Related View 242

13.2 Designing Class-Based Components 242

13.2.1 Basic Design Principles 243

13.2.2 Component-Level Design Guidelines 246

13.2.3 Cohesion 247

13.2.4 Coupling 249

13.3 Conducting Component-Level Design 250

13.4 Component-Level Design for WebApps 256

13.4.1 Content Design at the Component Level 257

13.4.2 Functional Design at the Component Level 257

13.5 Designing Traditional Components 257

13.6 Component-Based Development 258

13.6.1 Domain Engineering 259

13.6.2 Component Quali cation, Adaptation, and Composition 259

13.6.3 Architectural Mismatch 261

13.6.4 Analysis and Design for Reuse 262

13.6.5 Classifying and Retrieving Components 262

PROBLEMS AND POINTS TO PONDER 264

FURTHER READINGS AND INFORMATION SOURCES 264

CHAPTER 14 USER INTERFACE DESIGN 266

14.1 The Golden Rules 267

14.1.1 Place the User in Control 267

14.1.2 Reduce the User抯 Memory Load 268

14.1.3 Make the Interface Consistent 270

14.2 User Interface Analysis and Design 271

14.2.1 Interface Analysis and Design Models 271

14.2.2 The Process 272

14.3 Interface Analysis 274

14.3.1 User Analysis 274

14.3.2 Task Analysis and Modeling 275

14.3.3 Analysis of Display Content 280

14.3.4 Analysis of the Work Environment 280

14.4 Interface Design Steps 281

14.4.1 Applying Interface Design Steps 281

14.4.2 User Interface Design Patterns 283

14.4.3 Design Issues 284

14.5 Design Evaluation 286

PROBLEMS AND POINTS TO PONDER 288

FURTHER READINGS AND INFORMATION SOURCES 289

PART THREE QUALITY MANAGEMENT 291

CHAPTER 15 QUALITY CONCEPTS 292

15.1 What Is Quality 293

15.2 Software Quality 294

15.2.1 Garvin抯 Quality Dimensions 295

15.2.2 McCall抯 Quality Factors 296

15.2.3 ISO 9126 Quality Factors 298

15.2.4 Targeted Quality Factors 298

15.2.5 The Transition to a Quantitative View 300

15.3 The Software Quality Dilemma 300

15.3.1 揋ood Enough?Software 301

15.3.2 The Cost of Quality 302

15.3.3 Risks 304

15.3.4 Negligence and Liability 305

15.3.5 Quality and Security 305

15.3.6 The Impact of Management Actions 306

15.4 Achieving Software Quality 307

15.4.1 Software Engineering Methods 307

15.4.2 Project Management Techniques 307

15.4.3 Quality Control 307

15.4.4 Quality Assurance 308

PROBLEMS AND POINTS TO PONDER 308

FURTHER READINGS AND INFORMATION SOURCES 309

CHAPTER 16 SOFTWARE QUALITY ASSURANCE 310

16.1 Background Issues 311

16.2 Elements of Software Quality Assurance 312

16.3 SQA Processes and Product Characteristics 314

16.4 SQA Tasks, Goals, and Metrics 314

16.4.1 SQA Tasks 315

16.4.2 Goals, Attributes, and Metrics 316

16.5 Formal Approaches to SQA 318

16.6 Statistical Software Quality Assurance 318

16.6.1 A Generic Example 319

16.6.2 Six Sigma for Software Engineering 320

16.7 Software Reliability 321

16.7.1 Measures of Reliability and Availability 321

16.7.2 Software Safety 322

16.8 The ISO 9000 Quality Standards 323

16.9 The SQA Plan 325

16.10 A Framework for Product Metrics 325

16.10.1 Measures, Metrics, and Indicators 325

16.10.2 The Challenge of Product Metrics 326

16.10.3 Measurement Principles 327

16.10.4 Goal-Oriented Software Measurement 327

16.10.5 The Attributes of Effective Software Metrics 328

PROBLEMS AND POINTS TO PONDER 329

FURTHER READINGS AND INFORMATION SOURCES 330

CHAPTER 17 SOFTWARE TESTING STRATEGIES 332

17.1 A Strategic Approach to Software Testing 332

17.1.1 Veri cation and Validation 334

17.1.2 Organizing for Software Testing 334

17.1.3 Software Testing Strategy桾he Big Picture 335

17.1.4 Criteria for Completion of Testing 338

17.2 Strategic Issues 338

17.3 Test Strategies for Conventional Software 339

17.3.1 Unit Testing 339

17.3.2 Integration Testing 341

17.4 Test Strategies for Object-Oriented Software 347

17.4.1 Unit Testing in the OO Context 347

17.4.2 Integration Testing in the OO Context 347

17.5 Validation Testing 348

17.5.1 Validation-Test Criteria 348

17.5.2 Con guration Review 349

17.5.3 Alpha and Beta Testing 349

17.6 System Testing 350

17.6.1 Recovery Testing 350

17.6.2 Security Testing 351

17.6.3 Stress Testing 351

17.6.4 Performance Testing 352

17.6.5 Deployment Testing 352

17.7 The Art of Debugging 353

17.7.1 The Debugging Process 353

17.7.2 Psychological Considerations 354

17.7.3 Debugging Strategies 355

17.7.4 Correcting the Error 357

PROBLEMS AND POINTS TO PONDER 357

FURTHER READINGS AND INFORMATION SOURCES 358

CHAPTER 18 TESTING CONVENTIONAL APPLICATIONS 360

18.1 Software Testing Fundamentals 361

18.2 Internal and External Views of Testing 363

18.3 White-Box Testing 364

18.4 Basis Path Testing 364

18.4.1 Flow Graph Notation 364

18.4.2 Independent Program Paths 366

18.4.3 Deriving Test Cases 368

18.5 Control Structure Testing 370

18.6 Black-Box Testing 372

18.6.1 Equivalence Partitioning 372

18.6.2 Boundary Value Analysis 373

18.7 Model-Based Testing 374

PROBLEMS AND POINTS TO PONDER 375

FURTHER READINGS AND INFORMATION SOURCES 375

CHAPTER 19 TESTING OBJECT-ORIENTED APPLICATIONS 377

19.1 Broadening the View of Testing 378

19.2 Testing OOA and OOD Models 379

19.2.1 Correctness of OOA and OOD Models 379

19.2.2 Consistency of Object-Oriented Models 380

19.3 Object-Oriented Testing Strategies 382

19.3.1 Unit Testing in the OO Context 382

19.3.2 Integration Testing in the OO Context 383

19.3.3 Validation Testing in an OO Context 383

19.4 Object-Oriented Testing Methods 383

19.4.1 The Test-Case Design Implications of OO Concepts 384

19.4.2 Applicability of Conventional Test-Case Design Methods 385

19.4.3 Fault-Based Testing 385

19.4.4 Scenario-Based Test Design 386

19.5 Testing Methods Applicable at the Class Level 386

19.5.1 Random Testing for OO Classes 386

19.5.2 Partition Testing at the Class Level 387

19.6 Interclass Test-Case Design 388

19.6.1 Multiple Class Testing 388

19.6.2 Tests Derived from Behavior Models 390

PROBLEMS AND POINTS TO PONDER 391

FURTHER READINGS AND INFORMATION SOURCES 392

CHAPTER 20 SECURITY ENGINEERING 393

20.1 Analyzing Security Requirements 394

20.2 Security and Privacy in an Online World 395

20.2.1 Social Media 396

20.2.2 Mobile Applications 396

20.2.3 Cloud Computing 396

20.2.4 The Internet of Things 397

20.3 Security Engineering Analysis 397

20.3.1 Security Requirement Elicitation 398

20.3.2 Security Modeling 399

20.3.3 Measures Design 400

20.3.4 Correctness Checks 400

20.4 Security Assurance 401

20.4.1 The Security Assurance Process 401

20.4.2 Organization and Management 402

20.5 Security Risk Analysis 403

20.6 The Role of Conventional Software Engineering Activities 404

20.7 Veri cation of Trustworthy Systems 406

PROBLEMS AND POINTS TO PONDER 408

FURTHER READINGS AND INFORMATION SOURCES 408

CHAPTER 21 SOFTWARE CONFIGURATION MANAGEMENT 410

21.1 Software Con guration Management 411

21.1.1 An SCM Scenario 412

21.1.2 Elements of a Con guration Management System 413

21.1.3 Baselines 413

21.1.4 Software Con guration Items 415

21.1.5 Management of Dependencies and Changes 415

21.2 The SCM Repository 417

21.2.1 General Features and Content 417

21.2.2 SCM Features 418

21.3 The SCM Process 419

21.3.1 Identi cation of Objects in the Software Con guration 420

21.3.2 Version Control 421

21.3.3 Change Control 422

21.3.4 Impact Management 425

21.3.5 Con guration Audit 426

21.3.6 Status Reporting 426

PROBLEMS AND POINTS TO PONDER 427

FURTHER READINGS AND INFORMATION SOURCES 428

PART FOUR MANAGING SOFTWARE PROJECTS 431

CHAPTER 22 PROJECT MANAGEMENT CONCEPTS 432

22.1 The Management Spectrum 433

22.1.1 The People 433

22.1.2 The Product 434

22.1.3 The Process 434

22.1.4 The Project 434

22.2 People 435

22.2.1 The Stakeholders 435

22.2.2 Team Leaders 436

22.2.3 The Software Team 437

22.2.4 Agile Teams 439

22.2.5 Coordination and Communication Issues 440

22.3 The Product 441

22.3.1 Software Scope 442

22.3.2 Problem Decomposition 442

22.4 The Process 442

22.4.1 Melding the Product and the Process 443

22.4.2 Process Decomposition 444

22.5 The Project 445

22.6 The W5HH Principle 446

22.7 Critical Practices 447

PROBLEMS AND POINTS TO PONDER 448

FURTHER READINGS AND INFORMATION SOURCES 448

CHAPTER 23 PROCESS AND PROJECT METRICS 451

23.1 Metrics in the Process and Project Domains 452

23.1.1 Process Metrics and Software Process Improvement 452

23.1.2 Project Metrics 455

23.2 Software Measurement 456

23.2.1 Size-Oriented Metrics 457

23.2.2 Function-Oriented Metrics 458

23.2.3 Reconciling LOC and FP Metrics 459

23.2.4 Object-Oriented Metrics 461

23.2.5 Use Case-Oriented Metrics 462

23.3 Metrics for Software Quality 462

23.3.1 Measuring Quality 463

23.3.2 Defect Removal Ef ciency 464

PROBLEMS AND POINTS TO PONDER 466

FURTHER READINGS AND INFORMATION SOURCES 467

CHAPTER 24 ESTIMATION FOR SOFTWARE PROJECTS 469

24.1 Observations on Estimation 470

24.2 The Project Planning Process 471

24.3 Software Scope and Feasibility 472

24.4 Resources 473

24.4.1 Human Resources 473

24.4.2 Reusable Software Resources 474

24.4.3 Environmental Resources 474

24.5 Software Project Estimation 475

24.6 Decomposition Techniques 476

24.6.1 Software Sizing 476

24.6.2 Problem-Based Estimation 477

24.6.3 An Example of LOC-Based Estimation 478

24.6.4 An Example of FP-Based Estimation 480

24.6.5 Process-Based Estimation 481

24.6.6 An Example of Process-Based Estimation 482

24.6.7 Estimation with Use Cases 482

24.6.8 An Example of Estimation Using Use Case Points 484

24.6.9 Reconciling Estimates 484

24.7 Empirical Estimation Models 485

24.7.1 The Structure of Estimation Models 486

24.7.2 The COCOMO II Model 486

24.7.3 The Software Equation 486

24.8 Estimation for Object-Oriented Projects 488

PROBLEMS AND POINTS TO PONDER 488

FURTHER READINGS AND INFORMATION SOURCES 489

CHAPTER 25 PROJECT SCHEDULING 490

25.1 Basic Concepts 491

25.2 Project Scheduling 493

25.2.1 Basic Principles 494

25.2.2 The Relationship between People and Effort 495

25.2.3 Effort Distribution 496

25.3 De ning a Task Set for the Software Project 497

25.3.1 A Task Set Example 498

25.3.2 Re nement of Major Tasks 499

25.4 De ning a Task Network 500

25.5 Scheduling 501

25.5.1 Time-Line Charts 502

25.5.2 Tracking the Schedule 503

25.5.3 Tracking Progress for an OO Project 504

25.6 Earned Value Analysis 505

PROBLEMS AND POINTS TO PONDER 508

FURTHER READINGS AND INFORMATION SOURCES 509

CHAPTER 26 RISK MANAGEMENT 510

26.1 Reactive versus Proactive Risk Strategies 511

26.2 Software Risks 511

26.3 Risk Identi cation 513

26.3.1 Assessing Overall Project Risk 514

26.3.2 Risk Components and Drivers 515

26.4 Risk Projection 515

26.4.1 Developing a Risk Table 516

26.4.2 Assessing Risk Impact 518

26.5 Risk Re nement 520

26.6 Risk Mitigation, Monitoring, and Management 521

26.7 The RMMM Plan 523

PROBLEMS AND POINTS TO PONDER 525

FURTHER READINGS AND INFORMATION SOURCES 526

APPENDIX 1 AN INTRODUCTION TO UML 527

APPENDIX 2 OBJECT-ORIENTED CONCEPTS 548

REFERENCES 556