This book discusses the implementation of mediumsized software systems in an object oriented way. It turns concepts and principles underlying the object oriented paradigm into concrete coding advices and coding rules. It further illustrates how to apply each of them in the popular programming language Java. Throughout the book, software quality is the main driving force. At regular times, the author intensively discusses how decisions infl uence confl icting quality criteria such as adaptability and efficiency.
The first part of the book focuses on the specifi cation and the implementation of a single class. The object oriented paradigm suggests to structure software systems as clusters of classes whose objects interact with each other. The second part of the book demonstrates how to implement unidirectional and bidirectional associations between objects in terms of references. In the third and fi nal part of the book the notion of inheritance as the driving force to develop hierarchies of classes is discussed.