In order to be able to write good software, students will need to be familiar with a range of techniques; good programming practice, experience of problem solving, familiarity with development methodologies, and knowledge of software processes. This book takes a new approach to the teaching of software development. Using a collection of case studies, it takes the student through the whole life cycle of building an application, starting at problem formulation, requirements analysis, system design, and the detail of the Java coding and testing. Each case study; -exploits object oriented concepts.