软件工程:实践者的研究方法(英文精编版·第7版)
作者 : (美)Roger S.Pressman 著
丛书名 : 经典原版书库
出版日期 : 2011-09-27
ISBN : 978-7-111-35965-4
定价 : 49.00元
教辅资源下载
扩展信息
语种 : 英文
页数 : 571
开本 : 32
原书名 : Software Engineering:A Practitioner's Approach,Seventh Edition
原出版社: McGraw-Hill
属性分类: 教材
包含CD :
绝版 :
图书简介

本书全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第7版在结构和内容上均有调整、更新和充实,更加突出软件过程,强调普遍使用的软件工程方法。本版基于原书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。

图书特色

Roger Pressman编写的这部翔实而全面的软件工程指南,广泛适合软件工程专业的学生及投身软件工程实践或需要参与这种实践的软件开发人员和管理人员。
——《IEEE Software》
这是一本经典的现代教材,叙述清晰而又具有权威性。本书包含大量插图、例子、习题和参考资料……如果读者心存疑问:“软件工程是什么?它现在在哪里?”那么最好阅读这本书。
——《ACM Computing Reviews》
本书自30年前第1版问世以来,一直受到软件工程界的高度重视,对该学科的发展具有深刻影响,其权威性是公认的、无可置疑的。它在全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第7版在结构和内容上均有调整、更新和充实,更加突出软件过程,强调普遍使用的软件工程方法。
本版基于原书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。
本书主要内容包括:
第一部分 软件过程,介绍了说明性模型和敏捷过程模型。
第二部分 建模,介绍了现代分析与设计方法,重点放在基于UML的建模方面。
第三部分 质量管理,是第7版中新增加的内容,描述质量评审技术、软件质量保证、软件 测试、软件配置管理的各个方面。
第四部分 软件项目管理,介绍与计划、管理和控制软件项目有关的主题。
Roger S. Pressman 软件过程改善和软件工程技术方面的国际知名的权威人士。30多年来,他作为软件工程师、管理人员、教授、作者及咨询顾问始终工作在软件工程领域。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任《IEEE Software》杂志的Manager专栏的编辑。Pressman博士是知名的演讲者,曾在许多行业会议上演讲,他还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)等组织的成员。

图书前言

When computer software succeeds—when it meets the needs of the people who use it, when it performs flawlessly over a long period of time, when it is easy to modify and even easier to use—it can and does change things for the better. But when software fails—when its users are dissatisfied, when it is error prone, when it is difficult to change and even harder to use—bad 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 decades since the first 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 discipline. Today, it is recognized as a subject worthy of serious research, conscientious study, and tumultuous debate. Throughout the industry, software engineer has replaced 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 disciplined 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 professionals 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 seventh edition of Software Engineering: A Practitioner抯 Approach is intended to serve as a guide to a maturing engineering discipline. Like the six editions that preceded it, the seventh edition is intended for both students and practitioners, retaining its appeal as a guide to the industry professional and a comprehensive introduction to the student at the upper-level undergraduate or first-year graduate level.
The seventh edition is considerably more than a simple update. The book has been revised and restructured to improve pedagogical flow and emphasize new and important software engineering processes and practices. In addition, a revised and updated 搒upport system, illustrated in the figure, provides 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) specifically designed for Software Engineering: A Practitioner's Approach.
The Seventh Edition. The 22 chapters of this edition have been reorganized into four parts.
Part 1, The Process, presents a variety of different views of software process, considering all important process models and addressing the debate between prescriptive and agile process philosophies. Part 2, Modeling, presents analysis and design methods with an emphasis on object-oriented techniques and UML modeling. Part 3, Quality Management, presents the concepts, procedures, techniques, and methods that enable a software team to assess software quality, review software engineering work products, conduct SQA procedures, and apply an effective testing strategy and tactics. Part 4, Managing Software Projects, presents topics that are relevant to those who plan, manage, and control a software development project. Continuing in the tradition of past editions, a series of sidebars is used throughout the book to present the trials and tribulations of a (fictional) software team and to provide supplementary materials about methods and tools that are relevant to chapter topics.
Acknowledgments. My work on the seven editions of Software Engineering: A Practitioner抯 Approach has been the longest continuing technical project of my life. Even when the writing stops, information extracted from the technical literature continues to be assimilated and organized, and criticism and suggestions from readers worldwide is evaluated and cataloged. For this reason, my thanks to the many authors of books, papers, and articles (in both hardcopy and electronic media) who have provided me with additional insight, ideas, and commentary over nearly 30 years.
Special thanks go to Tim Lethbridge of the University of Ottawa, who assisted me in the development of UML and OCL examples and developed the case study that accompanies this book, and Dale Skrien of Colby College, who developed the UML tutorial in Appendix 1. Their assistance and comments were invaluable. Special thanks also go to Bruce Maxim of the University of Michigan-Dearborn, who assisted me in developing much of the pedagogical website content that accompanies this book. Finally, I wish to thank the reviewers of the seventh edition: Their in-depth comments and thoughtful criticism have been invaluable.

