0% found this document useful (0 votes)
8 views

What is Software Architecture

Uploaded by

mdarsath2606
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

What is Software Architecture

Uploaded by

mdarsath2606
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

What is Software Architecture?

Software architecture is the high-level structure of a software system. It defines the organization of a
system in terms of components, their interactions, and the patterns that guide their design. Software
architecture focuses on how the system is structured, how the components are arranged, and how
they communicate with each other. It ensures that the system meets both functional and non-
functional requirements (like performance, scalability, and security).

Key characteristics of software architecture include:

Modularity: Breaking down the system into smaller, independent components.

Scalability: Ensuring that the system can grow without performance degradation.

Maintainability: Making the system easy to modify and update.

Security: Ensuring that the system protects data and operations.

Architectural Styles

Architectural styles (also called design patterns) define standardized ways to organize components
and their interactions. Here are some common architectural styles with examples:

1. Layered (N-tier) Architecture

Description: The system is divided into layers, each with distinct responsibilities. Each layer interacts
with only its adjacent layers.

Example: A typical web application might use:

Presentation Layer (UI)


Business Logic Layer (processing)

Data Access Layer (database)

Real-world Example: A banking application where the user interface is separate from the business
rules, which in turn are separated from the database.

2. Client-Server Architecture

Description: Divides the system into two parts: a client that makes requests and a server that
processes and responds to those requests.

Example: A web browser (client) interacting with a web server to fetch data or perform tasks.

Real-world Example: Email systems like Gmail, where the user interacts with the interface (client),
and all the processing is done on the email server.

3. Microservices Architecture

Description: The system is broken down into small, independent services, each responsible for a
specific functionality. These services communicate over a network.

Example: In an e-commerce system, separate microservices handle user management, payment,


product inventory, and shipping.

Real-world Example: Netflix, where each microservice handles specific tasks such as user
recommendations or content delivery.
4. Event-Driven Architecture

Description: Components of the system communicate by producing and reacting to events. It is a


loosely coupled system, where components are not aware of each other directly.

Example: A stock trading system where different components react to events such as stock price
changes or user trades.

Real-world Example: Amazon Web Services (AWS) Lambda, where functions are triggered by events
such as changes in data or API calls.

5. Service-Oriented Architecture (SOA)

Description: Similar to microservices, SOA divides the system into services. However, the services are
typically larger and focus on broader business functionality.

Example: A travel booking system with services like booking flights, hotels, and cars.

Real-world Example: An enterprise system that handles customer service, sales, and inventory, where
each is treated as a separate service but integrated to work together.

6. Pipe and Filter Architecture

Description: The system processes data in stages, where each stage (filter) transforms the data
before passing it to the next stage through a pipe.

Example: A compiler, where different filters (lexical analysis, parsing, etc.) process the source code.
Real-world Example: UNIX operating system pipelines, where the output of one command is passed
to another as input.

Each architectural style provides different benefits and trade-offs, and selecting the right style
depends on the system’s requirements.

You might also like