Software Architecture with C++: Design modern systems using effective architecture concepts, design patterns, and techniques with C++20 - Ostrowski (IEEE, 2003)