Osman Balci, SK Jain,
Virginia Tech University National Institute of Technology Hamirpur
Max Fomitchev, Saeed Monemi,
Penn State University Cal Poly Pomona
Jerry (Zeyu) Gao, Ahmed Salem,
San Jose State University California State University
Guillermo Garcia, Vasudeva Varma,
Universidad Alfonso X Madrid IIIT Hyderabad
Pablo Gervas,
Universidad Complutense de Madrid

The content of the seventh edition of Software Engineering: A Practitioner抯 Approach has been shaped by industry professionals, university professors, and students who have used earlier editions of the book and have taken the time to communicate their suggestions, criticisms, and ideas. My thanks to each of you. In addition, my personal thanks go to our many industry clients worldwide, who certainly have taught me as much or more than I could ever teach them.
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 filled me with more pride. And finally, to Barbara, my love and thanks for tolerating the many, many hours in the office and encouraging still another edition of 搕he book.

Roger S. Pressman

上架指导

计算机\软件工程

封底文字

Roger Pressman编写的这部翔实而全面的软件工程指南,广泛适合软件工程专业的学生及投身软件工程实践或需要参与这种实践的软件开发人员和管理人员。
  ——《IEEE Software》
这是一本经典的现代教材,叙述清晰而又具有权威性。本书包含大量插图、例子、习题和参考资料……如果读者心存疑问:“软件工程是什么?它现在在哪里?”那么最好阅读这本书。
——《ACM Computing Reviews》

本书自30年前第1版问世以来,一直受到软件工程界的高度重视,对该学科的发展具有深刻影响,其权威性是公认的、无可置疑的。它在全面而系统地介绍软件工程的有关概念、原则、方法和工具方面获得了广大读者的好评。第7版在结构和内容上均有调整、更新和充实,更加突出软件过程,强调普遍使用的软件工程方法。
本版基于原书第7版进行改编,保留其中的基本内容,压缩或删除了一些高级内容,更加适合作为国内高校计算机、软件工程及相关专业本科生的软件工程课程教材。


本版基于原书第7版进行精简,使内容更符合普通高校本科生的课程大纲,让本科生可以在一学期内掌握软件工程的最核心基础内容:
第一部分 软件过程,介绍了说明性模型和敏捷过程模型。
第二部分 建模,介绍了现代分析与设计方法,重点放在基于UML的建模方面。
第三部分 质量管理,是第7版中新增加的内容,描述质量评审技术、软件质量保证、软件测试、软件配置管理的各个方面。
第四部分 软件项目管理,介绍与计划、管理和控制软件项目有关的主题。

作者简介:
Roger S. Pressman 软件过程改善和软件工程技术方面的国际知名的权威人士。30多年来,他作为软件工程师、管理人员、教授、作者及咨询顾问始终工作在软件工程领域。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任《IEEE Software》杂志的Manager专栏的编辑。Pressman博士是知名的演讲者,曾在许多行业会议上演讲,他还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)等组织的成员。

翻译版:
ISBN:978-7-111-33581-8
定价:79.00

英文版:
ISBN:978-7-111-31871-2
定价:75.00

本科教学版:
ISBN:978-7-111-3
定价:

作者简介

(美)Roger S.Pressman 著:Roger S.Pressman 博士是软件过程改善和软件工程技术方面的国际知名的权威人士。30多年来,他作为软件工程师、管理人员、教授、作者及咨询顾问始终工作在软件工程领域。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任引《IEEE Software》杂志的Manager专栏的编辑。Pressman博士是知名的演讲者,曾在许多行业会议上演讲,他还是美国计算机协会(ACM)、美国电气与电子工程师协会(1EEE)等组织的成员。

图书目录

