Roger S. Pressman,软件过程改进和软件工程技术方面的国际知名权威人士。多年来,他作为软件工程师、管理人员、教授、作者及咨询顾问始终工作在软件工程领域。Pressman博士著有6部著作,并撰写了很多技术文章,是多种行业期刊的固定撰稿人,曾任多种行业杂志的编委,多年来一直担任《IEEE Software》杂志的Manager专栏的编辑。Pressman博士是知名的演讲者,曾在许多行业会议上演讲。他还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)等组织的成员。
Bruce R. Maxim,在30多年的职业生涯中,Maxim博士曾先后担任过软件工程师、项目经理、大学教授、图书作者和技术顾问,具有丰富的产业和学术经验。他的研究兴趣包括软件工程、人机交互、游戏设计、社会媒体、人工智能和计算机科学教育。Maxim博士现为密歇根大学迪尔伯恩分校计算机和信息科学副教授,他建立了密歇根大学迪尔伯恩分校工程和计算机科学学院GAME实验室,监管了几百个基于工业的软件开发项目。他是几个杰出教学奖和一个杰出社区服务奖得主,还是美国计算机协会(ACM)、美国电气与电子工程师协会(IEEE)、美国工程教育学会(ASEE)等组织的成员。
目錄:
Preface
CHAPTER 1 THE NATURE OF SOFTWARE
1.1 The Nature of Software
1.1.1 Defininq Software
1.1.2 Software Application Domains
1.1.3 Legacy Software
1.2 The Changing Nature of Software
1.2.1 WebApps
1.2.2 Mobile Applications
1.2.3 Cloud Computing
1.2.4 Product Line Software
1.3 Summary
PROBIEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
CHAPTER 2 SOFTWARE ENGINEERING
2.1 Defining the Discipline
2.2 The Software Process
2.2.1 The Process Framework
2.2.2 Umbrella Activities
2.2.3 Process Adaptation
2.3 Software Engineering Practice
2.3.1 The Essence of Practice
2.3.2 General Principles
2.4 Software Development Myths
2.5 How It All Starts
2.6 Summary
PROBIEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
PART ONE THE SOFTWARE PROCESS
CHAPTER 3 SOFTWARE PROCESS STRUCEURE
3.1 A Generic Process Model
3.2 Defining a Framework Activity
3.3 Identifying a Task Set
3.4 Process Patterns
3.5 Process Assessment and Improvement
36 Surnmary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
CHAPTER 4 PROCESS MODELS
4.1 Prescriptive Process Models
4.1.1 The Waterfall Model
4.1.2 Incremental Process Models
4.1.3 Evolutionary Process Models
4.1.4 Concurrent Models
4.1.5 A Final Word on Evolutionary Processes
4.2 Specialized Process Models
4.2.1 Componenr—Based Development
4.2.2 The Formal Methods Model
4.2.3 Aspect—Oriented Software Developmenl
4.3 The Unified Process
4.3.1 A Brief History
4.3.2 Phases of the Unified Process
4.4 Personal and Team Process Models
4.4.1 Personal Software Process
4.4.2 Team Software Process
4.5 Process Technology
4.6 Product and Process
4.7 Summary
PROBLEMS AND POIHTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
CHAPTER 5 AGILS DEVELOPMENT
5.1 What Is Agility?
5.2 Agility and the Cost of CHange
5.3 What Is an Agile Process?
5.3.1 Agility Principles
5.3.2 The Politics of Agile Development
5.4 Extreme Programming
5.4.1 The XP Process
5.4.2 Industrial XP
5.5 Other Agile Process Modeis
5.5.1 Scrum
5.5.2 Dynamic Systems Development Method
5.5.3 Agile Modeling
5.5.4 Agile Unified Process
5.6 A Tool Set for tHe Agile Process
5.7 Summary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
CHAPTER 6 HUMAN ASPECTS OF SOFTWARE ENGINEERING
6.1 Characteristics of a Software Engineer
6.2 The Psychology of Software Engineering
6.3 The Soffware Team
6.4 Team Structures
6.5 Agile Teams
6.5.1 The Generic Agile Team
6.5.2 The XP Team
6.6 The Impad of Social Medio
6.7 Software Engineering Using the Cloud
6.8 Collaboration Tools
6.9 Global Teams
6.10 Summary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
PART TWO MODELING
CHAPTER 7 PRINCIPLES THAT GUIDE PRACTICE
7.1 Software Engineering Knowledge
7.2 Core Principles
7.2.1 Principles That Guide Process
7.2.2 Principles That Guide Practice
7.3 Principles That Guide Each Framework Activicy
7.3.1 Communication Prinaples
7.3.2 Planning Principles
7.3.3 Modeiing Principles
7.3.4 Construdion Principles
7.3.5 Deployment Principles
7.4 Work Practices
7.5 Summary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
CHAPTER 8 UNDERSTANDING REQUIREMENTS
8.1 Requirements Engineering
8.2 Estoblishing the Gfoundwork
8.2.1 Identifying Stakehotders
8.2.2 Recognizing Multiple Viewpoints
8.2.3 Working toword Collaboration
8.2.4 Asking the First Quesfions
8.2.5 Nonfunctional Requirements
8.2.6 Traceability
8.3 Eliciting Requiremenfs
8.3.1 Collaborative Requirements Gathering
8.3.2 Quolity Function Deployment
8.3.3 Usage Scenarios
8.3.4 Elicitation Work Products
8.3.5 Agile Requirements Elicitarion
8.3.6 Service—Oriented Methods
8.4 Developing Use Cases
8.5 Building the Analysis Model
8.5.1 Elements of the Analysis Model
8.5.2 Analysis Potferns
8.5.3 Agile Requirements Engineering
8.5.4 Requirements for Self—Adaptive Systems
8.6 Negotiating Requirements
8.7 Requirements Monitoring
8.8 Validafing Requirements
8.9 Avoiding Common Mistakes
8.10 Summary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND OTHER INFORMATION SOURCES
CHAPTER 9 REQUIREMENTS MODELING: SCENARIO—BASED METHODS
9.1 Requirements Analysis
9.1.1 Overall Objectives and Philosophy
9.1.2 Analysis Rules of Thumb
9.1.3 Domain Analysis
9.1.4 Requirements Modeling Approaches
9.2 Scenario—Based Modeling
9.2.1 Creating o Preliminary Use Case
9.2.2 Refining a Preliminary Use Case
9.2.3 Writing a Formal Use Case
9.3 UML Models That Supplement the Use Case
9.3.1 Developing an Activity Diagram
9.3.2 Swimlone Diagrams
9.4 Summary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
CHAPTER 10 REQUIREMENTS MODELING: CLASS—BASED METHODS
10.1 Identifying Analysis Closses
10.2 Specifying Attributes
10.3 Defining Operations
10.4 Class—Responsibility—Collaborafor Modeling
10.5 Associations and Dependencies
10.6 Analysis Packages
10.7 Summary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
CHAPTER 11 REQUIREMENTS MODELING; BEHAVIOR,PATTERNS,AND WEB/MOBILE APPS
11.1 Creating a Behavioral Model
11.2 Identifying Events with the Use Case
11.3 State Representations
11.4 Patterns for Requirements Modeling
11.4.1 Discovering Analysis Patterns
11.4.2 A Requirements Pattern Example: Actuafor—Sensor
11.5 Requirements Modeling for Web and Mobile Apps
11.5.1 How Much Analysis Is Enough?
11.5.2 Requirements Modeling Input
11.5.3 Requirements Modeling Output
11.54 Contenl Model
11.5.5 Interation Model for Web and Mobile Apps
11.5.6 Functional Model
11.5.7 Configuration Models for WebApps
11.5.8 Navigation Modeling
11.6 Summary
PROBLEMS AND POINTS TO PONDER
FURTHER READINGS AND INFORMATION SOURCES
……
CHAPTER 12 DESIGN CONCEPTS
CHAPTER 13 ARCHITECTURAL DESIGN
CHAPTER 14 COMPONENT—LEVEL DESIGN
CHAPTER 15 USER INTERFACE DESIGN
CHAPTER 16 PATTERN—BASED DESIGN
CHAPTER 17 WEBAPP DESIGN
CHAPTER 18 MOBILEAPP DESIGN
PART THREE QUALITY MANAGEMENT
CHAPTER 19 QUALITY CONCEPTS
CHAPTER 20 REVIEW TECHNIQUES
CHAPTER 21 SOFTWARE QUALITY ASSURANCE
CHAPTER 22 SOFTWARE TESTING STRATEGIES
CHAPTER 23 TESTING CONVENTIONAL APPLICATIONS
CHAPTER 24 TESTING OBJECT—ORIENTED APPLICATIONS
CHAPTER 25 TESTING WEB APPLICATIONS