In this book Bertrand Meyer did an excelllent job in explaining object oriented software design in a rigourous way. Too often authors of OO books were not formal and rigorous enough, leading to a lot of confusion in the OO world. This book gives a very formal and exact treatment of Object orienteation. As a consequence this book is a must read for every OO expert. That the book focusses on eiffel should not be seen as a drawback : you can apply most of the explained techniques in other OO languages. Also this book does not focus much on UML. However, to my opinion, this is not a drawback neither since the power of UML is strongly overhyped.Though there are some minor drawbacks in this book : -the book can be reduced to half of its size without sacrifying rigour and clearity. Some topics are not needed. -design patterns are missing in this book. -does not explain enough about unit testing. While the book gives very good explanation on design by contract, design by contract should be seen as an addition to unit testing, but it cannot replace it !!! Finally some remarks : please do not overestimate the power of software reuse : in reality it has limited usage since in order to create reusable software and reuse it, each teammember has to know quite well what the other teams are doing in order to reuse some part of their work. In reality, for big projects, this is often impractical. -Design by contract is an important software technique, but you can also use it (apart from some limitations) in Java the assert statement. Of course eiffel is probabaly the best designed programming language. But that does not make it the best choice for building complex applications!! I am convinced that Java , in combination with the techniques describbed in this book, with unit testing frameworks like Junit, with aspect oriented programming facilities, and with usage of design patterns can beat eiffel as a development environment for building mission critical applications. |