By condensing the key points into "slides" and keeping these slides as visual anchors all over his text, the reader's experience is truly different. There is a fast track where we just follow the slides: this is what students to with handouts on first encounter. Then there are the deeper modes of reading where we focus in and follow Eliëns's full-text explanations; explanations that are thorough enough where that is important and shallow enough where overwhelming detail wouldn't pay back. Reading through this book and working with it to enhance our understanding is a pleasure.
For a breakdown of the book's structure, I refer to the preface and the foreword to the first edition. However, it is worth noting that Eliëns has improved his text substantially over the first edition. A theme close to my heart has been woven into the text: components. Software architecture, a closely related theme of quickly growing importance, has also found coverage.
The style and didactic quality of the presentation are matched by a wide-ranging selection of topics. Living in times of rapid change and extremely broad diversification of our discipline, we have to value the few books that span significant ranges in an integrative fashion. After all, it is the reader's key challenge to use books like Eliëns's to reconstruct and integrate the vast sea of knowledge fragments out there; and it is with the help of books like Eliëns's that the reader has a chance of achieving this formidable goal. Instructors and lecturers will equally appreciate this book as readily usable for teaching and lecturing tasks.
In the end, for the software developer to be, as well as for the established software developer or the computer scientist with an eye on software development, there is a lot to know from a spectrum of subdisciplines, before we can feel even half-confident about what we are actually doing when developing software. To get there, we need to understand everything from modeling and design techniques, over architecture and components, to implementation detail expressed in specific programming languages. This book is a good starting point for doing so from an object-oriented perspective. (Keep your eyes open for other perspectives and approaches, though!)