This is an authoritative introductory book designed for courses in software engineering,programming methodology,and systematic programming techniques. Each of these courses typically involves a team project to develop a software product and its supporting documentation. This book gives students a framework,and techniques and procedures,for completing that project. Details of term projects are contained in an appendix.