软件工程:实践者的研究方法(英文精编版·第8版)
作者 : [美]罗杰 S. 普莱斯曼(Roger S. Pressman),布鲁斯 R. 马克西姆(Bruce R. Maxim)著
丛书名 : 经典原版书库
出版日期 : 2016-01-07
ISBN : 978-7-111-49931-2
定价 : 79.00元
教辅资源下载
扩展信息
语种 : 英文
页数 : 598
开本 : 16
原书名 : Software Engineering: A Practitioner's Approach, Eighth Edition
原出版社: McGraw-Hill
属性分类: 教材
包含CD :
绝版 :
图书简介

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

图书特色

Roger Pressman编写的这部翔实而全面的软件工程指南,适合软件工程专业的学生及投身软件工程实践或需要参与这种实践的软件开发人员和管理人员阅读。
——《IEEE Software》

这是一本经典的现代教材,叙述清晰而又具有权威性。本书包含大量插图、例子、习题和参考资料……如果读者心存疑问:“软件工程是什么?它现在在哪里?”那么最好阅读这本书。
——《ACM Computing Reviews》

本书自30多年前第1版问世以来,一直受到软件工程界的高度重视,对该学科的发展具有深刻影响,成为高等院校计算机、软件工程及相关专业软件工程课程的标准教材或重要参考书。它在全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第8版在结构和内容上均有调整、更新和充实,论述了很多人们称为“21世纪工程学科”的重要主题,强调安全和开发移动应用程序所需要面对的技术挑战。
本版基于原书第8版进行改编,保留其中的基本内容,新增部分保留了安全工程的相关内容,而删除了开发移动应用程序的相关内容,并压缩或删除了一些高级内容,从而更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。

作者简介
罗杰 S. 普莱斯曼(Roger S. Pressman) 软件过程改进和软件工程技术方面的国际知名权威人士。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任《IEEE Software》杂志的Manager专栏的编辑。他还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)等组织的成员。
布鲁斯 R. 马克西姆(Bruce R. Maxim) 在30多年的职业生涯中,Maxim博士曾先后担任过软件工程师、项目经理、大学教授、图书作者和技术顾问,具有丰富的产业和学术经验。Maxim博士现为密歇根大学迪尔伯恩分校计算机和信息科学副教授,还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)、美国工程教育学会(ASEE)等组织的成员。

图书前言

When computer software succeeds梬hen it meets the needs of the people who use it, when it performs awlessly over a long period of time, when it is easy to modify and even easier to use梚t can and does change things for the better. But when software fails梬hen its users are dissatis ed, when it is error prone, when it is dif cult to change and even harder to use梑ad things can and do happen. We all want to build software that makes things better, avoiding the bad things that lurk in the shadow of failed efforts. To succeed, we need discipline when software is designed and built. We need an engineering approach. It has been almost three and a half decades since the rst edition of this book was written. During that time, software engineering has evolved from an obscure idea practiced by a relatively small number of zealots to a legitimate engineering disci-pline. Today, it is recognized as a subject worthy of serious research, conscientious study, and tumultuous debate. Throughout the industry, software engineer has re-placed programmer as the job title of preference. Software process models, software engineering methods, and software tools have been adopted successfully across a broad spectrum of industry segments. Although managers and practitioners alike recognize the need for a more disci-plined approach to software, they continue to debate the manner in which discipline is to be applied. Many individuals and companies still develop software haphazardly, even as they build systems to service today抯 most advanced technologies. Many pro-fessionals and students are unaware of modern methods. And as a result, the quality of the software that we produce suffers, and bad things happen. In addition, debate and controversy about the true nature of the software engineering approach continue. The status of software engineering is a study in contrasts. Attitudes have changed, progress has been made, but much remains to be done before the discipline reaches full maturity. The eighth edition of Software Engineering: A Practitioner抯 Approach is intended to serve as a guide to a maturing engineering discipline. The eighth edition, like the seven editions that preceded it, is intended for both students and practitioners, re-taining its appeal as a guide to the industry professional and a comprehensive intro-duction to the student at the upper-level undergraduate or rst-year graduate level. The eighth edition is considerably more than a simple update. The book has been revised and restructured to improve pedagogical ow and emphasize new and im-portant software engineering processes and practices. In addition, we have further enhanced the popular 搒upport system for the book, providing a comprehensive set of student, instructor, and professional resources to complement the content of the book. These resources are presented as part of a website (www.mhhe.com/pressman) speci cally designed for Software Engineering: A Practitioner's Approach.      The Eighth Edition.  fourparts. This organization better compartmentalizes topics and assists instructors who may not have the time to complete the entire book in one term.
Part 1, The Process, presents a variety of different views of software process, consid-ering all important process models and addressing the debate between prescriptive and agile process philosophies. Part 2, Modeling, presents analysis and design meth-ods with an emphasis on object-oriented techniques and UML modeling. Quality Management, presents the concepts, procedures, and methods Managing Software Projects,  Part , that enable effective testing strategy and topics that are relevant to those who plan, manage, and control a software develo-pment project. Continuingin the tradition of past editions, a series of sidebars is used throughout the book to present the trials and tribulations of a ( ctional) software team to chapter topics. and to provide supple-mentary materials about methods and tools that are relevant to chapter topics.
Acknowledgments.  Special thanks go to Tim Lethbridge of the University of Ottawa who assisted us in the development of UML and OCL examples, and developed the case study that accompanies this book, and Dale Skrien of Colby College, who devel-oped the UML tutorial in Appendix 1. Their assistance and comments were invaluable. In addition, we抎 like to thank Austin Krauss, Senior Software Engineer at Treyarch, for providing insight into software development in the video game industry. We also wish to thank the reviewers of the eighth edition: Manuel E. Bermudez, University of Florida; Scott DeLoach, Kansas State University; Alex Liu, Michigan State University; and Dean Mathias, Utah State University. Their in-depth comments and thoughtful criticism have helped us make this a much better book.
 Special Thanks.  BRM: I am grateful to have had the opportunity to work with Roger on the eighth edition of this book. During the time I have been working on this book my son Benjamin shipped his rst MobileApp and my daughter Katherine launched her interior design career. I am quite pleased to see the adults they have become. Im very grateful to my wife, Norma, for the enthusiastic support she has given me as I lled my free time with working on this book. RSP: As the editions of this book have evolved, my sons, Mathew and Michael, have grown from boys to men. Their maturity, character, and success in the real world have been an inspiration to me. Nothing has lled me with more pride. They now have children of their own, Maya and Lily, who start still another generation. Both girls are already wizards on mobile computing devices. Finally, to my wife Barbara, my love and thanks for tolerating the many, many hours in the of ce and encouraging still another edition of

