<p>1) Software and Software Engineering</p><p>Part One - The Software Process</p><p>2) Process Models</p><p>3) Agility and Process</p><p>4) Recommended Process Model</p><p>5) Human Aspects of Software Engineering</p><p>Part Two - Modeling</p><p>6) Principles That Guide Practice</p><p>7) Understanding Requirements</p><p>8) Requirements Modeling - A Recommended Approach</p><p>9) Design Concepts</p><p>10) Architectural Design - A Recommended Approach</p><p>11) Component-Level Design</p><p>12) User Experience Design</p><p>13) Design for Mobility</p><p>14) Pattern-Based Design</p><p>Part Three - Quality and Security</p><p>15) Quality Concepts</p><p>16) Reviews - A Recommended Approach</p><p>17) Software Quality Assurance</p><p>18) Software Security Engineering</p><p>19) Software Testing - Component Level</p><p>20) Software Testing - Integration Level</p><p>21) Software Testing - Specialized Testing for Mobility</p><p>22) Software Configuration Management</p><p>23) Software Metrics and Analytics</p><p>Part Four - Managing Software Projects</p><p>24) Project Management Concepts</p><p>25) Creating a Viable Software Plan</p><p>26) Risk Management</p><p>27) A Strategy for Software Support</p><p>Part Five - Advanced Topics </p><p>28) Software Process Improvement</p><p>29) Emerging Trends in Software Engineering</p><p>30) Concluding Comments</p><p>Appendix I - An Introduction to UML </p><p>Appendix II - Data Science for Software Engineers</p>