Download Software Engineering: A Practitioner’s Approach PDF

This International Student Edition is for use outside of the U.S.
N I N T H E D I T I O N
Software
Engineering
A PRACTITIONER’S APPROACH
ROGER S. PRESSMAN
BRUCE R. MAXIM
Software Engineering
a p r a c t i t i o n e r ’ s a p p r o a c h

Software Engineering
a p r a c t i t i o n e r ’ s a p p r o a c h
NINTH EDITION
Roger S. Pressman, Ph.D.
Bruce R. Maxim, Ph.D.
SOFTWARE ENGINEERING: A PRACTITIONER’S APPROACH
Published by McGraw-Hill Education, 2 Penn Plaza, New York, NY 10121. Copyright © 2020 by McGraw-Hill Education. All rights
reserved. Printed in the United States of America. No part of this publication may be reproduced or distributed in any form or by any
means, or stored in a database or retrieval system, without the prior written consent of McGraw-Hill Education, including, but not
limited to, in any network or other electronic storage or transmission, or broadcast for distance learning.
Some ancillaries, including electronic and print components, may not be available to customers outside the United States.
This book is printed on acid-free paper.
1 2 3 4 5 6 7 8 9 LCR 24 23 22 21 20 19
ISBN 978-1-260-54800-6
MHID 1-260-54800-7
Cover Image: ©R.L. Hausdorf/Shutterstock
All credits appearing on page or at the end of the book are considered to be an extension of the copyright page.
The Internet addresses listed in the text were accurate at the time of publication. The inclusion of a website does not indicate an
endorsement by the authors or McGraw-Hill Education, and McGraw-Hill Education does not guarantee the accuracy of the
information presented at these sites.
mheducation.com/highered
To Barbara, Matt, Mike,
Shiri, Adam, Lily,
and Maya.
—Roger S. Pressman
To my family who
support me in all
that I do.
—Bruce R. Maxim
About the Authors
Roger S. Pressman is an internationally recognized consultant and author
in software engineering. For almost five decades, he has worked as a software
engineer, a manager, a professor, an author, a consultant, and an entrepreneur.
Dr. Pressman was president of R. S. Pressman & Associates, Inc., a con-
sulting firm that specialized in helping companies establish effective software
engineering strategies. Over the years he developed a set of techniques and
tools that improved software engineering practice. He is also the founder and
chief technology officer of EVANNEX®, an automotive aftermarket company
that specializes in the design and manufacture of accessories for the Tesla
line of electric vehicles.
Courtesy of Roger Pressman
Dr. Pressman is the author of ten books, including two novels, and many
technical and management papers. He has been on the editorial boards of IEEE Software
and The Cutter IT Journal and was editor of the “Manager” column in IEEE Software.
Dr. Pressman is a well-known speaker, keynoting a number of major industry
conferences. He has presented tutorials at the International Conference on Software
Engineering and at many other industry meetings. He has been a member of the ACM,
IEEE, Tau Beta Pi, Phi Kappa Phi, Eta Kappa Nu, and Pi Tau Sigma.
Bruce R. Maxim has worked as a software engineer, project manager, pro-
fessor, author, and consultant for more than thirty years. His research interests
include software engineering, user experience design, serious game develop-
ment, artificial intelligence, and engineering education.
Dr. Maxim is professor of computer and information science and collegiate
professor of engineering at the University of Michigan–Dearborn. He estab-
lished the GAME Lab in the College of Engineering and Computer Science.
He has published papers on computer algorithm animation, game development,
and engineering education. He is coauthor of a best-selling introductory com-
puter science text and two edited collections of software engineering research
Michigan Creative/ papers. Dr. Maxim has supervised several hundred industry-based software
UM-Dearborn
development projects as part of his work at the University of Michigan–Dearborn.
Dr. Maxim’s professional experience includes managing research information sys-
tems at a medical school, directing instructional computing for a medical campus, and
working as a statistical programmer. Dr. Maxim served as the chief technology officer
for a game development company.
Dr. Maxim was the recipient of several distinguished teaching awards, a distin-
guished community service award, and a distinguished faculty governance award. He
is a member of Sigma Xi, Upsilon Pi Epsilon, Pi Mu Epsilon, Association of Comput-
ing Machinery, IEEE Computer Society, American Society for Engineering Education,
vi
Society of Women Engineers, and International Game Developers Association.
Contents at a Glance
CHAPTER 1 Software and Software Engineering 1
PART ONE THE SOFTWARE PROCESS 19
CHAPTER 2 Process Models 20
CHAPTER 3 Agility and Process 37
CHAPTER 4 Recommended Process Model 54
CHAPTER 5 Human Aspects of Software Engineering 74
PART TWO MODELING 83
CHAPTER 6 Principles That Guide Practice 84
CHAPTER 7 Understanding Requirements 102
CHAPTER 8 Requirements Modeling—A Recommended Approach 126
CHAPTER 9 Design Concepts 156
CHAPTER 10 Architectural Design—A Recommended Approach 181
CHAPTER 11 Component-Level Design 206
CHAPTER 12 User Experience Design 233
CHAPTER 13 Design for Mobility 264
CHAPTER 14 Pattern-Based Design 289
PART THREE QUALITY AND SECURITY 309
CHAPTER 15 Quality Concepts 310
CHAPTER 16 Reviews—A Recommended Approach 325
CHAPTER 17 Software Quality Assurance 339
CHAPTER 18 Software Security Engineering 356
CHAPTER 19 Software Testing—Component Level 372
CHAPTER 20 Software Testing—Integration Level 395
CHAPTER 21 Software Testing—Specialized Testing for Mobility 412
CHAPTER 22 Software Configuration Management 437
CHAPTER 23 Software Metrics and Analytics 460
vii
viii CONTENTS AT A GLANCE
PART FOUR MANAGING SOFTWARE PROJECTS 489
CHAPTER 24 Project Management Concepts 490
CHAPTER 25 Creating a Viable Software Plan 504
CHAPTER 26 Risk Management 532
CHAPTER 27 A Strategy for Software Support 549
PART FIVE ADVANCED TOPICS 567
CHAPTER 28 Software Process Improvement 568
CHAPTER 29 Emerging Trends in Software Engineering 583
CHAPTER 30 Concluding Comments 602
APPENDIX 1 An Introduction to UML 611
APPENDIX 2 Data Science for Software Engineers 629
REFERENCES 639
INDEX 659
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 Process Assessment and Improvement 24
2.5 Prescriptive Process Models 25
2.5.1 The Waterfall Model 25
2.5.2 Prototyping Process Model 26
2.5.3 Evolutionary Process Model 29
2.5.4 Unified Process Model 31
2.6 Product and Process 33
2.7 Summary 35
ix

See more