Back to the 2020 paper

Module 3: Software Design & Metrics

20207m

What are the different architectural styles applied for software development? Explain with diagrams.

Worked SolutionAI Assisted

Solution

Architectural Styles (Sommerville/Pressman) - with Diagrams

1. Layered / N-Tier

  • Hierarchy of layers, each provides service to above. e.g., OSI, Web: Presentation → Business → Data.
[ UI Layer ] → [ Application ] → [ Data Layer ]

2. Client-Server

  • Clients request via network from centralized servers. 2-tier / 3-tier.
Client → Network → Server (DB/App)

3. Model-View-Controller (MVC)

  • Model (data), View (UI), Controller (logic). Used in Web frameworks.

4. Repository / Blackboard

  • Central data store, independent components operate on it. e.g., IDE, Compiler, CASE tool.
[Tool1] ↔ [Central Repository] ↔ [Tool2]

5. Pipe and Filter

  • Data stream passes through filters via pipes. e.g., Unix shell ps | grep | sort, Compilers.
Source → Filter1 | → Filter2 | → Sink

6. Event-Driven / Publish-Subscribe

  • Components communicate via events. e.g., GUI, IDE listeners.

7. Microservices / SOA

  • Independent deployable services with APIs. Modern cloud style.

Selection criteria: Data flow, control, distribution, modifiability. Most real systems are hybrid (e.g., Layered + Client-Server).

Similar questions

Student FinanceWeb Platform

Pocketly — Personal Finance for Students

Keep your hostel and college expenses under control. Track accounts, log spending in seconds, and stay within your monthly budget.