Manyebook
Mark Richards
Fundamentals of Software Architecture