Each chapter ends with exercises that let you test your understanding and help you elaborate on the chapter's main concepts. Describes in plain English what software engineering is. Outlines key phases that any software engineering effort must handle to produce applications that are powerful and dependable.