上架指导

计算机\软件工程

封底文字

Roger Pressman编写的这部翔实而全面的软件工程指南,适合软件工程专业的学生及投身软件工程实践或需要参与这种实践的软件开发人员和管理人员阅读。——《IEEE Software》

这是一本经典的现代教材,叙述清晰而又具有权威性。本书包含大量插图、例子、习题和参考资料……如果读者心存疑问:“软件工程是什么?它现在在哪里?”那么最好阅读这本书。
——《ACM Computing Reviews》

本书自30多年前第1版问世以来,一直受到软件工程界的高度重视,对该学科的发展具有深刻影响,成为高等院校计算机、软件工程及相关专业软件工程课程的标准教材或重要参考书。它在全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第8版在结构和内容上均有调整、更新和充实,论述了很多人们称为“21世纪工程学科”的重要主题,强调安全和开发移动应用程序所需要面对的技术挑战。
本版基于原书第8版进行改编,保留其中的基本内容,新增部分保留了安全工程的相关内容,而删除了开发移动应用程序的相关内容,并压缩或删除了一些高级内容,从而更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。

加封面
软件工程:实践者的研究方法(英文版•第8版)
ISBN:978-7-111-48950-4
定价:119.00

作者简介

[美]罗杰 S. 普莱斯曼(Roger S. Pressman),布鲁斯 R. 马克西姆(Bruce R. Maxim)著:罗杰 S. 普莱斯曼(Roger S. Pressman) 软件过程改进和软件工程技术方面的国际知名权威人士。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任《IEEE Software》杂志的Manager专栏的编辑。他还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)等组织的成员。
布鲁斯 R. 马克西姆(Bruce R. Maxim) 在30多年的职业生涯中,Maxim博士曾先后担任过软件工程师、项目经理、大学教授、图书作者和技术顾问,具有丰富的产业和学术经验。Maxim博士现为密歇根大学迪尔伯恩分校计算机和信息科学副教授,还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)、美国工程教育学会(ASEE)等组织的成员。

图书目录

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 Prescriptive 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 Descriptions 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 Description 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

教学资源推荐
参考读物推荐
作者: (以)Daniel Galin
作者: Peter Herzum, Oliver Sims
作者: 荣国平 张贺 邵栋 等编著内封 荣国平 张贺 邵栋 陈连平 何勉 宋骏 腾灵灵 王天青 吴昊 编著