CHAPTER 1 SOFTWARE AND SOFTWARE ENGINEERING
1.1 The Nature of Software
1.1.1 Defining Software
1.1.2 Software Application Domains
1.1.3 Legacy Software
1.2 Defining the Discipline
1.3 The Software Process
1.3.1 The Process Framework
1.3.2 Umbrella Activities
1.3.3 Process Adaptation
1.4 Software Engineering Practice
1.4.1 The Essence of Practice
1.4.2 General Principles
1.5 How It All Starts
1.6 Summary
PART ONE THE SOFTWARE PROCESS
CHAPTER 2 PROCESS MODELS
2.1 A Generic Process Model
2.2 Defining a Framework Activity
2.3 Identifying a Task Set
2.4 Process Assessment and Improvement
2.5 Prescriptive Process Models
2.5.1 The Waterfall Model
2.5.2 Prototyping Process Model
2.5.3 Evolutionary Process Model
2.5.4 Unified Process Model
2.6 Product and Process
2.7 Summary
CHAPTER 3 AGILITY AND PROCESS
3.1 What Is Agility?
3.2 Agility and the Cost of Change
3.3 What Is an Agile Process?
3.3.1 Agility Principles
3.3.2 The Politics of Agile Development
3.4 Scrum
3.4.1 Scrum Teams and Artifacts
3.4.2 Sprint Planning Meeting
3.4.3 Daily Scrum Meeting
3.4.4 Sprint Review Meeting
3.4.5 Sprint Retrospective
3.5 Other Agile Frameworks
3.5.1 The XP Framework
3.5.2 Kanban
3.5.3 DevOps
3.6 Summary
CHAPTER 4 RECOMMENDED PROCESS MODEl
4.1 Requirements Definition
4.2 Preliminary Architectural Design
4.3 Resource Estimation
4.4 First Prototype Construction
4.5 Prototype Evaluation
4.6 Go, No-Go Decision
4.7 Prototype Evolution
4.7.1 New Prototype Scope
4.7.2 Constructing New Prototypes
4.7.3 Testing New Prototypes
4.8 Prototype Release
4.9 Maintain Release Software
4.10 Summary
CHAPTER 5 HUMAN ASPECTS OF SOFTWARE ENGINEERING
5.1 Characteristics of a Software Engineer
5.2 The Psychology of Software Engineering
……
PART TWO MODELING
CHAPTER 6 PRINCIPLES THAT GUIDE PRACTICE
CHAPTER 7 UNDERSTANDING REQUIREMENTS
PART THREE QUALITY AND SECURITY
PART FOUR MANAGING SOFTWARE PROJECTS
PART FIVE ADVANCED TOPICS
APPENDIX 1 An Introduction to UML
APPENDIX 2 Data Science fOr Software Engineers
REFERENCES
INDEX