The development of large software systems is an extremely complex activity, which is full of various opportunities to introduce errors. Software engineering is the discipline that provides methods to handle this complexity, enabling the production of reliable software systems with maximum productivity. This book uses a running case study throughout the text, illustrating the different activity of software development on a single project. It attempts to not only teach the principles of software engineering, but also applies them to a software development project such that all aspects of development can be clearly seen on a project. This undergraduate textbook on computer application, software engineering and programming techniques is intended for computer scientists, engineering undergraduates and incoming graduates.
From the reviews of the third edition:
"Engineering and project management are the two major types of skills required in software engineering. This book discusses those skills. ... The book is well written and well organized; it starts with the most basic software engineering concepts, and then goes gradually toward the most advanced ones. The book ends with a comprehensive index, and an up-to-date list of references. I can recommend this book for all teachers who want to present a first course in software engineering for graduate students." (Soraya Kouadri Mostefaoui, ACM Computing Reviews, Vol. 49 (3), March, 2008)