This book covers the essential knowledge and skills needed by a student who is specializing in software engineering. Readers will learn principles of object orientation, software development, software modeling, software design, requirements analysis, and testing. The use of the Unified Modelling Language to develop software is taught in depth. Many concepts are illustrated using complete examples, with code written in Java.
Software engineering is just a fancy word for design. It consists in getting a long way away from your code – procedural, data, architectural, set-theoretic abstraction – which I resented at first, but which is far more important than it looks. UML is a rigorous, machine-readable graphical logic. Rather than lines of code, design patterns are the real units of serious work.
This book is painfully exoteric (infected by the ‘stakeholder’ bureaucratese bug), relentless plain, and occasionally the examples are not illustrative, but all right fine.
(NB 5 years later: The top-down OOP / UML approach has never been useful to me in 5 years of professional coding.)