0% found this document useful (0 votes)
9 views17 pages

Software Design

The document outlines various software architecture types, including MVC, layered, client-server, repository, and pipe and filter architectures, each with examples and benefits. It emphasizes the importance of architectural design in meeting non-functional needs such as performance, security, safety, availability, and maintainability. Additionally, it discusses web application architecture and multi-tier client-server systems, highlighting the separation of user interface, logic, and data for better management and scalability.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views17 pages

Software Design

The document outlines various software architecture types, including MVC, layered, client-server, repository, and pipe and filter architectures, each with examples and benefits. It emphasizes the importance of architectural design in meeting non-functional needs such as performance, security, safety, availability, and maintainability. Additionally, it discusses web application architecture and multi-tier client-server systems, highlighting the separation of user interface, logic, and data for better management and scalability.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

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

You might also like