C++ Software Design
C++ Software Design is a book by Klaus Iglberger.
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.
This book is available on Amazon:
- C++ Software Design (Affiliate link)
Klaus Iglberger categorizes Software into different levels:
- Software Architecture
- Software Design
- Implementation details
Software Design deals with the interaction of entities. Questions about maintainability, changeability, extensibility, testability, and scalability are more pronounced at this level.
In this book, Klaus shows that design patterns are not exclusive to traditional OOP programming. The book teaches modern C++ evolutions of some of the classic design patterns (from Design Patterns by Erich Gamma et al.), and highlights examples of these patterns in the STL.