This book offers an easily accessible foundation to the topic of software engineering. It focuses on the essential elements, providing the reader with the basic skills and knowledge required to execute a software project successfully. Following the winning formula and easy-to read style of the authors previous An Integrated Approach to Software Engineering, this reader-friendly text is written especially for undergraduates as an introduction to this broad-ranging discipline. With a strong emphasis on practice, this textbook takes a case-study approach whereby a project is developed through the course of the book, illustrating the different activities of software development. The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project. Designed for undergraduates and bolstered with numerous examples and chapter summaries, this text imparts to the reader the fundamental knowledge, skills, practices and techniques within software engineering.