Table of Contents

Prologue
1. Defining Software Architecture
2. The Role of a Software Architect
3. Architectural Properties
4. The Importance of Modularity
5. Architectural Styles
6. Architectural Patterns
7. Component Architecture
8. Architecting for Performance
9. Architecting for Security
10. Design and Presentation
11. Evolutionary Architecture
12. Soft Skills for Software Architects
13. Writing Technical Requirements
14. Development Practices
15. Architecture as Engineering
16. Testing in Software Architecture
17. Current and Future Trends in Software
18. Synthesizing Architectural Principles
Appendix