The SE 2004 of the ACM/IEEE computing curriculum project recommends software design and architecture as one of its ten essential areas of study. Software Architecture and Design Illuminated is the ideal text for undergraduate and graduate students delving into this critical area of the software development process. This text offers a coherent and integrated approach to the discipline of software architectural design and covers a complete set of important methodologies, architectural styles, design guidelines, and design tools. Java is used throughout the book to explain design principles and present case studies. Review questions, exercises, and design assignments round out most chapters and allow students to test themselves on key material.
At last, I could read until the last paper in this book. It seems like a huge attempt that I can't understand overall after the first reading, but it makes me open my eyes to know a new big picture. MVC, blackboard, PAC, VM,... is so interesting and there are a lot of architectures that we can apply in any kind of systems. But the most important is, choosing and developing an architecture of a system needs the expertise and the experience, I have nothing now. Interesting but sad.
Not for the faint of heart. Also not for beginners. I would say this probably would make the most sense to people who are already working in the field.