Software Architecture with C++: Designing robust C++ systems with modern architectural practices - Gavrilin (IEEE, 2003)