Index A. Software Architecture Introduction Categories Importance Contexts Stakeholders B. Architectural Styles Introduction Model-View-Controller (MVC) Publish-Subscribe Broker Client-Server Service-Oriented Architecture (SOA) Peer-to-Peer (P2P) Tactics C. Design Patterns Introduction Facade Proxy Factory Method Abstract Factory Adapter Observer Singleton D. Requirements and Documentation Requirements Quality Attributes Architecturally Significant Requirements (ASRs) Documentation