出版者的话
Adapter's Foreword
Preface
About the Author
CHAPTER 1SOFTWARE AND SOFTWARE ENGINEERING  1
1.1The Nature of Software  3
1.1.1Defining Software  4
1.1.2Software Application Domains  7
1.1.3Legacy Software  9
1.2Software Engineering  10
1.3The Software Process  12
1.4Software Engineering Practice  15
1.4.1The Essence of Practice  16
1.4.2General Principles  17
1.5Software Myths  19
1.6Summary  22
PROBLEMS AND POINTS TO PONDER  22
FURTHER READINGS AND INFORMATION SOURCES  23
PART ONETHE SOFTWARE PROCESS
CHAPTER 2PROCESS MODELS  26
2.1A Generic Process Model  27
2.1.1Defining a Framework Activity  28
2.1.2Identifying a Task Set  30
2.1.3Process Patterns  31
2.2Prescriptive Process Models  32
2.2.1The Waterfall Model  34
2.2.2Incremental Process Models  36
2.2.3Evolutionary Process Models  37
2.2.4Concurrent Models  43
2.2.5A Final Word on Evolutionary Processes  44
2.3Specialized Process Models  45
2.3.1Component-Based Development  45
2.3.2The Formal Methods Model  46
2.3.3Aspect-Oriented Software Development  47
2.4The Unified Process  48
2.4.1A Brief History  49
2.4.2Phases of the Unified Process  49
2.5Process Technology  51
2.6Product and Process  52
2.7Summary  53
PROBLEMS AND POINTS TO PONDER  54
FURTHER READINGS AND INFORMATION SOURCES  55
CHAPTER 3AGILE DEVELOPMENT  56
3.1What Is Agility   58
3.2Agility and the Cost of Change  58
3.3What Is an Agile Process   59
3.3.1Agility Principles  60
3.3.2The Politics of Agile Development  61
3.3.3Human Factors  62
3.4Extreme Programming (XP)  63
3.4.1XP Values  63
3.4.2The XP Process  64
3.4.3Industrial XP  68
3.4.4The XP Debate  69
3.5Other Agile Process Models  71
3.5.1Adaptive Software Development (ASD)  72
3.5.2Scrum  73
3.5.3Dynamic Systems Development Method (DSDM)  75
3.5.4Crystal  76
3.5.5Feature Driven Development (FDD)  77
3.5.6Lean Software Development (LSD)  78
3.5.7Agile Modeling (AM)  79
3.5.8Agile Unified Process (AUP)  80
3.6A Tool Set for the Agile Process  82
3.7Summary  82
PROBLEMS AND POINTS TO PONDER  83
FURTHER READINGS AND INFORMATION SOURCES  84
PART TWOMODELING
CHAPTER 4UNDERSTANDING REQUIREMENTS  88
4.1Requirements Engineering  89
4.2Establishing the Groundwork  94
4.2.1Identifying Stakeholders  94
4.2.2Recognizing Multiple Viewpoints  95
4.2.3Working toward Collaboration  95
4.2.4Asking the First Questions  96
4.3Eliciting Requirements  97
4.3.1Collaborative Requirements Gathering  97
4.3.2Quality Function Deployment  100
4.3.3Usage Scenarios  101
4.3.4Elicitation Work Products  102
4.4Developing Use Cases  102
4.5Building the Requirements Model  107
4.5.1Elements of the Requirements Model  108
4.5.2Analysis Patterns  111
4.6Negotiating Requirements  111
4.7Validating Requirements  113
4.8Summary  114
PROBLEMS AND POINTS TO PONDER  114
FURTHER READINGS AND INFORMATION SOURCES  115
CHAPTER 5REQUIREMENTS MODELING: SCENARIOS,INFORMATION, AND ANALYSIS CLASSES  117
5.1Requirements Analysis  118
5.1.1Overall Objectives and Philosophy  119
5.1.2Analysis Rules of Thumb  120
5.1.3Domain Analysis  120
5.1.4Requirements Modeling Approaches  122
5.2Scenario-Based Modeling  123
5.2.1Creating a Preliminary Use Case  124
5.2.2Refining a Preliminary Use Case  127
5.2.3Writing a Formal Use Case  128
5.3UML Models That Supplement the Use Case  130
5.3.1Developing an Activity Diagram  130
5.3.2Swimlane Diagrams  131
5.4Data Modeling Concepts  133
5.4.1Data Objects  133
5.4.2Data Attributes  133
5.4.3Relationships  134
5.5Class-Based Modeling  136
5.5.1Identifying Analysis Classes  136
5.5.2Specifying Attributes  140
5.5.3Defining Operations  140
5.5.4Class-Responsibility-Collaborator (CRC) Modeling  142
5.5.5Associations and Dependencies  149
5.5.6Analysis Packages  151
5.6Summary  152
PROBLEMS AND POINTS TO PONDER  152
FURTHER READINGS AND INFORMATION SOURCES  153
CHAPTER 6REQUIREMENTS MODELING: FLOW, BEHAVIOR, PATTERNS  155
6.1Requirements Modeling Strategies  155
6.2Flow-Oriented Modeling  156
6.2.1Creating a Data Flow Model  157
6.2.2Creating a Control Flow Model  160
6.2.3The Control Specification  160
6.2.4The Process Specification  161
6.3Creating a Behavioral Model  164
6.3.1Identifying Events with the Use Case  164
6.3.2State Representations  165
6.4Patterns for Requirements Modeling  168
6.4.1Discovering Analysis Patterns  169
6.4.2A Requirements Pattern Example: Actuator-Sensor  169
6.5Summary  174
PROBLEMS AND POINTS TO PONDER  174
FURTHER READINGS AND INFORMATION SOURCES  175
CHAPTER 7DESIGN CONCEPTS  176
7.1Design within the Context of Software Engineering  177
7.2The Design Process  180
7.2.1Software Quality Guidelines and Attributes  180
7.2.2The Evolution of Software Design  182
7.3Design Concepts  183
7.3.1Abstraction  184
7.3.2Architecture  184
7.3.3Patterns  185
7.3.4Separation of Concerns  186
7.3.5Modularity  186
7.3.6Information Hiding  187
7.3.7Functional Independence  188
7.3.8Refinement  189
7.3.9Aspects  189
7.3.10Refactoring  190
7.3.11Object-Oriented Design Concepts  191
7.3.12Design Classes  191
7.4The Design Model  194
7.4.1Data Design Elements  195
7.4.2Architectural Design Elements  195
7.4.3Interface Design Elements  196
7.4.4Component-Level Design Elements  198
7.4.5Deployment-Level Design Elements  198
7.5Summary  200
PROBLEMS AND POINTS TO PONDER  201
FURTHER READINGS AND INFORMATION SOURCES  201
CHAPTER 8ARCHITECTURAL DESIGN  203
8.1Software Architecture  204
8.1.1What Is Architecture   204
8.1.2Why Is Architecture Important   206
8.1.3Architectural Descriptions  206
8.1.4Architectural Decisions  207
8.2Architectural Genres  207
8.3Architectural Styles  210
8.3.1A Brief Taxonomy of Architectural Styles  211
8.3.2Architectural Patterns  214
8.3.3Organization and Refinement  216
8.4Architectural Design  216
8.4.1Representing the System in Context  217
8.4.2Defining Archetypes  218
8.4.3Refining the Architecture into Components  219
8.4.4Describing Instantiations of the System  221
8.5Assessing Alternative Architectural Designs  222
8.5.1An Architecture Trade-Off Analysis Method  223
8.5.2Architectural Complexity  224
8.5.3Architectural Description Languages  225
8.6Architectural Mapping Using Data Flow  226
8.6.1Transform Mapping  226
8.6.2Refining the Architectural Design  232
8.7Summary  234
PROBLEMS AND POINTS TO PONDER  234
FURTHER READINGS AND INFORMATION SOURCES  235
CHAPTER 9COMPONENT-LEVEL DESIGN  236
9.1What Is a Component   237
9.1.1An Object-Oriented View  237
9.1.2The Traditional View  239
9.1.3A Process-Related View  241
9.2Designing Class-Based Components  242
9.2.1Basic Design Principles  242
9.2.2Component-Level Design Guidelines  245
9.2.3Cohesion  246
9.2.4Coupling  248
9.3Conducting Component-Level Design  250
9.4Designing Traditional Components  256
9.4.1Graphical Design Notation  257
9.4.2Tabular Design Notation  258
9.4.3Program Design Language  259
9.5Component-Based Development  261
9.5.1Domain Engineering  261
9.5.2Component Qualification, Adaptation, and Composition  262
9.5.3Analysis and Design for Reuse  264
9.5.4Classifying and Retrieving Components  265
9.6Summary  267
PROBLEMS AND POINTS TO PONDER  268
FURTHER READINGS AND INFORMATION SOURCES  269
CHAPTER 10USER INTERFACE DESIGN  270
10.1The Golden Rules  271
10.1.1Place the User in Control  271
10.1.2Reduce the User's Memory Load  272
10.1.3Make the Interface Consistent  274
10.2User Interface Analysis and Design  275
10.2.1Interface Analysis and Design Models  275
10.2.2The Process  277
10.3Interface Analysis  278
10.3.1User Analysis  279
10.3.2Task Analysis and Modeling  280
10.3.3Analysis of Display Content  285
10.3.4Analysis of the Work Environment  286
10.4Interface Design Steps  286
10.4.1Applying Interface Design Steps  287
10.4.2User Interface Design Patterns  288
10.4.3Design Issues  289
10.5Design Evaluation  292
10.6Summary  294
PROBLEMS AND POINTS TO PONDER  295
FURTHER READINGS AND INFORMATION SOURCES  296
PART THREEQUALITY MANAGEMENT  297
CHAPTER 11QUALITY CONCEPTS  298
11.1What Is Quality   299
11.2Software Quality  300
11.2.1Garvin抯 Quality Dimensions  301
11.2.2McCall抯 Quality Factors  302
11.2.3ISO 9126 Quality Factors  303
11.2.4Targeted Quality Factors  304
11.2.5The Transition to a Quantitative View  305
11.3The Software Quality Dilemma  306
11.3.1揋ood Enough Software  306
11.3.2The Cost of Quality  307
11.3.3Risks  309
11.3.4Negligence and Liability  310
11.3.5Quality and Security  310
11.3.6The Impact of Management Actions  311
11.4Achieving Software Quality  312
11.4.1Software Engineering Methods  312
11.4.2Project Management Techniques  312
11.4.3Quality Control  312
11.4.4Quality Assurance  313
11.5 Summary  313
PROBLEMS AND POINTS TO PONDER  314
FURTHER READINGS AND INFORMATION SOURCES  314
CHAPTER 12REVIEW TECHNIQUES  316
12.1Cost Impact of Software Defects  317
12.2Defect Amplification and Removal  318
12.3Review Metrics and Their Use  320
12.3.1Analyzing Metrics  320
12.3.2Cost Effectiveness of Reviews  321
12.4Reviews: A Formality Spectrum  323
12.5Informal Reviews  324
12.6Formal Technical Reviews  326
12.6.1The Review Meeting  326
12.6.2Review Reporting and Record Keeping  327
12.6.3Review Guidelines  327
12.6.4Sample-Driven Reviews  329
12.7Summary  330
PROBLEMS AND POINTS TO PONDER  331
FURTHER READINGS AND INFORMATION SOURCES  331
CHAPTER 13SOFTWARE QUALITY ASSURANCE  332
13.1Background Issues  333
13.2Elements of Software Quality Assurance  334
13.3SQA Tasks, Goals, and Metrics  336
13.3.1SQA Tasks  336
13.3.2Goals, Attributes, and Metrics  337
13.4Formal Approaches to SQA  338
13.5Statistical Software Quality Assurance  339
13.5.1A Generic Example  339
13.5.2Six Sigma for Software Engineering  341
13.6Software Reliability  342
13.6.1Measures of Reliability and Availability  342
13.6.2Software Safety  343
13.7The ISO 9000 Quality Standards  344
13.8The SQA Plan  345
13.9A Framework for Product Metrics  346
13.9.1Measures, Metrics, and Indicators  347
13.9.2The Challenge of Product Metrics  347
13.9.3Measurement Principles  348
13.9.4Goal-Oriented Software Measurement  350
13.9.5The Attributes of Effective Software Metrics  350
13.10Function-Based Metrics  351
13.11Summary  355
PROBLEMS AND POINTS TO PONDER  355
FURTHER READINGS AND INFORMATION SOURCES  356
CHAPTER 14SOFTWARE TESTING STRATEGIES  357
14.1A Strategic Approach to Software Testing  358
14.1.1Verification and Validation  358
14.1.2Organizing for Software Testing  359
14.1.3Software Testing Strategy-The Big Picture  360
14.1.4Criteria for Completion of Testing  363
14.2Strategic Issues  363
14.3Test Strategies for Conventional Software  364
14.3.1Unit Testing  364
14.3.2Integration Testing  367
14.4Test Strategies for Object-Oriented Software  373
14.4.1Unit Testing in the OO Context  374
14.4.2Integration Testing in the OO Context  374
14.5Validation Testing  375
14.5.1Validation-Test Criteria  375
14.5.2Configuration Review  376
14.5.3Alpha and Beta Testing  376
14.6System Testing  377
14.6.1Recovery Testing  378
14.6.2Security Testing  378
14.6.3Stress Testing  378
14.6.4Performance Testing  379
14.6.5Deployment Testing  379
14.7The Art of Debugging  380
14.7.1The Debugging Process  380
14.7.2Psychological Considerations  382
14.7.3Debugging Strategies  382
14.7.4Correcting the Error  385
14.8Summary  385
PROBLEMS AND POINTS TO PONDER  386
FURTHER READINGS AND INFORMATION SOURCES  386
CHAPTER 15TESTING CONVENTIONAL APPLICATIONS  388
15.1Software Testing Fundamentals  389
15.2Internal and External Views of Testing  391
15.3White-Box Testing  392
15.4Basis Path Testing  392
15.4.1Flow Graph Notation  392
15.4.2Independent Program Paths  394
15.4.3Deriving Test Cases  396
15.5Control Structure Testing  398
15.5.1Condition Testing  398
15.5.2Data Flow Testing  399
15.5.3Loop Testing  399
15.6Black-Box Testing  401
15.6.1Equivalence Partitioning  401
15.6.2Boundary Value Analysis  402
15.7Summary  403
PROBLEMS AND POINTS TO PONDER  404
FURTHER READINGS AND INFORMATION SOURCES  404
CHAPTER 16TESTING OBJECT-ORIENTED APPLICATIONS  406
16.1Broadening the View of Testing  407
16.2Testing OOA and OOD Models  408
16.2.1Correctness of OOA and OOD Models  408
16.2.2Consistency of Object-Oriented Models  409
16.3Object-Oriented Testing Strategies  411
16.3.1Unit Testing in the OO Context  411
16.3.2Integration Testing in the OO Context  411
16.3.3Validation Testing in an OO Context  412
16.4Object-Oriented Testing Methods  412
16.4.1The Test-Case Design Implications of OO Concepts  413
16.4.2Applicability of Conventional Test-Case Design Methods  413
16.4.3Fault-Based Testing  414
16.4.4Test Cases and the Class Hierarchy  414
16.4.5Scenario-Based Test Design  415
16.4.6Testing Surface Structure and Deep Structure  417
16.5Testing Methods Applicable at the Class Level  417
16.5.1Random Testing for OO Classes  417
16.5.2Partition Testing at the Class Level  419
16.6Interclass Test-Case Design  419
16.6.1Multiple Class Testing  419
16.6.2Tests Derived from Behavior Models  421
16.7Summary  422
PROBLEMS AND POINTS TO PONDER  423
FURTHER READINGS AND INFORMATION SOURCES  423
CHAPTER 17SOFTWARE CONFIGURATION MANAGEMENT  424
17.1Software Configuration Management  425
17.1.1An SCM Scenario  426
17.1.2Elements of a Configuration Management System  427
17.1.3Baselines  427
17.1.4Software Configuration Items  429
17.2The SCM Repository  430
17.2.1The Role of the Repository  430
17.2.2General Features and Content  431
17.2.3SCM Features  432
17.3The SCM Process  433
17.3.1Identification of Objects in the Software Configuration  434
17.3.2Version Control  435
17.3.3Change Control  436
17.3.4Configuration Audit  439
17.3.5Status Reporting  440
17.4Summary  441
PROBLEMS AND POINTS TO PONDER  441
FURTHER READINGS AND INFORMATION SOURCES  442
PART FOURMANAGING SOFTWARE PROJECTS  443
CHAPTER 18PROJECT MANAGEMENT CONCEPTS  444
18.1The Management Spectrum  445
18.1.1The People  445
18.1.2The Product  446
18.1.3The Process  446
18.1.4The Project  446
18.2People  447
18.2.1The Stakeholders  447
18.2.2Team Leaders  448
18.2.3The Software Team  449
18.2.4Agile Teams  452
18.2.5Coordination and Communication Issues  453
18.3The Product  454
18.3.1Software Scope  454
18.3.2Problem Decomposition  454
18.4The Process  455
18.4.1Melding the Product and the Process  455
18.4.2Process Decomposition  456
18.5The Project  458
18.6The W5HH Principle  459
18.7Critical Practices  460
18.8Summary  461
PROBLEMS AND POINTS TO PONDER  461
FURTHER READINGS AND INFORMATION SOURCES  462
CHAPTER 19PROCESS AND PROJECT METRICS  464
19.1Metrics in the Process and Project Domains  465
19.1.1Process Metrics and Software Process Improvement  465
19.1.2Project Metrics  468
19.2Software Measurement  469
19.2.1Size-Oriented Metrics  470
19.2.2Function-Oriented Metrics  471
19.2.3Reconciling LOC and FP Metrics  471
19.2.4Object-Oriented Metrics  473
19.2.5Use-Case-Oriented Metrics  474
19.3Metrics for Software Quality  475
19.3.1Measuring Quality  476
19.3.2Defect Removal Efficiency  477
19.4Summary  479
PROBLEMS AND POINTS TO PONDER  479
FURTHER READINGS AND INFORMATION SOURCES  480
CHAPTER 20ESTIMATION FOR SOFTWARE PROJECTS  481
20.1Observations on Estimation  482
20.2The Project Planning Process  483
20.3Software Scope and Feasibility  484
20.4Resources  485
20.4.1Human Resources  485
20.4.2Reusable Software Resources  486
20.4.3Environmental Resources  486
20.5Software Project Estimation  487
20.6Decomposition Techniques  488
20.6.1Software Sizing  488
20.6.2Problem-Based Estimation  489
20.6.3An Example of LOC-Based Estimation  491
20.6.4An Example of FP-Based Estimation  492
20.6.5Process-Based Estimation  493
20.6.6An Example of Process-Based Estimation  494
20.6.7Estimation with Use Cases  495
20.6.8An Example of Use-Case-Based Estimation  496
20.6.9Reconciling Estimates  497
20.7Empirical Estimation Models  498
20.7.1The Structure of Estimation Models  499
20.7.2The COCOMO II Model  499
20.7.3The Software Equation  501
20.8Estimation for Object-Oriented Projects  502
20.9Summary  503
PROBLEMS AND POINTS TO PONDER  504
FURTHER READINGS AND INFORMATION SOURCES  505
CHAPTER 21PROJECT SCHEDULING  506
21.1Basic Concepts  507
21.2Project Scheduling  509
21.2.1Basic Principles  510
21.2.2The Relationship Between People and Effort  510
21.2.3Effort Distribution  512
21.3Defining a Task Set for the Software Project  513
21.3.1A Task Set Example  514
21.3.2Refinement of Software Engineering Actions  515
21.4Defining a Task Network  516
21.5Scheduling  517
21.5.1Time-Line Charts  517
21.5.2Tracking the Schedule  519
21.5.3Tracking Progress for an OO Project  520
21.6Earned Value Analysis  522
21.7Summary  523
PROBLEMS AND POINTS TO PONDER  524
FURTHER READINGS AND INFORMATION SOURCES  525
CHAPTER 22RISK MANAGEMENT  526
22.1Reactive versus Proactive Risk Strategies  527
22.2Software Risks  527
22.3Risk Identification  529
22.3.1Assessing Overall Project Risk  530
22.3.2Risk Components and Drivers  531
22.4Risk Projection  531
22.4.1Developing a Risk Table  532
22.4.2Assessing Risk Impact  534
22.5Risk Refinement  536
22.6Risk Mitigation, Monitoring, and Management  537
22.7The RMMM Plan  539
22.8Summary  541
PROBLEMS AND POINTS TO PONDER  541
FURTHER READINGS AND INFORMATION SOURCES  542
APPENDIX 1AN INTRODUCTION TO UML
APPENDIX 2OBJECT-ORIENTED CONCEPTS
REFERENCES
  For the details of this appendix, see the publisher's website (www.hzbook.com).
  For the details of this references, see the publisher's website (www.hzbook.com).

教学资源推荐
作者: Leszek A.Maciaszek, Bruc Lee Liong
作者: 黎连业 王华 李龙 黎照 李淑春 编著
作者: 李龙澍 郑诚 主编 杨为民 李学俊 程凡 姚晟 编著
参考读物推荐
作者: James R.Persse
作者: 黄勇 雷辉 徐潇 杨雪敏 著