Software Architecture - Exam Revision
Notes (CS1 to CS7)
CS1: Introduction to Software Architecture
- Software Architecture (SA) is the blueprint of a software system.
- Connects business goals to resulting system; shows high-level abstraction.
- Structures: Module, Component-Connector, Allocation.
- Views: Logical, Process, Physical, Development, Use-case (4+1 View Model).
- Importance: Drives quality, change management, cost estimation.
- Architecture Patterns: Layered, Client-Server, Shared Data, etc.
CS2 & CS3: Quality Attributes
- Non-functional requirements evaluated using a 6-part template.
- Availability: Fault detection, recovery, prevention tactics.
- Usability: Learnability & operability, UI feedback, undo, help.
- Performance: Latency, throughput, jitter; optimized with caching, load balancing.
- Testability: Logging, oracles, sandboxing, code instrumentation.
- Interoperability: SOAP/REST, ESB, semantic + syntactic data exchange.
- Modifiability: Encapsulation, cohesion, coupling, change isolation.
- Security: CIA triad, DAC/MAC/RBAC, digital certs/signatures.
CS4: Architecturally Significant Requirements (ASR)
- ASRs impact architecture deeply (e.g., alerts, logs, integration).
- Identification: MoSCoW, QAW workshops, PALM method.
- Tools: Utility Tree for prioritization.
- Agile: Use utility tree in backlog, perform iterative validation.
CS5: Attribute-Driven Design (ADD) & Agile Architecture
- ADD Process: Select element → Identify ASRs → Generate solution → Evaluate →
Iterate.
- Agile Tactics: Spikes, refactoring, continuous adaptation.
- Examples: Judiciary system, WebArrow, BHIM.
- Hybrid architecture: Experiment before full design, evolve architecture.
CS6: Documenting Architecture
- Purpose: Communication & Evaluation.
- Views: Module (decomposition), Component & Connector (interactions), Allocation
(deployment).
- Quality Attribute Views: Security, Communication, Reliability.
- Combined Views: Answer stakeholder needs (e.g., secure login).
- 4+1 View Model: Logical, Process, Development, Physical, Use-case.
- C4 Model: Context → Container → Component → Code.
- Documentation Package: Presentation, Element Catalog, Variability Guide, Rationale.
CS7: Layered Architecture & Evaluation Techniques
- Layers: Presentation, Business, Data, Services.
- Techniques: Caching, AJAX, Facade, Session Mgmt, ORM, SQL parameterization.
- Security: SSL, IPSec, Encrypted communication & storage.
- Evaluation (ATAM): Trade-off Analysis Method – Utility Tree, Scenarios, Risks.
- ATAM Phases: Partnership → High-Level Eval → Detailed Eval → Report.
- Case Studies: CAAS (avionics), Battlefield System – showed risks, trade-offs, and
architectural improvements.