Software Engineering
Architecture Design
What is Software Architecture?
It’s the overall structure of a system like blueprint of building– how it's divided
into parts (subsystems) and how these parts communicate.
Types of Architecture Levels
Small: Architecture of a single program.
Large: Architecture of big systems with many programs (e.g., banking or airline
systems).
Architects decide:
How to split the system (modules)?
How parts will communicate?
What style to use (e.g., layered, MVC)?
How to meet performance or security needs?
Architecture and Non-functional Needs
Need How to Design It Example
Fewer components, Gaming app running
Performance
same machine fast
Layered design,
Security Online banking app
protect inner layers
Put critical parts in one Airplane control
Safety
component system
Add backup
Availability Cloud storage service
components
Use small, replaceable News website with
Maintainability
parts changing layout
Architectural Views (4+1 Model)
Helps see the system from different angles:
View What it shows Example
What system does
Logical Class diagrams
(functions)
Running system
Process Activity diagrams
behavior
Development How code is organized component diagrams
Hardware and
Physical Deployment diagrams
deployment
+1 Conceptual Big picture view Use case diagrams
Model-View-Controller (MVC)
What is it?
Separates the system into 3 parts:
Model – Manages data and logic
View – Displays the data (UI)
Controller – Handles user actions (input)
Example:
A shopping website:
Model: Product info, user accounts
View: Web pages showing products
Controller: Handles actions like "Add to Cart" or "Login"
✅ Why use it?
Easy to update UI without touching logic
Allows different views for same data (e.g., list view, grid view)
Layered Architecture
What is it?
The system is divided into layers. Each layer provides services to the
layer above it.
Example:
An online banking system:
UI Layer: User interface
Business Layer: Manages transactions
Data Layer: Interacts with the database
✅ Why use it?
Easy to maintain and update
Each layer can be developed separately
Client-Server Architecture
🧩 What is it?
Divides the system into clients (users) and servers (service
providers).
Example:
ATM system:
Client: ATM machine
Server: Bank database and processing center
✅ Why use it?
Centralized control
Multiple clients can use the same services
Repository Architecture
🧩 What is it?
All data is stored in a shared repository (central database), and
components interact with it.
Example:
Integrated Development Environment (IDE):
Tools like editor, debugger, compiler all use the same project data
✅ Why use it?
All components share the same data
Easy to manage large volumes of data
Pipe and Filter Architecture
🧩 What is it?
Data flows through a series of processing steps (filters). Each step
modifies the data.
Example:
Invoice processing system:
Step 1: Read invoice → Step 2: Validate data → Step 3: Generate
report
✅ Why use it?
Easy to reuse and add steps
Good for data processing or transformation tasks
An example of the pipe and filter
architecture
Web Application Architecture
The web application architecture describes the interactions between
applications, databases, and middleware systems on the web.
It ensures that multiple applications work simultaneously. Let us
understand it with a simple example of opening a webpage.
Example: visiting the website
How Does it work?
With any typical web application, there are two different codes (sub-
programs) running side-by-side. These are:
Client-side Code - The code that is in the browser and responds to
some user input
Server-side Code - The code that is on the server and responds to
the HTTP requests
Quick Comparison Table
Pattern Best For Example
MVC UI-based apps Social media app
Clear separation of
Layered Library system
logic
Central services
Client-Server accessed by many ATM, Web apps
users
IDE, Management
Repository Shared data access
Systems
Step-by-step data Invoice system,
Pipe and Filter
processing Compiler
Application Architectures
Type Description Example
Transaction Handle user requests
ATM, Ticket Booking
Processing and database updates
Language
Translate code Java Compiler
Processing
Information Access large Hospital system,
Systems databases Library catalog
Web-Based Information Systems
What is it?
A web-based system is an application that runs on the internet and
is accessed using a web browser.
📦 Example: E-Commerce Website
An online store like Amazon:
Users browse products (UI in browser)
Add items to a shopping cart
Make payment in one final transaction
Architecture (Multi-tier Client-Server)
Web-based systems are usually split into 3 tiers:
Why use this?
Keeps user interface, logic, and data separate
Easier to manage and scale
Each layer can be maintained independently
Tier Role Example
Handles user Browser displays
Web Server
interaction (UI) website
Adds items to cart,
Application Server Handles business logic
calculates total
Stores and manages Stores product info,
Database Server
data user details