罗杰S. 普莱斯曼(Roger S. Pressman) 软件工程界国际知名的顾问和作家,作为工程师、经理人、教授、演讲家和企业家奋战在这一领域近50年。他现任一家咨询公司的总裁,致力于协助企业建立有效的软件工程实践;还是一家汽车零部件公司的创始人,专注于为特斯拉汽车设计和生产配件产品。
布鲁斯R. 马克西姆(Bruce R. Maxim) 作为软件工程师、项目经理、教授、作家和咨询师,拥有超过30年的从业经验,研究兴趣涉及软件工程、用户体验设计、游戏开发和工程教育等领域。他现任密歇根大学迪尔伯恩分校教授,为该校工程与计算机科学学院建立了游戏实验室;曾任某游戏开发公司的首席技术官。
目錄:
CHAPTER 1SOFTWARE AND SOFTWARE
ENGINEERING.1
1.1The Nature of Software.4
1.1.1Defining Software.5
1.1.2Software Application Domains.7
1.1.3Legacy Software.8
1.2Defining the Discipline.8
1.3The Software Process.9
1.3.1The Process Framework.10
1.3.2Umbrella Activities.11
1.3.3Process Adaptation.11
1.4Software Engineering Practice.12
1.4.1The Essence of Practice.12
1.4.2General Principles.14
1.5How It All Starts.15
1.6Summary.17
PART ONETHE SOFTWARE PROCESS.19
CHAPTER 2PROCESS MODELS.20
2.1A Generic Process Model.21
2.2Defining a Framework Activity.23
2.3Identifying a Task Set.23
2.4Process Assessment and Improvement.24
2.5Prescriptive Process Models.25
2.5.1The Waterfall Model.25
2.5.2Prototyping Process Model.26
2.5.3Evolutionary Process Model.29
2.5.4Unified Process Model.31
2.6Product and Process.33
2.7Summary.35
CHAPTER 3AGILITY AND PROCESS.37
3.1What Is Agility?.38
3.2Agility and the Cost of Change.39
3.3What Is an Agile Process?.40
3.3.1Agility Principles.40
3.3.2The Politics of Agile Development.41
3.4Scrum.42
3.4.1Scrum Teams and Artifacts.43
3.4.2Sprint Planning Meeting.44
3.4.3Daily Scrum Meeting.44
3.4.4Sprint Review Meeting.45
3.4.5Sprint Retrospective.45
3.5Other Agile Frameworks.46
3.5.1The XP Framework.46
3.5.2Kanban.48
3.5.3DevOps.50
3.6Summary.51
CHAPTER 4RECOMMENDED PROCESS MODEL.54
4.1Requirements Definition.57
4.2Preliminary Architectural Design.59
4.3Resource Estimation.60
4.4First Prototype Construction.61
4.5Prototype Evaluation.64
4.6Go, No-Go Decision.65
4.7Prototype Evolution.67
4.7.1New Prototype Scope.67
4.7.2Constructing New Prototypes.68
4.7.3Testing New Prototypes.68
4.8Prototype Release.68
4.9Maintain Release Software.69
4.10Summary.72
CHAPTER 5HUMAN ASPECTS OF SOFTWARE ENGINEERING.74
5.1Characteristics of a Software Engineer.75
5.2The Psychology of Software Engineering.75
5.3The Software Team.76
5.4Team Structures.78
5.5The Impact of Social Media.79
5.6Global Teams.80
5.7Summary.81
PART TWOMODELING.83
CHAPTER 6PRINCIPLES THAT
GUIDE PRACTICE.84
6.1Core Principles.85
6.1.1Principles That Guide Process.85
6.1.2Principles That Guide Practice.86
6.2Principles That Guide Each Framework Activity.88
6.2.1Communication Principles.88
6.2.2Planning Principles.91
6.2.3Modeling Principles.92
6.2.4Construction Principles.95
6.2.5Deployment Principles.98
6.3Summary.100
CHAPTER 7UNDERSTANDING REQUIREMENTS.102
7.1Requirements Engineering.103
7.1.1Inception.104
7.1.2Elicitation.104
7.1.3Elaboration.104
7.1.4Negotiation.105
7.1.5Specification.105
7.1.6Validation.105
7.1.7Requirements Management.106
7.2Establishing the Groundwork.107
7.2.1Identifying Stakeholders.107
7.2.2Recognizing Multiple Viewpoints.107
7.2.3Working Toward Collaboration.108
7.2.4Asking the First Questions.108
7.2.5Nonfunctional Requirements.109
7.2.6Traceability.109
7.3Requirements Gathering.110
7.3.1Collaborative Requirements Gathering.110
7.3.2Usage Scenarios.113
7.3.3Elicitation Work Products.114
7.4Developing Use Cases.114
7.5Building the Analysis Model.118
7.5.1Elements of the Analysis Model.119
7.5.2Analysis Patterns.122
7.6Negotiating Requirements.122
7.7Requirements Monitoring.123
7.8Validating Requirements.123
7.9Summary.124
CHAPTER 8REQUIREMENTS MODELING
A RECOMMENDED APPROACH.126
8.1Requirements Analysis.127
8.1.1Overall Objectives and Philosophy.128
8.1.2Analysis Rules of Thumb.128
8.1.3Requirements Modeling Principles.129
8.2Scenario-Based Modeling.130
8.2.1Actors and User Profiles.131
8.2.2Creating Use Cases.131
8.2.3Documenting Use Cases.135
8.3Class-Based Modeling.137
8.3.1Identifying Analysis Classes.137
8.3.2Defining Attributes and Operations