1 Software and Software Engineering 2 Process Models 3 Agility and Process 4 Recommended Process Model 5 Human Aspects of Software Engineering 6 Principles That Guide Practice 7 Understanding Requirements 8 Requirements Modeling—A Recommended Approach 9 Design Concepts 10 Architectural Design—A Recommended Approach 11 Component-Level Design 12 User Experience Design 13 Design for Mobility 14 Pattern-Based Design 15 Quality Concepts 16 Reviews—A Recommended Approach 17 Software Quality Assurance 18 Software Security Engineering 19 Software Testing—Component Level 20 Software Testing—Integration Level 21 Software Testing—Specialized Testing for Mobility 22 Software Configuration Management 23 Software Metrics and Analytics 24 Project Management Concepts 25 Creating a Viable Software Plan 26 Risk Management 27 A Strategy for Software Support 28 Software Process Improvement 29 Emerging Trends in Software Engineering 30 Concluding Comments