Austin Louden
Fundamentals of Software Architecture: An Engineering Approach