Good software design is essential for the success of your project but designing software is
hard to do. You need to have a deep understanding of the consequences of design decisions and a
good overview of available design alternatives. With this book experienced C++ developers will
get a thorough practical and unparalleled overview of software design with this modern
language. C++ trainer and consultant Klaus Iglberger explains how you can manage dependencies
and abstractions improve changeability and extensibility of software entities and apply and
implement modern design patterns to help you take advantage of today's possibilities. Software
design is the most essential aspect of a software project because it impacts the software's
most important properties: maintainability changeability and extensibility. Learn how to
evaluate your code with respect to software design Understand what software design is
including design goals such as changeability and extensibility Explore the advantages and
disadvantages of each design approach Learn how design patterns help solve problems and express
intent Choose the right form of a design pattern to get the most out of its advantages